Subject: Re: [PATCH v3 1/1] nft_ct: Added nfct_seqadj_ext_add() for NAT'ed conntrack.

From: Pablo Neira Ayuso <[email-masked]>
Date: Wed, 22 Oct 2025 02:11:47 +0200

On Tue, Oct 21, 2025 at 04:34:46PM +0200, Florian Westphal wrote:
> Andrii Melnychenko <[email-masked]> wrote:
> >  
> >  struct nft_ct_helper_obj  {
> >  	struct nf_conntrack_helper *helper4;
> > @@ -1173,6 +1174,9 @@ static void nft_ct_helper_obj_eval(struct nft_object *obj,
> >  	if (help) {
> >  		rcu_assign_pointer(help->helper, to_assign);
> >  		set_bit(IPS_HELPER_BIT, &ct->status);
> > +
> > +		if ((ct->status & IPS_NAT_MASK) && !nfct_seqadj(ct))
> > +			nfct_seqadj_ext_add(ct);
> 
> Any reason why you removed the drop logic of earlier versions?
> 
> I think this needs something like this:
> 
> 	if (!nfct_seqadj_ext_add(ct))
>            regs->verdict.code = NF_DROP;
> 
> so client will eventually retransmit the connection request.
> 
> I can also mangle this locally, let me know.

BTW, this fixes DNAT case, but SNAT case is still broken because flag
is set at a later stage, right?