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

Andrew Lunn
2016-01-23T17:20:06Z

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.

Now that i think of it, there are a few other reasons. All the
interface management calls, and displaying of interface names would
have to contains the namespace. Otherwise you look at the output for
'batctl o' and have no idea which namespace that wlan0 interface is
from. Remember, interface names are only unique within a namespace,
not across namespaces.

namespaces are supposed to be as transparent as possible. Applications
are not supposed to know they are in a name space. That goes right out
the window as soon as you need to include a namespace into every
interface name.

Andrew