aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-10-16 20:14:21 +0200
committerHarald Welte <laforge@gnumonks.org>2011-10-16 21:36:24 +0200
commit269c9b6b750e8a33a63d895288bc1cd9e2f65246 (patch)
tree0b1d76b8b79c544946deae5c15d5a0c615f43926
parentd4c6f8b343112d6bcd351085412cf10018b3bfe0 (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.h9
-rw-r--r--openbsc/src/gprs/gprs_gmm.c2
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 */