From: Ondrej Lichtner <olichtne(a)redhat.com>
When binding ping to an IP address the kernel can choose a different
source nic if it has an IP address from the same network configured, In
our case all pings were leaving from the first (*_nic1) interface. The
same then happens on the receiver side - the replies are sent from the
default nic for that network (which is the first one again). This
resulted in the switch not getting the full information about mac
addresses that will later be used for the dpdk test.
Binding to the nic directly partially fixes this issue - the ICMP
request messages will leave from the correct nic, the replies will still
go out of the default nic for the specific network. But the switch will
get all the info it needs from the request messages.
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
---
recipes/regression_tests/phase3/ovs-dpdk-pvp.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/recipes/regression_tests/phase3/ovs-dpdk-pvp.py
b/recipes/regression_tests/phase3/ovs-dpdk-pvp.py
index 5a5854e..fd58d0f 100644
--- a/recipes/regression_tests/phase3/ovs-dpdk-pvp.py
+++ b/recipes/regression_tests/phase3/ovs-dpdk-pvp.py
@@ -149,17 +149,17 @@ ctl.wait(5)
ping_opts = {"count": 100, "interval": 0.1, "limit_rate":
20}
pings = []
-pings.append(ping((h1, h1_nic1, 0, {"scope": 0}),
+pings.append(ping((h1, h1_nic1),
(h2, h2_nic1, 0, {"scope": 0}),
options=ping_opts, bg=True))
-pings.append(ping((h1, h1_nic2, 0, {"scope": 0}),
+pings.append(ping((h1, h1_nic2),
(h2, h2_nic2, 0, {"scope": 0}),
options=ping_opts, bg=True))
-pings.append(ping((h2, h2_nic1, 0, {"scope": 0}),
+pings.append(ping((h2, h2_nic1),
(h1, h1_nic1, 0, {"scope": 0}),
options=ping_opts, bg=True))
-pings.append(ping((h2, h2_nic2, 0, {"scope": 0}),
+pings.append(ping((h2, h2_nic2),
(h1, h1_nic2, 0, {"scope": 0}),
options=ping_opts, bg=True))
--
2.19.0