summaryrefslogtreecommitdiffstats
path: root/include/linux/netdevice.h
diff options
context:
space:
mode:
authorJiri Pirko <jiri@resnulli.us>2014-11-28 08:34:17 -0500
committerDavid S. Miller <davem@davemloft.net>2014-12-02 23:01:20 -0500
commit007f790c8276271de26416f90d55561bcc96588a (patch)
tree03a55b7897402e9daa8af64ea2c81d5236f77367 /include/linux/netdevice.h
parent02637fce3e0103ba086b9c33b6d529e69460e4b6 (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.h10
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 */
1022struct net_device_ops { 1028struct 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/**