CSIT-407: ARP entry != FIB route. 19/2819/2
authorNeale Ranns <nranns@cisco.com>
Mon, 12 Sep 2016 13:15:55 +0000 (14:15 +0100)
committerMaciek Konstantynowicz <mkonstan@cisco.com>
Tue, 20 Sep 2016 19:52:24 +0000 (19:52 +0000)
Change-Id: I2fff596d9bdc67766e0df1c08b3ffab1aab459e6
Signed-off-by: Neale Ranns <nranns@cisco.com>
tests/func/ipfix/ipfix_ipv4.robot
tests/func/softwire/lightweight_4over6.robot
tests/func/tap/tap_interface.robot

index d0b01f6..200bd34 100644 (file)
@@ -40,8 +40,9 @@
 
 *** Variables ***
 | ${dut1_to_tg_ip}= | 192.168.1.1
+| ${tg_to_dut1_ip}= | 192.168.1.2
 | ${dut2_to_dut1_ip}= | 192.168.2.1
-| ${tg_to_dut1_ip}= | 16.0.0.1
+| ${route_ip}= | 16.0.0.1
 | ${prefix_length}= | 24
 | ${ip_version}= | ip4
 | ${port}= | 80
 | | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length}
 | | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${tg_to_dut1_ip}
 | | ... | ${tg_to_dut1_mac}
+| | And Vpp Route Add
+| | ... | ${dut1_node} | ${route_ip} | 32
+| | ... | ${tg_to_dut1_ip} | ${dut1_to_tg} | resolve_attempts=${NONE}
 | | ${table_index} | ${skip_n} | ${match_n}=
 | | ... | And VPP creates classify table L3 | ${dut1_node} | ${ip_version} | src
 | | And VPP configures classify session L3 | ${dut1_node} | permit
 | | ... | ${table_index} | ${skip_n} | ${match_n} | ${ip_version} | src
-| | ... | ${tg_to_dut1_ip}
+| | ... | ${route_ip}
 | | When Assign interface to flow table | ${dut1_node} | ${dut1_to_tg}
 | | ... | ${table_index} | ip_version=${ip_version}
-| | And Setup IPFIX exporter | ${dut1_node} | ${tg_to_dut1_ip}
+| | And Setup IPFIX exporter | ${dut1_node} | ${route_ip}
 | | ... | ${dut1_to_tg_ip} | interval=5
 | | And Set IPFIX stream | ${dut1_node} | ${1}
 | | And Assign classify table to exporter | ${dut1_node} | ${table_index}
 | | ... | ${ip_version}
 | | Then Send packets and verify IPFIX | ${tg_node} | ${dut1_node}
-| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${tg_to_dut1_ip} | ${dut1_to_tg_ip}
+| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${route_ip} | ${dut1_to_tg_ip}
 | | ... | count=0
 
 | TC02: DUT reports packet flow for traffic by source address
 | | And Interfaces in 3-node path are up
 | | And Set Interface Address | ${dut1_node}
 | | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length}
-| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${tg_to_dut1_ip}
+| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${route_ip}
 | | ... | ${tg_to_dut1_mac}
+| | And Vpp Route Add
+| | ... | ${dut1_node} | ${route_ip} | 32
+| | ... | ${tg_to_dut1_ip} | ${dut1_to_tg} | resolve_attempts=${NONE}
 | | ${table_index} | ${skip_n} | ${match_n}=
 | | ... | And VPP creates classify table L3 | ${dut1_node} | ${ip_version} | src
 | | And VPP configures classify session L3 | ${dut1_node} | permit
 | | ... | ${table_index} | ${skip_n} | ${match_n} | ${ip_version} | src
-| | ... | ${tg_to_dut1_ip}
+| | ... | ${route_ip}
 | | When Assign interface to flow table | ${dut1_node} | ${dut1_to_tg}
 | | ... | ${table_index} | ip_version=${ip_version}
-| | And Setup IPFIX exporter | ${dut1_node} | ${tg_to_dut1_ip}
+| | And Setup IPFIX exporter | ${dut1_node} | ${route_ip}
 | | ... | ${dut1_to_tg_ip} | interval=5
 | | And Set IPFIX stream | ${dut1_node} | ${1}
 | | And Assign classify table to exporter | ${dut1_node} | ${table_index}
 | | ... | ${ip_version}
 | | Then Send packets and verify IPFIX | ${tg_node} | ${dut1_node}
-| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${tg_to_dut1_ip} | ${dut1_to_tg_ip}
+| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${route_ip} | ${dut1_to_tg_ip}
 
 | TC03: DUT reports packet flow for traffic with local destination address
 | | [Documentation]
 | | And Interfaces in 3-node path are up
 | | And Set Interface Address | ${dut1_node}
 | | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length}
-| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${tg_to_dut1_ip}
+| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${route_ip}
 | | ... | ${tg_to_dut1_mac}
+| | And Vpp Route Add
+| | ... | ${dut1_node} | ${route_ip} | 32
+| | ... | ${tg_to_dut1_ip} | ${dut1_to_tg} | resolve_attempts=${NONE}
 | | ${table_index} | ${skip_n} | ${match_n}=
 | | ... | And VPP creates classify table L3 | ${dut1_node} | ${ip_version} | dst
 | | And VPP configures classify session L3 | ${dut1_node} | permit
 | | ... | ${dut1_to_tg_ip}
 | | When Assign interface to flow table | ${dut1_node} | ${dut1_to_tg}
 | | ... | ${table_index} | ip_version=${ip_version}
-| | And Setup IPFIX exporter | ${dut1_node} | ${tg_to_dut1_ip}
+| | And Setup IPFIX exporter | ${dut1_node} | ${route_ip}
 | | ... | ${dut1_to_tg_ip} | interval=5
 | | And Set IPFIX stream | ${dut1_node} | ${1}
 | | And Assign classify table to exporter | ${dut1_node} | ${table_index}
 | | ... | ${ip_version}
 | | Then Send packets and verify IPFIX | ${tg_node} | ${dut1_node}
-| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${tg_to_dut1_ip} | ${dut1_to_tg_ip}
+| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${route_ip} | ${dut1_to_tg_ip}
 
 | TC04: DUT reports packet flow for traffic with remote destination address
 | | [Documentation]
 | | And Interfaces in 3-node path are up
 | | And Set Interface Address | ${dut1_node}
 | | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length}
-| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${tg_to_dut1_ip}
+| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${route_ip}
 | | ... | ${tg_to_dut1_mac}
+| | And Vpp Route Add
+| | ... | ${dut1_node} | ${route_ip} | 32
+| | ... | ${tg_to_dut1_ip} | ${dut1_to_tg} | resolve_attempts=${NONE}
 | | And Add ARP on DUT | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip}
 | | ... | ${dut2_to_dut1_mac}
 | | ${table_index} | ${skip_n} | ${match_n}=
 | | ... | ${dut2_to_dut1_ip}
 | | When Assign interface to flow table | ${dut1_node} | ${dut1_to_tg}
 | | ... | ${table_index} | ip_version=${ip_version}
-| | And Setup IPFIX exporter | ${dut1_node} | ${tg_to_dut1_ip}
+| | And Setup IPFIX exporter | ${dut1_node} | ${route_ip}
 | | ... | ${dut1_to_tg_ip} | interval=5
 | | And Set IPFIX stream | ${dut1_node} | ${1}
 | | And Assign classify table to exporter | ${dut1_node} | ${table_index}
 | | ... | ${ip_version}
 | | Then Send packets and verify IPFIX | ${tg_node} | ${dut1_node}
-| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${tg_to_dut1_ip} | ${dut2_to_dut1_ip}
+| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${route_ip} | ${dut2_to_dut1_ip}
 
 | TC05: DUT reports packet flow for traffic by source and destination port
 | | [Documentation]
 | | And Interfaces in 3-node path are up
 | | And Set Interface Address | ${dut1_node}
 | | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length}
-| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${tg_to_dut1_ip}
+| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${route_ip}
 | | ... | ${tg_to_dut1_mac}
 | | ${table_index} | ${skip_n} | ${match_n}=
 | | ... | And VPP creates classify table L3 | ${dut1_node} | ${ip_version}
 | | ... | src proto l4 src_port dst_port
 | | And VPP configures classify session generic | ${dut1_node}
 | | ... | acl-hit-next permit | ${table_index} | ${skip_n} | ${match_n}
-| | ... | l3 ${ip_version} src ${tg_to_dut1_ip}
+| | ... | l3 ${ip_version} src ${route_ip}
 | | ... | proto 6 l4 src_port ${port} dst_port ${port}
 | | When Assign interface to flow table | ${dut1_node} | ${dut1_to_tg}
 | | ... | ${table_index} | ip_version=${ip_version}
-| | And Setup IPFIX exporter | ${dut1_node} | ${tg_to_dut1_ip}
+| | And Setup IPFIX exporter | ${dut1_node} | ${route_ip}
 | | ... | ${dut1_to_tg_ip} | interval=5
 | | And Set IPFIX stream | ${dut1_node} | ${1}
 | | And Assign classify table to exporter | ${dut1_node} | ${table_index}
 | | ... | ${ip_version}
 | | Then Send packets and verify IPFIX | ${tg_node} | ${dut1_node}
-| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${tg_to_dut1_ip} | ${dut1_to_tg_ip}
+| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${route_ip} | ${dut1_to_tg_ip}
 | | ... | port=${port}
 
 | TC06: DUT reports packet flow with a large number of packets
 | | And Interfaces in 3-node path are up
 | | And Set Interface Address | ${dut1_node}
 | | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length}
-| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${tg_to_dut1_ip}
+| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${route_ip}
 | | ... | ${tg_to_dut1_mac}
+| | And Vpp Route Add
+| | ... | ${dut1_node} | ${route_ip} | 32
+| | ... | ${tg_to_dut1_ip} | ${dut1_to_tg} | resolve_attempts=${NONE}
 | | ${table_index} | ${skip_n} | ${match_n}=
 | | ... | And VPP creates classify table L3 | ${dut1_node} | ${ip_version} | src
 | | And VPP configures classify session L3 | ${dut1_node} | permit
 | | ... | ${table_index} | ${skip_n} | ${match_n} | ${ip_version} | src
-| | ... | ${tg_to_dut1_ip}
+| | ... | ${route_ip}
 | | When Assign interface to flow table | ${dut1_node} | ${dut1_to_tg}
 | | ... | ${table_index} | ip_version=${ip_version}
-| | And setup IPFIX exporter | ${dut1_node} | ${tg_to_dut1_ip} | ${dut1_to_tg_ip}
+| | And setup IPFIX exporter | ${dut1_node} | ${route_ip} | ${dut1_to_tg_ip}
 | | ... | interval=5
 | | And Set IPFIX stream | ${dut1_node} | ${1}
 | | And Assign classify table to exporter | ${dut1_node} | ${table_index}
 | | ... | ${ip_version}
 | | Then Send packets and verify IPFIX | ${tg_node} | ${dut1_node}
-| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${tg_to_dut1_ip} | ${dut1_to_tg_ip}
+| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${route_ip} | ${dut1_to_tg_ip}
 | | ... | count=20000 | timeout=10
 
 | TC07: DUT reports packet flow when multiple sessions are configured
 | | And Interfaces in 3-node path are up
 | | And Set Interface Address | ${dut1_node}
 | | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length}
-| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${tg_to_dut1_ip}
+| | And Add ARP on DUT | ${dut1_node} | ${dut1_to_tg} | ${route_ip}
 | | ... | ${tg_to_dut1_mac}
+| | And Vpp Route Add
+| | ... | ${dut1_node} | ${route_ip} | 32
+| | ... | ${tg_to_dut1_ip} | ${dut1_to_tg} | resolve_attempts=${NONE}
 | | ${table_index} | ${skip_n} | ${match_n}=
 | | ... | And VPP creates classify table L3 | ${dut1_node} | ${ip_version}
 | | ... | src proto l4 src_port dst_port
 | | :FOR | ${index} | IN RANGE | ${sessions}
 | | | VPP configures classify session generic | ${dut1_node}
 | | | ... | acl-hit-next permit | ${table_index} | ${skip_n} | ${match_n}
-| | | ... | l3 ${ip_version} src ${tg_to_dut1_ip}
+| | | ... | l3 ${ip_version} src ${route_ip}
 | | | ... | proto 6 l4 src_port ${index} dst_port ${index}
 | | When Assign interface to flow table | ${dut1_node} | ${dut1_to_tg}
 | | ... | ${table_index} | ip_version=${ip_version}
-| | And setup IPFIX exporter | ${dut1_node} | ${tg_to_dut1_ip}
+| | And setup IPFIX exporter | ${dut1_node} | ${route_ip}
 | | ... | ${dut1_to_tg_ip}
 | | ... | mtu=1450 | interval=5
 | | And Set IPFIX stream | ${dut1_node} | ${1}
 | | And Assign classify table to exporter | ${dut1_node} | ${table_index}
 | | ... | ${ip_version}
 | | Then Send session sweep and verify IPFIX | ${tg_node} | ${dut1_node}
-| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${tg_to_dut1_ip} | ${dut1_to_tg_ip}
+| | ... | ${tg_to_dut1} | ${dut1_to_tg} | ${route_ip} | ${dut1_to_tg_ip}
 | | ... | ${sessions} | timeout=10 | count=3
 # TODO: DUT reports packet flow when ACL is configured with wildcards
index 68eea42..06f7c6e 100644 (file)
@@ -41,6 +41,7 @@
 *** Variables ***
 | ${dut_ip4}= | 10.0.0.1
 | ${dut_ip6}= | 2001:0::1
+| ${tg_ip6}= | 2001:0::2
 | ${ipv4_prefix_len}= | 24
 | ${ipv6_prefix_len}= | 64
 
 | |       ... | ${dut_node} | ${dut_to_tg_if1} | ${dut_ip4} | ${ipv4_prefix_len}
 | |       ... | ${dut_node} | ${dut_to_tg_if2} | ${dut_ip6} | ${ipv6_prefix_len}
 | | And   Add IP Neighbor
