Commit bf14f492 authored by Xin Long's avatar Xin Long Committed by David S. Miller

openvswitch: delete the unncessary skb_pull_rcsum call in ovs_ct_nat_execute

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().
Reviewed-by: default avatarSaeed Mahameed <saeed@kernel.org>
Acked-by: default avatarAaron Conole <aconole@redhat.com>
Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a2d40ce7
...@@ -735,10 +735,7 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct nf_conn *ct, ...@@ -735,10 +735,7 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct nf_conn *ct,
const struct nf_nat_range2 *range, const struct nf_nat_range2 *range,
enum nf_nat_manip_type maniptype, struct sw_flow_key *key) enum nf_nat_manip_type maniptype, struct sw_flow_key *key)
{ {
int hooknum, nh_off, err = NF_ACCEPT; int hooknum, err = NF_ACCEPT;
nh_off = skb_network_offset(skb);
skb_pull_rcsum(skb, nh_off);
/* See HOOK2MANIP(). */ /* See HOOK2MANIP(). */
if (maniptype == NF_NAT_MANIP_SRC) if (maniptype == NF_NAT_MANIP_SRC)
...@@ -755,7 +752,7 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct nf_conn *ct, ...@@ -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, if (!nf_nat_icmp_reply_translation(skb, ct, ctinfo,
hooknum)) hooknum))
err = NF_DROP; err = NF_DROP;
goto push; goto out;
} else if (IS_ENABLED(CONFIG_IPV6) && } else if (IS_ENABLED(CONFIG_IPV6) &&
skb->protocol == htons(ETH_P_IPV6)) { skb->protocol == htons(ETH_P_IPV6)) {
__be16 frag_off; __be16 frag_off;
...@@ -770,7 +767,7 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct nf_conn *ct, ...@@ -770,7 +767,7 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct nf_conn *ct,
hooknum, hooknum,
hdrlen)) hdrlen))
err = NF_DROP; err = NF_DROP;
goto push; goto out;
} }
} }
/* Non-ICMP, fall thru to initialize if needed. */ /* 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, ...@@ -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_setup_info(ct, range, maniptype)
: nf_nat_alloc_null_binding(ct, hooknum); : nf_nat_alloc_null_binding(ct, hooknum);
if (err != NF_ACCEPT) if (err != NF_ACCEPT)
goto push; goto out;
} }
break; break;
...@@ -798,13 +795,11 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct nf_conn *ct, ...@@ -798,13 +795,11 @@ static int ovs_ct_nat_execute(struct sk_buff *skb, struct nf_conn *ct,
default: default:
err = NF_DROP; err = NF_DROP;
goto push; goto out;
} }
err = nf_nat_packet(ct, ctinfo, hooknum, skb); err = nf_nat_packet(ct, ctinfo, hooknum, skb);
push: out:
skb_push_rcsum(skb, nh_off);
/* Update the flow key if NAT successful. */ /* Update the flow key if NAT successful. */
if (err == NF_ACCEPT) if (err == NF_ACCEPT)
ovs_nat_update_key(key, skb, maniptype); ovs_nat_update_key(key, skb, maniptype);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment