diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-10-14 07:56:41 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-10-14 07:59:07 +0200 |
commit | f6c5f9524f38aa192e02f71f988d0bf467727475 (patch) | |
tree | 4d9e85169edaba7a1b0838db43e6e09f7a6a703f | |
parent | bc41c8d581867bd7931fd358fd7c36ebac7823c7 (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.c | 8 |
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 */ |