]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: Update OSPF TE topotests
authorOlivier Dugeon <olivier.dugeon@orange.com>
Thu, 14 Dec 2023 17:34:38 +0000 (18:34 +0100)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Thu, 14 Dec 2023 21:17:34 +0000 (21:17 +0000)
The OSPF TE topotest is using switches to interconnect router. During the test,
interfaces are shutdown on some routers to simulate link failure and check that
the TED is correctly updated. However, the switche between router avoid the
detection by the neighbor router that the interface is down i.e. the interface
line remains up as it is conneted to the switch and not to the router.

This patch update the tested topology by removing the switch and connect
directly the router excepted the inter AS link on R3. Interface are also
renamed accordingly.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
(cherry picked from commit 55ad78575351fa90a2485b99b3665adb74712c65)

tests/topotests/ospf_te_topo1/r1/ospfd.conf
tests/topotests/ospf_te_topo1/r1/zebra.conf
tests/topotests/ospf_te_topo1/r2/ospfd.conf
tests/topotests/ospf_te_topo1/r2/zebra.conf
tests/topotests/ospf_te_topo1/r3/ospfd.conf
tests/topotests/ospf_te_topo1/r3/zebra.conf
tests/topotests/ospf_te_topo1/r4/ospfd.conf
tests/topotests/ospf_te_topo1/r4/zebra.conf
tests/topotests/ospf_te_topo1/test_ospf_te_topo1.py

index 312dd2697e81d4ed29e67677f6318a511c7024fc..1541f3f2fccbc9be0db3eeedccd1df4d24c531c5 100644 (file)
@@ -2,13 +2,13 @@
 interface lo
   ip ospf area 0.0.0.0
 !
-interface r1-eth0
+interface eth0
   ip ospf network point-to-point
   ip ospf hello-interval 2
   ip ospf dead-interval 10
   ip ospf area 0.0.0.0
 !
-interface r1-eth1
+interface eth1
   ip ospf network point-to-point
   ip ospf hello-interval 2
   ip ospf dead-interval 10
index c47789a1663387624c004796211817d3ef643dc6..dc50e3dd6d9160810ec37050f133a16954408401 100644 (file)
@@ -2,7 +2,7 @@
 interface lo
  ip address 10.0.255.1/32
 !
-interface r1-eth0
+interface eth0
  ip address 10.0.0.1/24
  link-params
   metric 20
@@ -12,7 +12,7 @@ interface r1-eth0
   enable
   exit-link-params
 !
-interface r1-eth1
+interface eth1
  ip address 10.0.1.1/24
  link-params
   enable
index e9c3f65bc2676b1168d416023617eb6a00a2c573..acc2e6b234a9c36343bb138ce762a63c3d31469d 100644 (file)
@@ -2,25 +2,25 @@
 interface lo
   ip ospf area 0.0.0.0
 !
-interface r2-eth0
+interface eth0
   ip ospf network point-to-point
   ip ospf hello-interval 2
   ip ospf dead-interval 10
   ip ospf area 0.0.0.0
 !
-interface r2-eth1
+interface eth1
   ip ospf network point-to-point
   ip ospf hello-interval 2
   ip ospf dead-interval 10
   ip ospf area 0.0.0.0
 !
-interface r2-eth2
+interface eth2
   ip ospf network point-to-point
   ip ospf area 0.0.0.0
   ip ospf hello-interval 2
   ip ospf dead-interval 10
 !
-interface r2-eth3
+interface eth3
   ip ospf network point-to-point
   ip ospf hello-interval 2
   ip ospf dead-interval 10
index a9771f70ca02ac0a107db6d1b922915b39f398f3..6fe4dd0a5a08188acb4837ca2fa7063dbe604460 100644 (file)
@@ -2,25 +2,25 @@
 interface lo
  ip address 10.0.255.2/32
 !
-interface r2-eth0
+interface eth0
  ip address 10.0.0.2/24
  link-params
   enable
   exit-link-params
 !
