On Mon, Jul 07, 2025 at 10:38:13PM +0200, Florian Westphal wrote: > Upcoming kernel change provides the packets conntrack state in the > trace message data. > > This allows to see if packet is seen as original or reply, the conntrack > state (new, establieshed, related) and the status bits which show if e.g. > NAT was applied. Alsoi include conntrack ID so users can use conntrack > tool to query the kernel for more information via ctnetlink. > > This improves debugging when e.g. packets do not pick up the expected > NAT mapping, which could e.g. also happen because of expectations > following the NAT binding of the owning conntrack entry. > > Example output ("conntrack: " lines are new): > > trace id 32 t PRE_RAW packet: iif "enp0s3" ether saddr [..] > trace id 32 t PRE_RAW rule tcp flags syn meta nftrace set 1 (verdict continue) > trace id 32 t PRE_RAW policy accept > trace id 32 t PRE_MANGLE conntrack: ct direction original ct state new ct id 2641368242 > trace id 32 t PRE_MANGLE packet: iif "enp0s3" ether saddr [..] > trace id 32 t ct_new_pre rule jump rpfilter (verdict jump rpfilter) > trace id 32 t PRE_MANGLE policy accept > trace id 32 t INPUT conntrack: ct direction original ct state new ct status dnat-done ct id 2641368242 > trace id 32 t INPUT packet: iif "enp0s3" [..] > trace id 32 t public_in rule tcp dport 443 accept (verdict accept) > > v3: remove clash bit again, kernel won't expose it anymore. > v2: add more status bits: helper, clash, offload, hw-offload. > add flag explanation to documentation. > > Signed-off-by: Florian Westphal <fw@xxxxxxxxx> Reviewed-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> Thanks.