mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-22 06:29:23 +01:00
wired: use 802.1X-2001 instead of 802.1X-2004
For wired authentication the protocol version used in the EAPOL packets sent by ead is fixed to 802.1X-2004 (2) but some switches implementing only 802.1X-2001 erroneously ignore these packets. As ead only sends EAPOL-Start and EAP-Packet packets and these have not changed between 802.1X-2001 and 802.1X-2004 there should be no reason to use 802.1X-2004. Hence, this changes ead to always use 802.1X-2001 (1) instead. Switches implementing newer versions of 802.1X should not have problems responding to packets using the original version.
This commit is contained in:
parent
6e98d8a888
commit
f0e3defa3e
@ -83,7 +83,7 @@ struct eapol_hdr {
|
|||||||
__be16 pkt_len;
|
__be16 pkt_len;
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
static const uint8_t eapol_start[] = { 0x02, 0x01, 0x00, 0x00 };
|
static const uint8_t eapol_start[] = { 0x01, 0x01, 0x00, 0x00 };
|
||||||
static const uint8_t pae_group_addr[] = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x03 };
|
static const uint8_t pae_group_addr[] = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x03 };
|
||||||
|
|
||||||
static bool pae_write(struct ethdev *dev, const uint8_t *addr,
|
static bool pae_write(struct ethdev *dev, const uint8_t *addr,
|
||||||
@ -149,7 +149,7 @@ static void eap_tx_packet(const uint8_t *eap_data, size_t len, void *user_data)
|
|||||||
struct eapol *eapol = user_data;
|
struct eapol *eapol = user_data;
|
||||||
uint8_t frame[1500];
|
uint8_t frame[1500];
|
||||||
|
|
||||||
l_put_u8(0x02, frame);
|
l_put_u8(0x01, frame);
|
||||||
l_put_u8(0x00, frame + 1);
|
l_put_u8(0x00, frame + 1);
|
||||||
l_put_be16(len, frame + 2);
|
l_put_be16(len, frame + 2);
|
||||||
memcpy(frame + 4, eap_data, len);
|
memcpy(frame + 4, eap_data, len);
|
||||||
|
Loading…
Reference in New Issue
Block a user