On 10/30/2019 3:37 PM, Roi Dayan wrote:
> 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,
> Roi
>                                  
>
> 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 tc_id to specify a tc filter
>    netdev-offload-tc: Implement netdev tc flush via tc filter del
>    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
>    tc: Move tunnel_key unset action before output ports
>    netdev-offloads-tc: Probe recirc tc sharing feature on first recirc_id
>      rule
>
>   acinclude.m4                                      |   6 +-
>   datapath/linux/compat/include/linux/openvswitch.h |   3 +
>   include/linux/automake.mk                         |   3 +-
>   include/linux/pkt_cls.h                           |  50 +-
>   include/linux/tc_act/tc_ct.h                      |  41 ++
>   include/openvswitch/match.h                       |   2 +
>   lib/dpif-netdev.c                                 |   1 +
>   lib/dpif-netlink.c                                |  64 ++-
>   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                           | 635 
> ++++++++++++++++------
>   lib/netdev-offload.h                              |   2 +-
>   lib/tc.c                                          | 451 ++++++++++++---
>   lib/tc.h                                          |  75 ++-
>   17 files changed, 1064 insertions(+), 298 deletions(-)
>   create mode 100644 include/linux/tc_act/tc_ct.h


Hey guys,

Any comments on the series? :)


Thanks,

Paul.


_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to