]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[eapol] Send EAPoL-Start packets to trigger EAP authentication
authorMichael Brown <mcb30@ipxe.org>
Fri, 15 Sep 2023 15:14:59 +0000 (16:14 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 19 Sep 2023 22:16:58 +0000 (23:16 +0100)
commit8b14652e506d99499cfbeaed0df07d6a83ec029e
treeb9fc3273eebe84d8266faa64cdac9275dc3e133d
parent56cc61a168820c7cbbe23418388129ec11699a8c
[eapol] Send EAPoL-Start packets to trigger EAP authentication

We have no way to force a link-layer restart in iPXE, and therefore no
way to explicitly trigger a restart of EAP authentication.  If an iPXE
script has performed some action that requires such a restart
(e.g. registering a device such that the port VLAN assignment will be
changed), then the only means currently available to effect the
restart is to reboot the whole system.  If iPXE is taking over a
physical link already used by a preceding bootloader, then even a
reboot may not work.

In the EAP model, the supplicant is a pure responder and never
initiates transmissions.  EAPoL extends this to include an EAPoL-Start
packet type that may be sent by the supplicant to (re)trigger EAP.

Add support for sending EAPoL-Start packets at two-second intervals on
links that are open and have reached physical link-up, but for which
EAP has not yet completed.  This allows "ifclose ; ifopen" to be used
to restart the EAP process.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/include/ipxe/eapol.h
src/net/eapol.c