aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKeith <keith@rhizomatica.org>2019-04-29 18:23:10 +0100
committerHarald Welte <laforge@gnumonks.org>2019-05-02 09:38:28 +0000
commitbfd67d2f69d49003095c2aec624ba38e85aa8bd5 (patch)
treebe8cef89bf0eb4e3341630d14a4160d6949b078d /src
parent6c0586ac7b8e62ccf7a44f0898c705e7c6749322 (diff)
Echo zero byte XID-Field of Type L3_PAR
After Activate PDP Context request, Motorola KRZR sends a zero length XID-Field of Type L3 Parameters If this is not echoed back, the phone will send Deactivate PDP Context request with SM Cause: LLC or SNDCP failure(A/Gb only) (25) Closes: OS#3426 Change-Id: Ibd75f7b943c84ed7264481fa2e4bc3cb2f6745d4
Diffstat (limited to 'src')
-rw-r--r--src/gprs/gprs_sndcp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gprs/gprs_sndcp.c b/src/gprs/gprs_sndcp.c
index 23d1e9a22..d9aa1e576 100644
--- a/src/gprs/gprs_sndcp.c
+++ b/src/gprs/gprs_sndcp.c
@@ -1120,6 +1120,14 @@ int sndcp_sn_xid_ind(struct gprs_llc_xid_field *xid_field_indication,
OSMO_ASSERT(xid_field_response);
OSMO_ASSERT(lle);
+ /* Some phones send zero byte length SNDCP frames
+ * and do require a confirmation response. */
+ if (xid_field_indication->data_len == 0) {
+ xid_field_response->type = GPRS_LLC_XID_T_L3_PAR;
+ xid_field_response->data_len = 0;
+ return 0;
+ }
+
/* Parse SNDCP-CID XID-Field */
comp_fields = gprs_sndcp_parse_xid(&version, lle->llme,
xid_field_indication->data,