[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150827054307.GC2228@nanopsycho.orion>
Date: Thu, 27 Aug 2015 07:43:07 +0200
From: Jiri Pirko <jiri@...nulli.us>
To: Scott Feldman <sfeldma@...il.com>
Cc: Netdev <netdev@...r.kernel.org>,
"David S. Miller" <davem@...emloft.net>,
Ido Schimmel <idosch@...lanox.com>, eladr@...lanox.com,
"simon.horman@...ronome.com" <simon.horman@...ronome.com>,
Jiri Pirko <jiri@...lanox.com>
Subject: Re: [patch net-next 3/6] net: add netif_is_ovs_master helper with
IFF_OPENVSWITCH private flag
Wed, Aug 26, 2015 at 07:43:18PM CEST, sfeldma@...il.com wrote:
>On Wed, Aug 26, 2015 at 9:36 AM, Jiri Pirko <jiri@...nulli.us> wrote:
>> From: Jiri Pirko <jiri@...lanox.com>
>>
>> Add this helper so code can easily figure out if netdev is openswitch.
>>
>> Signed-off-by: Jiri Pirko <jiri@...lanox.com>
>> ---
>> include/linux/netdevice.h | 8 ++++++++
>> net/openvswitch/vport-internal_dev.c | 2 +-
>> 2 files changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
>> index be625f4..0a884e6 100644
>> --- a/include/linux/netdevice.h
>> +++ b/include/linux/netdevice.h
>> @@ -1264,6 +1264,7 @@ struct net_device_ops {
>> * @IFF_MACVLAN: Macvlan device
>> * @IFF_VRF_MASTER: device is a VRF master
>> * @IFF_NO_QUEUE: device can run without qdisc attached
>> + * @IFF_VRF_OPENVSWITCH: device is a Open vSwitch master
>> */
>> enum netdev_priv_flags {
>> IFF_802_1Q_VLAN = 1<<0,
>> @@ -1293,6 +1294,7 @@ enum netdev_priv_flags {
>> IFF_IPVLAN_SLAVE = 1<<24,
>> IFF_VRF_MASTER = 1<<25,
>> IFF_NO_QUEUE = 1<<26,
>> + IFF_OPENVSWITCH = 1<<27,
>> };
>>
>> #define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
>> @@ -1322,6 +1324,7 @@ enum netdev_priv_flags {
>> #define IFF_IPVLAN_SLAVE IFF_IPVLAN_SLAVE
>> #define IFF_VRF_MASTER IFF_VRF_MASTER
>> #define IFF_NO_QUEUE IFF_NO_QUEUE
>> +#define IFF_OPENVSWITCH IFF_OPENVSWITCH
>>
>> /**
>> * struct net_device - The DEVICE structure.
>> @@ -3853,6 +3856,11 @@ static inline bool netif_is_bridge_master(const struct net_device *dev)
>> return dev->priv_flags & IFF_EBRIDGE;
>> }
>>
>> +static inline bool netif_is_ovs_master(const struct net_device *dev)
>> +{
>> + return dev->priv_flags & IFF_OPENVSWITCH;
>> +}
>
>We're going to run out of priv_flags bits. This flag doesn't seem
>like something that will be checked lots of places. How about using
>rtnl_link_ops->kind to save a bit in priv_flags?
>
>static inline bool netif_is_ovs_master(const struct net_device *dev)
>{
> return !strcmp(dev->rtnl_link_ops->kind, "openvswitch"));
>}
There are lot of helpers like this for other soft-devices. I think that
is okay to have it this way. The thing is that sometimes you need to use
thi helper in fast path and in that case, you do not want to strcmp.
There is plenty of priv_flags bits for now when I killed the bonding
stuff.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists