diff options
| author | David S. Miller <davem@davemloft.net> | 2014-12-02 20:01:31 -0800 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2014-12-02 20:01:31 -0800 |
| commit | cbc24658baac5ca96d20d4a6ca9a8c41581a6e63 (patch) | |
| tree | c7c7e47bcf3fc9aa499308308840abe6f4f3327b /include/net | |
| parent | cd4c910e00751a451b34476c52eb17f904a844b6 (diff) | |
| parent | 51ace887a0c08cc431f99d46ab63c6b316052640 (diff) | |
Merge branch 'rocker-next'
Jiri Pirko says:
====================
introduce rocker switch driver with hardware accelerated datapath api - phase 1: bridge fdb offload
This patchset is just the first phase of switch and switch-ish device
support api in kernel. Note that the api will extend.
So what this patchset includes:
- introduce switchdev api skeleton for implementing switch drivers
- introduce rocker switch driver which implements switchdev api fdb and
bridge set/get link ndos
As to the discussion if there is need to have specific class of device
representing the switch itself, so far we found no need to introduce that.
But we are generally ok with the idea and when the time comes and it will
be needed, it can be easily introduced without any disturbance.
This patchset introduces switch id export through rtnetlink and sysfs,
which is similar to what we have for port id in SR-IOV. I will send iproute2
patchset for showing the switch id for port netdevs once this is applied.
This applies also for the PF_BRIDGE and fdb iproute2 patches.
iproute2 patches are now available here:
https://github.com/jpirko/iproute2-rocker
For detailed description and version history, please see individual patches.
In v4 I reordered the patches leaving rocker patches on the end of the patchset.
In v5 I only fixed whitespace issues of patch #13
We have a TODO for related items we want to work on in near future:
https://etherpad.wikimedia.org/p/netdev-swdev-todo
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/switchdev.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/net/switchdev.h b/include/net/switchdev.h new file mode 100644 index 000000000000..8a6d1641fd9b --- /dev/null +++ b/include/net/switchdev.h @@ -0,0 +1,37 @@ +/* + * include/net/switchdev.h - Switch device API + * Copyright (c) 2014 Jiri Pirko <jiri@resnulli.us> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ +#ifndef _LINUX_SWITCHDEV_H_ +#define _LINUX_SWITCHDEV_H_ + +#include <linux/netdevice.h> + +#ifdef CONFIG_NET_SWITCHDEV + +int netdev_switch_parent_id_get(struct net_device *dev, + struct netdev_phys_item_id *psid); +int netdev_switch_port_stp_update(struct net_device *dev, u8 state); + +#else + +static inline int netdev_switch_parent_id_get(struct net_device *dev, + struct netdev_phys_item_id *psid) +{ + return -EOPNOTSUPP; +} + +static inline int netdev_switch_port_stp_update(struct net_device *dev, + u8 state) +{ + return -EOPNOTSUPP; +} + +#endif + +#endif /* _LINUX_SWITCHDEV_H_ */ |
