[S] Change in libosmo-gprs[master]: sm: Handle PCO in rx PDP Ctx Accept
pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/32317 ) Change subject: sm: Handle PCO in rx PDP Ctx Accept ...................................................................... sm: Handle PCO in rx PDP Ctx Accept Related: OS#5501 Change-Id: I15ff08cbefb463c8785a138406921563941e7e7d --- M src/sm/sm.c 1 file changed, 25 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/sm/sm.c b/src/sm/sm.c index c57ef3f..0f39708 100644 --- a/src/sm/sm.c +++ b/src/sm/sm.c @@ -208,6 +208,10 @@ sm_prim_tx->smreg.ms_id = sme->ms->ms_id; sm_prim_tx->smreg.pdp_act_cnf.accepted = (cause != 0); sm_prim_tx->smreg.pdp_act_cnf.nsapi = sme->nsapi; + sm_prim_tx->smreg.pdp_act_cnf.pco_len = sme->pco_len; + if (sme->pco_len) + memcpy(sm_prim_tx->smreg.pdp_act_cnf.pco, &sme->pco, sme->pco_len); + if (sm_prim_tx->smreg.pdp_act_cnf.accepted) { sm_prim_tx->smreg.pdp_act_cnf.acc.pdp_addr_ietf_type = sme->pdp_addr_ietf_type; memcpy(&sm_prim_tx->smreg.pdp_act_cnf.acc.pdp_addr_v4, &sme->pdp_addr_v4, sizeof(sme->pdp_addr_v4)); @@ -319,6 +323,17 @@ if (rc < 0) goto rejected; } + + if (TLVP_PRESENT(&tp, GSM48_IE_GSM_PROTO_CONF_OPT)) { + if (TLVP_LEN(&tp, GSM48_IE_GSM_PROTO_CONF_OPT) > ARRAY_SIZE(sme->pco)) { + LOGSME(sme, LOGL_ERROR, + "Rx SM Activate PDP Context Accept: PCO size too big! %u\n", qos_len); + goto rejected; + } + sme->pco_len = TLVP_LEN(&tp, GSM48_IE_GSM_PROTO_CONF_OPT); + if (sme->pco_len) + memcpy(sme->pco, TLVP_VAL(&tp, GSM48_IE_GSM_PROTO_CONF_OPT), sme->pco_len); + } } rc = osmo_fsm_inst_dispatch(sme->ms_fsm.fi, GPRS_SM_MS_EV_RX_ACT_PDP_CTX_ACC, NULL); -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/32317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I15ff08cbefb463c8785a138406921563941e7e7d Gerrit-Change-Number: 32317 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <pespin@sysmocom.de> Gerrit-MessageType: merged
participants (1)
-
pespin