pespin submitted this change.
Move new TRex based setup to its own gtplan-sysmo2025 dir
Some documentation regardins the setups is added/improved.
Change-Id: Ia5adb2826c30a0a4c02b091e9907e48c309ebf05
---
A testsuites/gtplab-sysmo2017/README.md
A testsuites/gtplab-sysmo2017/setup.dot
D testsuites/gtplab-sysmo2017/trex-tunmap/README.md
A testsuites/gtplab-sysmo2025/README.md
A testsuites/gtplab-sysmo2025/setup.dot
A testsuites/gtplab-sysmo2025/tunmap/README.md
R testsuites/gtplab-sysmo2025/tunmap/cpf/0.gtp_flood.vty
R testsuites/gtplab-sysmo2025/tunmap/cpf/configure.sh
R testsuites/gtplab-sysmo2025/tunmap/cpf/osmo-upf-load-gen.cfg
R testsuites/gtplab-sysmo2025/tunmap/cpf/run.sh
A testsuites/gtplab-sysmo2025/tunmap/topology.dot
R testsuites/gtplab-sysmo2025/tunmap/trex/configure.sh
R testsuites/gtplab-sysmo2025/tunmap/trex/gtp_1pkt_simple.py
R testsuites/gtplab-sysmo2025/tunmap/trex/run.sh
R testsuites/gtplab-sysmo2025/tunmap/trex/trex_cfg.yaml
R testsuites/gtplab-sysmo2025/tunmap/upf/configure.sh
R testsuites/gtplab-sysmo2025/tunmap/upf/eupf/eupf.yaml
R testsuites/gtplab-sysmo2025/tunmap/upf/eupf/run.sh
R testsuites/gtplab-sysmo2025/tunmap/upf/osmo-upf/osmo-upf.cfg
R testsuites/gtplab-sysmo2025/tunmap/upf/osmo-upf/run.sh
20 files changed, 169 insertions(+), 5 deletions(-)
diff --git a/testsuites/gtplab-sysmo2017/README.md b/testsuites/gtplab-sysmo2017/README.md
new file mode 100644
index 0000000..49bb4f2
--- /dev/null
+++ b/testsuites/gtplab-sysmo2017/README.md
@@ -0,0 +1,3 @@
+This directory contains test scenarios (tunmap, tunend) run on a setup which consists out of 3 identical machines, each with a dualport mellanox network card and 100ge cables to the next machine.
+
+See setup.dot in this same directory to understand better the general topology.
\ No newline at end of file
diff --git a/testsuites/gtplab-sysmo2017/setup.dot b/testsuites/gtplab-sysmo2017/setup.dot
new file mode 100644
index 0000000..4a67ef3
--- /dev/null
+++ b/testsuites/gtplab-sysmo2017/setup.dot
@@ -0,0 +1,40 @@
+digraph G {
+ rankdir=TB;
+ labelloc=t;
+ label="gtplab @ sysmocom";
+
+ subgraph cluster_gtplab0 {
+ label="gtplab0";
+ rankdir=TB;
+ gtplab0_ipmi [label="ipmi\n10.9.23.50/24\nac:1f:6b:4a:78:d2\nBMC/ipmi\ndhcpc"];
+ gtplab0_eno1 [label="eno1\n10.9.25.20/24\nac:1f:6b:45:1b:04\nOOB access\ndhcpc"];
+ gtplab0_eno2 [label="eno2\nac:1f:6b:45:1b:05\nunused"];
+ gtplab0_enp2s0f0np0 [label="enp2s0f0np0\n172.16.31.1/24\nec:0d:9a:8a:28:12\nstatic "];
+ gtplab0_enp2s0f1np1 [label="enp2s0f1np1\nec:0d:9a:8a:28:13\nunused "];
+ }
+ subgraph cluster_gtplab1 {
+ label="gtplab1";
+ gtplab1_ipmi [label="ipmi\n10.9.23.51/24\nac:1f:6b:4a:79:84\nBMC/ipmi\ndhcpc"];
+ gtplab1_eno1 [label="eno1\n10.9.25.21/24\nac:1f:6b:45:1c:68\nOOB access\ndhcpc"];
+ gtplab1_eno2 [label="eno2\nac:1f:6b:45:1c:69\nunused"];
+ gtplab1_enp2s0f0np0 [label="enp2s0f0np0\n172.16.31.2/24\nec:0d:9a:8a:28:1a\n100gb link\nstatic "];
+ gtplab1_enp2s0f1np1 [label="enp2s0f1np1\n172.16.32.1/24\nec:0d:9a:8a:28:1b\n100gb link\nstatic "];
+ }
+ subgraph cluster_gtplab2 {
+ label="gtplab2";
+ gtplab2_ipmi [label="ipmi\n10.9.23.52/24\nac:1f:6b:4a:77:cd\nBMC/ipmi\ndhcpc"];
+ gtplab2_eno1 [label="eno1\n10.9.25.22/24\nac:1f:6b:45:18:fe\nOOB access\ndhcpc"];
+ gtplab2_eno2 [label="eno2\nac:1f:6b:45:18:ff\nunused"];
+ gtplab2_enp2s0f0np0 [label="enp2s0f0np0\n172.16.32.2/24\nec:0d:9a:8a:27:52\nstatic "];
+ gtplab2_enp2s0f1np1 [label="enp2s0f1np1\nec:0d:9a:8a:27:53\nunused"];
+ }
+
+ switch -> gtplab0_ipmi [constraint=false,dir=both];
+ switch -> gtplab0_eno1 [constraint=false,dir=both];
+ switch -> gtplab1_ipmi [constraint=false,dir=both];
+ switch -> gtplab1_eno1 [constraint=false,dir=both];
+ switch -> gtplab2_ipmi [constraint=false,dir=both];
+ switch -> gtplab2_eno1 [constraint=false,dir=both];
+ gtplab0_enp2s0f0np0 -> gtplab1_enp2s0f0np0 [label="100gb",dir=both,style=bold];
+ gtplab1_enp2s0f1np1 -> gtplab2_enp2s0f0np0 [label="100gb",dir=both,style=bold];
+}
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/README.md b/testsuites/gtplab-sysmo2017/trex-tunmap/README.md
deleted file mode 100644
index 17102e4..0000000
--- a/testsuites/gtplab-sysmo2017/trex-tunmap/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-----
-[ran](172.16.31.1) ----GTPU--> ()[upf]
- |
-[cn](172.16.31.100) <--GTPU--- ()[upf]
-----
\ No newline at end of file
diff --git a/testsuites/gtplab-sysmo2025/README.md b/testsuites/gtplab-sysmo2025/README.md
new file mode 100644
index 0000000..f6c6221
--- /dev/null
+++ b/testsuites/gtplab-sysmo2025/README.md
@@ -0,0 +1,17 @@
+This directory contains test scenarios (tunmap, tunend) run on a setup which consists out of 3 machines, all of them are inter-connected via a Mellanox SN2700 32x 100GE switch.
+
+Machines:
+* TRex: This machine runs TRex to generate/consume traffic emulating both RAN
+ and CN around the UPF.
+* UPF: This machine runs the UPF under test, be it osmo-upf, eupf, etc.
+* CPF: This machine runs the userspace program in charge of setting up the UPF
+ sessions over PFCP, hence acting as a CPF. It runs osmo-upf-load-gen tool from
+ this same repository.
+
+The CPF could actually also be run eg. at TRex machine and route PFCP traffic
+over the external network towards UPF. Note it cannot easily use the network
+interfaces (internal network) used to transmit GTPU, since those are controlled
+by TRex and not by the linux kernel, hence why CPF is simply placed in another
+machine.
+
+See setup.dot in this same directory to understand better the general topology.
\ No newline at end of file
diff --git a/testsuites/gtplab-sysmo2025/setup.dot b/testsuites/gtplab-sysmo2025/setup.dot
new file mode 100644
index 0000000..d3a7a14
--- /dev/null
+++ b/testsuites/gtplab-sysmo2025/setup.dot
@@ -0,0 +1,49 @@
+digraph G {
+ rankdir=TB;
+ labelloc=t;
+ label="gtplab @ sysmocom";
+
+ subgraph cluster_trex {
+ label="TRex (gtplab2)";
+ rankdir=TB;
+ trex_ipmi [label="ipmi\n10.9.23.52/24\nac:1f:6b:4a:77:cd\nBMC/ipmi\ndhcpc"];
+ trex_eno1 [label="eno1\n10.9.25.22/24\nac:1f:6b:45:18:fe\nOOB access\ndhcpc"];
+ trex_eno2 [label="eno2\nac:1f:6b:45:18:ff\nunused"];
+ trex_enp2s0f0np0 [label="enp2s0f0np0\n172.16.32.2/24\nec:0d:9a:8a:27:52\nstatic (TRex)"];
+ trex_enp2s0f1np1 [label="enp2s0f1np1\n172.16.31.200\nec:0d:9a:8a:27:53\nstatic (TRex)"];
+ }
+ subgraph cluster_upf {
+ label="UPF (gtplab1)";
+ upf_ipmi [label="ipmi\n10.9.23.51/24\nac:1f:6b:4a:79:84\nBMC/ipmi\ndhcpc"];
+ upf_eno1 [label="eno1\n10.9.25.21/24\nac:1f:6b:45:1c:68\nOOB access\ndhcpc"];
+ upf_eno2 [label="eno2\nac:1f:6b:45:1c:69\nunused"];
+ upf_enp2s0f0np0 [label="enp2s0f0np0\n172.16.31.2/24\nec:0d:9a:8a:28:1a\n100gb link\nstatic "];
+ upf_enp2s0f1np1 [label="enp2s0f1np1\n172.16.32.1/24\nec:0d:9a:8a:28:1b\n100gb link\nstatic "];
+ }
+ subgraph cluster_test_switch {
+ label="Test Switch (100gb)";
+ test_switch_vlan1 [label="vlan1 (RAN)"];
+ test_switch_vlan2 [label="vlan2 (CN)"];
+ }
+ subgraph cluster_cpf {
+ label="CPF (gtplab0)";
+ cpf_ipmi [label="ipmi\n10.9.23.50/24\nac:1f:6b:4a:78:d2\nBMC/ipmi\ndhcpc"];
+ cpf_eno1 [label="eno1\n10.9.25.20/24\nac:1f:6b:45:1b:04\nOOB access\ndhcpc"];
+ cpf_eno2 [label="eno2\nac:1f:6b:45:1b:05\nunused"];
+ cpf_enp2s0f0np0 [label="enp2s0f0np0\n172.16.31.1/24\nec:0d:9a:8a:28:12\nstatic "];
+ cpf_enp2s0f1np1 [label="enp2s0f1np1\nec:0d:9a:8a:28:13\nunused "];
+ }
+
+ trex_enp2s0f0np0 -> test_switch_vlan1 [label="RAN 100gb",dir=both,style=bold];
+ trex_enp2s0f1np1 -> test_switch_vlan2 [label="CN 100gb",dir=both,style=bold];
+ upf_enp2s0f0np0 -> test_switch_vlan2 [label="CN 100gb",dir=both,style=bold];
+ upf_enp2s0f1np1 -> test_switch_vlan1 [label="RAN 100gb",dir=both,style=bold];
+ cpf_enp2s0f0np0 -> test_switch_vlan1 [label="PFCP (100gb)",dir=both,style=bold];
+
+ switch -> cpf_ipmi [constraint=false,dir=both];
+ switch -> cpf_eno1 [constraint=false,dir=both];
+ switch -> upf_ipmi [constraint=false,dir=both];
+ switch -> upf_eno1 [constraint=false,dir=both];
+ switch -> trex_ipmi [constraint=false,dir=both];
+ switch -> trex_eno1 [constraint=false,dir=both];
+}
diff --git a/testsuites/gtplab-sysmo2025/tunmap/README.md b/testsuites/gtplab-sysmo2025/tunmap/README.md
new file mode 100644
index 0000000..24b0f61
--- /dev/null
+++ b/testsuites/gtplab-sysmo2025/tunmap/README.md
@@ -0,0 +1,18 @@
+
+In this testsuite, TRex is used to generate Uplink GTPU traffic on the RAN side
+towards UPF on its 1st iface and which which should be sent back patched
+(tunmap) towards CN and received at TRex 2nd interface.
+
+The GTPU traffic is generated by gtp_1pkt_simply.py profile passed to TRex,
+which emulates <enb-ip-addr,TEID> sessions based on parameters passed through
+trex-console when launching the test, and which should match those configured in
+cpf/0.gtp_flood.vty used by osmo-upf-load-gen to allocated the sessions at the
+UPF.
+
+----
+[trex-ran](172.16.32.{2-101}) ----GTPU--> ()[upf]
+ |
+[trex-cn](172.16.31.200) <---GTPU---- ()[upf]
+----
+
+See topoology.dot for a more detailed graph.
\ No newline at end of file
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/smf/0.gtp_flood.vty b/testsuites/gtplab-sysmo2025/tunmap/cpf/0.gtp_flood.vty
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/smf/0.gtp_flood.vty
rename to testsuites/gtplab-sysmo2025/tunmap/cpf/0.gtp_flood.vty
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/smf/configure.sh b/testsuites/gtplab-sysmo2025/tunmap/cpf/configure.sh
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/smf/configure.sh
rename to testsuites/gtplab-sysmo2025/tunmap/cpf/configure.sh
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/smf/osmo-upf-load-gen.cfg b/testsuites/gtplab-sysmo2025/tunmap/cpf/osmo-upf-load-gen.cfg
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/smf/osmo-upf-load-gen.cfg
rename to testsuites/gtplab-sysmo2025/tunmap/cpf/osmo-upf-load-gen.cfg
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/smf/run.sh b/testsuites/gtplab-sysmo2025/tunmap/cpf/run.sh
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/smf/run.sh
rename to testsuites/gtplab-sysmo2025/tunmap/cpf/run.sh
diff --git a/testsuites/gtplab-sysmo2025/tunmap/topology.dot b/testsuites/gtplab-sysmo2025/tunmap/topology.dot
new file mode 100644
index 0000000..b1ca646
--- /dev/null
+++ b/testsuites/gtplab-sysmo2025/tunmap/topology.dot
@@ -0,0 +1,42 @@
+digraph G {
+ rankdir=TB;
+ labelloc=t;
+ label="gtplab @ sysmocom";
+
+ subgraph cluster_gtplab2 {
+ label="TRex (gtplab2)";
+ trex [label="TRex",shape=box3d];
+ gtplab2_172_32 [label="172.16.32.{2-101}/24"];
+ gtplab2_172_31 [label="172.16.31.200/24"];
+ }
+ subgraph cluster_switch {
+ label="Switch (100gb)";
+ switch_vlan1 [label="vlan1"];
+ switch_vlan2 [label="vlan2"];
+ }
+ subgraph cluster_gtplab1 {
+ label="UPF (gtplab1)";
+ gtplab1_172_31 [label="172.16.31.2/24"];
+ gtplab1_172_32 [label="172.16.32.1/24"];
+
+ upf_tunmap [label="UPF\ntunmap",shape=box3d];
+ }
+ subgraph cluster_gtplab0 {
+ label="CPF (gtplab0)";
+ rankdir=TB;
+ gtplab0_172_31 [label="172.16.31.1/24"];
+ pfcp_tool [label="osmo-udp-load-gen",shape=box3d];
+ }
+
+ # PFCP:
+ pfcp_tool -> gtplab0_172_31 -> switch_vlan1 -> gtplab1_172_31 -> upf_tunmap [label="PFCP",dir=both,style=dashed,color=black];
+
+ # UL:
+ trex -> gtplab2_172_32 -> switch_vlan2 -> gtplab1_172_32 -> upf_tunmap [label="GTPU UL (RAN)",style=bold, color=red];
+ upf_tunmap -> gtplab1_172_31 -> switch_vlan1 -> gtplab2_172_31 -> trex [label="GTPU UL (CN)",style=bold, color=purple];
+
+ # DL:
+ trex -> gtplab2_172_31 -> switch_vlan1 -> gtplab1_172_31 -> upf_tunmap [label="GTPU DL (CN)",style=bold,color=blue];
+ upf_tunmap -> gtplab1_172_32 -> switch_vlan2 -> gtplab2_172_32 -> trex [label="GTPU DL (RAN)",style=bold,color=darkgreen];
+}
+
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/trex/configure.sh b/testsuites/gtplab-sysmo2025/tunmap/trex/configure.sh
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/trex/configure.sh
rename to testsuites/gtplab-sysmo2025/tunmap/trex/configure.sh
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/trex/gtp_1pkt_simple.py b/testsuites/gtplab-sysmo2025/tunmap/trex/gtp_1pkt_simple.py
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/trex/gtp_1pkt_simple.py
rename to testsuites/gtplab-sysmo2025/tunmap/trex/gtp_1pkt_simple.py
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/trex/run.sh b/testsuites/gtplab-sysmo2025/tunmap/trex/run.sh
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/trex/run.sh
rename to testsuites/gtplab-sysmo2025/tunmap/trex/run.sh
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/trex/trex_cfg.yaml b/testsuites/gtplab-sysmo2025/tunmap/trex/trex_cfg.yaml
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/trex/trex_cfg.yaml
rename to testsuites/gtplab-sysmo2025/tunmap/trex/trex_cfg.yaml
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/upf/configure.sh b/testsuites/gtplab-sysmo2025/tunmap/upf/configure.sh
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/upf/configure.sh
rename to testsuites/gtplab-sysmo2025/tunmap/upf/configure.sh
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/upf/eupf/eupf.yaml b/testsuites/gtplab-sysmo2025/tunmap/upf/eupf/eupf.yaml
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/upf/eupf/eupf.yaml
rename to testsuites/gtplab-sysmo2025/tunmap/upf/eupf/eupf.yaml
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/upf/eupf/run.sh b/testsuites/gtplab-sysmo2025/tunmap/upf/eupf/run.sh
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/upf/eupf/run.sh
rename to testsuites/gtplab-sysmo2025/tunmap/upf/eupf/run.sh
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/upf/osmo-upf/osmo-upf.cfg b/testsuites/gtplab-sysmo2025/tunmap/upf/osmo-upf/osmo-upf.cfg
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/upf/osmo-upf/osmo-upf.cfg
rename to testsuites/gtplab-sysmo2025/tunmap/upf/osmo-upf/osmo-upf.cfg
diff --git a/testsuites/gtplab-sysmo2017/trex-tunmap/upf/osmo-upf/run.sh b/testsuites/gtplab-sysmo2025/tunmap/upf/osmo-upf/run.sh
similarity index 100%
rename from testsuites/gtplab-sysmo2017/trex-tunmap/upf/osmo-upf/run.sh
rename to testsuites/gtplab-sysmo2025/tunmap/upf/osmo-upf/run.sh
To view, visit change 39467. To unsubscribe, or for help writing mail filters, visit settings.