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
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 {