Skip to content

Commit

Permalink
openvswitch: add seqadj extension when NAT is used.
Browse files Browse the repository at this point in the history
When the conntrack is initialized, there is no helper attached
yet so the nat info initialization (nf_nat_setup_info) skips
adding the seqadj ext.

A helper is attached later when the conntrack is not confirmed
but is going to be committed. In this case, if NAT is needed then
adds the seqadj ext as well.

Fixes: 16ec3d4 ("openvswitch: Fix cached ct with helper.")
Signed-off-by: Flavio Leitner <fbl@sysclose.org>
Acked-by: Pravin B Shelar <pshelar@ovn.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Flavio Leitner authored and David S. Miller committed Mar 26, 2019
1 parent 0a25d92 commit fa7e428
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions net/openvswitch/conntrack.c
Original file line number Diff line number Diff line change
Expand Up @@ -990,6 +990,12 @@ static int __ovs_ct_lookup(struct net *net, struct sw_flow_key *key,
GFP_ATOMIC);
if (err)
return err;

/* helper installed, add seqadj if NAT is required */
if (info->nat && !nfct_seqadj(ct)) {
if (!nfct_seqadj_ext_add(ct))
return -EINVAL;
}
}

/* Call the helper only if:
Expand Down

0 comments on commit fa7e428

Please sign in to comment.