python2 library is now removed as the transition has been done by the upstream project OVN is now a separate project released with its own release plan and it's not included within openvswitch starting with ovs 2.13. openvswitch.mk is split out from the main Makefile for adding ovn packages back in following commits. The following two patches are already included in 2.13 - ovsdb-idlc-fix-dict-change-during-iteration.patch - compat-Include-confirm_neigh-parameter-if-needed.patch Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
37 lines
1.4 KiB
Diff
37 lines
1.4 KiB
Diff
From 6fda3936a85319d6b09108dda67466baa1c93b6c Mon Sep 17 00:00:00 2001
|
|
From: Helmut Schaa <helmut.schaa@googlemail.com>
|
|
Date: Wed, 8 Jan 2014 13:48:49 +0100
|
|
Subject: [PATCH] netdev-linux: Let interface flag survive internal port setup
|
|
|
|
Due to a race condition when bringing up an internal port on Linux
|
|
some interface flags (e.g. IFF_MULTICAST) are falsely reset. This
|
|
happens because netlink events may be processed after the according
|
|
netdev has been brought up (which sets interface flags).
|
|
|
|
Fix this by reading the interface flags just before updating them
|
|
if they have not been updated by from the kernel yet.
|
|
|
|
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
|
|
---
|
|
lib/netdev-linux.c | 8 +++++++-
|
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
|
|
index c6f3d2740..136668b1d 100644
|
|
--- a/lib/netdev-linux.c
|
|
+++ b/lib/netdev-linux.c
|
|
@@ -3461,7 +3461,13 @@ update_flags(struct netdev_linux *netdev, enum netdev_flags off,
|
|
unsigned int old_flags, new_flags;
|
|
int error = 0;
|
|
|
|
- old_flags = netdev->ifi_flags;
|
|
+ if (!(netdev->cache_valid & VALID_DRVINFO)) {
|
|
+ /* Most likely the debvice flags are not in sync yet, fetch them now */
|
|
+ get_flags(&netdev->up, &old_flags);
|
|
+ } else {
|
|
+ old_flags = netdev->ifi_flags;
|
|
+ }
|
|
+
|
|
*old_flagsp = iff_to_nd_flags(old_flags);
|
|
new_flags = (old_flags & ~nd_to_iff_flags(off)) | nd_to_iff_flags(on);
|
|
if (new_flags != old_flags) {
|