3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-26 10:39:23 +01:00

wired: The supplicant always uses PAE group address for transmission

This commit is contained in:
Marcel Holtmann 2018-10-14 07:55:29 +02:00
parent a3c1fa28da
commit da70b2d1c2

View File

@ -65,7 +65,6 @@ struct ethdev {
struct eapol { struct eapol {
struct ethdev *dev; struct ethdev *dev;
uint8_t addr[ETH_ALEN]; uint8_t addr[ETH_ALEN];
bool use_group_addr;
struct eap_state *eap; struct eap_state *eap;
struct l_settings *cred; struct l_settings *cred;
}; };
@ -154,10 +153,11 @@ static void eap_tx_packet(const uint8_t *eap_data, size_t len, void *user_data)
l_put_be16(len, frame + 2); l_put_be16(len, frame + 2);
memcpy(frame + 4, eap_data, len); memcpy(frame + 4, eap_data, len);
if (eapol->use_group_addr) /*
* The supplicant / client always uses the PAE group address for
* sending the EAP packets.
*/
pae_write(eapol->dev, pae_group_addr, frame, len + 4); pae_write(eapol->dev, pae_group_addr, frame, len + 4);
else
pae_write(eapol->dev, eapol->addr, frame, len + 4);
} }
static void eap_complete(enum eap_result result, void *user_data) static void eap_complete(enum eap_result result, void *user_data)
@ -203,7 +203,6 @@ static void rx_packet(struct ethdev *dev, const uint8_t *addr,
eapol = l_new(struct eapol, 1); eapol = l_new(struct eapol, 1);
eapol->dev = dev; eapol->dev = dev;
memcpy(eapol->addr, addr, ETH_ALEN); memcpy(eapol->addr, addr, ETH_ALEN);
eapol->use_group_addr = true;
eapol->eap = eap_new(eap_tx_packet, eapol->eap = eap_new(eap_tx_packet,
eap_complete, eapol); eap_complete, eapol);
if (!eapol->eap) { if (!eapol->eap) {