Changes
gprs_sm: gsm48_tx_gsm_act_pdp_acc(): fix QoS profile length
The Activate PDP Context Accept was always sending sizeof(default_qos)
(14 bytes) as the QoS profile length, regardless of what the UE
requested. Older modules such as the Air20X may crash and restart
during PDP attachment because of that.
In GTP, qos_req.l encodes 1 ARP byte followed by the QoS profile
octets, so (qos_req.l - 1) is the actual profile length. Mirror
back the same QoS profile length the UE sent in its request,
capped at sizeof(default_qos) to avoid overrunning the default_qos
buffer. This matters in particular for R97/R98 UEs that send a
3-byte QoS profile and should not receive a 14-byte response.
Change-Id: I11c24b64f0e49cf80c825969dbf018b2948d855c
Related: OS#6922
The Activate PDP Context Accept was always sending sizeof(default_qos)
(14 bytes) as the QoS profile length, regardless of what the UE
requested. Older modules such as the Air20X may crash and restart
during PDP attachment because of that.
In GTP, qos_req.l encodes 1 ARP byte followed by the QoS profile
octets, so (qos_req.l - 1) is the actual profile length. Mirror
back the same QoS profile length the UE sent in its request,
capped at sizeof(default_qos) to avoid overrunning the default_qos
buffer. This matters in particular for R97/R98 UEs that send a
3-byte QoS profile and should not receive a 14-byte response.
Change-Id: I11c24b64f0e49cf80c825969dbf018b2948d855c
Related: OS#6922