-interface r2-eth1
+interface eth1
  ip address 10.0.1.2/24
  link-params
   enable
   exit-link-params
 !
-interface r2-eth2
+interface eth2
  ip address 10.0.3.2/24
  link-params
   enable
   exit-link-params
 !
-interface r2-eth3
+interface eth3
  ip address 10.0.4.2/24
  link-params
   metric 30
index caa5f1e1eb21b5ce511d4ac1bbc063c7f7a30270..fc94437b6491e7c1a8af9c3d3b8c08bb8e66e82e 100644 (file)
@@ -2,13 +2,13 @@
 interface lo
   ip ospf area 0.0.0.0
 !
-interface r3-eth0
+interface eth0
   ip ospf network point-to-point
   ip ospf area 0.0.0.0
   ip ospf hello-interval 2
   ip ospf dead-interval 10
 !
-interface r3-eth1
+interface eth1
   ip ospf network point-to-point
   ip ospf area 0.0.0.0
   ip ospf hello-interval 2
index 4cf9077085486035df24ef988c9ccd93bef0fe79..262b5adc925816b0b13f51e7ca83f4572ca0fa62 100644 (file)
@@ -2,14 +2,14 @@
 interface lo
  ip address 10.0.255.3/32
 !
-interface r3-eth0
+interface eth0
  ip address 10.0.3.1/24
  link-params
   enable
   admin-grp 0x20
   exit-link-params
 !
-interface r3-eth1
+interface eth1
  ip address 10.0.5.1/24
  link-params
   enable
index cd508017d3b42015a62dc1070439bcc6066814e7..5ec7918aff2a9f957a94699f198dbdc8eea18d57 100644 (file)
@@ -2,7 +2,7 @@
 interface lo
  ip ospf area 0.0.0.0
 !
-interface r4-eth0
+interface eth0
  ip ospf network point-to-point
  ip ospf hello-interval 2
  ip ospf dead-interval 10
index 18c003b230c632b57271836f2a1f0c742c55708f..c48268509442283bea4a75a5cce5e151accbba1d 100644 (file)
@@ -2,7 +2,7 @@
 interface lo
  ip address 10.0.255.4/32
 !
-interface r4-eth0
+interface eth0
  ip address 10.0.4.1/24
  link-params
   enable
index c8533cfbba61bbae220bd6fbb0d386b88ff6d45a..11fecc32111b931b480210807b0ad5d4a61fd2ec 100644 (file)
@@ -18,22 +18,22 @@ test_ospf_te_topo1.py: Test the FRR OSPF with Traffic Engineering.
          | 10.0.225.1 |
          |            |
          +------------+
-      r1-eth0|    |r1-eth1
+         eth0|    |eth1
              |    |
   10.0.0.0/24|    |10.0.1.0/24
              |    |
-      r2-eth0|    |r2-eth1
+         eth0|    |eth1
          +------------+                  +------------+
          |            |                  |            |
-         |     R2     |r2-eth2    r3-eth0|     R3     |
+         |     R2     |eth2          eth0|     R3     |
          | 10.0.255.2 +------------------+ 10.0.255.3 |
          |            |     10.0.3.0/24  |            |
          +------------+                  +------+-----+
-         r2-eth3|                        r3-eth1|
+            eth3|                           eth1|
                 |                               |
      10.0.4.0/24|                    10.0.5.0/24|
                 |                               |
-         r4-eth0|                               V
+            eth0|                               V
          +------------+                   ASBR 10.0.255.5
          |            |
          |     R4     |
@@ -70,30 +70,24 @@ def build_topo(tgen):
     "Build function"
 
     # Create 4 routers
-    for routern in range(1, 5):
-        tgen.add_router("r{}".format(routern))
+    r1 = tgen.add_router("r1")
+    r2 = tgen.add_router("r2")
+    r3 = tgen.add_router("r3")
+    r4 = tgen.add_router("r4")
 
     # Interconect router 1 and 2 with 2 links
