Re: [ovs-dev] [PATCH net-next 1/5] openvswitch: delete the unncessary skb_pull_rcsum call in ovs_ct_nat_execute

2022-11-16 Thread Aaron Conole
Xin Long  writes:

> The calls to ovs_ct_nat_execute() are as below:
>
>   ovs_ct_execute()
> ovs_ct_lookup()
>   __ovs_ct_lookup()
> ovs_ct_nat()
>   ovs_ct_nat_execute()
> ovs_ct_commit()
>   __ovs_ct_lookup()
> ovs_ct_nat()
>   ovs_ct_nat_execute()
>
> and since skb_pull_rcsum() and skb_push_rcsum() are already
> called in ovs_ct_execute(), there's no need to do it again
> in ovs_ct_nat_execute().
>
> Signed-off-by: Xin Long 
> ---

LGTM

Acked-by: Aaron Conole 

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


[ovs-dev] [PATCH net-next 1/5] openvswitch: delete the unncessary skb_pull_rcsum call in ovs_ct_nat_execute

2022-11-15 Thread Xin Long
The calls to ovs_ct_nat_execute() are as below:

  ovs_ct_execute()
ovs_ct_lookup()
  __ovs_ct_lookup()
ovs_ct_nat()
  ovs_ct_nat_execute()
ovs_ct_commit()
  __ovs_ct_lookup()
ovs_ct_nat()
  ovs_ct_nat_execute()

and since skb_pull_rcsum() and skb_push_rcsum() are already
called in ovs_ct_execute(), there's no need to do it again
in ovs_ct_nat_execute().

Signed-off-by: Xin Long 
---
 net/openvswitch/conntrack.c | 17 ++---
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c
index 4348321856af..4c5e5a6475af 100644
--- a/net/openvswitch/conntrack.c
+++ b/net/openvswitch/conntrack.c
@@ -735,10 +735,7 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct 
nf_conn *ct,
  const struct nf_nat_range2 *range,
  enum nf_nat_manip_type maniptype, struct 
sw_flow_key *key)
 {
-   int hooknum, nh_off, err = NF_ACCEPT;
-
-   nh_off = skb_network_offset(skb);
-   skb_pull_rcsum(skb, nh_off);
+   int hooknum, err = NF_ACCEPT;
 
/* See HOOK2MANIP(). */
if (maniptype == NF_NAT_MANIP_SRC)
@@ -755,7 +752,7 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct 
nf_conn *ct,
if (!nf_nat_icmp_reply_translation(skb, ct, ctinfo,
   hooknum))
err = NF_DROP;
-   goto push;
+   goto out;
} else if (IS_ENABLED(CONFIG_IPV6) &&
   skb->protocol == htons(ETH_P_IPV6)) {
__be16 frag_off;
@@ -770,7 +767,7 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct 
nf_conn *ct,
 hooknum,
 hdrlen))
err = NF_DROP;
-   goto push;
+   goto out;
}
}
/* Non-ICMP, fall thru to initialize if needed. */
@@ -788,7 +785,7 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct 
nf_conn *ct,
? nf_nat_setup_info(ct, range, maniptype)
: nf_nat_alloc_null_binding(ct, hooknum);
if (err != NF_ACCEPT)
-   goto push;
+   goto out;
}
break;
 
@@ -798,13 +795,11 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct 
nf_conn *ct,
 
default:
err = NF_DROP;
-   goto push;
+   goto out;
}
 
err = nf_nat_packet(ct, ctinfo, hooknum, skb);
-push:
-   skb_push_rcsum(skb, nh_off);
-
+out:
/* Update the flow key if NAT successful. */
if (err == NF_ACCEPT)
ovs_nat_update_key(key, skb, maniptype);
-- 
2.31.1

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