laforge submitted this change.

View Change


Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified
Add LLC and HLC information to MNCC interface definiton

low/high layer compatibility are used for capability checking between
caller and called entitiy.

The information is added to the end of struct gsm_mncc increases, so
that the version number needs not to be incremented.

Related: OS#6152
Change-Id: I15f5afcf069ee6c1c4641108ceacc837bee311b5
---
M include/osmocom/msc/mncc.h
M tests/mncc/mncc_test.ok
2 files changed, 38 insertions(+), 3 deletions(-)

diff --git a/include/osmocom/msc/mncc.h b/include/osmocom/msc/mncc.h
index c8f3bfd..d258630 100644
--- a/include/osmocom/msc/mncc.h
+++ b/include/osmocom/msc/mncc.h
@@ -125,9 +125,14 @@
#define MNCC_F_KEYPAD 0x1000
#define MNCC_F_SIGNAL 0x2000
#define MNCC_F_GCR 0x4000
+#define MNCC_F_HIGHL_COMPAT 0x8000
+#define MNCC_F_LOWL_COMPAT 0x10000

/* UPDATEME when adding new MNCC_F_* entries above */
-#define MNCC_F_ALL 0x7fff
+#define MNCC_F_ALL 0x1ffff
+
+#define GSM_MAX_LOWL_COMPAT 16 /* (18 with TLV) */
+#define GSM_MAX_HIGHL_COMPAT 3 /* (5 with TLV) */

struct gsm_mncc {
/* context based information */
@@ -170,6 +175,20 @@

/* A buffer to contain SDP ('\0' terminated) */
char sdp[1024];
+
+ /* Additional information that extends current socket interface version. */
+
+ /* The content requals of Low Layer compatibility IE, described in 3GPP TS 24.008 §10.5.4.18. */
+ struct gsm_mncc_lowl_compat {
+ uint8_t len;
+ uint8_t compat[GSM_MAX_LOWL_COMPAT];
+ } llc;
+
+ /* The content requals of High Layer compatibility IE, described in 3GPP TS 24.008 §10.5.4.16. */
+ struct gsm_mncc_highl_compat {
+ uint8_t len;
+ uint8_t compat[GSM_MAX_HIGHL_COMPAT];
+ } hlc;
};

struct gsm_data_frame {
diff --git a/tests/mncc/mncc_test.ok b/tests/mncc/mncc_test.ok
index 059e808..ca3ac64 100644
--- a/tests/mncc/mncc_test.ok
+++ b/tests/mncc/mncc_test.ok
@@ -1,10 +1,10 @@
test_sdp_termination()

struct gsm_mncc:
-empty SDP: len=1876 sdplen=1026 sdp="\0" rc=0
+empty SDP: len=1896 sdplen=1046 sdp="\0" rc=0
empty SDP, shortest possible: len=851 sdplen=1 sdp="\0" rc=0
empty SDP, zero len: len=850 sdplen=0 sdp=- rc=-22
-terminated SDP str: len=1876 sdplen=1026 sdp="Privacy is a desirable marketing option\0" rc=0
+terminated SDP str: len=1896 sdplen=1046 sdp="Privacy is a desirable marketing option\0" rc=0
terminated SDP str, shortest possible: len=890 sdplen=40 sdp="Privacy is a desirable marketing option\0" rc=0
terminated SDP str, but len excludes nul: len=889 sdplen=39 sdp="Privacy is a desirable marketing option" rc=-22
terminated SDP str, but len too short: len=873 sdplen=23 sdp="Privacy is a desirable " rc=-22

To view, visit change 35392. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I15f5afcf069ee6c1c4641108ceacc837bee311b5
Gerrit-Change-Number: 35392
Gerrit-PatchSet: 6
Gerrit-Owner: jolly <andreas@eversberg.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-CC: neels <nhofmeyr@sysmocom.de>
Gerrit-MessageType: merged