2.49. test_srv6 module¶
-
class
test_srv6.
TestSRv6
(methodName='runTest')¶ Bases:
framework.VppTestCase
SRv6 Test Case
-
compare_rx_tx_packet_End
(tx_pkt, rx_pkt)¶ Compare input and output packet after passing End (without PSP)
Parameters: - tx_pkt – transmitted packet
- rx_pkt – received packet
-
compare_rx_tx_packet_End_DX2
(tx_pkt, rx_pkt)¶ Compare input and output packet after passing End.DX2
Parameters: - tx_pkt – transmitted packet
- rx_pkt – received packet
-
compare_rx_tx_packet_End_DX4
(tx_pkt, rx_pkt)¶ Compare input and output packet after passing End.DX4
Parameters: - tx_pkt – transmitted packet
- rx_pkt – received packet
-
compare_rx_tx_packet_End_DX6
(tx_pkt, rx_pkt)¶ Compare input and output packet after passing End.DX6
Parameters: - tx_pkt – transmitted packet
- rx_pkt – received packet
-
compare_rx_tx_packet_End_PSP
(tx_pkt, rx_pkt)¶ Compare input and output packet after passing End with PSP
Parameters: - tx_pkt – transmitted packet
- rx_pkt – received packet
-
compare_rx_tx_packet_T_Encaps
(tx_pkt, rx_pkt)¶ Compare input and output packet after passing T.Encaps
Parameters: - tx_pkt – transmitted packet
- rx_pkt – received packet
-
compare_rx_tx_packet_T_Encaps_IPv4
(tx_pkt, rx_pkt)¶ Compare input and output packet after passing T.Encaps for IPv4
Parameters: - tx_pkt – transmitted packet
- rx_pkt – received packet
-
compare_rx_tx_packet_T_Encaps_L2
(tx_pkt, rx_pkt)¶ Compare input and output packet after passing T.Encaps for L2
Parameters: - tx_pkt – transmitted packet
- rx_pkt – received packet
-
compare_rx_tx_packet_T_Insert
(tx_pkt, rx_pkt)¶ Compare input and output packet after passing T.Insert
Parameters: - tx_pkt – transmitted packet
- rx_pkt – received packet
-
configure_interface
(interface, ipv6=False, ipv4=False, ipv6_table_id=0, ipv4_table_id=0)¶ Configure interface. :param ipv6: configure IPv6 on interface :param ipv4: configure IPv4 on interface :param ipv6_table_id: FIB table_id for IPv6 :param ipv4_table_id: FIB table_id for IPv4
-
create_packet_header_IPv4
(dst)¶ Create packet header: IPv4 header, UDP header
Parameters: dst – IPv4 destination address IPv4 source address is 123.1.1.1 UDP source port and destination port are 1234
-
create_packet_header_IPv6
(dst)¶ Create packet header: IPv6 header, UDP header
Parameters: dst – IPv6 destination address IPv6 source address is 1234::1 UDP source port and destination port are 1234
-
create_packet_header_IPv6_IPv4
(dst_inner, dst_outer)¶ Create packet header: IPv4 encapsulated in IPv6: IPv6 header, IPv4 header, UDP header
Parameters: - dst_inner (ipv4address) – inner IPv4 destination address
- dst_outer (ipv6address) – outer IPv6 destination address
IPv6 source address is 1234::1 IPv4 source address is 123.1.1.1 UDP source port and destination port are 1234
-
create_packet_header_IPv6_IPv6
(dst_inner, dst_outer)¶ Create packet header: IPv6 encapsulated in IPv6: IPv6 header, IPv6 header, UDP header
Parameters: - dst_inner (ipv6address) – inner IPv6 destination address
- dst_outer (ipv6address) – outer IPv6 destination address
IPv6 source addresses are 1234::1 and 4321::1 UDP source port and destination port are 1234
-
create_packet_header_IPv6_L2
(dst_outer, vlan=0)¶ Create packet header: L2 encapsulated in IPv6: IPv6 header, L2
Parameters: - dst_outer (ipv6address) – outer IPv6 destination address
- vlan – L2 vlan; if vlan!=0 then add 802.1q header
-
create_packet_header_IPv6_SRH
(sidlist, segleft)¶ Create packet header: IPv6 header with SRH, UDP header
Parameters: - sidlist (list) – segment list
- segleft (int) – segments-left field value
IPv6 destination address is set to sidlist[segleft] IPv6 source addresses are 1234::1 and 4321::1 UDP source port and destination port are 1234
-
create_packet_header_IPv6_SRH_IPv4
(dst, sidlist, segleft)¶ Create packet header: IPv4 encapsulated in SRv6: IPv6 header with SRH, IPv4 header, UDP header
Parameters: - dst (ipv4address) – inner IPv4 destination address
- sidlist (list) – segment list of outer IPv6 SRH
- segleft (int) – segments-left field of outer IPv6 SRH
Outer IPv6 destination address is set to sidlist[segleft] IPv6 source address is 1234::1 IPv4 source address is 123.1.1.1 UDP source port and destination port are 1234
-
create_packet_header_IPv6_SRH_IPv6
(dst, sidlist, segleft)¶ Create packet header: IPv6 encapsulated in SRv6: IPv6 header with SRH, IPv6 header, UDP header
Parameters: - dst (ipv6address) – inner IPv6 destination address
- sidlist (list) – segment list of outer IPv6 SRH
- segleft (int) – segments-left field of outer IPv6 SRH
Outer IPv6 destination address is set to sidlist[segleft] IPv6 source addresses are 1234::1 and 4321::1 UDP source port and destination port are 1234
-
create_packet_header_IPv6_SRH_L2
(sidlist, segleft, vlan=0)¶ Create packet header: L2 encapsulated in SRv6: IPv6 header with SRH, L2
Parameters: - sidlist (list) – segment list of outer IPv6 SRH
- segleft (int) – segments-left field of outer IPv6 SRH
- vlan – L2 vlan; if vlan!=0 then add 802.1q header
Outer IPv6 destination address is set to sidlist[segleft] IPv6 source address is 1234::1
-
create_packet_header_IPv6_SRH_SRH_IPv6
(dst, sidlist1, segleft1, sidlist2, segleft2)¶ Create packet header: IPv6 encapsulated in SRv6 with 2 SRH: IPv6 header with SRH, 2nd SRH, IPv6 header, UDP header
Parameters: - dst (ipv6address) – inner IPv6 destination address
- sidlist1 (list) – segment list of outer IPv6 SRH
- segleft1 (int) – segments-left field of outer IPv6 SRH
- sidlist2 (list) – segment list of inner IPv6 SRH
- segleft2 (int) – segments-left field of inner IPv6 SRH
Outer IPv6 destination address is set to sidlist[segleft] IPv6 source addresses are 1234::1 and 4321::1 UDP source port and destination port are 1234
-
create_packet_header_L2
(vlan=0)¶ Create packet header: L2 header
Parameters: vlan – if vlan!=0 then add 802.1q header
-
create_stream
(src_if, dst_if, packet_header, packet_sizes, count)¶ Create SRv6 input packet stream for defined interface.
Parameters: - src_if (VppInterface) – Interface to create packet stream for
- dst_if (VppInterface) – destination interface of packet stream
- packet_header – Layer3 scapy packet headers, L2 is added when not provided, Raw(payload) with packet_info is added
- packet_sizes (list) – packet stream pckt sizes,sequentially applied to packets in stream have
- count (int) – number of packets in packet stream
Returns: list of packets
-
get_payload_info
(packet)¶ Extract the payload_info from the packet
-
send_and_verify_pkts
(input, pkts, output, compare_func)¶ Send packets and verify received packets using compare_func
Parameters: - input – ingress interface of DUT
- pkts – list of packets to transmit
- output – egress interface of DUT
- compare_func – function to compare in and out packets
-
setUp
()¶ Perform test setup before each test case.
-
classmethod
setUpClass
()¶
-
setup_interfaces
(ipv6=[], ipv4=[], ipv6_table_id=[], ipv4_table_id=[])¶ Create and configure interfaces.
Parameters: - ipv6 – list of interface IPv6 capabilities
- ipv4 – list of interface IPv4 capabilities
- ipv6_table_id – list of intf IPv6 FIB table_ids
- ipv4_table_id – list of intf IPv4 FIB table_ids
Returns: List of created interfaces.
-
tearDown
()¶ Clean up test setup after each test case.
-
teardown_interfaces
()¶ Unconfigure and bring down interface.
-
test_SRv6_End
()¶ Test SRv6 End (without PSP) behavior.
-
test_SRv6_End_DT4
()¶ Test SRv6 End.DT4 behavior.
-
test_SRv6_End_DT6
()¶ Test SRv6 End.DT6 behavior.
-
test_SRv6_End_DX2
()¶ Test SRv6 End.DX2 behavior.
-
test_SRv6_End_DX4
()¶ Test SRv6 End.DX4 behavior.
-
test_SRv6_End_DX6
()¶ Test SRv6 End.DX6 behavior.
-
test_SRv6_End_X
()¶ Test SRv6 End.X (without PSP) behavior.
-
test_SRv6_End_X_with_PSP
()¶ Test SRv6 End.X with PSP behavior.
-
test_SRv6_End_with_PSP
()¶ Test SRv6 End with PSP behavior.
-
test_SRv6_T_Encaps
()¶ Test SRv6 Transit.Encaps behavior for IPv6.
-
test_SRv6_T_Encaps_IPv4
()¶ Test SRv6 Transit.Encaps behavior for IPv4.
-
test_SRv6_T_Encaps_L2
(*args, **kwargs)¶ Test SRv6 Transit.Encaps behavior for L2.
-
test_SRv6_T_Insert
()¶ Test SRv6 Transit.Insert behavior (IPv6 only).
-
verify_captured_pkts
(dst_if, capture, compare_func)¶ Verify captured packet stream for specified interface. Compare ingress with egress packets using the specified compare fn
Parameters: - dst_if – egress interface of DUT
- capture – captured packets
- compare_func – function to compare in and out packet
-