rework pfsync deferal timeout handling.
authordlg <dlg@openbsd.org>
Tue, 15 Jun 2021 05:06:24 +0000 (05:06 +0000)
committerdlg <dlg@openbsd.org>
Tue, 15 Jun 2021 05:06:24 +0000 (05:06 +0000)
commit1c3ff09ad37ab9532af634dd4fbc4845d7a4edf4
tree5f100dadaa1bc944d7bf338f9bdd39cdf7ba0e43
parent01dd2b7c875e7b47970185ebc27a3a30e9c8d56b
rework pfsync deferal timeout handling.

instead of having a timeout per deferred packet structure, use a
single timeout in pfsync that pulls items off the list of deferred
packets.

this avoids confusion about whether a timeout is handling the defer
or another context owns it. this way round, the context that removes
a defer from the list owns it and is responsible for completing it.

this should fix a panic we hit on the firewalls at work. there's
still another one that needs a fix, but sashan@ has been looking
at it. this might make it simpler to deal with though.

ok sashan@ jmatthew@
sys/net/if_pfsync.c