aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-10-14 07:56:41 +0200
committerHarald Welte <laforge@gnumonks.org>2017-10-14 07:59:07 +0200
commitf6c5f9524f38aa192e02f71f988d0bf467727475 (patch)
tree4d9e85169edaba7a1b0838db43e6e09f7a6a703f
parentbc41c8d581867bd7931fd358fd7c36ebac7823c7 (diff)
gtpie_{encaps,encaps2}(): RAI is a fixe 6-byte length field, not 8 bytes
gtpie_decaps() always had this right, but the encapsulation functions treated it as 8-byte fixed length IE. I hope we had a chance to convert all of this to the normal libosmogsm tlv_parser one day. This would have one description table for all TLV types which then is used from encoder and decoder. Change-Id: I48471f2735511806ac424b5ffc1929e85bb156f3
-rw-r--r--gtp/gtpie.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gtp/gtpie.c b/gtp/gtpie.c
index c4eabf8..fa21ab2 100644
--- a/gtp/gtpie.c
+++ b/gtp/gtpie.c
@@ -652,11 +652,13 @@ int gtpie_encaps(union gtpie_member *ie[], void *pack, unsigned *len)
case GTPIE_TEI_DII: /* TV GTPIE types with value length 5 */
iesize = 6;
break;
+ case GTPIE_RAI: /* TV GTPIE types with value length 6 */
+ iesize = 7;
+ break;
case GTPIE_RAB_CONTEXT: /* TV GTPIE types with value length 7 */
iesize = 8;
break;
case GTPIE_IMSI: /* TV GTPIE types with value length 8 */
- case GTPIE_RAI:
iesize = 9;
break;
case GTPIE_AUTH_TRIPLET: /* TV GTPIE types with value length 28 */
@@ -827,11 +829,13 @@ int gtpie_encaps2(union gtpie_member ie[], unsigned int size,
case GTPIE_TEI_DII: /* TV GTPIE types with value length 5 */
iesize = 6;
break;
+ case GTPIE_RAI: /* TV GTPIE types with value length 6 */
+ iesize = 7;
+ break;
case GTPIE_RAB_CONTEXT: /* TV GTPIE types with value length 7 */
iesize = 8;
break;
case GTPIE_IMSI: /* TV GTPIE types with value length 8 */
- case GTPIE_RAI:
iesize = 9;
break;
case GTPIE_AUTH_TRIPLET: /* TV GTPIE types with value length 28 */