diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-10-12 01:39:25 +0200 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-11-12 16:06:47 +0100 |
commit | 5f3e337c8d545e6b4fe968b196d0fcf8c9d75c89 (patch) | |
tree | 534ea6323cd9a738f5dce3dea902443c0d18eb26 /openbsc/src/libmsc | |
parent | 8afc916e360a1ae739bb9df6913317eb3990a1ab (diff) |
IuCS and IuPS: add VTY config for RAB Assignment address kind
To accomodate the ip.access nano3G without having to recompile, make the
RAB Assignment's Transport Layer Address IE's format configurable, in both
osmo-cscn and osmo-sgsn.
The long term perspective is to somehow detect which address encoding a given
3G cell prefers, but for the time being just configure it globally and set each
ue_conn_ctx to the global setting upon creation.
Add VTY command to iu_vty.c, with args passed to iu_vty_init() to insert
at an arbitrary VTY node, so that it can be used both for osmo-cscn and
osmo-sgsn. Add generic iu_vty_config_write() to write out the config.
Call iu_vty_init() from cscn_vty_init(); cscn_vty_init() is in libmsc,
hence linking of osmo-cscn now needs libiu to come after libmsc, so move
that further down.
Change-Id: I93728314742b327336f3fb6de98e6457f687e1f9
Diffstat (limited to 'openbsc/src/libmsc')
-rw-r--r-- | openbsc/src/libmsc/cscn_vty.c | 5 | ||||
-rw-r--r-- | openbsc/src/libmsc/iucs.c | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/openbsc/src/libmsc/cscn_vty.c b/openbsc/src/libmsc/cscn_vty.c index f93c5602b..abe49c40d 100644 --- a/openbsc/src/libmsc/cscn_vty.c +++ b/openbsc/src/libmsc/cscn_vty.c @@ -26,10 +26,11 @@ #include <inttypes.h> #include <osmocom/vty/command.h> -#include <openbsc/vty.h> +#include <openbsc/vty.h> #include <openbsc/gsm_data.h> #include <openbsc/gsm_subscriber.h> +#include <openbsc/iu.h> static struct cmd_node cscn_node = { CSCN_NODE, @@ -123,6 +124,7 @@ static int config_write_cscn(struct vty *vty) gsmnet->avoid_tmsi ? "no " : "", VTY_NEWLINE); mgcpgw_client_config_write(vty, " "); + iu_vty_config_write(vty, " "); return CMD_SUCCESS; } @@ -175,4 +177,5 @@ void cscn_vty_init(struct gsm_network *cscn_network) install_element(CSCN_NODE, &cfg_cscn_assign_tmsi_cmd); install_element(CSCN_NODE, &cfg_cscn_no_assign_tmsi_cmd); mgcpgw_client_vty_init(CSCN_NODE, &cscn_network->mgcpgw.conf); + iu_vty_init(CSCN_NODE, &cscn_network->iu.rab_assign_addr_enc); } diff --git a/openbsc/src/libmsc/iucs.c b/openbsc/src/libmsc/iucs.c index 6f9643d76..9ec8da4bd 100644 --- a/openbsc/src/libmsc/iucs.c +++ b/openbsc/src/libmsc/iucs.c @@ -25,6 +25,7 @@ static struct gsm_subscriber_connection *subscr_conn_allocate_iu(struct gsm_netw conn->network = network; conn->via_iface = IFACE_IU; conn->iu.ue_ctx = ue; + conn->iu.ue_ctx->rab_assign_addr_enc = network->iu.rab_assign_addr_enc; conn->lac = lac; llist_add_tail(&conn->entry, &network->subscr_conns); |