On Fri, Jan 17, 2014 at 05:20:13PM +0100, Helmut Schaa wrote:
> On Thu, Jan 9, 2014 at 5:48 PM, Ben Pfaff <b...@nicira.com> wrote:
> > On Thu, Jan 09, 2014 at 08:51:00AM +0100, Helmut Schaa wrote:
> >> On Thu, Jan 9, 2014 at 1:59 AM, Ben Pfaff <b...@nicira.com> wrote:
> >> > On Wed, Jan 08, 2014 at 04:43:47PM +0100, Helmut Schaa wrote:
> >> >> 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.sc...@googlemail.com>
> >> >
> >> > Hmm.  I see the problem.  Thanks for finding and reporting it, and for
> >> > the patch.
> >> >
> >> > I have two ideas here:
> >> >
> >> >         1. Add (back) VALID_FLAGS and check for it here.  (It will
> >> >            generally be valid, except in the case of initial
> >> >            construction of internal devices.)  I think that this would
> >> >            probably be better than abusing VALID_DRVINFO.
> >>
> >> Agreed, that makes sense ...
> >>
> >> >         2. Instead of using an ioctl and ifreq to set interface flags,
> >> >            use rtnetlink with RTM_SETLINK, with ifi_flags and
> >> >            ifi_change.  In Linux 2.6.22 and later, this allows one to
> >> >            set a subset of flags, rather than all flags overall, and
> >> >            that generally reflects OVS userspace intent, which never
> >> >            tries to change more than one flag at a time.  I think that
> >> >            we could even look at ifi_change in the Netlink response to
> >> >            see whether the change actually made a difference and (in
> >> >            pre-2.6.22) spot whether it had some unintended effect so
> >> >            that we could reverse it.
> >> >
> >> > Ideally, we'd do both.
> >> >
> >> > What do you think?
> >>
> >> Hmm, good point. Let me look into this.
> >
> > Thank you!
> 
> I haven't found time to respin this yet. Maybe I'll go with just adding
> the VALID_FLAGS back to get this fixed within a reasonable time frame.

Yes, that is a fine place to start.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to