CSIT-32: Add decapsulation test
[csit.git] / tests / suites / softwire / lightweight_4over6.robot
index c3a4729..8d0ea95 100644 (file)
@@ -123,3 +123,37 @@ TC02: Encapsulate IPv4 ICMP into IPv6. IPv6 dst depends on IPv4 addr and ICMP ID
 | |      ... | ${dut_to_tg_if1_mac} | ${test_ipv4_inside} | ${test_ipv4_outside}
 | |      ... | ${test_icmp_id} | ${tg_to_dut_if2_mac} | ${dut_to_tg_if2_mac}
 | |      ... | ${lw_rule_ipv6_dst} | ${lw_ipv6_src}
 | |      ... | ${dut_to_tg_if1_mac} | ${test_ipv4_inside} | ${test_ipv4_outside}
 | |      ... | ${test_icmp_id} | ${tg_to_dut_if2_mac} | ${dut_to_tg_if2_mac}
 | |      ... | ${lw_rule_ipv6_dst} | ${lw_ipv6_src}
+
+TC03: Decapsulate IPv4 UDP from IPv6.
+| | [Documentation]
+| | ... | [Top] TG=DUT1.
+| | ... | [Enc] Eth-IPv6-IPv4-UDP on TG_if2_DUT, Eth-IPv4-UDP on TG_if1-DUT.
+| | ... | [Cfg] On DUT1 configure Map domain and Map rule.
+| | ... | [Ver] Make TG send encapsulated UDP to DUT; verify TG received
+| | ... |       IPv4 non-encapsulated packet is correct.
+| | ... | [Ref] RFC7596 RFC7597
+| | ...
+| | Given Path for 2-node testing is set
+| |       ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
+| | And   Interfaces in 2-node path are up
+| | And   IP addresses are set on interfaces
+| |       ... | ${dut_node} | ${dut_to_tg_if1} | ${dut_ip4} | ${ipv4_prefix_len}
+| |       ... | ${dut_node} | ${dut_to_tg_if2} | ${dut_ip6} | ${ipv6_prefix_len}
+| | And   Add Arp on DUT
+| |       ... | ${dut_node} | ${dut_to_tg_if1}
+| |       ... | ${test_ipv4_outside}
+| |       ... | ${tg_to_dut_if1_mac}
+| | ${domain_index}=
+| | ... | When Map Add Domain
+| |            ... | ${dut_node} | ${lw_ipv4_pfx} | ${lw_ipv6_pfx}
+| |            ... | ${lw_ipv6_src} | 0 | ${lw_psid_offset}
+| |            ... | ${lw_psid_length}
+| |       And  Map Add Rule
+| |            ... | ${dut_node} | ${domain_index} | ${lw_rule_psid}
+| |            ... | ${lw_rule_ipv6_dst}
+| | Then Send IPv4 UDP in IPv6 and check headers for lightweight 4over6
+| |      ... | ${tg_node} | ${tg_to_dut_if2} | ${tg_to_dut_if1}
+| |      ... | ${dut_to_tg_if2_mac} | ${tg_to_dut_if2_mac}
+| |      ... | ${lw_ipv6_src} | ${lw_rule_ipv6_dst}
+| |      ... | ${test_ipv4_outside} | ${test_ipv4_inside} | ${test_port}
+| |      ... | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_mac}