Page MenuHomeFreeBSD

pf: handle TTL expired during nat64
ClosedPublic

Authored by kp on Dec 10 2025, 8:04 PM.
Tags
None
Referenced Files
F162633490: D54166.diff
Wed, Jul 15, 6:58 AM
F162633489: D54166.diff
Wed, Jul 15, 6:58 AM
Unknown Object (File)
Mon, Jul 13, 3:17 AM
Unknown Object (File)
Thu, Jul 9, 4:03 PM
Unknown Object (File)
Sun, Jul 5, 5:56 AM
Unknown Object (File)
Jun 13 2026, 8:47 PM
Unknown Object (File)
May 22 2026, 1:46 AM
Unknown Object (File)
May 20 2026, 2:26 AM

Details

Summary

If the TTL (or hop limit) expires during nat64 translation we may
need to send the error message in the original address family (i.e.
pre-translation).
We'd usually handle this in pf_route()/pf_route6(), but at that point we
have already translated the packet, making it difficult to include it in
the generated ICMP message.

Check for this case in pf_translate_af() and send icmp errors directly
from it.

PR: 291527
MFC after: 2 weeks
Sponsored by: Rubicon Communications, LLC ("Netgate")

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 69163
Build 66046: arc lint + arc unit