On Mon, Mar 25, 2019 at 11:58 AM Flavio Leitner <fbl@xxxxxxxxxxxx> wrote: > > 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: 16ec3d4fbb96 ("openvswitch: Fix cached ct with helper.") > Signed-off-by: Flavio Leitner <fbl@xxxxxxxxxxxx> > --- > net/openvswitch/conntrack.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > Changelog: > v2 - removed nfct_help(ct) check as it is not necessary. > > diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c > index 51080004677e..845b83598e0d 100644 > --- a/net/openvswitch/conntrack.c > +++ b/net/openvswitch/conntrack.c > @@ -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: Acked-by: Pravin B Shelar <pshelar@xxxxxxx> Thanks, Pravin.