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

Bodong Wang bodong at nvidia.com
Thu Jan 13 16:05:37 UTC 2022


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.


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
  UBUNTU: SAUCE: 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(-)

-- 
1.8.3.1




More information about the kernel-team mailing list