Attention is currently required from: canghaiwuhen.
3 comments:
File src/sgsn/gprs_sm.c:
Patch Set #3, Line 215: uint8_t qos_len = pdp->req_qos_len;
Ideally we should store a struct with the decoded fields parsed, and then use an encode counterpart which would encode amount of fields based on the parsed request. See how that's done in open5gs.git/lib/gtp/v1/types.c ogs_gtp1_parse_pdp_context() and ogs_gtp1_build_pdp_context().
Patch Set #3, Line 217: qos_len = 3; // Safety fallback for R97
This is backed on 3GPP TS 24.008 10.5.6.5:
"""
A QoS IE received without octets 6-22, without octets 14-22, without octets 15-22, without octets 17-22, without
octets 19-22 or without octets 21-22 shall be accepted by the receiving entity.
NOTE: This behavior is required for interworking with entities supporting an earlier version of the protocol, or
when the Maximum bit rate for downlink or for downlink and uplink is negotiated to a value lower than
8700 kbps.
"""
Patch Set #3, Line 221: msgb_lv_put(msg, qos_len, (uint8_t *)&default_qos);
let's better do:
uint8_t qos_len;
if (pdp->req_qos_len == 0 || pdp->req_qos_len > sizeof(default_qos))
qos_len = sizeof(default_qos);
else
qos_len = pdp->req_qos_len;
To view, visit change 41948. To unsubscribe, or for help writing mail filters, visit settings.