mbox series

[ovs-dev,net-next,0/5] net: eliminate the duplicate code in the ct nat functions of ovs and tc

Message ID cover.1668527318.git.lucien.xin@gmail.com
Headers show
Series net: eliminate the duplicate code in the ct nat functions of ovs and tc | expand

Message

Xin Long Nov. 15, 2022, 3:50 p.m. UTC
The changes in the patchset:

  "net: add helper support in tc act_ct for ovs offloading"

had moved some common ct code used by both OVS and TC into netfilter.

There are still some big functions pretty similar defined and used in
each of OVS and TC. It is not good to maintain such similar code in 2
places. This patchset is to extract the functions for NAT processing
from OVS and TC to netfilter.

To make this change clear and safe, this patchset gets the common code
out of OVS and TC step by step: The patch 1-4 make some minor changes
in OVS and TC to make the NAT code of them completely the same, then
the patch 5 moves the common code to the netfilter and exports one
function called by each of OVS and TC.

Xin Long (5):
  openvswitch: delete the unncessary skb_pull_rcsum call in
    ovs_ct_nat_execute
  openvswitch: return NF_ACCEPT when OVS_CT_NAT is net set in info nat
  net: sched: return NF_ACCEPT when fails to add nat ext in
    tcf_ct_act_nat
  net: sched: update the nat flag for icmp error packets in
    ct_nat_execute
  net: move the nat function to nf_nat_core for ovs and tc

 include/net/netfilter/nf_nat.h |   4 +
 net/netfilter/nf_nat_core.c    | 131 +++++++++++++++++++++++++++++
 net/openvswitch/conntrack.c    | 146 +++------------------------------
 net/sched/act_ct.c             | 136 +++---------------------------
 4 files changed, 159 insertions(+), 258 deletions(-)

Comments

Saeed Mahameed Nov. 15, 2022, 7:42 p.m. UTC | #1
On 15 Nov 10:50, Xin Long wrote:
>The changes in the patchset:
>
>  "net: add helper support in tc act_ct for ovs offloading"
>
>had moved some common ct code used by both OVS and TC into netfilter.
>
>There are still some big functions pretty similar defined and used in
>each of OVS and TC. It is not good to maintain such similar code in 2
>places. This patchset is to extract the functions for NAT processing
>from OVS and TC to netfilter.
>
>To make this change clear and safe, this patchset gets the common code
>out of OVS and TC step by step: The patch 1-4 make some minor changes
>in OVS and TC to make the NAT code of them completely the same, then
>the patch 5 moves the common code to the netfilter and exports one
>function called by each of OVS and TC.
>

not super expert on TC or OVS, but LGTM.

Reviewed-by: Saeed Mahameed <saeed@kernel.org>