1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! IEEE 802.1X Port-Based Network Access Control (EAPOL) AST definitions.
//!
//! Models Extensible Authentication Protocol over LAN (EAPOL, IEEE 802.1X-2020) frames
//! encapsulated directly in Ethernet II with EtherType `0x888E` and default PAE group
//! destination MAC address `01:80:C2:00:00:03`. The 4-byte EAPOL header contains an 8-bit
//! Protocol Version (`0x01` for 802.1X-2001, `0x02` for 802.1X-2004, `0x03` for 802.1X-2010),
//! an 8-bit Packet Type (`0` EAP-Packet, `1` EAPOL-Start, `2` EAPOL-Logoff, `3` EAPOL-Key),
//! and a 16-bit Packet Body Length, followed by the RFC 3748 EAP message body.
//!
//! Canonical `.fasm` syntax:
//! `a -> b EAPOL [VERSION <u8>] [TYPE <EAP_PACKET|START|LOGOFF|KEY>] [EAP_CODE <u8>] [EAP_ID <u8>] [EAP_METHOD <u8>] [IDENTITY "<str>"]`
/// IEEE 802.1X EAPOL 8-bit packet type field (`Packet Type` at offset 1 of the EAPOL header).
/// IEEE 802.1X EAPOL and RFC 3748 EAP frame specification.
///
/// Syntax mapping: `EAPOL [VERSION <u8>] [TYPE <EAP_PACKET | START | LOGOFF | KEY>] [EAP_CODE <u8>] [EAP_ID <u8>] [EAP_METHOD <u8>] [IDENTITY "<str>"]`