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,