Subject: Re: [patch net-next 04/10] net: Add netif_is_vrf_master helper

From: Ido Schimmel <[email-masked]>
Date: Mon, 13 Mar 2017 17:58:04 +0200

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 <[email-masked]>
> >>>
> >>> 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 <[email-masked]>
> >>> Signed-off-by: Jiri Pirko <[email-masked]>
> >>> ---
> >>>  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?