This patchset can be divided into 3 main sections: - introduce switchdev api for implementing switch drivers - add hardware acceleration bits into openvswitch datapath, This uses previously mentioned switchdev api - introduce rocker switch driver which implenets switchdev api
More info in separate patches. So now there is possible out of the box to create ovs bridge over rocker switch ports and the flows will be offloaded into hardware. Jiri Pirko (12): openvswitch: split flow structures into ovs specific and generic ones net: rename netdev_phys_port_id to more generic name net: introduce generic switch devices support rtnl: expose physical switch id for particular device net-sysfs: expose physical switch id for particular device net: introduce dummy switch dsa: implement ndo_swdev_get_id net: introduce netdev_phys_item_ids_match helper openvswitch: introduce vport_op get_netdev openvswitch: add support for datapath hardware offload sw_flow: add misc section to key with in_port_ifindex field rocker: introduce rocker switch driver Documentation/networking/switchdev.txt | 53 + MAINTAINERS | 6 + drivers/net/Kconfig | 15 + drivers/net/Makefile | 3 + drivers/net/dummyswitch.c | 131 + drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 2 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 2 +- drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 2 +- drivers/net/rocker.c | 3446 ++++++++++++++++++++++ drivers/net/rocker.h | 465 +++ include/linux/netdevice.h | 51 +- include/linux/sw_flow.h | 115 + include/linux/switchdev.h | 44 + include/uapi/linux/if_link.h | 10 + net/Kconfig | 6 + net/core/Makefile | 1 + net/core/dev.c | 2 +- net/core/net-sysfs.c | 26 +- net/core/rtnetlink.c | 30 +- net/core/switchdev.c | 173 ++ net/dsa/Kconfig | 2 +- net/dsa/slave.c | 16 + net/openvswitch/Makefile | 3 +- net/openvswitch/actions.c | 3 +- net/openvswitch/datapath.c | 109 +- net/openvswitch/datapath.h | 7 +- net/openvswitch/dp_notify.c | 7 +- net/openvswitch/flow.c | 6 +- net/openvswitch/flow.h | 102 +- net/openvswitch/flow_netlink.c | 53 +- net/openvswitch/flow_netlink.h | 10 +- net/openvswitch/flow_table.c | 119 +- net/openvswitch/flow_table.h | 30 +- net/openvswitch/hw_offload.c | 258 ++ net/openvswitch/hw_offload.h | 22 + net/openvswitch/vport-gre.c | 4 +- net/openvswitch/vport-internal_dev.c | 56 +- net/openvswitch/vport-netdev.c | 19 + net/openvswitch/vport-netdev.h | 12 - net/openvswitch/vport-vxlan.c | 2 +- net/openvswitch/vport.c | 2 +- net/openvswitch/vport.h | 6 +- 43 files changed, 5145 insertions(+), 288 deletions(-) create mode 100644 Documentation/networking/switchdev.txt create mode 100644 drivers/net/dummyswitch.c create mode 100644 drivers/net/rocker.c create mode 100644 drivers/net/rocker.h create mode 100644 include/linux/sw_flow.h create mode 100644 include/linux/switchdev.h create mode 100644 net/core/switchdev.c create mode 100644 net/openvswitch/hw_offload.c create mode 100644 net/openvswitch/hw_offload.h -- 1.9.3 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev