nat-to may fail to insert state due to conflict on chosen source
authorsashan <sashan@openbsd.org>
Wed, 10 May 2023 22:42:51 +0000 (22:42 +0000)
committersashan <sashan@openbsd.org>
Wed, 10 May 2023 22:42:51 +0000 (22:42 +0000)
commite8d816753b9af4d465375cdb9e00ae6f5f109a36
treede1617db73f5c322495676bdcc0b1dd9a33e9953
parent49e9c3844d7f7a5af889db1f15a896cbf12c56e1
nat-to may fail to insert state due to conflict on chosen source
port number. This is typically indicated by 'wire key attach failed on...'
message when pf(4) debugging is enabled. The problem is caused by
glitch in pf_get_sport() which fails to discover conflict in advance.
In order to fix it we must also calculate toeplitz hash in
pf_get_sport() to initialize look up key properly.

the bug has been kindly reported by  joosepm _von_ gmail _dot_ com

OK dlg@
sys/net/pf_lb.c
sys/net/pfvar_priv.h