https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269770

--- Comment #7 from Eugene Grosbein <[email protected]> ---
(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.

Reply via email to