diff options
author | Jiri Pirko <jiri@resnulli.us> | 2014-11-28 08:34:17 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-12-02 23:01:20 -0500 |
commit | 007f790c8276271de26416f90d55561bcc96588a (patch) | |
tree | 03a55b7897402e9daa8af64ea2c81d5236f77367 /include/linux/netdevice.h | |
parent | 02637fce3e0103ba086b9c33b6d529e69460e4b6 (diff) |
net: introduce generic switch devices support
The goal of this is to provide a possibility to support various switch
chips. Drivers should implement relevant ndos to do so. Now there is
only one ndo defined:
- for getting physical switch id is in place.
Note that user can use random port netdevice to access the switch.
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Reviewed-by: Thomas Graf <tgraf@suug.ch>
Acked-by: Andy Gospodarek <gospo@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r-- | include/linux/netdevice.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 4bd41d72559d..3603f31e78f3 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -1018,6 +1018,12 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev, | |||
1018 | * performing GSO on a packet. The device returns true if it is | 1018 | * performing GSO on a packet. The device returns true if it is |
1019 | * able to GSO the packet, false otherwise. If the return value is | 1019 | * able to GSO the packet, false otherwise. If the return value is |
1020 | * false the stack will do software GSO. | 1020 | * false the stack will do software GSO. |
1021 | * | ||
1022 | * int (*ndo_switch_parent_id_get)(struct net_device *dev, | ||
1023 | * struct netdev_phys_item_id *psid); | ||
1024 | * Called to get an ID of the switch chip this port is part of. | ||
1025 | * If driver implements this, it indicates that it represents a port | ||
1026 | * of a switch chip. | ||
1021 | */ | 1027 | */ |
1022 | struct net_device_ops { | 1028 | struct net_device_ops { |
1023 | int (*ndo_init)(struct net_device *dev); | 1029 | int (*ndo_init)(struct net_device *dev); |
@@ -1171,6 +1177,10 @@ struct net_device_ops { | |||
1171 | int (*ndo_get_lock_subclass)(struct net_device *dev); | 1177 | int (*ndo_get_lock_subclass)(struct net_device *dev); |
1172 | bool (*ndo_gso_check) (struct sk_buff *skb, | 1178 | bool (*ndo_gso_check) (struct sk_buff *skb, |
1173 | struct net_device *dev); | 1179 | struct net_device *dev); |
1180 | #ifdef CONFIG_NET_SWITCHDEV | ||
1181 | int (*ndo_switch_parent_id_get)(struct net_device *dev, | ||
1182 | struct netdev_phys_item_id *psid); | ||
1183 | #endif | ||
1174 | }; | 1184 | }; |
1175 | 1185 | ||
1176 | /** | 1186 | /** |