Feature #6223
openTTCN3 unit test[s] for GTPv1U with extension headers
30%
Description
Let's generate GTPv1U trffic with one or even multiple extension headers and see if osmo-ggsn (in both kernel and userspace case) pass the user data as normally expected.
Files
Related issues
Updated by osmith 3 months ago
- Status changed from New to In Progress
- % Done changed from 0 to 30
I've started writing a test in osmo-ttcn3-hacks.git, osmith/wip branch. After spending some time to figure out the right syntax to pass the extension headers from the test to the code that encodes the GTP frames, I have the test almost working.
The current obstacle is, the GTP encoder seems to ignore the lengthfield inside the GTPU_ExtensionHeader. For example, I set it to 4, and in wireshark I see it is at 1 (in the hexdump) and the packet shows up as malformed packet.
Updated by laforge 3 months ago
On Wed, Jan 31, 2024 at 01:52:26PM +0000, osmith wrote:
The current obstacle is, the GTP encoder seems to ignore the lengthfield inside the GTPU_ExtensionHeader. For example, I set it to 4, and in wireshark I see it is at 1 (in the hexdump) and the packet shows up as malformed packet.
best to submita bug report upstream to ECLIPSE titan with a related reproducer.
Updated by pablo 3 months ago
- File test2-netns-gtp.sh test2-netns-gtp.sh added
- File test2-netns-gtp-dualstack.sh test2-netns-gtp-dualstack.sh added
- File test2-netns-gtp-ipv4-over-ipv6.sh test2-netns-gtp-ipv4-over-ipv6.sh added
- File test2-netns-gtp-ipv6.sh test2-netns-gtp-ipv6.sh added
- File test2-netns-gtp-ipv6-over-ipv4.sh test2-netns-gtp-ipv6-over-ipv4.sh added
- File test2-netns-gtp-ipv46-over-ipv6.sh test2-netns-gtp-ipv46-over-ipv6.sh added
For the record, I made these scripts with containers, they need a bit of work, I would like to integrate them into kernel/selftests infrastructure under the Linux kernel tree. I think these can be complementary each other.
There is a new centralized dashboard (courtesy of Jakub Kicinski) which provides CI for the Linux NetDev tree since a few weeks. I can request Jakub to include these tests to be monitored there.
I guess there is a degree of overlap with Oliver's work, but I needed this to validate my development work at basic level and, coindentally, I just learnt recently that you never have sufficient tests for the work you do :)
Attached the sketches for reference, generalizing them for kernel/selftest should take 1-2 hours maximum.
They even cover GTP tunnel dualstack which is something that was not actually in the requirements, but I realised it came for free with the recent work that has been done.
Let me know if you agree, otherwise, I will just keep them as sketch scripts locally.