lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-Id: <1489390713-2634-4-git-send-email-jiri@resnulli.us> Date: Mon, 13 Mar 2017 08:38:27 +0100 From: Jiri Pirko <jiri@...nulli.us> To: netdev@...r.kernel.org Cc: davem@...emloft.net, idosch@...lanox.com, mlxsw@...lanox.com, dsa@...ulusnetworks.com, shm@...ulusnetworks.com, kuznet@....inr.ac.ru, jmorris@...ei.org, yoshfuji@...ux-ipv6.org, kaber@...sh.net, lorenzo@...gle.com, mateusz.bajorski@...ia.com Subject: [patch net-next 04/10] net: Add netif_is_vrf_master helper From: Ido Schimmel <idosch@...lanox.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 <idosch@...lanox.com> Signed-off-by: Jiri Pirko <jiri@...lanox.com> --- drivers/net/vrf.c | 2 +- include/linux/netdevice.h | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c index 22379da..5c9a98e 100644 --- a/drivers/net/vrf.c +++ b/drivers/net/vrf.c @@ -1257,7 +1257,7 @@ static int vrf_newlink(struct net *src_net, struct net_device *dev, if (vrf->tb_id == RT_TABLE_UNSPEC) return -EINVAL; - dev->priv_flags |= IFF_L3MDEV_MASTER; + dev->priv_flags |= IFF_L3MDEV_MASTER | IFF_VRF_MASTER; err = register_netdevice(dev); if (err) diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 97456b25..7908d31 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -1356,6 +1356,7 @@ struct net_device_ops { * @IFF_PHONY_HEADROOM: the headroom value is controlled by an external * entity (i.e. the master device for bridged veth) * @IFF_MACSEC: device is a MACsec device + * @IFF_VRF_MASTER: device is a VRF master device */ enum netdev_priv_flags { IFF_802_1Q_VLAN = 1<<0, @@ -1386,6 +1387,7 @@ enum netdev_priv_flags { IFF_RXFH_CONFIGURED = 1<<25, IFF_PHONY_HEADROOM = 1<<26, IFF_MACSEC = 1<<27, + IFF_VRF_MASTER = 1<<28, }; #define IFF_802_1Q_VLAN IFF_802_1Q_VLAN @@ -1415,6 +1417,7 @@ enum netdev_priv_flags { #define IFF_TEAM IFF_TEAM #define IFF_RXFH_CONFIGURED IFF_RXFH_CONFIGURED #define IFF_MACSEC IFF_MACSEC +#define IFF_VRF_MASTER IFF_VRF_MASTER /** * struct net_device - The DEVICE structure. @@ -4155,6 +4158,11 @@ static inline bool netif_supports_nofcs(struct net_device *dev) return dev->priv_flags & IFF_SUPP_NOFCS; } +static inline bool netif_is_vrf_master(const struct net_device *dev) +{ + return dev->priv_flags & IFF_VRF_MASTER; +} + static inline bool netif_is_l3_master(const struct net_device *dev) { return dev->priv_flags & IFF_L3MDEV_MASTER; -- 2.7.4
Powered by blists - more mailing lists