diff options
-rw-r--r-- | include/osmocore/msgb.h | 13 | ||||
-rw-r--r-- | include/osmocore/tlv.h | 7 |
2 files changed, 19 insertions, 1 deletions
diff --git a/include/osmocore/msgb.h b/include/osmocore/msgb.h index 131f920a..e2755ef3 100644 --- a/include/osmocore/msgb.h +++ b/include/osmocore/msgb.h @@ -35,9 +35,20 @@ struct msgb { struct gsm_bts_trx *trx; struct gsm_lchan *lchan; + /* the A-bis layer 2 header: OML, RSL(RLL), NS */ unsigned char *l2h; + /* the layer 3 header. For OML: FOM; RSL: 04.08; GPRS: BSSGP */ unsigned char *l3h; - unsigned char *smsh; + + /* the layer 4 header */ + union { + unsigned char *smsh; + unsigned char *llch; + }; + + /* the layer 5 header, GPRS: GMM header */ + unsigned char *gmmh; + uint32_t tlli; uint16_t data_len; uint16_t len; diff --git a/include/osmocore/tlv.h b/include/osmocore/tlv.h index 14c9910d..c733dbc9 100644 --- a/include/osmocore/tlv.h +++ b/include/osmocore/tlv.h @@ -190,6 +190,13 @@ static inline uint8_t *msgb_tv16_push(struct msgb *msg, uint8_t tag, uint16_t va return tv16_put(buf, tag, val); } +static inline uint8_t *msgb_tvlv_push(struct msgb *msg, uint8_t tag, uint16_t len, + const uint8_t *val) +{ + uint8_t *buf = msgb_push(msg, TVLV_GROSS_LEN(len)); + return tvlv_put(buf, tag, len, val); +} + /* TLV parsing */ struct tlv_p_entry { |