add support for pf divert-to on tpmr, like what was done for veb(4).
authordlg <dlg@openbsd.org>
Wed, 26 May 2021 06:44:28 +0000 (06:44 +0000)
committerdlg <dlg@openbsd.org>
Wed, 26 May 2021 06:44:28 +0000 (06:44 +0000)
commite4207ed0486c7620b284918fe21444eab6ae0589
tree9683dbca0431e486487bc9e98ecbe5831139d964
parent603ab61f887cd126a3be6a2440fc52006dfa218f
add support for pf divert-to on tpmr, like what was done for veb(4).

when a divert-to rule applies to a packet, pf doesnt take the packet
away and shove it in the socket directly. pf marks the packet, and
then ip (or ipv6) input processing looks at the mark and picks the
local socket to queue it on. because tpmr operates at layer 2, ip
input has no chance to look at the packet and let the divert socket
steal it.

bridge(4) and now veb(4) handle this by checking if the packet has
the pf divert to mark set on it and calls ip input if it's set.
this copies the semantic to tpmr.
sys/net/if_tpmr.c