CI: use svr_id for Ping in RFsim-based tests

This is not really used as of now, because most IPs are hardcoded. See
one of the next commits for the use of this.

To make sure that we have the correct IP, there is some code that
verifies that a hardcoded IP and the CN IP would be the same.

Note: need two separate ci_infra.yaml entries, because
- for FlexRIC, the container name is different (is the tutorial CN)
- for RFsim5G E1, we don't have ext-dn => ping UPF
This commit is contained in:
Robert Schmidt
2025-03-31 16:38:13 +02:00
parent a51190a7c5
commit 98ac540d57
21 changed files with 101 additions and 3 deletions
+9
View File
@@ -386,6 +386,15 @@ rfsim5g_ext_dn:
NetworkScript: docker exec rfsim5g-oai-ext-dn ip a show dev eth0
CmdPrefix: docker exec rfsim5g-oai-ext-dn
oai_ext_dn:
Host: "%%current_host%%"
NetworkScript: docker exec oai-ext-dn ip a show dev eth0
CmdPrefix: docker exec oai-ext-dn
rfsim5g_5gc_fixed_ip:
Host: "%%current_host%%"
NetworkScript: echo "inet 12.1.1.1"
rfsim4g_ue:
Host: "%%current_host%%"
NetworkScript: docker exec rfsim4g-oai-lte-ue0 ip a show dev oaitun_ue1
+11
View File
@@ -374,6 +374,17 @@ class OaiCiTest():
# if has pattern %cn_ip%, replace with cn IP address, else we assume the IP is present
if re.search('%cn_ip%', self.ping_args):
self.ping_args = re.sub('%cn_ip%', cn.getIP(), self.ping_args)
else:
# verify we would have the right IP
m = re.search(r'[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+', self.ping_args)
if not m:
raise Exception(f"no IP address in {self.ping_args}")
ip = m.group(0)
cnip = cn.getIP()
if ip != cnip:
raise Exception(f"IP mismatch: options specify {ip} but core has {cnip}")
else:
logging.warning(f"\u001B[1mIP {ip} in iperf options matches CN IP {cnip}\u001B[0m")
interface = f'-I {ue.getIFName()}' if ue.getIFName() else ''
ping_cmd = f'{ue.getCmdPrefix()} ping {interface} {self.ping_args} 2>&1 | tee /tmp/{ping_log_file}'
cmd = cls_cmd.getConnection(ue.getHost())
+2
View File
@@ -243,6 +243,8 @@ def ExecuteActionWithParam(action):
CiTestObj.ping_packetloss_threshold = test.findtext('ping_packetloss_threshold')
CiTestObj.ue_ids = test.findtext('id').split(' ')
CiTestObj.svr_id = test.findtext('svr_id') or None
if test.findtext('svr_node'):
CiTestObj.svr_node = test.findtext('svr_node') if not force_local else 'localhost'
if force_local:
# Change all execution targets to localhost
CiTestObj.nodes = ['localhost'] * len(CiTestObj.ue_ids)
@@ -101,6 +101,8 @@
<desc>Ping trf-gen from LTE-UE 1</desc>
<id>l2sim4g_ue</id>
<nodes>obelix</nodes>
<svr_id>l2sim4g_ext_dn</svr_id>
<svr_node>obelix</svr_node>
<ping_args> -c 20 192.168.61.11</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
@@ -110,6 +112,8 @@
<desc>Ping LTE-UE 1 from trf-gen</desc>
<id>l2sim4g_ext_dn</id>
<nodes>obelix</nodes>
<svr_id>l2sim4g_ue</svr_id>
<svr_node>obelix</svr_node>
<ping_args>-c 20 12.0.0.2</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
@@ -116,6 +116,8 @@
<desc>Ping Traffic-Gen from LTE-UE</desc>
<id>rfsim4g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim4g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 192.168.61.11</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -124,8 +126,10 @@
<class>Ping</class>
<desc>Ping LTE-UE from Traffic-Gen</desc>
<id>rfsim4g_ext_dn</id>
<ping_args>-c 20 12.0.0.2</ping_args>
<nodes>cacofonix</nodes>
<svr_id>rfsim4g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 12.0.0.2</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -87,6 +87,8 @@
<desc>Ping Traffic-Gen from LTE-UE</desc>
<id>rfsim4g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim4g_enb_nos1</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 10.0.1.1</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -96,6 +98,8 @@
<desc>Ping LTE-UE from eNB</desc>
<id>rfsim4g_enb_nos1</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim4g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 10.0.1.2</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -116,6 +116,8 @@
<desc>Ping Traffic-Gen from LTE-UE</desc>
<id>rfsim4g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim4g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 192.168.61.11</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -125,6 +127,8 @@
<desc>Ping LTE-UE from Traffic-Gen</desc>
<id>rfsim4g_ext_dn</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim4g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 12.0.0.2</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -116,6 +116,8 @@
<desc>Ping Traffic-Gen from LTE-UE</desc>
<id>rfsim4g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim4g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 192.168.61.11</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -125,6 +127,8 @@
<desc>Ping LTE-UE from Traffic-Gen</desc>
<id>rfsim4g_ext_dn</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim4g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 12.0.0.2</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -109,6 +109,8 @@
<desc>Ping Traffic-Gen from LTE-UE</desc>
<id>rfsim4g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim4g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 192.168.61.11</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -118,6 +120,8 @@
<desc>Ping LTE-UE from Traffic-Gen</desc>
<id>rfsim4g_ext_dn</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim4g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 12.0.0.2</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -88,6 +88,8 @@
<desc>Ping ext-dn from all NR-UEs</desc>
<id>rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3</id>
<nodes>cacofonix cacofonix cacofonix</nodes>
<svr_id>rfsim5g_5gc_fixed_ip</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 12.1.1.1 -i0.25</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -117,6 +117,8 @@
<desc>Ping ext-dn from all NR-UEs</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 192.168.72.135 -i0.25</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -163,9 +165,11 @@
<testCase id="020022">
<class>Ping</class>
<desc>Ping ext-dn from all NR-UEs</desc>
<desc>Ping ext-dn from NR-UE</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 192.168.72.135 -i0.5 -w25</ping_args>
<ping_packetloss_threshold>80</ping_packetloss_threshold>
</testCase>
@@ -81,6 +81,8 @@
<desc>Ping ext-dn from NR-UE</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i 0.25 192.168.72.135</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -90,6 +92,8 @@
<desc>Ping NR-UE from ext-dn</desc>
<id>rfsim5g_ext_dn</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i 0.25 12.1.1.2</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -134,6 +134,8 @@
<desc>Ping ext-dn from both UEs</desc>
<id>rfsim5g_ue rfsim5g_ue2</id>
<nodes>carabe carabe</nodes>
<svr_id>oai_ext_dn</svr_id>
<svr_node>carabe</svr_node>
<ping_args>-c 20 192.168.70.135</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
+13 -1
View File
@@ -141,6 +141,8 @@
<desc>Ping ext-dn from NR-UE</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 -i 0.25 192.168.72.135</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -150,7 +152,9 @@
<desc>Ping NR-UE from ext-dn</desc>
<id>rfsim5g_ext_dn</id>
<nodes>cacofonix</nodes>
<ping_args>-c 20 -i 0.25 12.1.1.2</ping_args>
<svr_id>rfsim5g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i 0.25 12.1.1.2</ping_args> <!-- should be %cn_ip%?? -->
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -159,6 +163,8 @@
<desc>Ping ext-dn from Second NR-UE</desc>
<id>rfsim5g_ue2</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 -i 0.25 192.168.72.135</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -168,6 +174,8 @@
<desc>Ping Second NR-UE from ext-dn</desc>
<id>rfsim5g_ext_dn</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ue2</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i 0.25 12.1.1.3</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -177,6 +185,8 @@
<desc>Ping ext-dn from both UEs</desc>
<id>rfsim5g_ue rfsim5g_ue2</id>
<nodes>cacofonix cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i 0.25 192.168.72.135</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -186,6 +196,8 @@
<desc>Ping ext-dn from all UEs</desc>
<id>rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3 rfsim5g_ue4 rfsim5g_ue5 rfsim5g_ue6 rfsim5g_ue7 rfsim5g_ue8 rfsim5g_ue9 rfsim5g_ue10</id>
<nodes>cacofonix cacofonix cacofonix cacofonix cacofonix cacofonix cacofonix cacofonix cacofonix cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 192.168.72.135 -i 0.25 -s 1016</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -90,6 +90,8 @@
<desc>Ping ext-dn from NR-UE</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args> -c 20 -i0.2 192.168.72.135</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -99,6 +101,8 @@
<desc>Ping NR-UE from ext-dn</desc>
<id>rfsim5g_ext_dn</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 12.1.1.2 -i0.2</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -81,6 +81,8 @@
<desc>Ping ext-dn from NR-UE</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i 0.25 192.168.72.135</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -90,6 +92,8 @@
<desc>Ping NR-UE from ext-dn</desc>
<id>rfsim5g_ext_dn</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i 0.25 12.1.1.2</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -81,6 +81,8 @@
<desc>Ping gNB from NR-UE</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_gnb_nos1</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c20 -i0.2 10.0.1.1</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
@@ -90,6 +92,8 @@
<desc>Ping NR-UE from gNB</desc>
<id>rfsim5g_gnb_nos1</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c20 -i0.2 10.0.1.2</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
@@ -73,6 +73,8 @@
<desc>Ping ext-dn from NR-UE</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i0.2 192.168.72.135</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
@@ -82,6 +84,8 @@
<desc>Ping NR-UE from ext-dn</desc>
<id>rfsim5g_ext_dn</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 12.1.1.2 -i0.2</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
@@ -81,6 +81,8 @@
<desc>Ping ext-dn from NR-UE</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i 0.25 192.168.72.135</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -90,6 +92,8 @@
<desc>Ping NR-UE from ext-dn</desc>
<id>rfsim5g_ext_dn</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i 0.25 12.1.1.2</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -80,6 +80,8 @@
<desc>Ping gNB from NR-UE</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_gnb_nos1</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c20 -i0.2 10.0.1.1</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
@@ -89,6 +91,8 @@
<desc>Ping NR-UE from gNB</desc>
<id>rfsim5g_gnb_nos1</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c20 -i0.2 10.0.1.2</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
@@ -81,6 +81,8 @@
<desc>Ping ext-dn from NR-UE</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ext_dn</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i 0.25 192.168.72.135</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
@@ -90,6 +92,8 @@
<desc>Ping NR-UE from ext-dn</desc>
<id>rfsim5g_ext_dn</id>
<nodes>cacofonix</nodes>
<svr_id>rfsim5g_ue</svr_id>
<svr_node>cacofonix</svr_node>
<ping_args>-c 20 -i 0.25 12.1.1.2</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>