-    switch = tgen.add_switch("s1")
-    switch.add_link(tgen.gears["r1"])
-    switch.add_link(tgen.gears["r2"])
-    switch = tgen.add_switch("s2")
-    switch.add_link(tgen.gears["r1"])
-    switch.add_link(tgen.gears["r2"])
+    tgen.add_link(r1, r2, ifname1="eth0", ifname2="eth0")
+    tgen.add_link(r1, r2, ifname1="eth1", ifname2="eth1")
 
     # Interconect router 3 and 2
-    switch = tgen.add_switch("s3")
-    switch.add_link(tgen.gears["r3"])
-    switch.add_link(tgen.gears["r2"])
+    tgen.add_link(r2, r3, ifname1="eth2", ifname2="eth0")
 
     # Interconect router 4 and 2
-    switch = tgen.add_switch("s4")
-    switch.add_link(tgen.gears["r4"])
-    switch.add_link(tgen.gears["r2"])
+    tgen.add_link(r2, r4, ifname1="eth3", ifname2="eth0")
 
     # Interconnect router 3 with next AS
-    switch = tgen.add_switch("s5")
-    switch.add_link(tgen.gears["r3"])
+    s1 = tgen.add_switch("s1")
+    tgen.add_link(r3, s1, ifname1="eth1", ifname2="eth0")
 
 
 def setup_module(mod):
@@ -174,8 +168,7 @@ def test_step2():
 
     tgen = setup_testcase("Step2: Shutdown interface between r1 & r2")
 
-    tgen.net["r1"].cmd('vtysh -c "conf t" -c "interface r1-eth1" -c "shutdown"')
-    tgen.net["r2"].cmd('vtysh -c "conf t" -c "interface r2-eth1" -c "shutdown"')
+    tgen.net["r1"].cmd('vtysh -c "conf t" -c "interface eth1" -c "shutdown"')
 
     for rname in ["r1", "r2", "r3", "r4"]:
         compare_ted_json_output(tgen, rname, "ted_step2.json")
@@ -227,28 +220,27 @@ def test_step5():
 
     tgen = setup_testcase("Step5: Re-enable interface between r1 & r2")
 
-    tgen.net["r1"].cmd('vtysh -c "conf t" -c "interface r1-eth1" -c "no shutdown"')
-    tgen.net["r2"].cmd('vtysh -c "conf t" -c "interface r2-eth1" -c "no shutdown"')
+    tgen.net["r1"].cmd('vtysh -c "conf t" -c "interface eth1" -c "no shutdown"')
 
     for rname in ["r1", "r2", "r3", "r4"]:
         compare_ted_json_output(tgen, rname, "ted_step5.json")
 
 
 def test_step6():
-    "Step6: Set delay and jitter for interface r4-eth0 on r4, remove use-bw \
-    for interface r2-eth3 on r2 and verify that corresponding Edges are \
+    "Step6: Set delay and jitter for interface eth0 on r4, remove use-bw \
+    for interface eth3 on r2 and verify that corresponding Edges are \
     updated in the TED on all routers"
 
     tgen = setup_testcase("Step6: Modify link parameters on r2 & r4")
 
     tgen.net["r2"].cmd(
-        'vtysh -c "conf t" -c "interface r2-eth3" -c "link-params" -c "no use-bw"'
+        'vtysh -c "conf t" -c "interface eth3" -c "link-params" -c "no use-bw"'
     )
     tgen.net["r4"].cmd(
-        'vtysh -c "conf t" -c "interface r4-eth0" -c "link-params" -c "delay 20000"'
+        'vtysh -c "conf t" -c "interface eth0" -c "link-params" -c "delay 20000"'
     )
     tgen.net["r4"].cmd(
-        'vtysh -c "conf t" -c "interface r4-eth0" -c "link-params" -c "delay-variation 10000"'
+        'vtysh -c "conf t" -c "interface eth0" -c "link-params" -c "delay-variation 10000"'
     )
 
     for rname in ["r1", "r2", "r3", "r4"]: