2.52. test_ip6 module¶
-
class
test_ip6.
IPv6NDProxyTest
(methodName='runTest')¶ Bases:
test_ip6.TestIPv6ND
IPv6 ND ProxyTest Case
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_nd_proxy
()¶ IPv6 Proxy ND
-
-
class
test_ip6.
TestICMPv6Echo
(methodName='runTest')¶ Bases:
framework.VppTestCase
ICMPv6 Echo Test Case
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_icmpv6_echo
()¶ VPP replies to ICMPv6 Echo Request
Test scenario:
Receive ICMPv6 Echo Request message on pg0 interface.
Check outgoing ICMPv6 Echo Reply message on pg0 interface.
-
-
class
test_ip6.
TestIP6Input
(methodName='runTest')¶ Bases:
framework.VppTestCase
IPv6 Input Exception Test Cases
-
all_0s
= '::'¶
-
all_1s
= 'FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF'¶
-
icmpv6_data
= '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'¶
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_hop_by_hop
()¶ Hop-by-hop header test
-
test_ip_input_icmp_reply
()¶ IP6 Input Exception - Return ICMP (3,0)
-
test_ip_input_no_replies
(name, src, dst, l4, msg, timeout)¶
-
-
class
test_ip6.
TestIP6LinkLocal
(methodName='runTest')¶ Bases:
framework.VppTestCase
IPv6 Link Local
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_ip6_ll
()¶ IPv6 Link Local
-
-
class
test_ip6.
TestIP6LoadBalance
(methodName='runTest')¶ Bases:
framework.VppTestCase
IPv6 Load-Balancing
-
pg_send
(input, pkts)¶
-
send_and_expect_load_balancing
(input, pkts, outputs)¶
-
send_and_expect_one_itf
(input, pkts, itf)¶
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_ip6_load_balance
()¶ IPv6 Load-Balancing
-
-
class
test_ip6.
TestIP6Punt
(methodName='runTest')¶ Bases:
framework.VppTestCase
IPv6 Punt Police/Redirect
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_ip_punt
()¶ IP6 punt police and redirect
-
test_ip_punt_dump
()¶ IP6 punt redirect dump
-
-
class
test_ip6.
TestIP6Replace
(methodName='runTest')¶ Bases:
framework.VppTestCase
IPv4 Interface Address Replace
-
get_n_pfxs
(intf)¶
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_replace
()¶ IP interface address replace
-
-
class
test_ip6.
TestIPDeag
(methodName='runTest')¶ Bases:
framework.VppTestCase
IPv6 Deaggregate Routes
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_ip_deag
()¶ IP Deag Routes
-
-
class
test_ip6.
TestIPDisabled
(methodName='runTest')¶ Bases:
framework.VppTestCase
IPv6 disabled
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_ip_disabled
()¶ IP Disabled
-
-
class
test_ip6.
TestIPNull
(methodName='runTest')¶ Bases:
framework.VppTestCase
IPv6 routes via NULL
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_ip_null
()¶ IP NULL route
-
-
class
test_ip6.
TestIPReplace
(methodName='runTest')¶ Bases:
framework.VppTestCase
IPv6 Table Replace
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_replace
()¶ IP Table Replace
-
-
class
test_ip6.
TestIPv6
(methodName='runTest')¶ Bases:
test_ip6.TestIPv6ND
IPv6 Test Case
-
create_stream
(src_if)¶ Create input packet stream for defined interface.
- Parameters
src_if (VppInterface) – Interface to create packet stream for.
-
modify_packet
(src_if, packet_size, pkt)¶ Add load, set destination IP and extend packet to required packet size for defined interface.
- Parameters
src_if (VppInterface) – Interface to create packet for.
packet_size (int) – Required packet size.
pkt (Scapy) – Packet to be modified.
-
send_and_expect_ra
(intf, pkts, remark, dst_ip=None, filter_out_fn=<function is_ipv6_misc>, opt=None, src_ip=None)¶
-
setUp
()¶ Perform test setup before test case.
- Config:
- create 3 pg interfaces
untagged pg0 interface
Dot1Q subinterface on pg1
Dot1AD subinterface on pg2
- setup interfaces:
put it into UP state
set IPv6 addresses
resolve neighbor address using NDP
configure 200 fib entries
- Variables
interfaces (list) – pg interfaces and subinterfaces.
flows (dict) – IPv4 packet flows in test.
TODO: Create AD sub interface
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Run standard test teardown and log
show ip6 neighbors
.
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_fib
()¶ IPv6 FIB test
- Test scenario:
Create IPv6 stream for pg0 interface
Create IPv6 tagged streams for pg1’s and pg2’s subinterface.
Send and verify received packets on each interface.
-
test_mld
()¶ MLD Report
-
test_next_header_anomaly
()¶ IPv6 next header anomaly test
- Test scenario:
ipv6 next header field = Fragment Header (44)
next header is ICMPv6 Echo Request
wait for reassembly
-
test_ns
()¶ IPv6 Neighbour Solicitation Exceptions
- Test scenario:
Send an NS Sourced from an address not covered by the link sub-net
Send an NS to an mcast address the router has not joined
Send NS for a target address the router does not onn.
-
test_ns_duplicates
()¶ ND Duplicates
-
test_rs
()¶ IPv6 Router Solicitation Exceptions
Test scenario:
-
validate_ra
(intf, rx, dst_ip=None, src_ip=None, mtu=9000, pi_opt=None)¶
-
verify_capture
(dst_if, capture)¶ Verify captured input packet stream for defined interface.
- Parameters
dst_if (VppInterface) – Interface to verify captured packet stream for.
capture (list) – Captured packet stream.
-
-
class
test_ip6.
TestIPv6IfAddrRoute
(methodName='runTest')¶ Bases:
framework.VppTestCase
IPv6 Interface Addr Route Test Case
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_ipv6_ifaddr_del
()¶ Delete an interface address that does not exist
-
test_ipv6_ifaddrs_same_prefix
()¶ IPv6 Interface Addresses Same Prefix test
Test scenario:
Verify no route in FIB for prefix 2001:10::/64
Configure IPv4 address 2001:10::10/64 on an interface
Verify route in FIB for prefix 2001:10::/64
Configure IPv4 address 2001:10::20/64 on an interface
Delete 2001:10::10/64 from interface
Verify route in FIB for prefix 2001:10::/64
Delete 2001:10::20/64 from interface
Verify no route in FIB for prefix 2001:10::/64
-
-
class
test_ip6.
TestIPv6ND
(methodName='runTest')¶ Bases:
framework.VppTestCase
-
send_and_expect_na
(intf, pkts, remark, dst_ip=None, tgt_ip=None, filter_out_fn=<function is_ipv6_misc>)¶
-
send_and_expect_ns
(tx_intf, rx_intf, pkts, tgt_ip, filter_out_fn=<function is_ipv6_misc>)¶
-
send_and_expect_ra
(intf, pkts, remark, dst_ip=None, filter_out_fn=<function is_ipv6_misc>)¶
-
validate_na
(intf, rx, dst_ip=None, tgt_ip=None)¶
-
validate_ns
(intf, rx, tgt_ip)¶
-
validate_ra
(intf, rx, dst_ip=None)¶
-
verify_ip
(rx, smac, dmac, sip, dip)¶
-
-
class
test_ip6.
TestIPv6RD
(methodName='runTest')¶ Bases:
test_ip6.TestIPv6ND
IPv6 Router Discovery Test Case
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_rd_receive_router_advertisement
()¶ Verify events triggered by received RA packets
-
test_rd_send_router_solicitation
()¶ Verify router solicitation packets
-
verify_prefix_info
(reported_prefix, prefix_option)¶
-
-
class
test_ip6.
TestIPv6RDControlPlane
(methodName='runTest')¶ Bases:
test_ip6.TestIPv6ND
IPv6 Router Discovery Control Plane Test Case
-
static
create_ra_packet
(pg, routerlifetime=None)¶
-
static
get_default_routes
(fib)¶
-
static
get_interface_addresses
(fib, pg)¶
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_all
()¶ Test handling of SLAAC addresses and default routes
-
wait_for_no_default_route
(n_tries=50, s_time=1)¶
-
static
-
class
test_ip6.
TestIPv6RouteLookup
(methodName='runTest')¶ Bases:
framework.VppTestCase
IPv6 Route Lookup Test Case
-
route_lookup
(prefix, exact)¶
-
routes
= []¶
-
setUp
()¶ Clear trace before running each test
-
classmethod
setUpClass
()¶ Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api
-
tearDown
()¶ Show various debug prints after each test
-
classmethod
tearDownClass
()¶ Perform final cleanup after running all tests in this test-case
-
test_exact_match
()¶
-
test_longest_prefix_match
()¶
-