[Bug 269770] libalias udp redirect_port temporary translation failure

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 17 Aug 2024 06:51:26 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269770

--- Comment #7 from Eugene Grosbein <eugen@freebsd.org> ---
(In reply to Peter Much from comment #6)

> the logic when and how this happens is unintellegible

In case of ipfw nat:

1) When "ipfw nat" rule processes packets in-kernel, a packet is passed to
ipfw_nat_ptr() that points to ipfw_nat() function in
sys/netpfil/ipfw/ip_fw_nat.c

2) ipfw_nat() can call LibAliasOut(), LibAliasOutTry() or LibAliasIn().
2.1) LibAliasIn() calls LibAliasInLocked().
2.2) LibAliasOut() and LibAliasOutTry() call LibAliasOutLocked() than can call
LibAliasInLocked(), too.

3) So we end up in LibAliasInLocked() or LibAliasOutLocked() and both call
HouseKeeping() function sometimes (not every time) calls CleanupLink(la, &lnk,
0) to remove expired links but it is not supposed to touch permanent links we
have configured for port forwarding.

-- 
You are receiving this mail because:
You are the assignee for the bug.