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.
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.
Yeah, it make sense. If the softif is in the same ns as the hardifs, it is definitely necessary to prevent bat0 from jumping from a namespace to another.
Cheers,