[ovs-dev] [PATCH ovn] test: add more tests to IP-buffering unit-test

Ankur Sharma ankur.sharma at nutanix.com
Wed Jun 3 01:16:58 UTC 2020

Hi Lorenzo,

Please find my comments inline.


From: dev <ovs-dev-bounces at openvswitch.org> on behalf of Ankur Sharma <ankur.sharma at nutanix.com>
Sent: Monday, June 1, 2020 9:05 PM
To: Lorenzo Bianconi <lorenzo.bianconi at redhat.com>; ovs-dev at openvswitch.org <ovs-dev at openvswitch.org>
Subject: Re: [ovs-dev] [PATCH ovn] test: add more tests to IP-buffering unit-test

Hi Lorenzo,

Thanks a lot for the patch.
I will get back on this by EOD PST tomorrow.

From: Lorenzo Bianconi <lorenzo.bianconi at redhat.com>
Sent: Friday, May 29, 2020 7:01 AM
To: ovs-dev at openvswitch.org <ovs-dev at openvswitch.org>
Cc: Ankur Sharma <ankur.sharma at nutanix.com>; numans at ovn.org <numans at ovn.org>; dceara at redhat.com <dceara at redhat.com>
Subject: [PATCH ovn] test: add more tests to IP-buffering unit-test

Check the hv is sending the ICMP request using the FIP as src IP in
a DVR scenario. Update previous tests introducing source NAT for
distributed traffic cases

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi at redhat.com>
 tests/ovn.at | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/tests/ovn.at b/tests/ovn.at
index 15b40ca1e..57f632c4e 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -14873,7 +14873,7 @@ ovn_start
 # Physical network:
 # Tw0 hypervisors hv[12].
 # hv1 hosts vif sw0-p0.
-# hv1 hosts vif sw1-p0.
+# hv2 hosts vif sw1-p0 and sw0-p1

 send_icmp_packet() {
     local inport=$1 hv=$2 eth_src=$3 eth_dst=$4 ipv4_src=$5 ipv4_dst=$6 ip_chksum=$7 data=$8
@@ -14973,6 +14973,9 @@ ovn-nbctl lsp-add sw0 sw0-p1 \
 ovn-nbctl lsp-add sw1 sw1-p0 \
     -- lsp-set-addresses sw1-p0 unknown

+ovn-nbctl lr-nat-add lr0 snat
+ovn-nbctl lr-nat-add lr0 snat 2002::1 2001::/64
 ovn-nbctl --wait=hv sync

@@ -14997,15 +15000,15 @@ dst_ip6=20020000000000000000000000000010


-send_icmp_packet 1 1 $src_mac $router_mac0 $src_ip $dst_ip 0000 $data
+send_icmp_packet 1 1 $src_mac $router_mac0 $src_ip $dst_ip 0d1c $data
 send_arp_reply 2 1 $dst_mac $router_mac1 $dst_ip $router_ip
 echo $(get_arp_req $router_mac1 $router_ip $dst_ip) > expected
-echo "${dst_mac}${router_mac1}08004500001c00004000fe010100${src_ip}${dst_ip}${data}" >> expected
+echo "${dst_mac}${router_mac1}08004500001c00004000fe0122b5${router_ip}${dst_ip}${data}" >> expected

 OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected])


 send_icmp6_packet 1 1 $src_mac $router_mac0 $src_ip6 $dst_ip6
 echo $(get_nd $router_mac1 $nd_src_ip6 $nd_ip $dst_ip6) >> expected
@@ -15016,15 +15019,19 @@ OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected])

 # Create FIP on sw0-p0, add a route on logical router pipeline and
 # ARP request for a unkwon destination is sent using FIP MAC/IP
+ovn-nbctl lr-nat-del lr0 snat
 ovn-nbctl lr-nat-add lr0 dnat_and_snat sw0-p1 f0:00:00:01:02:04
 ovn-nbctl lr-route-add lr0

 dst_ip=$(ip_to_hex 172 16 2 10)
 fip_ip=$(ip_to_hex 172 16 1 2)
 src_ip=$(ip_to_hex 192 168 1 3)
-gw_router=$(ip_to_hex 172 16 1 11)
-send_icmp_packet 2 2 f00000110203 $router_mac0 $src_ip $dst_ip 0000 $data
-echo $(get_arp_req f00000010204 $fip_ip $gw_router) >> expected
+gw_router_ip=$(ip_to_hex 172 16 1 11)
+send_icmp_packet 2 2 f00000110203 $router_mac0 $src_ip $dst_ip 0c1b $data
[ANKUR]: Confused by above line, ofport 2 on hv2 is sw1-p0, whereas i believe we wanted port to use sw0-p1, i.e ofport3
+echo $(get_arp_req f00000010204 $fip_ip $gw_router_ip) >> expected
+send_arp_reply 2 1 $gw_router_mac f00000010204 $gw_router_ip $fip_ip
+echo "${gw_router_mac}f0000001020408004500001c00004000fe0121b4${fip_ip}${dst_ip}${data}" >> expected

 OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected])

[ANKUR]: May be i am missing something, but how are we validating buffering here. We should be validating the pcap on some external endpoint right,
For example, generate a icmp packet from internal port to an external endpoint, simulate an ARP reply and then look at tx pcap on destination.


dev mailing list
dev at openvswitch.org

More information about the dev mailing list