diff options
Diffstat (limited to 'openbsc/include')
-rw-r--r-- | openbsc/include/openbsc/gprs_llc.h | 12 |
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); |