ACK: [SRU][F:linux-bluefield][PATCH V3 0/5] Fix ct_state nat matching and nat action not being executed

Tim Gardner tim.gardner at canonical.com
Wed Jan 19 16:19:30 UTC 2022


Acked-by: Tim Gardner <tim.gardner at canonical.com>

On 1/18/22 1:20 PM, Bodong Wang wrote:
> Netfilter conntrack maintains NAT flags per connection indicating
> whether NAT was configured for the connection. Openvswitch maintains
> NAT flags on the per packet flow key ct_state field, indicating
> whether NAT was actually executed on the packet.
> 
> When a packet misses from tc to ovs the conntrack NAT flags are set.
> However, NAT was not necessarily executed on the packet because the
> connection's state might still be in NEW state. As such, openvswitch
> wrongly assumes that NAT was executed and sets an incorrect flow key
> NAT flags. This can lead to incorrect matching on ct_state nat flags,
> and nat not being executed by ovs.
> 
> This patch series fixed the bug above.
> 
> V1->v2:
> Fix upstream commit SHA for patch "net/sched: Extend qdisc control block with tc control block"
> 
> V2->v3:
> Use commit SHA from linux-next for patch "net: openvswitch: Fix ct_state
> nat flags for conns arriving from tc"
> 
> Paul Blakey (4):
>    net/sched: Extend qdisc control block with tc control block
>    net/sched: flow_dissector: Fix matching on zone id for invalid conns
>    net: openvswitch: Fix matching zone id for invalid conns arriving from
>      tc
>    net: openvswitch: Fix ct_state nat flags for conns arriving from tc
> 
> Vlad Buslov (1):
>    net: zero-initialize tc skb extension on allocation
> 
>   drivers/net/ethernet/mellanox/mlx5/core/en_tc.c |  2 +-
>   include/linux/skbuff.h                          |  7 +++++--
>   include/net/pkt_cls.h                           | 11 +++++++++++
>   include/net/pkt_sched.h                         | 18 ++++++++++++++++++
>   include/net/sch_generic.h                       |  2 --
>   net/core/dev.c                                  |  8 ++++----
>   net/core/flow_dissector.c                       |  3 ++-
>   net/openvswitch/flow.c                          | 20 ++++++++++++++++++--
>   net/sched/act_ct.c                              | 21 ++++++++++++++-------
>   net/sched/cls_api.c                             | 11 ++++++++---
>   net/sched/cls_flower.c                          |  6 ++++--
>   net/sched/sch_frag.c                            |  3 ++-
>   12 files changed, 87 insertions(+), 25 deletions(-)
> 

-- 
-----------
Tim Gardner
Canonical, Inc



More information about the kernel-team mailing list