aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc/gprs_llc.h
diff options
context:
space:
mode:
authorPhilipp <pmaier@sysmocom.de>2016-08-10 12:24:09 +0200
committerHarald Welte <laforge@gnumonks.org>2016-08-27 04:45:55 +0000
commit4ac3aee711ae88280c35c996b75bfff1f2415e87 (patch)
tree61d1812168b7b3fac09fe6b12031078a45ece49f /openbsc/include/openbsc/gprs_llc.h
parent3ec03d5048772c24a337b67cc7605cd7b7225a8c (diff)
Adding LLC-XID related modifications in LLC
With this commit the already existing XID mechanism has been modified to suit the needs for the upcomming SNDCP-XID patches. This commit should not break anything since it does not alter the current behaviour (incoming XID is still just echoed, on GMM-Reset a basic XID message is still echoed) Change-Id: I65b9d625e72d3d61c99abdc7041773701d694d52
Diffstat (limited to 'openbsc/include/openbsc/gprs_llc.h')
-rw-r--r--openbsc/include/openbsc/gprs_llc.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/gprs_llc.h b/openbsc/include/openbsc/gprs_llc.h
index 0e497a080..c3b82b146 100644
--- a/openbsc/include/openbsc/gprs_llc.h
+++ b/openbsc/include/openbsc/gprs_llc.h
@@ -4,6 +4,7 @@
#include <stdint.h>
#include <stdbool.h>
#include <openbsc/gprs_sgsn.h>
+#include <openbsc/gprs_llc_xid.h>
/* Section 4.7 LLC Layer Structure */
enum gprs_llc_sapi {
@@ -166,6 +167,13 @@ struct gprs_llc_llme {
uint16_t nsei;
struct gprs_llc_lle lle[NUM_SAPIS];
+ /* Copy of the XID fields we have sent with the last
+ * network originated XID-Request. Since the phone
+ * may strip the optional fields in the confirmation
+ * we need to remeber those fields in order to be
+ * able to create the compression entity. */
+ struct llist_head *xid;
+
/* Internal management */
uint32_t age_timestamp;
};
@@ -219,6 +227,10 @@ int gprs_llgmm_reset(struct gprs_llc_llme *llme);
int gprs_llgmm_reset_oldmsg(struct msgb* oldmsg, uint8_t sapi,
struct gprs_llc_llme *llme);
+/* Set of LL-XID negotiation (See also: TS 101 351, Section 7.2.2.4) */
+int gprs_ll_xid_req(struct gprs_llc_lle *lle,
+ struct gprs_llc_xid_field *l3_xid_field);
+
/* 04.64 Chapter 7.2.1.1 LLGMM-ASSIGN */
int gprs_llgmm_assign(struct gprs_llc_llme *llme,
uint32_t old_tlli, uint32_t new_tlli);