Message ID | 1530201787-7071-1-git-send-email-john.hurley@netronome.com |
---|---|
Headers | show |
Series | offload Linux LAG devices to the TC datapath | expand |
On Thu, Jun 28, 2018 at 05:03:01PM +0100, John Hurley wrote: > 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 is 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. Thanks John, Applied.