Re: [B.A.T.M.A.N.] [PATCH 1/4] batman-adv: NETIF_F_NETNS_LOCAL feature to prevent netns moves

Antonio Quartulli
2016-01-24T10:42:26Z

On Sun, Jan 24, 2016 at 02:19:59PM +0800, Antonio Quartulli wrote:
> On Sat, Jan 23, 2016 at 06:20:06PM +0100, Andrew Lunn wrote:
> > On Sat, Jan 23, 2016 at 10:06:37AM +0800, Antonio Quartulli wrote:
> > > On Wed, Jan 20, 2016 at 06:48:27PM +0100, Andrew Lunn wrote:
> > > > The batX soft interface should not be moved between network name
> > > > spaces. This is similar to bridges, bonds, tunnels, which are not
> > > > allowed to move between network namespaces.
> > > >
> > >
> > > Andrew,
> > > I understand bridges and other similar interfaces do the same, but what
> > > is the real reason for preventing a batman soft-interface from moving
> > > between namespaces?
> >
> > Humm, actually, a good question. I blindly copied this code without
> > thinking about it.
> >
> > One clear answer is the notification mechanism, used by
> > batadv_hard_if_event(). As far as i can see, such events are only sent
> > within the interfaces namespace. So for example you hot unplug a hard
> > interface which the soft interface is using, you would not get the
> > NETDEV_DOWN event if the soft interface is in a different namespace.
>
> This raises another question (maybe addressed by another of your patch?): what
> happens if an hard-interface currently enslaved in bat0 changes namespace?
> Will this result in an UNREGISTER event like when the interface gets destroyed?
> If not, I am not sure how the whole situation can still be consistent.

It seems that an UNREGISTER event is broadcasted when an hardif goes to another
namespace. At net/dev/core.c:4915

Therefore batman-adv will do the right thing :)

Cheers,

--
Antonio Quartulli