GTPU extension headers seem to not get encoded properly
My goal is to send GTPU packets with extension headers (3GPP TS 29.060 § 6.1).
I'm using type record PDU_GTPU
from GTPU_Types.ttcn
with:
-
e_bit
set to1
-
opt_part
(type record GTPU_Header_optional_part
) set as follows:
+ var GTPU_ExtensionHeader ext_hdr := {
+ lengthfield := 1,
+ content := '01'O,
+ nextExtHeader := '00'O
+ }
var GTPU_Header_optional_part ret := {
sequenceNumber := int2oct(valueof(seq), 2),
npduNumber := '00'O,
- nextExtHeader := '00'O,
- gTPU_extensionHeader_List := omit
+ nextExtHeader := 'C0'O, /* 1100 0000: PDCP PDU number */
+ gTPU_extensionHeader_List := {ext_hdr}
};
To quickly test this, I'm using the existing test case TC_pdp4_clients_interact_without_txseq
in the Osmocom GGSN testsuite, with this patch:
https://gitea.osmocom.org/osmith/osmo-ttcn3-hacks/commit/b20159fc37846cf01ec328ff5eb97b85be83182d
The test works without modifications. When I modify it with the diff shown / linked above, I see a malformed GTP packet in wireshark:
-
e_bit
is set properly -
nextExtHeader
is always1c
(instead of expectedc0
in the example above; even if I setnextExtHeader := '01'O
, it is still1c
in the pcap) -
lengthfield
(Extension header length in the pcap) is140
instead of expected1
Wireshark screenshot: https://nextcloud.sysmocom.de/s/yKCb7gHsc9DgR3d
So it looks like the extension header does not get encoded properly.
EDIT: tested with Eclipse Titan version: 8.2.0