gmm: Store received PDP Ctx Status and List of Receive N-PDU Numbers
Those IEs are aimed at upper layers (SM, SNDCP) and will be relayed in follow-up patches. Change-Id: I3a43b5e0417796f7dce4010cd6a6d3fd2d9c543e
This commit is contained in:
parent
34f4b94a98
commit
f31984ba35
|
@ -66,6 +66,10 @@ struct gprs_gmm_entity {
|
|||
|
||||
uint8_t radio_prio; /* TS 24.008 10.5.7.2 */
|
||||
struct gprs_ra_id ra; /* TS 24.008 10.5.5.15 (decoded) */
|
||||
uint8_t pdp_ctx_status[2]; /* TS 24.008 10.5.7.1 */
|
||||
bool rx_npdu_numbers_list_present;
|
||||
uint8_t rx_npdu_numbers_list[17]; /* TS 24.008 10.5.5.11 */
|
||||
uint8_t rx_npdu_numbers_list_len; /* bitmask TS 24.008 10.5.5.11 */
|
||||
|
||||
struct {
|
||||
/* Input params received from network: */
|
||||
|
|
|
@ -1084,7 +1084,17 @@ static int gprs_gmm_rx_rau_acc(struct gprs_gmm_entity *gmme, struct gsm48_hdr *g
|
|||
/* TODO: */
|
||||
}
|
||||
|
||||
/* 10.5.5.11 List of Receive N-PDU Numbers: TODO */
|
||||
/* 10.5.5.11 List of Receive N-PDU Numbers: */
|
||||
if (TLVP_PRES_LEN(&tp, GSM48_IE_GMM_RX_NPDU_NUM_LIST, 2)) {
|
||||
unsigned int ie_len = TLVP_LEN(&tp, GSM48_IE_GMM_RX_NPDU_NUM_LIST);
|
||||
if (ie_len > sizeof(gmme->rx_npdu_numbers_list))
|
||||
ie_len = sizeof(gmme->rx_npdu_numbers_list);
|
||||
gmme->rx_npdu_numbers_list_present = true;
|
||||
gmme->rx_npdu_numbers_list_len = ie_len;
|
||||
memcpy(gmme->rx_npdu_numbers_list, TLVP_VAL(&tp, GSM48_IE_GMM_RX_NPDU_NUM_LIST), ie_len);
|
||||
} else {
|
||||
gmme->rx_npdu_numbers_list_present = false;
|
||||
}
|
||||
|
||||
/* 10.5.7.3 Negotiated READY timer value */
|
||||
if (TLVP_PRESENT(&tp, GSM48_IE_GMM_TIMER_READY)) {
|
||||
|
@ -1111,6 +1121,8 @@ static int gprs_gmm_rx_rau_acc(struct gprs_gmm_entity *gmme, struct gsm48_hdr *g
|
|||
|
||||
/* 10.5.1.13 Equivalent PLMNs: TODO */
|
||||
/* 10.5.7.1 PDP context status: TODO */
|
||||
if (TLVP_PRES_LEN(&tp, GSM48_IE_GMM_PDP_CTX_STATUS, 2))
|
||||
memcpy(gmme->pdp_ctx_status, TLVP_VAL(&tp, GSM48_IE_GMM_PDP_CTX_STATUS), 2);
|
||||
|
||||
/* TODO: lots more Optional IEs */
|
||||
}
|
||||
|
|
|
@ -142,6 +142,7 @@ const struct tlv_definition gprs_gmm_att_tlvdef = {
|
|||
[GSM48_IE_GMM_TIMER_T3302] = { TLV_TYPE_TLV, 0 },
|
||||
[GSM48_IE_GMM_AUTH_FAIL_PAR] = { TLV_TYPE_TLV, 0 },
|
||||
[GSM48_IE_GMM_IMEISV] = { TLV_TYPE_TLV, 0 },
|
||||
[GSM48_IE_GMM_RX_NPDU_NUM_LIST] = { TLV_TYPE_TLV, 0 },
|
||||
[GSM48_IE_GMM_DRX_PARAM] = { TLV_TYPE_FIXED, 2 },
|
||||
[GSM48_IE_GMM_MS_NET_CAPA] = { TLV_TYPE_TLV, 0 },
|
||||
[GSM48_IE_GMM_PDP_CTX_STATUS] = { TLV_TYPE_TLV, 0 },
|
||||
|
|
Loading…
Reference in New Issue