diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-10-16 20:14:21 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-10-16 21:36:24 +0200 |
commit | 269c9b6b750e8a33a63d895288bc1cd9e2f65246 (patch) | |
tree | 0b1d76b8b79c544946deae5c15d5a0c615f43926 | |
parent | d4c6f8b343112d6bcd351085412cf10018b3bfe0 (diff) |
GPRS: Support MS Radio Access Capability up to 255 bytes
TS 23.060 version 9.7.0 Release 9 section 6.14.1.1 states:
To allow for the addition of future radio technologies, frequency
bands, and other enhancements, the SGSN shall store the MS radio
access capability even if it is larger than specified in TS 24.008
[13], up to a maximum size of 255 octets.
Thanks to Jonathan Santos <jrsantos@jonathanrsantos.com> for spotting
this.
-rw-r--r-- | openbsc/include/openbsc/gprs_sgsn.h | 9 | ||||
-rw-r--r-- | openbsc/src/gprs/gprs_gmm.c | 2 |
2 files changed, 8 insertions, 3 deletions
diff --git a/openbsc/include/openbsc/gprs_sgsn.h b/openbsc/include/openbsc/gprs_sgsn.h index 62fbb85a5..97a6b7d77 100644 --- a/openbsc/include/openbsc/gprs_sgsn.h +++ b/openbsc/include/openbsc/gprs_sgsn.h @@ -78,7 +78,14 @@ struct sgsn_mm_ctx { /* CKSN */ enum gprs_ciph_algo ciph_algo; struct { - uint8_t buf[52]; /* 10.5.5.12a */ + /* TS 23.060 version 9.7.0 Release 9 section 6.14.1.1 + * states: To allow for the addition of future radio + * technologies, frequency bands, and other + * enhancements, the SGSN shall store the MS radio + * access capability even if it is larger than specified + * in TS 24.008 [13], up to a maximum size of 255 + * octets. */ + uint8_t buf[255]; /* 10.5.5.12a */ uint8_t len; } ms_radio_access_capa; struct { diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c index cc9d2972e..8a1dff5e1 100644 --- a/openbsc/src/gprs/gprs_gmm.c +++ b/openbsc/src/gprs/gprs_gmm.c @@ -675,8 +675,6 @@ static int gsm48_rx_gmm_att_req(struct sgsn_mm_ctx *ctx, struct msgb *msg, /* MS Radio Access Capability 10.5.5.12a */ ms_ra_acc_cap_len = *cur++; ms_ra_acc_cap = cur; - if (ms_ra_acc_cap_len > 52) - goto err_inval; cur += ms_ra_acc_cap_len; /* Optional: Old P-TMSI Signature, Requested READY timer, TMSI Status */ |