This patchset extends OvS TC and the linux-netdev implementation to support the offloading of Linux Link Aggregation devices (LAG) and their slaves. TC blocks are used to provide this offload. Blocks, in TC, group together a series of qdiscs. If a filter is added to one of these qdiscs then it applied to all. Similarly, if a packet is matched on one of the grouped qdiscs then the stats for the entire block are increased. The basis of the LAG offload is that the LAG master (attached to the OvS bridge) and slaves that may exist outside of OvS are all added to the same TC block. OvS can then control the filters and collect the stats on the slaves via its interaction with the LAG master.
The TC API is extended within OvS to allow the addition of a block id to ingress qdisc adds. Block ids are then assigned to each LAG master that is attached to the OvS bridge. The linux netdev netlink socket is used to monitor slave devices. If a LAG slave is found whose master is on the bridge then it is added to the same block as its master. If the underlying slaves belong to an offloadable device then the Linux LAG device can be offloaded to hardware. John Hurley (6): tc: allow offloading of block ids netdev-provider: add class op to get block_id rtnetlink: extend parser to include kind of master and slave netdev-linux: indicate if netdev is a LAG master netdev-linux: assign LAG devs to tc blocks netdev-linux: monitor and offload LAG slaves to TC lib/netdev-bsd.c | 3 +- lib/netdev-dpdk.c | 3 +- lib/netdev-dummy.c | 3 +- lib/netdev-linux.c | 128 ++++++++++++++++++++++++++++++++++++++++++++--- lib/netdev-provider.h | 4 ++ lib/netdev-tc-offloads.c | 82 +++++++++++++++++++++++------- lib/netdev-vport.c | 3 +- lib/netdev.c | 10 ++++ lib/netdev.h | 1 + lib/rtnetlink.c | 43 ++++++++++++++++ lib/rtnetlink.h | 4 ++ lib/tc.c | 60 +++++++++++++++------- lib/tc.h | 12 ++--- 13 files changed, 305 insertions(+), 51 deletions(-) mode change 100644 => 100755 lib/rtnetlink.h -- 2.7.4 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev