Introduce mutex(9) to protect pipex(4) session content.
authormvs <mvs@openbsd.org>
Tue, 27 Jul 2021 09:29:09 +0000 (09:29 +0000)
committermvs <mvs@openbsd.org>
Tue, 27 Jul 2021 09:29:09 +0000 (09:29 +0000)
commit2960d3c857274aa9ebcec7077ec6d85bc95c7a4f
tree262156e044f66a56a6223107441ecd6b303ec4b6
parenteaca7584feb949b8f804aa8b9202961dc8b56456
Introduce mutex(9) to protect pipex(4) session content.

With bluhm@'s diff for parallel forwarding pipex(4) could be accessed in
parallel through (*ifp->if_input)() -> ether_input() ->
pipex_pppoe_input(). PPPOE pipex(4) sessions are mostly immutable except
MPPE crypt.

The new per-session `pxs_mtx' mutex(9) used to protect session's
`ccp-id' which is incremented each time we send CCP reset-request.

The new `pxm_mtx' mutex(9) used to protect MPPE context. Each pipex(4)
session has two of them: one for the input and one for output path.

Where is no lock order limitations because those new mutex(9)'es never
held together.

ok bluhm@
sys/net/pipex.c
sys/net/pipex_local.h