From 03dbafb000c88155309dfd67b3bba73f7b389e69 Mon Sep 17 00:00:00 2001 From: BJovke Date: Thu, 15 Sep 2016 13:41:41 +0200 Subject: Add 'Bearer Control Mode' IE This IE is known to be sent by a Cisco GGSN, and was added in ETSI TS 129 060 V7.17.0 (2011-10) / 3GPP TS 29.060 version 7.17.0 Release 7 See https://lists.osmocom.org/pipermail/osmocom-net-gprs/2016-September/000711.html Subject "sgsnemu failing to create PDP context with Cisco GGSN" Tue Sep 13 08:00:37 UTC 2016 Tweaked-by: Neels Hofmeyr --- gtp/gtpie.c | 3 +++ gtp/gtpie.h | 1 + 2 files changed, 4 insertions(+) diff --git a/gtp/gtpie.c b/gtp/gtpie.c index a45df1c..c8db449 100644 --- a/gtp/gtpie.c +++ b/gtp/gtpie.c @@ -243,6 +243,7 @@ int gtpie_decaps(union gtpie_member *ie[], int version, void *pack, case GTPIE_RP_SMS: case GTPIE_RP: case GTPIE_MS_NOT_REACH: + case GTPIE_BCM: if (j < GTPIE_SIZE) { ie[j] = (union gtpie_member *)p; if (GTPIE_DEBUG) @@ -457,6 +458,7 @@ int gtpie_encaps(union gtpie_member *ie[], void *pack, unsigned *len) case GTPIE_RP_SMS: case GTPIE_RP: case GTPIE_MS_NOT_REACH: + case GTPIE_BCM: iesize = 2; break; case GTPIE_FL_DI: /* TV GTPIE types with value length 2 */ @@ -558,6 +560,7 @@ int gtpie_encaps2(union gtpie_member ie[], unsigned int size, case GTPIE_RP_SMS: case GTPIE_RP: case GTPIE_MS_NOT_REACH: + case GTPIE_BCM: iesize = 2; break; case GTPIE_PFI: /* TV GTPIE types with value length 2 */ diff --git a/gtp/gtpie.h b/gtp/gtpie.h index 340a76c..fb8598e 100644 --- a/gtp/gtpie.h +++ b/gtp/gtpie.h @@ -106,6 +106,7 @@ static __inline uint64_t hton64(uint64_t q) #define GTPIE_USER_LOC 152 /* User Location Information */ #define GTPIE_MS_TZ 153 /* MS Time Zone */ #define GTPIE_IMEI_SV 154 /* IMEI Software Version */ +#define GTPIE_BCM 184 /* Bearer control mode */ /* 239-250 Reserved for the GPRS charging protocol (see GTP' in GSM 12.15) */ #define GTPIE_CHARGING_ADDR 251 /* Charging Gateway Address */ /* 252-254 Reserved for the GPRS charging protocol (see GTP' in GSM 12.15) */ -- cgit v1.2.3