aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_sixrd.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_sixrd.py')
-rw-r--r--test/test_sixrd.py340
1 files changed, 191 insertions, 149 deletions
diff --git a/test/test_sixrd.py b/test/test_sixrd.py
index 24ff74b8d1c..70ff1fc8769 100644
--- a/test/test_sixrd.py
+++ b/test/test_sixrd.py
@@ -18,7 +18,7 @@ from socket import AF_INET, AF_INET6, inet_pton
class Test6RD(VppTestCase):
- """ 6RD Test Case """
+ """6RD Test Case"""
@classmethod
def setUpClass(cls):
@@ -41,7 +41,7 @@ class Test6RD(VppTestCase):
for n in range(4):
i = self.pg_interfaces[n]
i.admin_up()
- if (n > 1):
+ if n > 1:
i.set_table_ip4(10)
i.set_table_ip6(20)
i.config_ip4()
@@ -82,28 +82,31 @@ class Test6RD(VppTestCase):
self.assertEqual(rx[IPv6].nh, expected[IPv6].nh)
def payload(self, len):
- return 'x' * len
+ return "x" * len
def test_6rd_ip6_to_ip4(self):
- """ ip6 -> ip4 (encap) 6rd test """
+ """ip6 -> ip4 (encap) 6rd test"""
p_ether = Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac)
- p_ip6 = IPv6(src="1::1", dst="2002:AC10:0202::1", nh='UDP')
+ p_ip6 = IPv6(src="1::1", dst="2002:AC10:0202::1", nh="UDP")
- rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
- ip4_table_id=0,
- ip6_prefix='2002::/16',
- ip4_prefix='0.0.0.0/0',
- ip4_src=self.pg0.local_ip4,
- security_check=True)
+ rv = self.vapi.ipip_6rd_add_tunnel(
+ ip6_table_id=0,
+ ip4_table_id=0,
+ ip6_prefix="2002::/16",
+ ip4_prefix="0.0.0.0/0",
+ ip4_src=self.pg0.local_ip4,
+ security_check=True,
+ )
self.tunnel_index = rv.sw_if_index
self.vapi.cli("show ip6 fib")
p_payload = UDP(sport=1234, dport=1234)
- p = (p_ether / p_ip6 / p_payload)
+ p = p_ether / p_ip6 / p_payload
- p_reply = (IP(src=self.pg0.local_ip4, dst=self.pg1.remote_ip4,
- proto='ipv6') / p_ip6)
+ p_reply = (
+ IP(src=self.pg0.local_ip4, dst=self.pg1.remote_ip4, proto="ipv6") / p_ip6
+ )
rx = self.send_and_expect(self.pg0, p * 10, self.pg1)
for p in rx:
@@ -113,32 +116,37 @@ class Test6RD(VppTestCase):
plen = 1481 - 40 - 8
p_ip6 = IPv6(src="1::1", dst="2002:AC10:0202::1")
p_payload = UDP(sport=1234, dport=1234) / Raw(self.payload(plen))
- p = (p_ether / p_ip6 / p_payload)
+ p = p_ether / p_ip6 / p_payload
- p_reply = (IP(src=self.pg0.local_ip4, dst=self.pg1.remote_ip4,
- proto='ipv6') / p_ip6)
+ p_reply = (
+ IP(src=self.pg0.local_ip4, dst=self.pg1.remote_ip4, proto="ipv6") / p_ip6
+ )
rx = self.send_and_assert_no_replies(self.pg0, p * 10)
self.vapi.ipip_6rd_del_tunnel(self.tunnel_index)
def test_6rd_ip6_to_ip4_vrf(self):
- """ ip6 -> ip4 (encap) 6rd VRF test """
+ """ip6 -> ip4 (encap) 6rd VRF test"""
p_ether = Ether(src=self.pg2.remote_mac, dst=self.pg2.local_mac)
- p_ip6 = IPv6(src="1::1", dst="2002:AC10:0402::1", nh='UDP')
-
- rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=20, ip4_table_id=10,
- ip6_prefix='2002::/16',
- ip4_prefix='0.0.0.0/0',
- ip4_src=self.pg2.local_ip4,
- security_check=True)
+ p_ip6 = IPv6(src="1::1", dst="2002:AC10:0402::1", nh="UDP")
+
+ rv = self.vapi.ipip_6rd_add_tunnel(
+ ip6_table_id=20,
+ ip4_table_id=10,
+ ip6_prefix="2002::/16",
+ ip4_prefix="0.0.0.0/0",
+ ip4_src=self.pg2.local_ip4,
+ security_check=True,
+ )
self.tunnel_index = rv.sw_if_index
self.vapi.cli("show ip6 fib")
p_payload = UDP(sport=1234, dport=1234)
- p = (p_ether / p_ip6 / p_payload)
+ p = p_ether / p_ip6 / p_payload
- p_reply = (IP(src=self.pg2.local_ip4, dst=self.pg3.remote_ip4,
- proto='ipv6') / p_ip6)
+ p_reply = (
+ IP(src=self.pg2.local_ip4, dst=self.pg3.remote_ip4, proto="ipv6") / p_ip6
+ )
rx = self.send_and_expect(self.pg2, p * 10, self.pg3)
for p in rx:
@@ -148,40 +156,47 @@ class Test6RD(VppTestCase):
plen = 1481 - 40 - 8
p_ip6 = IPv6(src="1::1", dst="2002:AC10:0402::1")
p_payload = UDP(sport=1234, dport=1234) / Raw(self.payload(plen))
- p = (p_ether / p_ip6 / p_payload)
+ p = p_ether / p_ip6 / p_payload
- p_reply = (IP(src=self.pg2.local_ip4, dst=self.pg3.remote_ip4,
- proto='ipv6') / p_ip6)
+ p_reply = (
+ IP(src=self.pg2.local_ip4, dst=self.pg3.remote_ip4, proto="ipv6") / p_ip6
+ )
rx = self.send_and_assert_no_replies(self.pg0, p * 10)
self.vapi.ipip_6rd_del_tunnel(self.tunnel_index)
def test_6rd_ip4_to_ip6(self):
- """ ip4 -> ip6 (decap) 6rd test """
-
- rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
- ip4_table_id=0,
- ip6_prefix='2002::/16',
- ip4_prefix='0.0.0.0/0',
- ip4_src=self.pg0.local_ip4,
- security_check=True)
+ """ip4 -> ip6 (decap) 6rd test"""
+
+ rv = self.vapi.ipip_6rd_add_tunnel(
+ ip6_table_id=0,
+ ip4_table_id=0,
+ ip6_prefix="2002::/16",
+ ip4_prefix="0.0.0.0/0",
+ ip4_src=self.pg0.local_ip4,
+ security_check=True,
+ )
self.tunnel_index = rv.sw_if_index
rv = self.vapi.ipip_6rd_del_tunnel(rv.sw_if_index)
- rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
- ip4_table_id=0,
- ip6_prefix='2002::/16',
- ip4_prefix='0.0.0.0/0',
- ip4_src=self.pg0.local_ip4,
- security_check=True)
+ rv = self.vapi.ipip_6rd_add_tunnel(
+ ip6_table_id=0,
+ ip4_table_id=0,
+ ip6_prefix="2002::/16",
+ ip4_prefix="0.0.0.0/0",
+ ip4_src=self.pg0.local_ip4,
+ security_check=True,
+ )
self.tunnel_index = rv.sw_if_index
- p_ip6 = (IPv6(src="2002:AC10:0202::1", dst=self.pg1.remote_ip6) /
- UDP(sport=1234, dport=1234))
+ p_ip6 = IPv6(src="2002:AC10:0202::1", dst=self.pg1.remote_ip6) / UDP(
+ sport=1234, dport=1234
+ )
- p = (Ether(src=self.pg0.remote_mac,
- dst=self.pg0.local_mac) /
- IP(src=self.pg1.remote_ip4, dst=self.pg0.local_ip4) /
- p_ip6)
+ p = (
+ Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac)
+ / IP(src=self.pg1.remote_ip4, dst=self.pg0.local_ip4)
+ / p_ip6
+ )
p_reply = p_ip6
@@ -191,32 +206,38 @@ class Test6RD(VppTestCase):
self.vapi.ipip_6rd_del_tunnel(self.tunnel_index)
def test_6rd_ip4_to_ip6_vrf(self):
- """ ip4 -> ip6 (decap) 6rd VRF test """
-
- rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=20,
- ip4_table_id=10,
- ip6_prefix='2002::/16',
- ip4_prefix='0.0.0.0/0',
- ip4_src=self.pg2.local_ip4,
- security_check=True)
+ """ip4 -> ip6 (decap) 6rd VRF test"""
+
+ rv = self.vapi.ipip_6rd_add_tunnel(
+ ip6_table_id=20,
+ ip4_table_id=10,
+ ip6_prefix="2002::/16",
+ ip4_prefix="0.0.0.0/0",
+ ip4_src=self.pg2.local_ip4,
+ security_check=True,
+ )
self.tunnel_index = rv.sw_if_index
rv = self.vapi.ipip_6rd_del_tunnel(rv.sw_if_index)
- rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=20,
- ip4_table_id=10,
- ip6_prefix='2002::/16',
- ip4_prefix='0.0.0.0/0',
- ip4_src=self.pg2.local_ip4,
- security_check=True)
+ rv = self.vapi.ipip_6rd_add_tunnel(
+ ip6_table_id=20,
+ ip4_table_id=10,
+ ip6_prefix="2002::/16",
+ ip4_prefix="0.0.0.0/0",
+ ip4_src=self.pg2.local_ip4,
+ security_check=True,
+ )
self.tunnel_index = rv.sw_if_index
self.vapi.sw_interface_set_table(self.tunnel_index, 1, 20)
- p_ip6 = (IPv6(src="2002:AC10:0402::1", dst=self.pg3.remote_ip6) /
- UDP(sport=1234, dport=1234))
+ p_ip6 = IPv6(src="2002:AC10:0402::1", dst=self.pg3.remote_ip6) / UDP(
+ sport=1234, dport=1234
+ )
- p = (Ether(src=self.pg2.remote_mac,
- dst=self.pg2.local_mac) /
- IP(src=self.pg3.remote_ip4, dst=self.pg2.local_ip4) /
- p_ip6)
+ p = (
+ Ether(src=self.pg2.remote_mac, dst=self.pg2.local_mac)
+ / IP(src=self.pg3.remote_ip4, dst=self.pg2.local_ip4)
+ / p_ip6
+ )
p_reply = p_ip6
@@ -227,39 +248,45 @@ class Test6RD(VppTestCase):
self.vapi.ipip_6rd_del_tunnel(self.tunnel_index)
def test_6rd_ip4_to_ip6_multiple(self):
- """ ip4 -> ip6 (decap) 6rd test """
+ """ip4 -> ip6 (decap) 6rd test"""
self.tunnel_index = []
- rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
- ip4_table_id=0,
- ip6_prefix='2002::/16',
- ip4_prefix='0.0.0.0/0',
- ip4_src=self.pg0.local_ip4,
- security_check=True)
+ rv = self.vapi.ipip_6rd_add_tunnel(
+ ip6_table_id=0,
+ ip4_table_id=0,
+ ip6_prefix="2002::/16",
+ ip4_prefix="0.0.0.0/0",
+ ip4_src=self.pg0.local_ip4,
+ security_check=True,
+ )
self.tunnel_index.append(rv.sw_if_index)
- rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
- ip4_table_id=0,
- ip6_prefix='2003::/16',
- ip4_prefix='0.0.0.0/0',
- ip4_src=self.pg1.local_ip4,
- security_check=True)
+ rv = self.vapi.ipip_6rd_add_tunnel(
+ ip6_table_id=0,
+ ip4_table_id=0,
+ ip6_prefix="2003::/16",
+ ip4_prefix="0.0.0.0/0",
+ ip4_src=self.pg1.local_ip4,
+ security_check=True,
+ )
self.tunnel_index.append(rv.sw_if_index)
self.vapi.cli("show ip6 fib")
p_ether = Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac)
p_ip4 = IP(src=self.pg1.remote_ip4, dst=self.pg0.local_ip4)
- p_ip6_1 = (IPv6(src="2002:AC10:0202::1", dst=self.pg1.remote_ip6) /
- UDP(sport=1234, dport=1234))
- p_ip6_2 = (IPv6(src="2003:AC10:0202::1", dst=self.pg1.remote_ip6) /
- UDP(sport=1234, dport=1234))
-
- p = (p_ether / p_ip4 / p_ip6_1)
+ p_ip6_1 = IPv6(src="2002:AC10:0202::1", dst=self.pg1.remote_ip6) / UDP(
+ sport=1234, dport=1234
+ )
+ p_ip6_2 = IPv6(src="2003:AC10:0202::1", dst=self.pg1.remote_ip6) / UDP(
+ sport=1234, dport=1234
+ )
+
+ p = p_ether / p_ip4 / p_ip6_1
rx = self.send_and_expect(self.pg0, p * 10, self.pg1)
for p in rx:
self.validate_4in6(p, p_ip6_1)
- p = (p_ether / p_ip4 / p_ip6_2)
+ p = p_ether / p_ip4 / p_ip6_2
rx = self.send_and_expect(self.pg0, p * 10, self.pg1)
for p in rx:
self.validate_4in6(p, p_ip6_2)
@@ -267,49 +294,57 @@ class Test6RD(VppTestCase):
self.vapi.ipip_6rd_del_tunnel(i)
def test_6rd_ip4_to_ip6_suffix(self):
- """ ip4 -> ip6 (decap) 6rd test """
-
- rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
- ip4_table_id=0,
- ip6_prefix='2002::/16',
- ip4_prefix='172.0.0.0/8',
- ip4_src=self.pg0.local_ip4,
- security_check=True)
+ """ip4 -> ip6 (decap) 6rd test"""
+
+ rv = self.vapi.ipip_6rd_add_tunnel(
+ ip6_table_id=0,
+ ip4_table_id=0,
+ ip6_prefix="2002::/16",
+ ip4_prefix="172.0.0.0/8",
+ ip4_src=self.pg0.local_ip4,
+ security_check=True,
+ )
self.tunnel_index = rv.sw_if_index
self.vapi.cli("show ip6 fib")
p_ether = Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac)
p_ip4 = IP(src=self.pg1.remote_ip4, dst=self.pg0.local_ip4)
- p_ip6 = (IPv6(src="2002:1002:0200::1", dst=self.pg1.remote_ip6) /
- UDP(sport=1234, dport=1234))
+ p_ip6 = IPv6(src="2002:1002:0200::1", dst=self.pg1.remote_ip6) / UDP(
+ sport=1234, dport=1234
+ )
- p = (p_ether / p_ip4 / p_ip6)
+ p = p_ether / p_ip4 / p_ip6
rx = self.send_and_expect(self.pg0, p * 10, self.pg1)
for p in rx:
self.validate_4in6(p, p_ip6)
self.vapi.ipip_6rd_del_tunnel(self.tunnel_index)
def test_6rd_ip4_to_ip6_sec_check(self):
- """ ip4 -> ip6 (decap) security check 6rd test """
-
- rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
- ip4_table_id=0,
- ip6_prefix='2002::/16',
- ip4_prefix='0.0.0.0/0',
- ip4_src=self.pg0.local_ip4,
- security_check=True)
+ """ip4 -> ip6 (decap) security check 6rd test"""
+
+ rv = self.vapi.ipip_6rd_add_tunnel(
+ ip6_table_id=0,
+ ip4_table_id=0,
+ ip6_prefix="2002::/16",
+ ip4_prefix="0.0.0.0/0",
+ ip4_src=self.pg0.local_ip4,
+ security_check=True,
+ )
self.tunnel_index = rv.sw_if_index
self.vapi.cli("show ip6 fib")
- p_ip6 = (IPv6(src="2002:AC10:0202::1", dst=self.pg1.remote_ip6) /
- UDP(sport=1234, dport=1234))
- p_ip6_fail = (IPv6(src="2002:DEAD:0202::1", dst=self.pg1.remote_ip6) /
- UDP(sport=1234, dport=1234))
-
- p = (Ether(src=self.pg0.remote_mac,
- dst=self.pg0.local_mac) /
- IP(src=self.pg1.remote_ip4, dst=self.pg0.local_ip4) /
- p_ip6)
+ p_ip6 = IPv6(src="2002:AC10:0202::1", dst=self.pg1.remote_ip6) / UDP(
+ sport=1234, dport=1234
+ )
+ p_ip6_fail = IPv6(src="2002:DEAD:0202::1", dst=self.pg1.remote_ip6) / UDP(
+ sport=1234, dport=1234
+ )
+
+ p = (
+ Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac)
+ / IP(src=self.pg1.remote_ip4, dst=self.pg0.local_ip4)
+ / p_ip6
+ )
p_reply = p_ip6
@@ -317,55 +352,62 @@ class Test6RD(VppTestCase):
for p in rx:
self.validate_4in6(p, p_reply)
- p = (Ether(src=self.pg0.remote_mac,
- dst=self.pg0.local_mac) /
- IP(src=self.pg1.remote_ip4, dst=self.pg0.local_ip4) /
- p_ip6_fail)
+ p = (
+ Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac)
+ / IP(src=self.pg1.remote_ip4, dst=self.pg0.local_ip4)
+ / p_ip6_fail
+ )
rx = self.send_and_assert_no_replies(self.pg0, p * 10)
self.vapi.ipip_6rd_del_tunnel(self.tunnel_index)
def test_6rd_bgp_tunnel(self):
- """ 6rd BGP tunnel """
+ """6rd BGP tunnel"""
- rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
- ip4_table_id=0,
- ip6_prefix='2002::/16',
- ip4_prefix='0.0.0.0/0',
- ip4_src=self.pg0.local_ip4,
- security_check=False)
+ rv = self.vapi.ipip_6rd_add_tunnel(
+ ip6_table_id=0,
+ ip4_table_id=0,
+ ip6_prefix="2002::/16",
+ ip4_prefix="0.0.0.0/0",
+ ip4_src=self.pg0.local_ip4,
+ security_check=False,
+ )
self.tunnel_index = rv.sw_if_index
- default_route = VppIpRoute(self, "DEAD::", 16,
- [VppRoutePath("2002:0808:0808::",
- self.tunnel_index)])
+ default_route = VppIpRoute(
+ self, "DEAD::", 16, [VppRoutePath("2002:0808:0808::", self.tunnel_index)]
+ )
default_route.add_vpp_config()
- ip4_route = VppIpRoute(self, "8.0.0.0", 8,
- [VppRoutePath(self.pg1.remote_ip4, 0xFFFFFFFF)])
+ ip4_route = VppIpRoute(
+ self, "8.0.0.0", 8, [VppRoutePath(self.pg1.remote_ip4, 0xFFFFFFFF)]
+ )
ip4_route.add_vpp_config()
# Via recursive route 6 -> 4
- p = (Ether(src=self.pg0.remote_mac,
- dst=self.pg0.local_mac) /
- IPv6(src="1::1", dst="DEAD:BEEF::1") /
- UDP(sport=1234, dport=1234))
+ p = (
+ Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac)
+ / IPv6(src="1::1", dst="DEAD:BEEF::1")
+ / UDP(sport=1234, dport=1234)
+ )
- p_reply = (IP(src=self.pg0.local_ip4, dst="8.8.8.8",
- proto='ipv6') /
- IPv6(src='1::1', dst='DEAD:BEEF::1', nh='UDP'))
+ p_reply = IP(src=self.pg0.local_ip4, dst="8.8.8.8", proto="ipv6") / IPv6(
+ src="1::1", dst="DEAD:BEEF::1", nh="UDP"
+ )
rx = self.send_and_expect(self.pg0, p * 10, self.pg1)
for p in rx:
self.validate_6in4(p, p_reply)
# Via recursive route 4 -> 6 (Security check must be disabled)
- p_ip6 = (IPv6(src="DEAD:BEEF::1", dst=self.pg1.remote_ip6) /
- UDP(sport=1234, dport=1234))
- p = (Ether(src=self.pg0.remote_mac,
- dst=self.pg0.local_mac) /
- IP(src="8.8.8.8", dst=self.pg0.local_ip4) /
- p_ip6)
+ p_ip6 = IPv6(src="DEAD:BEEF::1", dst=self.pg1.remote_ip6) / UDP(
+ sport=1234, dport=1234
+ )
+ p = (
+ Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac)
+ / IP(src="8.8.8.8", dst=self.pg0.local_ip4)
+ / p_ip6
+ )
p_reply = p_ip6
@@ -377,5 +419,5 @@ class Test6RD(VppTestCase):
self.vapi.ipip_6rd_del_tunnel(self.tunnel_index)
-if __name__ == '__main__':
+if __name__ == "__main__":
unittest.main(testRunner=VppTestRunner)