[ovs-dev] [PATCH] system-userspace-packet-type-aware.at: Wait for ip address updates.

Ilya Maximets i.maximets at ovn.org
Wed Sep 16 18:02:46 UTC 2020


ovs-router module checks for the source ip address of the interface
while adding a new route.  netdev module doesn't request ip addresses
from the system every time, but instead it caches currently assigned
ip addresses and updates the cache on netlink notifications if needed.

So, there is a slight delay between setting ip address on interface
in a system and a moment OVS updates list of ip addresses of this
interface.  If route addition happens within this time frame, it
fails with the following error:

    # ovs-appctl ovs/route/add 10.0.0.0/24 br-p1
    Error while inserting route.
    ovs-appctl: ovs-vswitchd: server returned an error

This makes system tests to fail frequently.

Let's wait until local route successfully added.  This will mean
that OVS finished processing of a netlink event and will use up to
date list of ip addresses on desired interface.

Fixes: 526cf4e1d6a8 ("tests: Added unit tests in packet-type-aware.at")
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
---
 tests/system-userspace-packet-type-aware.at | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/system-userspace-packet-type-aware.at b/tests/system-userspace-packet-type-aware.at
index c2246316d..974304758 100644
--- a/tests/system-userspace-packet-type-aware.at
+++ b/tests/system-userspace-packet-type-aware.at
@@ -129,6 +129,7 @@ AT_CHECK([
     ip addr add 10.0.0.1/24 dev br-p1
     ip link set br-p1 up
 ], [0], [stdout])
+OVS_WAIT_UNTIL([ovs-appctl ovs/route/show | grep -q br-p1])
 
 AT_CHECK([
     ovs-appctl ovs/route/add 10.0.0.0/24 br-p1
@@ -141,6 +142,7 @@ AT_CHECK([
     ip addr add 20.0.0.2/24 dev br-p2
     ip link set br-p2 up
 ], [0], [stdout])
+OVS_WAIT_UNTIL([ovs-appctl ovs/route/show | grep -q br-p2])
 
 AT_CHECK([
     ovs-appctl ovs/route/add 20.0.0.0/24 br-p2
@@ -153,6 +155,7 @@ AT_CHECK([
     ip addr add 30.0.0.3/24 dev br-p3
     ip link set br-p3 up
 ], [0], [stdout])
+OVS_WAIT_UNTIL([ovs-appctl ovs/route/show | grep -q br-p3])
 
 AT_CHECK([
     ovs-appctl ovs/route/add 30.0.0.0/24 br-p3
-- 
2.25.4



More information about the dev mailing list