On Mon, Mar 13, 2017 at 09:15:32AM -0600, David Ahern wrote: > On 3/13/17 9:01 AM, Ido Schimmel wrote: > > On Mon, Mar 13, 2017 at 08:39:19AM -0600, David Ahern wrote: > >> On 3/13/17 1:38 AM, Jiri Pirko wrote: > >>> From: Ido Schimmel <ido...@mellanox.com> > >>> > >>> Drivers capable of offloading VRF configurations need to know the ports > >>> are enslaved to an actual VRF device and not some other L3 master. > >>> > >>> Add a flag to indicate netdev is a VRF master and a corresponding > >>> helper. > >>> > >>> Signed-off-by: Ido Schimmel <ido...@mellanox.com> > >>> Signed-off-by: Jiri Pirko <j...@mellanox.com> > >>> --- > >>> drivers/net/vrf.c | 2 +- > >>> include/linux/netdevice.h | 8 ++++++++ > >>> 2 files changed, 9 insertions(+), 1 deletion(-) > >>> > >> > >> IFF_VRF_MASTER was renamed IFF_L3MDEV_MASTER 18 months ago. > > > > But IFF_L3MDEV_MASTER isn't specific to the VRF driver. It can be set by > > other drivers including future ones that might be introduced. I need to > > allow enslavement to a VRF master, but reject others. > > > > Why isn't an L3MDEV associated with a FIB table sufficient? ie., the > L3MDEV_MASTER flag is set and the driver impements l3mdev_fib_table. At > that point, what is specific to a VRF device that the offload relies on?
The one thing specific to the VRF driver is that it only does that. If tomorrow a new driver is introduced and in addition to packet forwarding according to l3mdev_fib_table it also does something else, then I want to be sure mlxsw will be able to support it. Current approach seems cleaner to me, but I don't mind dropping this patch and introduce it when it's actually needed (if at all). OK?