Module Name: src Committed By: riastradh Date: Wed Jul 31 00:25:47 UTC 2024
Modified Files: src/sys/net: if_wg.c Log Message: wg(4): Make a rule for who wins when both peers send INIT at once. The rule is that the peer with the numerically smaller public key hash, in little-endian, takes priority iff the low order bit of H(peer A pubkey) ^ H(peer B pubkey) ^ H(posix minutes as le64) is 0, and the peer with the lexicographically larger public key takes priority iff the low-order bit is 1. Another case of: PR kern/56252: wg(4) state machine has race conditions PR kern/58463: if_wg does not work when idle. This one is, as far as I can tell, simply a deadlock in the protocol of the whitepaper -- until both sides give up on the handshake and one of them (but not both) later decides to try sending data again. (But not related to our t_misc:wg_rekey test, as far as I can tell, and I haven't put enough thought into how to reliably trigger this race to write a new automatic test for it.) To generate a diff of this commit: cvs rdiff -u -r1.129 -r1.130 src/sys/net/if_wg.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.