aboutsummaryrefslogtreecommitdiffstats
path: root/gtp
diff options
context:
space:
mode:
authorYann BONNAMY <yann_bonnamy@yahoo.fr>2010-12-02 13:50:11 +0100
committerHarald Welte <laforge@gnumonks.org>2011-10-07 18:34:02 +0200
commitad18ccb9dfea854f6577041e6e8a4725e5512925 (patch)
tree677bcac23adb283368df0cab70ee957ac2920d77 /gtp
parentfe5040967513616731d8151b22d26bdf74d65111 (diff)
RAI fix
fix ggsn handling of create pdp context when RAI is included and Recovery field is absent Signed-off-by: Yann BONNAMY <yann_bonnamy@yahoo.fr>
Diffstat (limited to 'gtp')
-rw-r--r--gtp/gtpie.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/gtp/gtpie.c b/gtp/gtpie.c
index 80370a5..39561d2 100644
--- a/gtp/gtpie.c
+++ b/gtp/gtpie.c
@@ -286,12 +286,20 @@ int gtpie_decaps(union gtpie_member* ie[], int version, void *pack, unsigned len
}
break;
case GTPIE_IMSI: /* TV GTPIE types with value length 8 */
- case GTPIE_RAI:
+ if (j<GTPIE_SIZE) {
+ ie[j] = (union gtpie_member*) p;
+ if (GTPIE_DEBUG) printf("GTPIE_IMSI - GTPIE TV 8 found. Type %d, value 0x%llx\n",
+ ie[j]->tv0.t, ie[j]->tv8.v);
+ p+= 1 + 8;
+ j++;
+ }
+ break;
+ case GTPIE_RAI: /* TV GTPIE types with value length 6 */
if (j<GTPIE_SIZE) {
ie[j] = (union gtpie_member*) p;
- if (GTPIE_DEBUG) printf("GTPIE TV 8 found. Type %d, value 0x%llx\n",
+ if (GTPIE_DEBUG) printf("GTPIE_RAI - GTPIE TV 6 found. Type %d, value 0x%llx\n",
ie[j]->tv0.t, ie[j]->tv8.v);
- p+= 1 + 8;
+ p+= 1 + 6;
j++;
}
break;