The following patchset introduces hardware offload of OVS connection tracking datapath rules.
OVS uses ct() and recirc() (recirculation) actions and recirc_id()/ct_state() matches to support connection tracking. The datapath rules are in the form of: recirc_id(0),in_port(dev1),eth_type(0x0800),ct_state(-trk) actions:ct(),recirc(2) recirc_id(2),in_port(dev1),eth_type(0x0800),ct_state(+trk+est) actions:4 This patchset will translate ct_state() and recirc_id() matches to tc ct_state and chain matches respectively. The datapath actions ct() and recirc() will be translated to tc actions ct and goto chain respectively. The tc equivalent commands for the above rules are: $ tc filter add dev dev1 ingress \ prio 1 chain 0 proto ip \ flower tcp ct_state -trk \ action ct pipe \ action goto chain 2 $ tc filter add dev dev1 ingress \ prio 1 chain 2 proto ip \ flower tcp ct_state +trk+est \ action mirred egress redirect dev dev2 Thanks, Paul Paul Blakey (10): match: Add match_set_ct_zone_masked helper compat: Add tc ct action and flower matches defines for older kernels tc: Introduce tcf_id to specify a tc filter netdev-offload-tc: Implement netdev tc flush via tc filter del dpif: Add support to set user features tc: Move tunnel_key unset action before output ports netdev-offload-tc: Add recirculation support via tc chains netdev-offload-tc: Add conntrack support netdev-offload-tc: Add conntrack label and mark support netdev-offload-tc: Add conntrack nat support datapath/linux/compat/include/linux/openvswitch.h | 3 + include/linux/automake.mk | 3 +- include/linux/pkt_cls.h | 46 +- include/linux/tc_act/tc_ct.h | 41 ++ include/openvswitch/match.h | 2 + lib/dpif-netdev.c | 1 + lib/dpif-netlink.c | 78 ++- lib/dpif-provider.h | 2 + lib/dpif.c | 9 + lib/dpif.h | 2 + lib/match.c | 10 +- lib/netdev-linux.c | 6 +- lib/netdev-offload-tc.c | 600 +++++++++++++++------- lib/tc.c | 448 ++++++++++++---- lib/tc.h | 112 +++- 15 files changed, 1075 insertions(+), 288 deletions(-) create mode 100644 include/linux/tc_act/tc_ct.h -- 1.8.3.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev