path: root/openbsc/include
diff options
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-10-12 01:39:25 +0200
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2017-03-16 15:32:32 +0100
commit978e72e500ac5544ee9fbddbac03125f60fceef8 (patch)
tree4686c60996a1d3666e71487bee74cd37604c3a19 /openbsc/include
parent1ad6a2e515bbc3a73a283eb104feb899086a24a3 (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-msc 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-msc and osmo-sgsn. Add generic iu_vty_config_write() to write out the config. Call iu_vty_init() from msc_vty_init(); msc_vty_init() is in libmsc, hence linking of osmo-msc now needs libiu to come after libmsc, so move that further down. Change-Id: I93728314742b327336f3fb6de98e6457f687e1f9
Diffstat (limited to 'openbsc/include')
3 files changed, 14 insertions, 1 deletions
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index 223c868fe..623d940b9 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -13,6 +13,7 @@
#include <osmocom/crypt/auth.h>
+#include <openbsc/common.h>
#include <openbsc/rest_octets.h>
#include <openbsc/common_cs.h>
#include <openbsc/mgcpgw_client.h>
@@ -467,6 +468,10 @@ struct gsm_network {
struct mgcpgw_client_conf conf;
struct mgcpgw_client *client;
} mgcpgw;
+ struct {
+ enum nsap_addr_enc rab_assign_addr_enc;
+ } iu;
struct osmo_esme;
diff --git a/openbsc/include/openbsc/iu.h b/openbsc/include/openbsc/iu.h
index a82d53066..0ef2f82f6 100644
--- a/openbsc/include/openbsc/iu.h
+++ b/openbsc/include/openbsc/iu.h
@@ -6,6 +6,8 @@
#include <osmocom/core/linuxlist.h>
#include <osmocom/gsm/gsm48.h>
+#include <openbsc/common.h>
struct sgsn_pdp_ctx;
struct msgb;
struct osmo_sccp_link;
@@ -72,4 +74,5 @@ int iu_tx_sec_mode_cmd(struct ue_conn_ctx *uectx, struct gsm_auth_tuple *tp,
int iu_tx_common_id(struct ue_conn_ctx *ue_ctx, const char *imsi);
int iu_tx_release(struct ue_conn_ctx *ctx, const struct RANAP_Cause *cause);
-void iu_vty_init(void);
+void iu_vty_init(int iu_parent_node, enum nsap_addr_enc *rab_assign_addr_enc);
+int iu_vty_config_write(struct vty *vty, const char *indent);
diff --git a/openbsc/include/openbsc/sgsn.h b/openbsc/include/openbsc/sgsn.h
index 1ed1583ed..57b2978ff 100644
--- a/openbsc/include/openbsc/sgsn.h
+++ b/openbsc/include/openbsc/sgsn.h
@@ -7,6 +7,7 @@
#include <osmocom/gprs/gprs_ns.h>
#include <openbsc/gprs_sgsn.h>
#include <openbsc/oap_client.h>
+#include <openbsc/common.h>
#include <ares.h>
@@ -109,6 +110,10 @@ struct sgsn_config {
int p1;
int p2;
} dcomp_v42bis;
+ struct {
+ enum nsap_addr_enc rab_assign_addr_enc;
+ } iu;
struct sgsn_instance {