-| |       ... | ${dut_node} | ${dut_to_tg_if2} | ${lw_rule_ipv6_dst}
+| |       ... | ${dut_node} | ${dut_to_tg_if2} | ${tg_ip6}
 | |       ... | ${tg_to_dut_if2_mac}
+| | And Vpp Route Add
+| |       ... | ${dut_node} | ${lw_rule_ipv6_dst} | 128
+| |       ... | ${tg_ip6} | ${dut_to_tg_if2} | resolve_attempts=${NONE}
 | | ${domain_index}=
 | | ... | When Map Add Domain
 | |            ... | ${dut_node} | ${lw_ipv4_pfx} | ${lw_ipv6_pfx}
@@ -111,8 +115,11 @@ TC02: Encapsulate IPv4 ICMP into IPv6. IPv6 dst depends on IPv4 addr and ICMP ID
 | |       ... | ${dut_node} | ${dut_to_tg_if1} | ${dut_ip4} | ${ipv4_prefix_len}
 | |       ... | ${dut_node} | ${dut_to_tg_if2} | ${dut_ip6} | ${ipv6_prefix_len}
 | | And   Add IP Neighbor
-| |       ... | ${dut_node} | ${dut_to_tg_if2} | ${lw_rule_ipv6_dst}
+| |       ... | ${dut_node} | ${dut_to_tg_if2} | ${tg_ip6}
 | |       ... | ${tg_to_dut_if2_mac}
+| | And Vpp Route Add
+| |       ... | ${dut_node} | ${lw_rule_ipv6_dst} | 128
+| |       ... | ${tg_ip6} | ${dut_to_tg_if2} | resolve_attempts=${NONE}
 | | ${domain_index}=
 | | ... | When Map Add Domain
 | |            ... | ${dut_node} | ${lw_ipv4_pfx} | ${lw_ipv6_pfx}
@@ -177,8 +184,11 @@ TC04: Hairpinning of traffic between two lwB4
 | |       ... | ${dut_node} | ${dut_to_tg_if1} | ${dut_ip4} | ${ipv4_prefix_len}
 | |       ... | ${dut_node} | ${dut_to_tg_if2} | ${dut_ip6} | ${ipv6_prefix_len}
 | | And   Add IP Neighbor
-| |       ... | ${dut_node} | ${dut_to_tg_if2} | ${lw_rule_2_ipv6_dst}
+| |       ... | ${dut_node} | ${dut_to_tg_if2} | ${tg_ip6}
 | |       ... | ${tg_to_dut_if2_mac}
+| | And Vpp Route Add
+| |       ... | ${dut_node} | ${lw_rule_2_ipv6_dst} | 128
+| |       ... | ${tg_ip6} | ${dut_to_tg_if2} | resolve_attempts=${NONE}
 | | ${domain_index}=
 | | ... | When Map Add Domain
 | |            ... | ${dut_node} | ${lw_ipv4_pfx} | ${lw_ipv6_pfx}
index e123cc8..13a8e61 100644 (file)
@@ -70,6 +70,7 @@
 | ${namespace1}= | nmspace1
 | ${namespace2}= | nmspace2
 
+| ${dut_ip_address}= | 192.168.0.1
 | ${tg_ip_address}= | 192.168.0.2
 | ${tg_ip_address_SHG}= | 16.0.10.20
 | ${tg_ip_address_GW}= | 192.168.0.0
 | | ${int1}= | And Add Tap Interface | ${dut_node} | ${tap_int1} |
 | | And Set Interface Address
 | | ... | ${dut_node} | ${int1} | ${tap1_VPP_ip} | ${prefix}
+| | And Set Interface Address
+| | ... | ${dut_node} | ${dut_to_tg_if1} | ${dut_ip_address} | ${prefix}
 | | And Set Interface State | ${dut_node} | ${int1} | up
 | | And Set Linux Interface MAC | ${dut_node} | ${tap_int1} | ${tap1_NM_mac}
 | | And Set Linux Interface IP | ${dut_node}
 | | ${int1}= | And Add Tap Interface | ${dut_node} | ${tap_int1} |
 | | And Set Interface Address
 | | ... | ${dut_node} | ${int1} | ${tap1_VPP_ip} | ${prefix}
+| | And Set Interface Address
+| | ... | ${dut_node} | ${dut_to_tg_if1} | ${dut_ip_address} | ${prefix}
 | | And Set Interface State | ${dut_node} | ${int1} | up
 | | When Create Namespace | ${dut_node} | ${namespace1}
 | | And Attach Interface To Namespace | ${dut_node}

©2016 FD.io a Linux Foundation Collaborative Project. All Rights Reserved.
Linux Foundation is a registered trademark of The Linux Foundation. Linux is a registered trademark of Linus Torvalds.
Please see our privacy policy and terms of use.