pmk_match = PMK_LEN == pmk_len &&
os_memcmp(psk->psk, pmk, pmk_len) == 0;
sta_match = psk->group == 0 &&
- os_memcmp(sta->addr, psk->addr, ETH_ALEN) == 0;
+ ether_addr_equal(sta->addr, psk->addr);
bss_match = psk->group == 1;
if (pmk_match && (sta_match || bss_match))
struct airtime_sta_weight *wt;
wt = hapd->conf->airtime_weight_list;
- while (wt && os_memcmp(wt->addr, sta, ETH_ALEN) != 0)
+ while (wt && !ether_addr_equal(wt->addr, sta))
wt = wt->next;
return wt ? wt->weight : hapd->conf->airtime_weight;
for (psk = conf->ssid.wpa_psk; psk != NULL; psk = psk->next) {
if (next_ok &&
(psk->group ||
- (addr && os_memcmp(psk->addr, addr, ETH_ALEN) == 0) ||
+ (addr && ether_addr_equal(psk->addr, addr)) ||
(!addr && p2p_dev_addr &&
- os_memcmp(psk->p2p_dev_addr, p2p_dev_addr, ETH_ALEN) ==
- 0))) {
+ ether_addr_equal(psk->p2p_dev_addr, p2p_dev_addr)))) {
if (vlan_id)
*vlan_id = psk->vlan_id;
return psk->psk;
int i = 0;
while (i < *num) {
- if (os_memcmp((*acl)[i].addr, addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal((*acl)[i].addr, addr)) {
os_remove_in_array(*acl, *num, sizeof(**acl), i);
(*num)--;
} else {
struct ap_info *s;
s = iface->ap_hash[STA_HASH(ap)];
- while (s != NULL && os_memcmp(s->addr, ap, ETH_ALEN) != 0)
+ while (s != NULL && !ether_addr_equal(s->addr, ap))
s = s->hnext;
return s;
}
s = iface->ap_hash[STA_HASH(ap->addr)];
if (s == NULL) return;
- if (os_memcmp(s->addr, ap->addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(s->addr, ap->addr)) {
iface->ap_hash[STA_HASH(ap->addr)] = s->hnext;
return;
}
while (s->hnext != NULL &&
- os_memcmp(s->hnext->addr, ap->addr, ETH_ALEN) != 0)
+ !ether_addr_equal(s->hnext->addr, ap->addr))
s = s->hnext;
if (s->hnext != NULL)
s->hnext = s->hnext->hnext;
struct hostapd_sta_info *info;
dl_list_for_each(info, &iface->sta_seen, struct hostapd_sta_info, list)
- if (os_memcmp(addr, info->addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(addr, info->addr))
return info;
return NULL;
else
hessid = elems.interworking + 1 + 2;
if (!is_broadcast_ether_addr(hessid) &&
- os_memcmp(hessid, hapd->conf->hessid, ETH_ALEN) != 0) {
+ !ether_addr_equal(hessid, hapd->conf->hessid)) {
wpa_printf(MSG_MSGDUMP, "Probe Request from " MACSTR
" for mismatching HESSID " MACSTR
" ignored",
}
if (!is_zero_ether_addr(auth->peer_mac_addr) &&
- os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(src, auth->peer_mac_addr)) {
wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
return;
return;
}
- if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(src, auth->peer_mac_addr)) {
wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
return;
return;
}
- if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(src, auth->peer_mac_addr)) {
wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
return;
return;
}
- if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(src, auth->peer_mac_addr)) {
wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
return;
wpa_printf(MSG_DEBUG, "DPP: GAS request from " MACSTR, MAC2STR(sa));
if (!auth || (!auth->auth_success && !auth->reconfig_success) ||
- os_memcmp(sa, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(sa, auth->peer_mac_addr)) {
#ifdef CONFIG_DPP2
if (dpp_relay_rx_gas_req(hapd->iface->interfaces->dpp, sa, data,
data_len) == 0) {
if (is_multicast_ether_addr(addr) ||
is_zero_ether_addr(addr) ||
- os_memcmp(addr, hapd->own_addr, ETH_ALEN) == 0) {
+ ether_addr_equal(addr, hapd->own_addr)) {
/* Do not process any frames with unexpected/invalid SA so that
* we do not add any state for unexpected STA addresses or end
* up sending out frames to unexpected destination. */
return HAPD_BROADCAST;
for (i = 0; i < iface->num_bss; i++) {
- if (os_memcmp(bssid, iface->bss[i]->own_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(bssid, iface->bss[i]->own_addr))
return iface->bss[i];
}
#ifdef CONFIG_IEEE80211BE
if (hapd->conf->mld_ap &&
- os_memcmp(hapd->mld_addr, bssid, ETH_ALEN) == 0)
+ ether_addr_equal(hapd->mld_addr, bssid))
is_mld = true;
#endif /* CONFIG_IEEE80211BE */
hapd = tmp_hapd;
#ifdef CONFIG_IEEE80211BE
} else if (hapd->conf->mld_ap &&
- os_memcmp(hapd->mld_addr, get_hdr_bssid(hdr, len),
- ETH_ALEN) == 0) {
+ ether_addr_equal(hapd->mld_addr, get_hdr_bssid(hdr, len))) {
/* AP MLD address match - use hapd pointer as-is */
#endif /* CONFIG_IEEE80211BE */
} else {
" src=" MACSTR " len=%u)",
MAC2STR(sta->addr), MAC2STR(pos), MAC2STR(pos + ETH_ALEN),
(unsigned int) len);
- if (os_memcmp(sta->addr, pos + ETH_ALEN, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(sta->addr, pos + ETH_ALEN)) {
wpa_printf(MSG_DEBUG,
"FILS: Ignore HLP request with unexpected source address"
MACSTR, MAC2STR(pos + ETH_ALEN));
{
struct gas_query_pending *q;
dl_list_for_each(q, &gas->pending, struct gas_query_pending, list) {
- if (os_memcmp(q->addr, addr, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(q->addr, addr) &&
q->dialog_token == dialog_token)
return q;
}
wpa_printf(MSG_DEBUG, "GAS: TX status: dst=" MACSTR
" ok=%d query=%p dialog_token=%u dur=%d ms",
MAC2STR(dst), ok, query, query->dialog_token, dur);
- if (os_memcmp(dst, query->addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(dst, query->addr)) {
wpa_printf(MSG_DEBUG, "GAS: TX status for unexpected destination");
return;
}
{
struct gas_query_pending *q;
dl_list_for_each(q, &gas->pending, struct gas_query_pending, list) {
- if (os_memcmp(dst, q->addr, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(dst, q->addr) &&
dialog_token == q->dialog_token)
return 0;
}
for (pw = hapd->conf->sae_passwords; pw; pw = pw->next) {
if (!is_broadcast_ether_addr(pw->peer_addr) &&
(!sta ||
- os_memcmp(pw->peer_addr, sta->addr, ETH_ALEN) != 0))
+ !ether_addr_equal(pw->peer_addr, sta->addr)))
continue;
if ((rx_id && !pw->identifier) || (!rx_id && pw->identifier))
continue;
dl_list_for_each(q2, &hapd->sae_commit_queue,
struct hostapd_sae_commit_queue, list) {
mgmt2 = (const struct ieee80211_mgmt *) q2->msg;
- if (os_memcmp(mgmt->sa, mgmt2->sa, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(mgmt->sa, mgmt2->sa) &&
mgmt->u.auth.auth_transaction ==
mgmt2->u.auth.auth_transaction) {
wpa_printf(MSG_DEBUG,
dl_list_for_each(q, &hapd->sae_commit_queue,
struct hostapd_sae_commit_queue, list) {
mgmt = (const struct ieee80211_mgmt *) q->msg;
- if (os_memcmp(addr, mgmt->sa, ETH_ALEN) == 0)
+ if (ether_addr_equal(addr, mgmt->sa))
return 1;
}
return -1;
}
- if (os_memcmp(entry->own_addr, own_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(entry->own_addr, own_addr)) {
wpa_printf(MSG_DEBUG,
"PASN: own addr " MACSTR " and PTKSA entry own addr "
MACSTR " differ",
goto fail;
}
- if (os_memcmp(mgmt->sa, hapd->own_addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(mgmt->sa, hapd->own_addr)) {
wpa_printf(MSG_INFO, "Station " MACSTR " not allowed to authenticate",
MAC2STR(sa));
resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
}
if (mld_sta &&
- (os_memcmp(sa, hapd->own_addr, ETH_ALEN) == 0 ||
- os_memcmp(sa, hapd->mld_addr, ETH_ALEN) == 0)) {
+ (ether_addr_equal(sa, hapd->own_addr) ||
+ ether_addr_equal(sa, hapd->mld_addr))) {
wpa_printf(MSG_INFO,
"Station " MACSTR " not allowed to authenticate",
MAC2STR(sa));
if (is_multicast_ether_addr(mgmt->sa) ||
is_zero_ether_addr(mgmt->sa) ||
- os_memcmp(mgmt->sa, hapd->own_addr, ETH_ALEN) == 0) {
+ ether_addr_equal(mgmt->sa, hapd->own_addr)) {
/* Do not process any frames with unexpected/invalid SA so that
* we do not add any state for unexpected STA addresses or end
* up sending out frames to unexpected destination. */
#endif /* CONFIG_MESH */
#ifdef CONFIG_IEEE80211BE
!(hapd->conf->mld_ap &&
- os_memcmp(hapd->mld_addr, mgmt->bssid, ETH_ALEN) == 0) &&
+ ether_addr_equal(hapd->mld_addr, mgmt->bssid)) &&
#endif /* CONFIG_IEEE80211BE */
- os_memcmp(mgmt->bssid, hapd->own_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(mgmt->bssid, hapd->own_addr)) {
wpa_printf(MSG_INFO, "MGMT: BSSID=" MACSTR " not our address",
MAC2STR(mgmt->bssid));
return 0;
stype != WLAN_FC_STYPE_ACTION) &&
#ifdef CONFIG_IEEE80211BE
!(hapd->conf->mld_ap &&
- os_memcmp(hapd->mld_addr, mgmt->bssid, ETH_ALEN) == 0) &&
+ ether_addr_equal(hapd->mld_addr, mgmt->bssid)) &&
#endif /* CONFIG_IEEE80211BE */
- os_memcmp(mgmt->da, hapd->own_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(mgmt->da, hapd->own_addr)) {
hostapd_logger(hapd, mgmt->sa, HOSTAPD_MODULE_IEEE80211,
HOSTAPD_LEVEL_DEBUG,
"MGMT: DA=" MACSTR " not our address",
wpa_printf(MSG_DEBUG, "Data/PS-poll frame from not associated STA "
MACSTR, MAC2STR(src));
if (is_multicast_ether_addr(src) || is_zero_ether_addr(src) ||
- os_memcmp(src, hapd->own_addr, ETH_ALEN) == 0) {
+ ether_addr_equal(src, hapd->own_addr)) {
/* Broadcast bit set in SA or unexpected SA?! Ignore the frame
* silently. */
return;
os_get_reltime(&now);
for (entry = hapd->acl_cache; entry; entry = entry->next) {
- if (os_memcmp(entry->addr, addr, ETH_ALEN) != 0)
+ if (!ether_addr_equal(entry->addr, addr))
continue;
if (os_reltime_expired(&now, &entry->timestamp,
query = hapd->acl_queries;
while (query) {
- if (os_memcmp(query->addr, addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(query->addr, addr)) {
/* pending query in RADIUS retransmit queue;
* do not generate a new one */
return HOSTAPD_ACL_PENDING;
info->common_info.eml_capa, info->common_info.mld_capa);
/* Check the MLD MAC Address */
- if (os_memcmp(info->common_info.mld_addr, common_info->mld_addr,
- ETH_ALEN) != 0) {
+ if (!ether_addr_equal(info->common_info.mld_addr,
+ common_info->mld_addr)) {
wpa_printf(MSG_DEBUG,
"MLD: MLD address mismatch between authentication ("
MACSTR ") and association (" MACSTR ")",
dl_list_for_each(nr, &hapd->nr_db, struct hostapd_neighbor_entry,
list) {
- if (os_memcmp(bssid, nr->bssid, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(bssid, nr->bssid) &&
(!ssid ||
(ssid->ssid_len == nr->ssid.ssid_len &&
os_memcmp(ssid->ssid, nr->ssid.ssid,
for (entry = pmksa->pmkid[PMKID_HASH(pmkid)]; entry;
entry = entry->hnext) {
if ((spa == NULL ||
- os_memcmp(entry->spa, spa, ETH_ALEN) == 0) &&
+ ether_addr_equal(entry->spa, spa)) &&
os_memcmp(entry->pmkid, pmkid, PMKID_LEN) == 0)
return entry;
}
} else {
for (entry = pmksa->pmksa; entry; entry = entry->next) {
if (spa == NULL ||
- os_memcmp(entry->spa, spa, ETH_ALEN) == 0)
+ ether_addr_equal(entry->spa, spa))
return entry;
}
}
u8 new_pmkid[PMKID_LEN];
for (entry = pmksa->pmksa; entry; entry = entry->next) {
- if (os_memcmp(entry->spa, spa, ETH_ALEN) != 0)
+ if (!ether_addr_equal(entry->spa, spa))
continue;
if (wpa_key_mgmt_sae(entry->akmp) ||
wpa_key_mgmt_fils(entry->akmp)) {
int match = 0;
if (attr->sta_addr) {
- if (os_memcmp(attr->sta_addr, entry->spa, ETH_ALEN) != 0)
+ if (!ether_addr_equal(attr->sta_addr, entry->spa))
return 0;
match++;
}
* <BSSID> <PMKID> <PMK> <expiration in seconds>
*/
for (entry = pmksa->pmksa; entry; entry = entry->next) {
- if (addr && os_memcmp(entry->spa, addr, ETH_ALEN) != 0)
+ if (addr && !ether_addr_equal(entry->spa, addr))
continue;
ret = os_snprintf(pos, end - pos, MACSTR " ",
ethhdr = (struct l2_ethhdr *) buf;
hdr = (struct ieee802_1x_hdr *) (ethhdr + 1);
- if (os_memcmp(ethhdr->h_dest, hapd->own_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(ethhdr->h_dest, hapd->own_addr)) {
wpa_printf(MSG_DEBUG, "RSN: pre-auth for foreign address "
MACSTR, MAC2STR(ethhdr->h_dest));
return;
if (p2p_dev_addr == NULL)
continue;
- if (os_memcmp(p2p_dev_addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(p2p_dev_addr, addr))
return sta;
}
}
while (s->hnext != NULL &&
- os_memcmp(s->hnext->addr, sta->addr, ETH_ALEN) != 0)
+ !ether_addr_equal(s->hnext->addr, sta->addr))
s = s->hnext;
if (s->hnext != NULL)
s->hnext = s->hnext->hnext;
for (tmp_sta = tmp_hapd->sta_list; tmp_sta;
tmp_sta = tmp_sta->next) {
if (tmp_sta == sta ||
- os_memcmp(tmp_sta->addr, sta->addr, ETH_ALEN) != 0)
+ !ether_addr_equal(tmp_sta->addr, sta->addr))
continue;
ap_free_sta(tmp_hapd, tmp_sta);
/* MLD MAC address must be the same */
if (!kde->mac_addr ||
- os_memcmp(kde->mac_addr, sm->peer_mld_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(kde->mac_addr, sm->peer_mld_addr)) {
wpa_printf(MSG_DEBUG, "RSN: MLD: Invalid MLD address");
return -1;
}
return -1;
}
- if (os_memcmp(sm->mld_links[i].peer_addr, kde->mlo_link[i] + 1,
- ETH_ALEN) != 0) {
+ if (!ether_addr_equal(sm->mld_links[i].peer_addr,
+ kde->mlo_link[i] + 1)) {
wpa_printf(MSG_DEBUG,
"RSN: MLD: invalid MAC address=" MACSTR
" expected " MACSTR " (link ID %u)",
/* MLD MAC address must be the same */
if (!kde.mac_addr ||
- os_memcmp(kde.mac_addr, sm->peer_mld_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(kde.mac_addr, sm->peer_mld_addr)) {
wpa_printf(MSG_DEBUG,
"MLD: Mismatching or missing MLD address in EAPOL-Key msg 4/4");
return -1;
os_get_reltime(&now);
dl_list_for_each(r0, &cache->pmk_r0, struct wpa_ft_pmk_r0_sa, list) {
- if (os_memcmp(r0->spa, spa, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(r0->spa, spa) &&
os_memcmp_const(r0->pmk_r0_name, pmk_r0_name,
WPA_PMK_NAME_LEN) == 0) {
*r0_out = r0;
os_get_reltime(&now);
dl_list_for_each(r1, &cache->pmk_r1, struct wpa_ft_pmk_r1_sa, list) {
- if (os_memcmp(r1->spa, spa, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(r1->spa, spa) &&
os_memcmp_const(r1->pmk_r1_name, pmk_r1_name,
WPA_PMK_NAME_LEN) == 0) {
os_memcpy(pmk_r1, r1->pmk_r1, r1->pmk_r1_len);
sm->r0kh_id, sm->r0kh_id_len);
return -1;
}
- if (os_memcmp(r0kh->addr, sm->wpa_auth->addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(r0kh->addr, sm->wpa_auth->addr)) {
wpa_printf(MSG_DEBUG,
"FT: R0KH-ID points to self - no matching key available");
return -1;
" Target AP=" MACSTR " Action=%d)",
MAC2STR(sta_addr), MAC2STR(target_ap), action);
- if (os_memcmp(sta_addr, sm->addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(sta_addr, sm->addr)) {
wpa_printf(MSG_DEBUG, "FT: Mismatch in FT Action STA address: "
"STA=" MACSTR " STA-Address=" MACSTR,
MAC2STR(sm->addr), MAC2STR(sta_addr));
* APs in the MD (if such a list were configured).
*/
if ((target_ap[0] & 0x01) ||
- os_memcmp(target_ap, sm->wpa_auth->addr, ETH_ALEN) == 0) {
+ ether_addr_equal(target_ap, sm->wpa_auth->addr)) {
wpa_printf(MSG_DEBUG, "FT: Invalid Target AP in FT Action "
"frame");
return -1;
seq_ret = wpa_ft_rrb_seq_chk(r1kh->seq, src_addr, enc, enc_len,
auth, auth_len, msgtype, no_defer);
if (!no_defer && r1kh_wildcard &&
- (!r1kh || os_memcmp(r1kh->addr, src_addr, ETH_ALEN) != 0)) {
+ (!r1kh || !ether_addr_equal(r1kh->addr, src_addr))) {
/* wildcard: r1kh-id unknown or changed addr -> do a seq req */
seq_ret = FT_RRB_SEQ_DEFER;
}
cb ? 0 : 1);
}
if (cb && r0kh_wildcard &&
- (!r0kh || os_memcmp(r0kh->addr, src_addr, ETH_ALEN) != 0)) {
+ (!r0kh || !ether_addr_equal(r0kh->addr, src_addr))) {
/* wildcard: r0kh-id unknown or changed addr -> do a seq req */
seq_ret = FT_RRB_SEQ_DEFER;
}
struct ft_get_sta_ctx *info = ctx;
if ((info->s1kh_id &&
- os_memcmp(info->s1kh_id, sm->addr, ETH_ALEN) != 0) ||
+ !ether_addr_equal(info->s1kh_id, sm->addr)) ||
os_memcmp(info->nonce, sm->ft_pending_pull_nonce,
FT_RRB_NONCE_LEN) != 0 ||
sm->ft_pending_cb == NULL || sm->ft_pending_req_ies == NULL)
wpa_ft_rrb_lookup_r0kh(wpa_auth, f_r0kh_id, f_r0kh_id_len,
&r0kh, &r0kh_wildcard);
if (!r0kh_wildcard &&
- (!r0kh || os_memcmp(r0kh->addr, src_addr, ETH_ALEN) != 0)) {
+ (!r0kh || !ether_addr_equal(r0kh->addr, src_addr))) {
wpa_hexdump(MSG_DEBUG, "FT: Did not find R0KH-ID",
f_r0kh_id, f_r0kh_id_len);
goto out;
wpa_ft_rrb_lookup_r1kh(wpa_auth, f_r1kh_id, &r1kh,
&r1kh_wildcard);
if (!r1kh_wildcard &&
- (!r1kh || os_memcmp(r1kh->addr, src_addr, ETH_ALEN) != 0)) {
+ (!r1kh || !ether_addr_equal(r1kh->addr, src_addr))) {
wpa_hexdump(MSG_DEBUG, "FT: Did not find R1KH-ID",
f_r1kh_id, FT_R1KH_ID_LEN);
goto out;
return -1;
}
- if (os_memcmp(target_ap_addr, wpa_auth->addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(target_ap_addr, wpa_auth->addr)) {
wpa_printf(MSG_DEBUG, "FT: Target AP address in the "
"RRB Request does not match with own "
"address");
return;
dl_list_for_each(r0, &cache->pmk_r0, struct wpa_ft_pmk_r0_sa, list) {
- if (os_memcmp(r0->spa, addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(r0->spa, addr)) {
r0found = r0;
break;
}
hapd = iface->bss[j];
if (hapd == idata->src_hapd ||
!hapd->wpa_auth ||
- os_memcmp(hapd->own_addr, idata->dst, ETH_ALEN) != 0)
+ !ether_addr_equal(hapd->own_addr, idata->dst))
continue;
wpa_printf(MSG_DEBUG,
MOBILITY_DOMAIN_ID_LEN) != 0)
continue; /* no matching FT SSID/mobility domain */
if (!is_multicast_ether_addr(idata->dst_addr) &&
- os_memcmp(hapd->own_addr, idata->dst_addr, ETH_ALEN) != 0)
+ !ether_addr_equal(hapd->own_addr, idata->dst_addr))
continue; /* destination address does not match */
/* defer eth_p_oui_deliver until next eloop step as this is
wpa_printf(MSG_DEBUG, "FT: RRB received packet " MACSTR " -> "
MACSTR, MAC2STR(ethhdr->h_source), MAC2STR(ethhdr->h_dest));
if (!is_multicast_ether_addr(ethhdr->h_dest) &&
- os_memcmp(hapd->own_addr, ethhdr->h_dest, ETH_ALEN) != 0)
+ !ether_addr_equal(hapd->own_addr, ethhdr->h_dest))
return;
wpa_ft_rrb_rx(hapd->wpa_auth, ethhdr->h_source, buf + sizeof(*ethhdr),
len - sizeof(*ethhdr));
wpa_printf(MSG_DEBUG, "FT: RRB received packet " MACSTR " -> "
MACSTR, MAC2STR(src_addr), MAC2STR(dst_addr));
if (!is_multicast_ether_addr(dst_addr) &&
- os_memcmp(hapd->own_addr, dst_addr, ETH_ALEN) != 0)
+ !ether_addr_equal(hapd->own_addr, dst_addr))
return;
wpa_ft_rrb_oui_rx(hapd->wpa_auth, src_addr, dst_addr, oui_suffix, buf,
len);
any_psk = wpa_psk->psk;
if (mac_addr && !dev_psk &&
- os_memcmp(mac_addr, wpa_psk->addr, ETH_ALEN) == 0) {
+ ether_addr_equal(mac_addr, wpa_psk->addr)) {
dev_psk = wpa_psk->psk;
break;
}
struct dpp_connection *conn;
dl_list_for_each(conn, &ctrl->conn, struct dpp_connection, list) {
- if (os_memcmp(src, conn->mac_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(src, conn->mac_addr))
return conn;
if ((type == DPP_PA_PKEX_EXCHANGE_RESP ||
type == DPP_PA_AUTHENTICATION_RESP) &&
struct dpp_connection *conn;
dl_list_for_each(conn, &ctrl->conn, struct dpp_connection, list) {
- if (os_memcmp(src, conn->mac_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(src, conn->mac_addr))
return conn;
}
dl_list_for_each(response, &gas->responses, struct gas_server_response,
list) {
if (response->dialog_token != dialog_token ||
- os_memcmp(sa, response->dst, ETH_ALEN) != 0)
+ !ether_addr_equal(sa, response->dst))
continue;
gas_server_handle_rx_comeback_req(response);
return 0;
dl_list_for_each(response, &gas->responses, struct gas_server_response,
list) {
if (response->dialog_token != dialog_token ||
- os_memcmp(dst, response->dst, ETH_ALEN) != 0)
+ !ether_addr_equal(dst, response->dst))
continue;
gas_server_handle_tx_status(response, ack);
return;
return NULL;
dl_list_for_each(e, &ptksa->ptksa, struct ptksa_cache_entry, list) {
- if ((!addr || os_memcmp(e->addr, addr, ETH_ALEN) == 0) &&
+ if ((!addr || ether_addr_equal(e->addr, addr)) &&
(cipher == WPA_CIPHER_NONE || cipher == e->cipher))
return e;
}
dl_list_for_each_safe(e, next, &ptksa->ptksa, struct ptksa_cache_entry,
list) {
- if ((!addr || os_memcmp(e->addr, addr, ETH_ALEN) == 0) &&
+ if ((!addr || ether_addr_equal(e->addr, addr)) &&
(cipher == WPA_CIPHER_NONE || cipher == e->cipher)) {
wpa_printf(MSG_DEBUG,
"Flush PTKSA cache entry for " MACSTR,
&stats, sizeof(stats))) {
wpa_printf(MSG_DEBUG, "%s: Failed to fetch STA stats (addr "
MACSTR ")", __func__, MAC2STR(addr));
- if (os_memcmp(addr, drv->acct_mac, ETH_ALEN) == 0) {
+ if (ether_addr_equal(addr, drv->acct_mac)) {
os_memcpy(data, &drv->acct_data, sizeof(*data));
return 0;
}
}
if (stype == WLAN_FC_STYPE_ACTION &&
- (os_memcmp(drv->own_addr, mgmt->bssid, ETH_ALEN) == 0 ||
+ (ether_addr_equal(drv->own_addr, mgmt->bssid) ||
is_broadcast_ether_addr(mgmt->bssid))) {
os_memset(&event, 0, sizeof(event));
event.rx_mgmt.frame = buf;
return;
}
- if (os_memcmp(drv->own_addr, mgmt->bssid, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(drv->own_addr, mgmt->bssid)) {
wpa_printf(MSG_DEBUG, "%s: BSSID does not match - ignore",
__func__);
return;
no_ie:
drv_event_assoc(hapd, addr, iebuf, ielen, NULL, 0, NULL, -1, 0);
- if (os_memcmp(addr, drv->acct_mac, ETH_ALEN) == 0) {
+ if (ether_addr_equal(addr, drv->acct_mac)) {
/* Cached accounting data is not valid anymore. */
os_memset(drv->acct_mac, 0, ETH_ALEN);
os_memset(&drv->acct_data, 0, sizeof(drv->acct_data));
prev = NULL;
entry = drv->pmkid;
while (entry) {
- if (os_memcmp(entry->bssid, bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(entry->bssid, bssid))
break;
prev = entry;
entry = entry->next;
entry = drv->pmkid;
prev = NULL;
while (entry) {
- if (os_memcmp(entry->bssid, bssid, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(entry->bssid, bssid) &&
os_memcmp(entry->pmkid, pmkid, 16) == 0) {
if (prev)
prev->next = entry->next;
pos = (char *) &b->Bssid[0];
for (i = 0; i < b->NumberOfItems; i++) {
NDIS_WLAN_BSSID_EX *bss = (NDIS_WLAN_BSSID_EX *) pos;
- if (os_memcmp(drv->bssid, bss->MacAddress, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(drv->bssid, bss->MacAddress) &&
bss->IELength > sizeof(NDIS_802_11_FIXED_IEs)) {
data.assoc_info.beacon_ies =
((u8 *) bss->IEs) +
}
} else {
/* Connected */
- if (os_memcmp(drv->bssid, bssid, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(drv->bssid, bssid)) {
os_memcpy(drv->bssid, bssid, ETH_ALEN);
wpa_driver_ndis_get_associnfo(drv);
wpa_supplicant_event(drv->ctx, EVENT_ASSOC, NULL);
wpa_printf(MSG_DEBUG,
"nl80211: %s: failed to re-read MAC address",
bss->ifname);
- } else if (bss && os_memcmp(addr, bss->addr, ETH_ALEN) != 0) {
+ } else if (bss && !ether_addr_equal(addr, bss->addr)) {
wpa_printf(MSG_DEBUG,
"nl80211: Own MAC address on ifindex %d (%s) changed from "
MACSTR " to " MACSTR,
size_t i;
for (i = 0; i < bss->n_links; i++) {
- if (os_memcmp(bss->links[i].addr, addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(bss->links[i].addr, addr)) {
wpa_printf(MSG_DEBUG,
"nl80211: Use link freq=%d for address "
MACSTR,
struct wpa_driver_nl80211_data *drv;
dl_list_for_each(drv, &global->interfaces,
struct wpa_driver_nl80211_data, list) {
- if (os_memcmp(addr, drv->first_bss->addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(addr, drv->first_bss->addr))
return 1;
}
return 0;
os_memcpy(hdr->addr2, src, ETH_ALEN);
os_memcpy(hdr->addr3, bssid, ETH_ALEN);
- if (os_memcmp(bss->addr, src, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(bss->addr, src)) {
wpa_printf(MSG_DEBUG, "nl80211: Use random TA " MACSTR,
MAC2STR(src));
os_memcpy(bss->rand_addr, src, ETH_ALEN);
wpa_printf(MSG_DEBUG, "nl80211: AP MLD address " MACSTR
" received in link reconfig event", MAC2STR(ap_mld));
if (!drv->sta_mlo_info.valid_links ||
- os_memcmp(drv->sta_mlo_info.ap_mld_addr, ap_mld, ETH_ALEN) != 0) {
+ !ether_addr_equal(drv->sta_mlo_info.ap_mld_addr, ap_mld)) {
if (drv->pending_link_reconfig_data == data) {
wpa_printf(MSG_DEBUG,
"nl80211: Drop pending link reconfig event since AP MLD not matched even after new connect/roam event");
wpa_printf(MSG_DEBUG, "nl80211: AP MLD address " MACSTR
" received in TID to link mapping event", MAC2STR(ap_mld));
if (!drv->sta_mlo_info.valid_links ||
- os_memcmp(drv->sta_mlo_info.ap_mld_addr, ap_mld, ETH_ALEN) != 0) {
+ !ether_addr_equal(drv->sta_mlo_info.ap_mld_addr, ap_mld)) {
if (drv->pending_t2lm_data == data) {
wpa_printf(MSG_DEBUG,
"nl80211: Drop pending TID-to-link mapping event since AP MLD not matched even after new connect/roam event");
if (drv->ignore_next_local_disconnect) {
drv->ignore_next_local_disconnect = 0;
if (!event.assoc_reject.bssid ||
- (os_memcmp(event.assoc_reject.bssid,
- drv->auth_attempt_bssid,
- ETH_ALEN) != 0)) {
+ !ether_addr_equal(event.assoc_reject.bssid,
+ drv->auth_attempt_bssid)) {
/*
* Ignore the event that came without a BSSID or
* for the old connection since this is likely
if ((drv->capa.flags & WPA_DRIVER_FLAGS_SME) &&
!drv->associated &&
- os_memcmp(bssid, drv->auth_bssid, ETH_ALEN) != 0 &&
- os_memcmp(bssid, drv->auth_attempt_bssid, ETH_ALEN) != 0 &&
- os_memcmp(bssid, drv->prev_bssid, ETH_ALEN) == 0) {
+ !ether_addr_equal(bssid, drv->auth_bssid) &&
+ !ether_addr_equal(bssid, drv->auth_attempt_bssid) &&
+ ether_addr_equal(bssid, drv->prev_bssid)) {
/*
* Avoid issues with some roaming cases where
* disconnection event for the old AP may show up after
* ignore_next_local_deauth as well, to avoid next local
* deauth event be wrongly ignored.
*/
- if (os_memcmp(mgmt->sa, drv->first_bss->addr,
- ETH_ALEN) == 0 ||
+ if (ether_addr_equal(mgmt->sa, drv->first_bss->addr) ||
(!is_zero_ether_addr(drv->first_bss->prev_addr) &&
- os_memcmp(mgmt->sa, drv->first_bss->prev_addr,
- ETH_ALEN) == 0)) {
+ ether_addr_equal(mgmt->sa,
+ drv->first_bss->prev_addr))) {
wpa_printf(MSG_DEBUG,
"nl80211: Received a locally generated deauth event. Clear ignore_next_local_deauth flag");
drv->ignore_next_local_deauth = 0;
if (!(drv->capa.flags & WPA_DRIVER_FLAGS_SME) &&
drv->connect_reassoc && drv->associated &&
- os_memcmp(bssid, drv->prev_bssid, ETH_ALEN) == 0 &&
- os_memcmp(bssid, drv->auth_attempt_bssid, ETH_ALEN) != 0) {
+ ether_addr_equal(bssid, drv->prev_bssid) &&
+ !ether_addr_equal(bssid, drv->auth_attempt_bssid)) {
/*
* Avoid issues with some roaming cases where
* disconnection event for the old AP may show up after
}
if (drv->associated != 0 &&
- os_memcmp(bssid, drv->bssid, ETH_ALEN) != 0 &&
- os_memcmp(bssid, drv->auth_bssid, ETH_ALEN) != 0) {
+ !ether_addr_equal(bssid, drv->bssid) &&
+ !ether_addr_equal(bssid, drv->auth_bssid)) {
/*
* We have presumably received this deauth as a
* response to a clear_state_mismatch() outgoing
if (type == EVENT_DISASSOC) {
event.disassoc_info.locally_generated =
- !os_memcmp(mgmt->sa, drv->first_bss->addr, ETH_ALEN);
+ ether_addr_equal(mgmt->sa, drv->first_bss->addr);
event.disassoc_info.addr = bssid;
event.disassoc_info.reason_code = reason_code;
if (frame + len > mgmt->u.disassoc.variable) {
}
} else {
event.deauth_info.locally_generated =
- !os_memcmp(mgmt->sa, drv->first_bss->addr, ETH_ALEN);
+ ether_addr_equal(mgmt->sa, drv->first_bss->addr);
if (drv->ignore_deauth_event) {
wpa_printf(MSG_DEBUG, "nl80211: Ignore deauth event due to previous forced deauth-during-auth");
drv->ignore_deauth_event = 0;
bss->ifname);
} else if (cmd != NL80211_CMD_FRAME_TX_STATUS &&
!(data[4] & 0x01) &&
- os_memcmp(bss->addr, data + 4, ETH_ALEN) != 0 &&
+ !ether_addr_equal(bss->addr, data + 4) &&
(is_zero_ether_addr(bss->rand_addr) ||
- os_memcmp(bss->rand_addr, data + 4, ETH_ALEN) != 0) &&
- os_memcmp(bss->addr, data + 4 + ETH_ALEN, ETH_ALEN) != 0 &&
+ !ether_addr_equal(bss->rand_addr, data + 4)) &&
+ !ether_addr_equal(bss->addr, data + 4 + ETH_ALEN) &&
(is_zero_ether_addr(drv->first_bss->prev_addr) ||
- os_memcmp(bss->prev_addr, data + 4 + ETH_ALEN,
- ETH_ALEN) != 0) &&
+ !ether_addr_equal(bss->prev_addr, data + 4 + ETH_ALEN)) &&
(!mld_link ||
- os_memcmp(mld_link->addr, data + 4, ETH_ALEN) != 0)) {
+ !ether_addr_equal(mld_link->addr, data + 4))) {
wpa_printf(MSG_MSGDUMP, "nl80211: %s: Ignore MLME frame event "
"for foreign address", bss->ifname);
return;
connected_addr = drv->sta_mlo_info.valid_links ?
drv->sta_mlo_info.ap_mld_addr : drv->bssid;
- if (os_memcmp(addr, connected_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(addr, connected_addr)) {
wpa_printf(MSG_DEBUG,
"nl80211: Ignore port authorized event for "
MACSTR " (not the currently connected BSSID "
"nl80211: Local state (not associated) does not match with BSS state");
clear_state_mismatch(drv, r->bssid);
} else if (is_sta_interface(drv->nlmode) &&
- os_memcmp(drv->bssid, r->bssid, ETH_ALEN) != 0) {
+ !ether_addr_equal(drv->bssid, r->bssid)) {
wpa_printf(MSG_DEBUG,
"nl80211: Local state (associated with " MACSTR
") does not match with BSS state",
MAC2STR(drv->bssid));
- if (os_memcmp(drv->sta_mlo_info.ap_mld_addr, drv->bssid,
- ETH_ALEN) != 0) {
+ if (!ether_addr_equal(drv->sta_mlo_info.ap_mld_addr,
+ drv->bssid)) {
clear_state_mismatch(drv, r->bssid);
if (!is_zero_ether_addr(drv->sta_mlo_info.ap_mld_addr))
struct wpa_driver_roboswitch_data *drv = priv;
if (len > 14 && WPA_GET_BE16(buf + 12) == ETH_P_EAPOL &&
- os_memcmp(buf, drv->own_addr, ETH_ALEN) == 0)
+ ether_addr_equal(buf, drv->own_addr))
drv_event_eapol_rx(drv->ctx, src_addr, buf + 14, len - 14);
}
MAC2STR((u8 *) iwe->u.ap_addr.sa_data));
if (is_zero_ether_addr(
(const u8 *) iwe->u.ap_addr.sa_data) ||
- os_memcmp(iwe->u.ap_addr.sa_data,
- "\x44\x44\x44\x44\x44\x44", ETH_ALEN) ==
- 0) {
+ ether_addr_equal((const u8 *)
+ iwe->u.ap_addr.sa_data,
+ (const u8 *)
+ "\x44\x44\x44\x44\x44\x44")) {
os_free(drv->assoc_req_ies);
drv->assoc_req_ies = NULL;
os_free(drv->assoc_resp_ies);
cur_mbie, this_band_id);
if (!this_peer_addr)
continue;
- if (os_memcmp(this_peer_addr, peer_addr, ETH_ALEN) ==
- 0) {
+ if (ether_addr_equal(this_peer_addr, peer_addr)) {
os_memcpy(other_peer_addr, cur_peer_addr,
ETH_ALEN);
return other_iface;
const u8 *a = fst_iface_get_peer_first(iface, &ctx, mb_only);
for (; a != NULL; a = fst_iface_get_peer_next(iface, &ctx, mb_only))
- if (os_memcmp(addr, a, ETH_ALEN) == 0)
+ if (ether_addr_equal(addr, a))
return true;
return false;
foreach_fst_session(s) {
if (s->group == g &&
- (os_memcmp(s->data.old_peer_addr, peer_addr,
- ETH_ALEN) == 0 ||
- os_memcmp(s->data.new_peer_addr, peer_addr,
- ETH_ALEN) == 0) &&
+ (ether_addr_equal(s->data.old_peer_addr, peer_addr) ||
+ ether_addr_equal(s->data.new_peer_addr, peer_addr)) &&
fst_session_is_in_progress(s))
return s;
}
* authorization has been completed (in dormant state).
*/
if (l2->num_rx_br <= 1 &&
- (os_memcmp(eth->h_dest, l2->own_addr, ETH_ALEN) == 0 ||
+ (ether_addr_equal(eth->h_dest, l2->own_addr) ||
is_multicast_ether_addr(eth->h_dest))) {
wpa_printf(MSG_DEBUG,
"l2_packet_receive: Main packet socket for %s seems to have working RX - close workaround bridge socket",
wpa_printf(MSG_DEBUG, "%s: src=" MACSTR " len=%d",
__func__, MAC2STR(ll.sll_addr), (int) res);
- if (os_memcmp(ll.sll_addr, l2->own_addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(ll.sll_addr, l2->own_addr)) {
wpa_printf(MSG_DEBUG, "%s: Drop RX of own frame", __func__);
return;
}
{
struct p2p_device *dev;
dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
- if (os_memcmp(dev->info.p2p_device_addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(dev->info.p2p_device_addr, addr))
return dev;
}
return NULL;
{
struct p2p_device *dev;
dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
- if (os_memcmp(dev->interface_addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(dev->interface_addr, addr))
return dev;
}
return NULL;
* group, the information will be restored in the loop following this.
*/
dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
- if (os_memcmp(dev->member_in_go_iface, go_interface_addr,
- ETH_ALEN) == 0) {
+ if (ether_addr_equal(dev->member_in_go_iface,
+ go_interface_addr)) {
os_memset(dev->member_in_go_iface, 0, ETH_ALEN);
os_memset(dev->member_in_go_dev, 0, ETH_ALEN);
}
for (c = 0; c < info.num_clients; c++) {
struct p2p_client_info *cli = &info.client[c];
- if (os_memcmp(cli->p2p_device_addr, p2p->cfg->dev_addr,
- ETH_ALEN) == 0)
+ if (ether_addr_equal(cli->p2p_device_addr, p2p->cfg->dev_addr))
continue; /* ignore our own entry */
dev = p2p_get_device(p2p, cli->p2p_device_addr);
if (dev) {
}
if (!is_zero_ether_addr(p2p->peer_filter) &&
- os_memcmp(p2p_dev_addr, p2p->peer_filter, ETH_ALEN) != 0) {
+ !ether_addr_equal(p2p_dev_addr, p2p->peer_filter)) {
p2p_dbg(p2p, "Do not add peer filter for " MACSTR
" due to peer filter", MAC2STR(p2p_dev_addr));
p2p_parse_free(&msg);
dev->flags &= ~(P2P_DEV_PROBE_REQ_ONLY | P2P_DEV_GROUP_CLIENT_ONLY |
P2P_DEV_LAST_SEEN_AS_GROUP_CLIENT);
- if (os_memcmp(addr, p2p_dev_addr, ETH_ALEN) != 0)
+ if (!ether_addr_equal(addr, p2p_dev_addr))
os_memcpy(dev->interface_addr, addr, ETH_ALEN);
if (msg.ssid &&
msg.ssid[1] <= sizeof(dev->oper_ssid) &&
}
if (dst && !is_broadcast_ether_addr(dst) &&
- os_memcmp(dst, p2p->cfg->dev_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(dst, p2p->cfg->dev_addr)) {
/* Not sent to the broadcast address or our P2P Device Address
*/
p2p_dbg(p2p, "Probe Req DA " MACSTR " not ours - ignore it",
}
if (msg.device_id &&
- os_memcmp(msg.device_id, p2p->cfg->dev_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(msg.device_id, p2p->cfg->dev_addr)) {
/* Device ID did not match */
p2p_dbg(p2p, "Probe Req requested Device ID " MACSTR " did not match - ignore it",
MAC2STR(msg.device_id));
*/
if ((p2p->state == P2P_CONNECT || p2p->state == P2P_CONNECT_LISTEN) &&
p2p->go_neg_peer &&
- os_memcmp(addr, p2p->go_neg_peer->info.p2p_device_addr, ETH_ALEN)
- == 0 &&
+ ether_addr_equal(addr, p2p->go_neg_peer->info.p2p_device_addr) &&
!(p2p->go_neg_peer->flags & P2P_DEV_WAIT_GO_NEG_CONFIRM)) {
/* Received a Probe Request from GO Negotiation peer */
p2p_dbg(p2p, "Found GO Negotiation peer - try to start GO negotiation from timeout");
if ((p2p->state == P2P_INVITE || p2p->state == P2P_INVITE_LISTEN) &&
p2p->invite_peer &&
(p2p->invite_peer->flags & P2P_DEV_WAIT_INV_REQ_ACK) &&
- os_memcmp(addr, p2p->invite_peer->info.p2p_device_addr, ETH_ALEN)
- == 0) {
+ ether_addr_equal(addr, p2p->invite_peer->info.p2p_device_addr)) {
/* Received a Probe Request from Invite peer */
p2p_dbg(p2p, "Found Invite peer - try to start Invite from timeout");
eloop_cancel_timeout(p2p_invite_start, p2p, NULL);
return; /* No pending Group Formation */
}
- if (os_memcmp(mac_addr, p2p->go_neg_peer->intended_addr, ETH_ALEN) !=
- 0) {
+ if (!ether_addr_equal(mac_addr, p2p->go_neg_peer->intended_addr)) {
p2p_dbg(p2p, "Ignore WPS registration success notification for "
MACSTR " (GO Negotiation peer " MACSTR ")",
MAC2STR(mac_addr),
*/
dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
- if (os_memcmp(p2p->pending_pd_devaddr,
- dev->info.p2p_device_addr, ETH_ALEN) != 0)
+ if (!ether_addr_equal(p2p->pending_pd_devaddr,
+ dev->info.p2p_device_addr))
continue;
if (!dev->req_config_methods)
continue;
int for_join = 0;
dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
- if (os_memcmp(p2p->pending_pd_devaddr,
- dev->info.p2p_device_addr, ETH_ALEN) != 0)
+ if (!ether_addr_equal(p2p->pending_pd_devaddr,
+ dev->info.p2p_device_addr))
continue;
if (dev->req_config_methods &&
(dev->flags & P2P_DEV_PD_FOR_JOIN))
p2p_dbg(p2p, "Received P2P Action - P2P Presence Request");
for (g = 0; g < p2p->num_groups; g++) {
- if (os_memcmp(da, p2p_group_get_interface_addr(p2p->groups[g]),
- ETH_ALEN) == 0) {
+ if (ether_addr_equal(
+ da, p2p_group_get_interface_addr(p2p->groups[g]))) {
group = p2p->groups[g];
break;
}
go = p2p->pending_client_disc_go;
if (go == NULL ||
- os_memcmp(sa, go->info.p2p_device_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(sa, go->info.p2p_device_addr)) {
p2p_dbg(p2p, "Ignore unexpected Device Discoverability Response");
return;
}
p2p_dbg(p2p, "Device Discoverability Response status %u", status);
if (p2p->go_neg_peer == NULL ||
- os_memcmp(p2p->pending_client_disc_addr,
- p2p->go_neg_peer->info.p2p_device_addr, ETH_ALEN) != 0 ||
- os_memcmp(p2p->go_neg_peer->member_in_go_dev,
- go->info.p2p_device_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(p2p->pending_client_disc_addr,
+ p2p->go_neg_peer->info.p2p_device_addr) ||
+ !ether_addr_equal(p2p->go_neg_peer->member_in_go_dev,
+ go->info.p2p_device_addr)) {
p2p_dbg(p2p, "No pending operation with the client discoverability peer anymore");
return;
}
goto fail;
}
- if (os_memcmp(msg.p2p_device_addr, sa, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(msg.p2p_device_addr, sa)) {
p2p_dbg(p2p, "Unexpected GO Negotiation Request SA=" MACSTR
" != dev_addr=" MACSTR,
MAC2STR(sa), MAC2STR(msg.p2p_device_addr));
m = group->members;
prev = NULL;
while (m) {
- if (os_memcmp(m->addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(m->addr, addr))
break;
prev = m;
m = m->next;
if (!msg.device_id)
return 1; /* No filter on Device ID */
- if (os_memcmp(msg.device_id, group->p2p->cfg->dev_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(msg.device_id, group->p2p->cfg->dev_addr))
return 1; /* Match with our P2P Device Address */
for (m = group->members; m; m = m->next) {
- if (os_memcmp(msg.device_id, m->dev_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(msg.device_id, m->dev_addr))
return 1; /* Match with group client P2P Device Address */
}
struct p2p_group_member *m;
for (m = group->members; m; m = m->next) {
- if (os_memcmp(dev_id, m->dev_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(dev_id, m->dev_addr))
return m;
}
struct p2p_group_member *m;
for (m = group->members; m; m = m->next) {
- if (os_memcmp(interface_addr, m->addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(interface_addr, m->addr))
return m;
}
struct p2p_group_member *m;
for (m = group->members; m; m = m->next) {
- if (os_memcmp(m->dev_addr, dev_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(m->dev_addr, dev_addr))
return 1;
}
{
if (group_id_len != ETH_ALEN + group->cfg->ssid_len)
return 0;
- if (os_memcmp(group_id, group->p2p->cfg->dev_addr, ETH_ALEN) != 0)
+ if (!ether_addr_equal(group_id, group->p2p->cfg->dev_addr))
return 0;
return os_memcmp(group_id + ETH_ALEN, group->cfg->ssid,
group->cfg->ssid_len) == 0;
for (i = 0; i < p2p->num_groups; i++) {
struct p2p_group *g = p2p->groups[i];
struct wpabuf *ie;
- if (os_memcmp(p2p_group_get_interface_addr(g),
- p2p->inv_bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(p2p_group_get_interface_addr(g),
+ p2p->inv_bssid))
continue;
ie = p2p_group_get_wfd_ie(g);
if (ie) {
for (i = 0; i < p2p->num_groups; i++) {
struct p2p_group *g = p2p->groups[i];
struct wpabuf *ie;
- if (os_memcmp(p2p_group_get_interface_addr(g),
- group_bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(p2p_group_get_interface_addr(g),
+ group_bssid))
continue;
ie = p2p_group_get_wfd_ie(g);
if (ie) {
if (msg->persistent_dev) {
channel_list = 1;
config_timeout = 1;
- if (os_memcmp(msg->persistent_dev, addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(msg->persistent_dev, addr)) {
intended_addr = 1;
operating_channel = 1;
}
if (!msg.status) {
unsigned int forced_freq, pref_freq;
- if (os_memcmp(p2p->cfg->dev_addr, msg.adv_mac, ETH_ALEN)) {
+ if (!ether_addr_equal(p2p->cfg->dev_addr, msg.adv_mac)) {
p2p_dbg(p2p,
"P2PS PD adv mac does not match the local one");
reject = P2P_SC_FAIL_INCOMPATIBLE_PARAMS;
goto out;
if (p2p->p2ps_prov->adv_id != adv_id ||
- os_memcmp(p2p->p2ps_prov->adv_mac, msg.adv_mac, ETH_ALEN)) {
+ !ether_addr_equal(p2p->p2ps_prov->adv_mac, msg.adv_mac)) {
p2p_dbg(p2p,
"P2PS Follow-on PD with mismatch Advertisement ID/MAC");
goto out;
}
if (p2p->p2ps_prov->session_id != session_id ||
- os_memcmp(p2p->p2ps_prov->session_mac, msg.session_mac, ETH_ALEN)) {
+ !ether_addr_equal(p2p->p2ps_prov->session_mac, msg.session_mac)) {
p2p_dbg(p2p, "P2PS Follow-on PD with mismatch Session ID/MAC");
goto out;
}
return -1;
}
- if (os_memcmp(p2p->p2ps_prov->session_mac, msg->session_mac,
- ETH_ALEN)) {
+ if (!ether_addr_equal(p2p->p2ps_prov->session_mac, msg->session_mac)) {
p2p_dbg(p2p,
"Ignore PD Response with unexpected Session MAC");
return -1;
return -1;
}
- if (os_memcmp(p2p->p2ps_prov->adv_mac, msg->adv_mac, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(p2p->p2ps_prov->adv_mac, msg->adv_mac)) {
p2p_dbg(p2p,
"Ignore PD Response with unexpected Advertisement MAC");
return -1;
* was sent earlier, we reset that state info here.
*/
if (p2p->user_initiated_pd &&
- os_memcmp(p2p->pending_pd_devaddr, sa, ETH_ALEN) == 0)
+ ether_addr_equal(p2p->pending_pd_devaddr, sa))
p2p_reset_pending_pd(p2p);
if (msg.wps_config_methods != req_config_methods) {
struct p2p_device *dev;
dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
- if (os_memcmp(p2p->pending_pd_devaddr,
- dev->info.p2p_device_addr, ETH_ALEN))
+ if (!ether_addr_equal(p2p->pending_pd_devaddr,
+ dev->info.p2p_device_addr))
continue;
if (!dev->req_config_methods)
continue;
count++;
}
if (!q->for_all_peers &&
- os_memcmp(q->peer, dev->info.p2p_device_addr, ETH_ALEN) ==
- 0)
+ ether_addr_equal(q->peer, dev->info.p2p_device_addr))
goto found;
}
if (query == NULL)
return -1;
if (p2p->state == P2P_SEARCH &&
- os_memcmp(p2p->sd_query_no_ack, dev->info.p2p_device_addr,
- ETH_ALEN) == 0) {
+ ether_addr_equal(p2p->sd_query_no_ack, dev->info.p2p_device_addr)) {
p2p_dbg(p2p, "Do not start Service Discovery with " MACSTR
" due to it being the first no-ACK peer in this search iteration",
MAC2STR(dev->info.p2p_device_addr));
u16 update_indic;
if (p2p->state != P2P_SD_DURING_FIND || p2p->sd_peer == NULL ||
- os_memcmp(sa, p2p->sd_peer->info.p2p_device_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(sa, p2p->sd_peer->info.p2p_device_addr)) {
p2p_dbg(p2p, "Ignore unexpected GAS Initial Response from "
MACSTR, MAC2STR(sa));
return;
p2p_dbg(p2p, "No pending SD response fragment available");
return;
}
- if (os_memcmp(sa, p2p->sd_resp_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(sa, p2p->sd_resp_addr)) {
p2p_dbg(p2p, "No pending SD response fragment for " MACSTR,
MAC2STR(sa));
return;
wpa_hexdump(MSG_DEBUG, "P2P: RX GAS Comeback Response", data, len);
if (p2p->state != P2P_SD_DURING_FIND || p2p->sd_peer == NULL ||
- os_memcmp(sa, p2p->sd_peer->info.p2p_device_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(sa, p2p->sd_peer->info.p2p_device_addr)) {
p2p_dbg(p2p, "Ignore unexpected GAS Comeback Response from "
MACSTR, MAC2STR(sa));
return;
be_to_host16(eth_hdr->ethertype));
/* the destination address shall not be an individual address */
- if (os_memcmp(eth_hdr->dest, pae_group_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(eth_hdr->dest, pae_group_addr)) {
wpa_printf(MSG_DEBUG,
"KaY: ethernet destination address is not PAE group address");
return -1;
return false;
/* Not our frame; do nothing */
- if (os_memcmp(mgmt->bssid, pasn->bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(mgmt->bssid, pasn->bssid))
return false;
- if (rx && (os_memcmp(mgmt->da, pasn->own_addr, ETH_ALEN) != 0 ||
- os_memcmp(mgmt->sa, pasn->peer_addr, ETH_ALEN) != 0))
+ if (rx && (!ether_addr_equal(mgmt->da, pasn->own_addr) ||
+ !ether_addr_equal(mgmt->sa, pasn->peer_addr)))
return false;
- if (!rx && (os_memcmp(mgmt->sa, pasn->own_addr, ETH_ALEN) != 0 ||
- os_memcmp(mgmt->da, pasn->peer_addr, ETH_ALEN) != 0))
+ if (!rx && (!ether_addr_equal(mgmt->sa, pasn->own_addr) ||
+ !ether_addr_equal(mgmt->da, pasn->peer_addr)))
return false;
/* Not PASN; do nothing */
entry = radius->msgs;
while (entry) {
if (entry->msg_type == RADIUS_AUTH &&
- os_memcmp(entry->addr, addr, ETH_ALEN) == 0) {
+ ether_addr_equal(entry->addr, addr)) {
hostapd_logger(radius->ctx, addr,
HOSTAPD_MODULE_RADIUS,
HOSTAPD_LEVEL_DEBUG,
pos = pmksa->pmksa;
prev = NULL;
while (pos) {
- if (os_memcmp(entry->aa, pos->aa, ETH_ALEN) == 0 &&
- os_memcmp(entry->spa, pos->spa, ETH_ALEN) == 0) {
+ if (ether_addr_equal(entry->aa, pos->aa) &&
+ ether_addr_equal(entry->spa, pos->spa)) {
if (pos->pmk_len == entry->pmk_len &&
os_memcmp_const(pos->pmk, entry->pmk,
entry->pmk_len) == 0 &&
{
struct rsn_pmksa_cache_entry *entry = pmksa->pmksa;
while (entry) {
- if ((aa == NULL || os_memcmp(entry->aa, aa, ETH_ALEN) == 0) &&
- (!spa || os_memcmp(entry->spa, spa, ETH_ALEN) == 0) &&
+ if ((aa == NULL || ether_addr_equal(entry->aa, aa)) &&
+ (!spa || ether_addr_equal(entry->spa, spa)) &&
(pmkid == NULL ||
os_memcmp(entry->pmkid, pmkid, PMKID_LEN) == 0) &&
(!akmp || akmp == entry->akmp) &&
if (sm->preauth_eapol == NULL ||
is_zero_ether_addr(sm->preauth_bssid) ||
- os_memcmp(sm->preauth_bssid, src_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(sm->preauth_bssid, src_addr)) {
wpa_printf(MSG_WARNING, "RSN pre-auth frame received from "
"unexpected source " MACSTR " - dropped",
MAC2STR(src_addr));
struct rsn_pmksa_cache_entry *p = NULL;
p = pmksa_cache_get(sm->pmksa, candidate->bssid, sm->own_addr,
NULL, NULL, 0);
- if (os_memcmp(sm->bssid, candidate->bssid, ETH_ALEN) != 0 &&
+ if (!ether_addr_equal(sm->bssid, candidate->bssid) &&
(p == NULL || p->opportunistic)) {
wpa_msg(sm->ctx->msg_ctx, MSG_DEBUG, "RSN: PMKSA "
"candidate " MACSTR
cand = NULL;
dl_list_for_each(pos, &sm->pmksa_candidates,
struct rsn_pmksa_candidate, list) {
- if (os_memcmp(pos->bssid, bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(pos->bssid, bssid)) {
cand = pos;
break;
}
os_memcmp(ssid + 2, sm->ssid, sm->ssid_len) != 0)
return; /* Not for the current SSID */
- if (os_memcmp(bssid, sm->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(bssid, sm->bssid))
return; /* Ignore current AP */
if (wpa_parse_wpa_ie(rsn, 2 + rsn[1], &ie))
return 0; /* No retries */
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, dest, ETH_ALEN) == 0)
+ if (ether_addr_equal(peer->addr, dest))
break;
}
/* Find the node and free from the list */
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(peer->addr, addr))
break;
}
return -1;
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(peer->addr, addr))
break;
}
struct wpa_tdls_peer *peer;
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(peer->addr, addr))
break;
}
return "disabled";
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(peer->addr, addr))
break;
}
/* Find the node and free from the list */
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, src_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(peer->addr, src_addr))
break;
}
if (existing)
*existing = 0;
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(peer->addr, addr)) {
if (existing)
*existing = 1;
return peer; /* re-use existing entry */
*link_id = -1;
if (!sm->mlo.valid_links) {
- if (os_memcmp(sm->bssid, lnkid->bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(sm->bssid, lnkid->bssid))
return false;
} else {
int i;
for (i = 0; i < MAX_NUM_MLD_LINKS; i++) {
if ((sm->mlo.valid_links & BIT(i)) &&
- os_memcmp(lnkid->bssid, sm->mlo.links[i].bssid,
- ETH_ALEN) == 0) {
+ ether_addr_equal(lnkid->bssid,
+ sm->mlo.links[i].bssid)) {
*link_id = i;
break;
}
wpa_printf(MSG_DEBUG, "TDLS: Received TDLS Setup Response / TPK M2 "
"(Peer " MACSTR ")", MAC2STR(src_addr));
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, src_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(peer->addr, src_addr))
break;
}
if (peer == NULL) {
kde.lnkid, kde.lnkid_len);
lnkid = (struct wpa_tdls_lnkid *) kde.lnkid;
- if (os_memcmp(sm->bssid, wpa_tdls_get_link_bssid(sm, peer->mld_link_id),
- ETH_ALEN) != 0) {
+ if (!ether_addr_equal(sm->bssid,
+ wpa_tdls_get_link_bssid(sm, peer->mld_link_id))) {
wpa_printf(MSG_INFO, "TDLS: TPK M2 from different BSS");
status = WLAN_STATUS_NOT_IN_SAME_BSS;
goto error;
wpa_printf(MSG_DEBUG, "TDLS: Received TDLS Setup Confirm / TPK M3 "
"(Peer " MACSTR ")", MAC2STR(src_addr));
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, src_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(peer->addr, src_addr))
break;
}
if (peer == NULL) {
(u8 *) kde.lnkid, kde.lnkid_len);
lnkid = (struct wpa_tdls_lnkid *) kde.lnkid;
- if (os_memcmp(wpa_tdls_get_link_bssid(sm, peer->mld_link_id),
- lnkid->bssid, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(wpa_tdls_get_link_bssid(sm, peer->mld_link_id),
+ lnkid->bssid)) {
wpa_printf(MSG_INFO, "TDLS: TPK M3 from diff BSS");
goto error;
}
return;
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(peer->addr, addr))
break;
}
return;
}
- if (os_memcmp(src_addr, sm->own_addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(src_addr, sm->own_addr)) {
wpa_printf(MSG_DEBUG, "TDLS: Discard copy of own message");
return;
}
}
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(peer->addr, addr))
break;
}
return -1;
for (peer = sm->tdls; peer; peer = peer->next) {
- if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(peer->addr, addr))
break;
}
static bool is_valid_ap_mld_mac_kde(struct wpa_sm *sm, const u8 *mac_kde)
{
return mac_kde &&
- os_memcmp(mac_kde, sm->mlo.ap_mld_addr, ETH_ALEN) == 0;
+ ether_addr_equal(mac_kde, sm->mlo.ap_mld_addr);
}
return -1;
}
- if (os_memcmp(sm->mlo.links[link_id].bssid,
- &link_kde[RSN_MLO_LINK_KDE_LINK_MAC_INDEX],
- ETH_ALEN) != 0) {
+ if (!ether_addr_equal(sm->mlo.links[link_id].bssid,
+ &link_kde[RSN_MLO_LINK_KDE_LINK_MAC_INDEX])) {
wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
"RSN: MLO Link %u MAC address (" MACSTR
") not matching association response (" MACSTR ")",
os_memset(sm->rx_replay_counter, 0, WPA_REPLAY_COUNTER_LEN);
sm->rx_replay_counter_set = 0;
sm->renew_snonce = 1;
- if (os_memcmp(sm->preauth_bssid, bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(sm->preauth_bssid, bssid))
rsn_preauth_deinit(sm);
#ifdef CONFIG_IEEE80211R
goto fail;
}
- if (os_memcmp(target_ap, sm->target_ap, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(target_ap, sm->target_ap)) {
wpa_printf(MSG_DEBUG, "FT: No over-the-DS in progress "
"with this Target AP - drop FT Action "
"Response");
size_t i;
for (i = 0; i < sm->n_pasn_r1kh; i++)
- if (os_memcmp(sm->pasn_r1kh[i].bssid, bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(sm->pasn_r1kh[i].bssid, bssid))
return &sm->pasn_r1kh[i];
return NULL;
pos = attr.authorized_macs;
for (i = 0; i < attr.authorized_macs_len / ETH_ALEN; i++) {
- if (os_memcmp(pos, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(pos, addr))
return 2;
- if (os_memcmp(pos, bcast, ETH_ALEN) == 0)
+ if (ether_addr_equal(pos, bcast))
return 1;
pos += ETH_ALEN;
}
wps_process_cred(&attr, &wps->cred))
return -1;
- if (os_memcmp(wps->cred.mac_addr, wps->wps->dev.mac_addr, ETH_ALEN) !=
- 0) {
+ if (!ether_addr_equal(wps->cred.mac_addr, wps->wps->dev.mac_addr)) {
wpa_printf(MSG_DEBUG, "WPS: MAC Address in the Credential ("
MACSTR ") does not match with own address (" MACSTR
")", MAC2STR(wps->cred.mac_addr),
wpa_printf(MSG_INFO, "WPS: Received new AP configuration from "
"Registrar");
- if (os_memcmp(cred.mac_addr, wps->wps->dev.mac_addr, ETH_ALEN) !=
- 0) {
+ if (!ether_addr_equal(cred.mac_addr, wps->wps->dev.mac_addr)) {
wpa_printf(MSG_DEBUG, "WPS: MAC Address in the AP Settings ("
MACSTR ") does not match with own address (" MACSTR
")", MAC2STR(cred.mac_addr),
struct wps_er_sta *sta;
dl_list_for_each(sta, &ap->sta, struct wps_er_sta, list) {
if ((addr == NULL ||
- os_memcmp(sta->addr, addr, ETH_ALEN) == 0) &&
+ ether_addr_equal(sta->addr, addr)) &&
(uuid == NULL ||
os_memcmp(uuid, sta->uuid, WPS_UUID_LEN) == 0))
return sta;
(uuid == NULL ||
os_memcmp(uuid, ap->uuid, WPS_UUID_LEN) == 0) &&
(mac_addr == NULL ||
- os_memcmp(mac_addr, ap->mac_addr, ETH_ALEN) == 0))
+ ether_addr_equal(mac_addr, ap->mac_addr)))
return ap;
}
return NULL;
wpa_printf(MSG_DEBUG, "WPS: Add authorized MAC " MACSTR,
MAC2STR(addr));
for (i = 0; i < WPS_MAX_AUTHORIZED_MACS; i++)
- if (os_memcmp(reg->authorized_macs[i], addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(reg->authorized_macs[i], addr)) {
wpa_printf(MSG_DEBUG, "WPS: Authorized MAC was "
"already in the list");
return; /* already in list */
wpa_printf(MSG_DEBUG, "WPS: Remove authorized MAC " MACSTR,
MAC2STR(addr));
for (i = 0; i < WPS_MAX_AUTHORIZED_MACS; i++) {
- if (os_memcmp(reg->authorized_macs[i], addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(reg->authorized_macs[i], addr))
break;
}
if (i == WPS_MAX_AUTHORIZED_MACS) {
struct wps_registrar_device *dev;
for (dev = reg->devices; dev; dev = dev->next) {
- if (os_memcmp(dev->dev.mac_addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(dev->dev.mac_addr, addr))
return dev;
}
return NULL;
pbc = reg->pbc_sessions;
while (pbc) {
- if (os_memcmp(pbc->addr, addr, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(pbc->addr, addr) &&
os_memcmp(pbc->uuid_e, uuid_e, WPS_UUID_LEN) == 0) {
if (prev)
prev->next = pbc->next;
while (pbc) {
if (os_memcmp(pbc->uuid_e, uuid_e, WPS_UUID_LEN) == 0 ||
(p2p_dev_addr && !is_zero_ether_addr(reg->p2p_dev_addr) &&
- os_memcmp(reg->p2p_dev_addr, p2p_dev_addr, ETH_ALEN) ==
- 0)) {
+ ether_addr_equal(reg->p2p_dev_addr, p2p_dev_addr))) {
if (prev)
prev->next = pbc->next;
else
if (is_zero_ether_addr(reg->p2p_dev_addr))
return 1; /* no filtering in use */
- if (os_memcmp(reg->p2p_dev_addr, wps->p2p_dev_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(reg->p2p_dev_addr, wps->p2p_dev_addr)) {
wpa_printf(MSG_DEBUG, "WPS: No match on P2P Device Address "
"filtering for PBC: expected " MACSTR " was "
MACSTR " - indicate PBC session overlap",
if (is_zero_ether_addr(reg->p2p_dev_addr))
return 0; /* no specific Enrollee selected */
- if (os_memcmp(reg->p2p_dev_addr, wps->p2p_dev_addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(reg->p2p_dev_addr, wps->p2p_dev_addr)) {
wpa_printf(MSG_DEBUG, "WPS: Skip PBC overlap due to selected "
"Enrollee match");
return 1;
struct wlantest_bss *bss;
dl_list_for_each(bss, &wt->bss, struct wlantest_bss, list) {
- if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(bss->bssid, bssid))
return bss;
}
struct wlantest_bss *bss;
dl_list_for_each(bss, &wt->bss, struct wlantest_bss, list) {
- if (os_memcmp(bss->mld_mac_addr, mld_mac_addr, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(bss->mld_mac_addr, mld_mac_addr) &&
(link_id < 0 ||
(bss->link_id_set && bss->link_id == link_id)))
return bss;
dl_list_for_each(p, &wt->passphrase, struct wlantest_passphrase, list)
{
if (!is_zero_ether_addr(p->bssid) &&
- os_memcmp(p->bssid, bss->bssid, ETH_ALEN) != 0)
+ !ether_addr_equal(p->bssid, bss->bssid))
continue;
if (p->ssid_len &&
(p->ssid_len != bss->ssid_len ||
dl_list_for_each(pa, &wt->passphrase, struct wlantest_passphrase, list)
{
if (os_strcmp(p->passphrase, pa->passphrase) == 0 &&
- os_memcmp(p->bssid, pa->bssid, ETH_ALEN) == 0) {
+ ether_addr_equal(p->bssid, pa->bssid)) {
wpa_printf(MSG_INFO, "Passphrase was already known");
os_free(p);
p = NULL;
dl_list_add(&wt->passphrase, &p->list);
dl_list_for_each(bss, &wt->bss, struct wlantest_bss, list) {
if (bssid &&
- os_memcmp(p->bssid, bss->bssid, ETH_ALEN) != 0)
+ !ether_addr_equal(p->bssid, bss->bssid))
continue;
bss_add_pmk_from_passphrase(bss, p->passphrase);
}
switch (WLAN_FC_GET_TYPE(fc)) {
case WLAN_FC_TYPE_MGMT:
bssid = hdr->addr3;
- if (os_memcmp(hdr->addr2, hdr->addr3, ETH_ALEN) == 0)
+ if (ether_addr_equal(hdr->addr2, hdr->addr3))
sta_addr = hdr->addr1;
else
sta_addr = hdr->addr2;
}
}
if (tk) {
- if (os_memcmp(hdr->addr2, tdls->init->addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(hdr->addr2, tdls->init->addr))
pn = tdls->rsc_init[tid];
else
pn = tdls->rsc_resp[tid];
- } else if (os_memcmp(hdr->addr2, bss->bssid, ETH_ALEN) == 0)
+ } else if (ether_addr_equal(hdr->addr2, bss->bssid))
pn = sta->rsc_fromds[tid];
else
pn = sta->rsc_tods[tid];
if (len < 24)
return NULL;
bssid = hdr->addr3;
- if (os_memcmp(bssid, hdr->addr2, ETH_ALEN) == 0) {
+ if (ether_addr_equal(bssid, hdr->addr2)) {
sta_addr = hdr->addr1;
*to_ap = 0;
} else {
- if (os_memcmp(bssid, hdr->addr1, ETH_ALEN) != 0)
+ if (!ether_addr_equal(bssid, hdr->addr1))
return NULL; /* Unsupported STA-to-STA frame */
sta_addr = hdr->addr2;
*to_ap = 1;
u16 fc;
if (wt->last_len < 24 || (last->addr1[0] & 0x01) ||
- os_memcmp(hdr->addr1, last->addr2, ETH_ALEN) != 0) {
+ !ether_addr_equal(hdr->addr1, last->addr2)) {
add_note(wt, MSG_MSGDUMP, "Unknown Ack frame (previous frame "
"not seen)");
return;
sta->rx_tid[16]++;
}
if (tk) {
- if (os_memcmp(hdr->addr2, tdls->init->addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(hdr->addr2, tdls->init->addr))
rsc = tdls->rsc_init[tid];
else
rsc = tdls->rsc_resp[tid];
a2 = sta->mld_mac_addr;
}
- if (os_memcmp(hdr->addr3, bss->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(hdr->addr3, bss->bssid))
a3 = bss->mld_mac_addr;
}
wpa_printf(MSG_DEBUG, "EAPOL-Key 1/4 " MACSTR " -> " MACSTR " (BSSID "
MACSTR ")",
MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
- if (os_memcmp(src, bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(src, bssid)) {
bss = bss_get(wt, src);
} else {
bss = bss_find(wt, bssid);
wpa_printf(MSG_DEBUG,
"Learned AP MLD MAC Address from EAPOL-Key 1/4: "
MACSTR, MAC2STR(ie.mac_addr));
- } else if (os_memcmp(bss->mld_mac_addr, ie.mac_addr,
- ETH_ALEN) != 0) {
+ } else if (!ether_addr_equal(bss->mld_mac_addr, ie.mac_addr)) {
wpa_printf(MSG_DEBUG,
"Updated AP MLD MAC Address from EAPOL-Key 1/4: "
MACSTR " --> " MACSTR,
wpa_printf(MSG_DEBUG, "EAPOL-Key 2/4 " MACSTR " -> " MACSTR " (BSSID "
MACSTR ")",
MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
- if (os_memcmp(dst, bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(dst, bssid)) {
bss = bss_get(wt, dst);
} else {
bss = bss_find(wt, bssid);
if (!ie.mlo_link[link_id])
continue;
addr = &ie.mlo_link[link_id][RSN_MLO_LINK_KDE_LINK_MAC_INDEX];
- if (os_memcmp(addr, bss->bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(addr, bss->bssid)) {
wpa_printf(MSG_DEBUG,
"Trying to learn keys for the current MLO link (ID %u)",
link_id);
wpa_printf(MSG_DEBUG, "EAPOL-Key 3/4 " MACSTR " -> " MACSTR " (BSSID "
MACSTR ")",
MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
- if (os_memcmp(src, bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(src, bssid)) {
bss = bss_get(wt, src);
} else {
bss = bss_find(wt, bssid);
if (!ie.mlo_link[link_id])
continue;
addr = &ie.mlo_link[link_id][RSN_MLO_LINK_KDE_LINK_MAC_INDEX];
- if (os_memcmp(addr, bss->bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(addr, bss->bssid))
continue;
if (!(ie.mlo_link[link_id][0] & RSN_MLO_LINK_KDE_LI_RSNE_INFO))
continue;
wpa_printf(MSG_DEBUG, "EAPOL-Key 4/4 " MACSTR " -> " MACSTR " (BSSID "
MACSTR ")",
MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
- if (os_memcmp(dst, bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(dst, bssid)) {
bss = bss_get(wt, dst);
} else {
bss = bss_find(wt, bssid);
wpa_printf(MSG_DEBUG, "EAPOL-Key 1/2 " MACSTR " -> " MACSTR " (BSSID "
MACSTR ")",
MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
- if (os_memcmp(src, bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(src, bssid)) {
bss = bss_get(wt, src);
} else {
bss = bss_find(wt, bssid);
wpa_printf(MSG_DEBUG, "EAPOL-Key 2/2 " MACSTR " -> " MACSTR " (BSSID "
MACSTR ")",
MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
- if (os_memcmp(dst, bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(dst, bssid)) {
bss = bss_get(wt, dst);
} else {
bss = bss_find(wt, bssid);
return;
}
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid))
os_memcpy(sta->anonce, elems.fils_nonce, FILS_NONCE_LEN);
else
os_memcpy(sta->snonce, elems.fils_nonce, FILS_NONCE_LEN);
bss = bss_get(wt, mgmt->bssid);
if (bss == NULL)
return;
- from_ap = os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0;
+ from_ap = ether_addr_equal(mgmt->sa, mgmt->bssid);
if (from_ap)
sta = sta_get(bss, mgmt->da);
else
}
}
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid))
sta->counters[WLANTEST_STA_COUNTER_AUTH_RX]++;
else
sta->counters[WLANTEST_STA_COUNTER_AUTH_TX]++;
bss = bss_get(wt, mgmt->bssid);
if (bss == NULL)
return;
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid))
sta = sta_get(bss, mgmt->da);
else
sta = sta_get(bss, mgmt->sa);
return;
}
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid)) {
sta->counters[valid ? WLANTEST_STA_COUNTER_VALID_DEAUTH_RX :
WLANTEST_STA_COUNTER_INVALID_DEAUTH_RX]++;
if (sta->pwrmgt && !sta->pspoll)
bss = bss_get(wt, mgmt->bssid);
if (bss == NULL)
return;
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid))
sta = sta_get(bss, mgmt->da);
else
sta = sta_get(bss, mgmt->sa);
return;
}
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid)) {
sta->counters[valid ? WLANTEST_STA_COUNTER_VALID_DISASSOC_RX :
WLANTEST_STA_COUNTER_INVALID_DISASSOC_RX]++;
if (sta->pwrmgt && !sta->pspoll)
u8 *id;
rx_id = (const u8 *) mgmt->u.action.u.sa_query_req.trans_id;
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid))
id = sta->ap_sa_query_tr;
else
id = sta->sta_sa_query_tr;
MAC2STR(mgmt->sa), MAC2STR(mgmt->da), rx_id[0], rx_id[1],
valid ? "" : " (invalid protection)");
os_memcpy(id, mgmt->u.action.u.sa_query_req.trans_id, 2);
- if (os_memcmp(mgmt->sa, sta->addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(mgmt->sa, sta->addr))
sta->counters[valid ?
WLANTEST_STA_COUNTER_VALID_SAQUERYREQ_TX :
WLANTEST_STA_COUNTER_INVALID_SAQUERYREQ_TX]++;
int match;
rx_id = (const u8 *) mgmt->u.action.u.sa_query_resp.trans_id;
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid))
id = sta->sta_sa_query_tr;
else
id = sta->ap_sa_query_tr;
MAC2STR(mgmt->sa), MAC2STR(mgmt->da), rx_id[0], rx_id[1],
match ? "match" : "mismatch",
valid ? "" : " (invalid protection)");
- if (os_memcmp(mgmt->sa, sta->addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(mgmt->sa, sta->addr))
sta->counters[(valid && match) ?
WLANTEST_STA_COUNTER_VALID_SAQUERYRESP_TX :
WLANTEST_STA_COUNTER_INVALID_SAQUERYRESP_TX]++;
bss = bss_get(wt, mgmt->bssid);
if (bss == NULL)
return;
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid)) {
sta = sta_find_mlo(wt, bss, mgmt->da);
if (!sta)
sta = sta_get(bss, mgmt->da);
bss = bss_get(wt, hdr->addr3);
if (bss == NULL)
return mgmt_decrypt_tk(wt, data, len, dlen);
- if (os_memcmp(hdr->addr1, hdr->addr3, ETH_ALEN) == 0) {
+ if (ether_addr_equal(hdr->addr1, hdr->addr3)) {
sta = sta_find_mlo(wt, bss, hdr->addr2);
if (!sta)
sta = sta_get(bss, hdr->addr2);
return decrypted;
}
- if (os_memcmp(hdr->addr1, hdr->addr3, ETH_ALEN) == 0)
+ if (ether_addr_equal(hdr->addr1, hdr->addr3))
rsc = sta->rsc_tods[16];
else
rsc = sta->rsc_fromds[16];
bss = bss_get(wt, mgmt->bssid);
if (bss == NULL)
return 0;
- if (os_memcmp(mgmt->da, mgmt->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(mgmt->da, mgmt->bssid))
sta = sta_get(bss, mgmt->sa);
else
sta = sta_get(bss, mgmt->da);
bss = bss_get(wt, mgmt->bssid);
if (bss == NULL)
return;
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid))
sta = sta_get(bss, mgmt->da);
else
sta = sta_get(bss, mgmt->sa);
add_note(wt, MSG_DEBUG, "DEAUTH from " MACSTR " acknowledged by "
MACSTR, MAC2STR(mgmt->sa), MAC2STR(mgmt->da));
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid)) {
int c;
c = wt->last_mgmt_valid ?
WLANTEST_STA_COUNTER_VALID_DEAUTH_RX_ACK :
bss = bss_get(wt, mgmt->bssid);
if (bss == NULL)
return;
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid))
sta = sta_get(bss, mgmt->da);
else
sta = sta_get(bss, mgmt->sa);
add_note(wt, MSG_DEBUG, "DISASSOC from " MACSTR " acknowledged by "
MACSTR, MAC2STR(mgmt->sa), MAC2STR(mgmt->da));
- if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(mgmt->sa, mgmt->bssid)) {
int c;
c = wt->last_mgmt_valid ?
WLANTEST_STA_COUNTER_VALID_DISASSOC_RX_ACK :
struct wlantest_sta *sta;
dl_list_for_each(sta, &bss->sta, struct wlantest_sta, list) {
- if (os_memcmp(sta->addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(sta->addr, addr))
return sta;
}
int link_id;
dl_list_for_each(sta, &bss->sta, struct wlantest_sta, list) {
- if (os_memcmp(sta->addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(sta->addr, addr))
return sta;
- if (os_memcmp(sta->mld_mac_addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(sta->mld_mac_addr, addr))
return sta;
}
dl_list_for_each(sta, &bss->sta, struct wlantest_sta, list) {
for (link_id = 0; link_id < MAX_NUM_MLO_LINKS; link_id++) {
- if (os_memcmp(sta->link_addr[link_id], addr,
- ETH_ALEN) == 0)
+ if (ether_addr_equal(sta->link_addr[link_id], addr))
return sta;
}
}
if (obss == bss)
continue;
if (!is_zero_ether_addr(bss->mld_mac_addr) &&
- os_memcmp(obss->mld_mac_addr, bss->mld_mac_addr,
- ETH_ALEN) != 0)
+ !ether_addr_equal(obss->mld_mac_addr, bss->mld_mac_addr))
continue;
dl_list_for_each(sta, &obss->sta, struct wlantest_sta, list) {
- if (os_memcmp(sta->addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(sta->addr, addr))
return sta;
- if (os_memcmp(sta->mld_mac_addr, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(sta->mld_mac_addr, addr))
return sta;
for (link_id = 0; link_id < MAX_NUM_MLO_LINKS;
link_id++) {
- if (os_memcmp(sta->link_addr[link_id], addr,
- ETH_ALEN) == 0)
+ if (ether_addr_equal(sta->link_addr[link_id],
+ addr))
return sta;
}
}
if (osta == sta)
continue;
- if (os_memcmp(sta->addr, osta->addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(sta->addr, osta->addr))
match = true;
for (link_id = 0; !match && link_id < MAX_NUM_MLO_LINKS;
link_id++) {
- if (os_memcmp(osta->link_addr[link_id],
- sta->addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(osta->link_addr[link_id],
+ sta->addr))
match = true;
}
if (!match)
continue;
- if (os_memcmp(sta->bss->mld_mac_addr,
- osta->bss->mld_mac_addr, ETH_ALEN) != 0)
+ if (!ether_addr_equal(sta->bss->mld_mac_addr,
+ osta->bss->mld_mac_addr))
continue;
wpa_printf(MSG_DEBUG,
"Add PTK to another MLO STA entry " MACSTR
if (frag->buf && (fn || (fc & WLAN_FC_MOREFRAG)) &&
sn == frag->sn && fn == frag->fn + 1 &&
- os_memcmp(frag->ra, hdr->addr1, ETH_ALEN) == 0 &&
- os_memcmp(frag->ta, hdr->addr2, ETH_ALEN) == 0) {
+ ether_addr_equal(frag->ra, hdr->addr1) &&
+ ether_addr_equal(frag->ta, hdr->addr2)) {
/* Add the next fragment */
if (wpabuf_resize(&frag->buf, plain_len) == 0) {
wpabuf_put_data(frag->buf, plain, plain_len);
return 0;
for (i = 0; i < array_len; i++) {
- if (os_memcmp(array + i * ETH_ALEN, bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(array + i * ETH_ALEN, bssid))
return 1;
}
{
u8 *n;
- if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(bss->bssid, bssid))
return;
if (bssid_in_array(bss->neigh, bss->num_neigh, bssid))
return;
struct bgscan_learn_bss *bss;
dl_list_for_each(bss, &data->bss, struct bgscan_learn_bss, list) {
- if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(bss->bssid, bssid))
return bss;
}
return NULL;
if (bssid && !wpa_supplicant_filter_bssid_match(wpa_s, bssid))
return NULL;
dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
- if ((!bssid || os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0) &&
+ if ((!bssid || ether_addr_equal(bss->bssid, bssid)) &&
bss->ssid_len == ssid_len &&
os_memcmp(bss->ssid, ssid, ssid_len) == 0)
return bss;
#ifdef CONFIG_P2P
u8 addr[ETH_ALEN];
- if (os_memcmp(bss->bssid, wpa_s->pending_join_iface_addr,
- ETH_ALEN) == 0)
+ if (ether_addr_equal(bss->bssid, wpa_s->pending_join_iface_addr))
return true;
if (!is_zero_ether_addr(wpa_s->pending_join_dev_addr) &&
p2p_parse_dev_addr(wpa_bss_ie_ptr(bss), bss->ie_len, addr) == 0 &&
- os_memcmp(addr, wpa_s->pending_join_dev_addr, ETH_ALEN) == 0)
+ ether_addr_equal(addr, wpa_s->pending_join_dev_addr))
return true;
#endif /* CONFIG_P2P */
return false;
return 0; /* SSID has changed */
if (!is_zero_ether_addr(bss->bssid) &&
- (os_memcmp(bss->bssid, wpa_s->bssid, ETH_ALEN) == 0 ||
- os_memcmp(bss->bssid, wpa_s->pending_bssid, ETH_ALEN) == 0))
+ (ether_addr_equal(bss->bssid, wpa_s->bssid) ||
+ ether_addr_equal(bss->bssid, wpa_s->pending_bssid)))
return 1;
if (!wpa_s->valid_links)
if (!(wpa_s->valid_links & BIT(i)))
continue;
- if (os_memcmp(bss->bssid, wpa_s->links[i].bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(bss->bssid, wpa_s->links[i].bssid))
return 1;
}
if (!wpa_supplicant_filter_bssid_match(wpa_s, bssid))
return NULL;
dl_list_for_each_reverse(bss, &wpa_s->bss, struct wpa_bss, list) {
- if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(bss->bssid, bssid))
return bss;
}
return NULL;
if (!wpa_supplicant_filter_bssid_match(wpa_s, bssid))
return NULL;
dl_list_for_each_reverse(bss, &wpa_s->bss, struct wpa_bss, list) {
- if (os_memcmp(bss->bssid, bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(bss->bssid, bssid))
continue;
if (found == NULL ||
os_reltime_before(&found->last_update, &bss->last_update))
u8 addr[ETH_ALEN];
if (p2p_parse_dev_addr(wpa_bss_ie_ptr(bss), bss->ie_len,
addr) != 0 ||
- os_memcmp(addr, dev_addr, ETH_ALEN) != 0)
+ !ether_addr_equal(addr, dev_addr))
continue;
if (!found ||
os_reltime_before(&found->last_update, &bss->last_update))
e = wpa_s->bssid_ignore;
while (e) {
- if (os_memcmp(e->bssid, bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(e->bssid, bssid))
return e;
e = e->next;
}
e = wpa_s->bssid_ignore;
while (e) {
- if (os_memcmp(e->bssid, bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(e->bssid, bssid)) {
if (prev == NULL) {
wpa_s->bssid_ignore = e->next;
} else {
u8 mac_value[ETH_ALEN];
if (hwaddr_aton(value, mac_value) == 0) {
- if (os_memcmp(mac_value, ssid->mac_value, ETH_ALEN) == 0)
+ if (ether_addr_equal(mac_value, ssid->mac_value))
return 1;
os_memcpy(ssid->mac_value, mac_value, ETH_ALEN);
return 0;
dl_list_for_each(tmp, &wpa_s->drv_signal_override,
struct driver_signal_override, list) {
- if (os_memcmp(bssid, tmp->bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(bssid, tmp->bssid)) {
dso = tmp;
break;
}
value);
if (ret == 0 &&
(ssid->bssid_set != prev_bssid_set ||
- os_memcmp(ssid->bssid, prev_bssid, ETH_ALEN) != 0))
+ !ether_addr_equal(ssid->bssid, prev_bssid)))
wpas_notify_network_bssid_set_changed(wpa_s, ssid);
if (prev_disabled != ssid->disabled &&
dl_list_for_each_reverse(bss, &wpa_s->bss, struct wpa_bss,
list) {
- if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(bss->bssid, bssid) &&
bss->ssid_len > 0) {
found = 1;
break;
dialog_token = atoi(pos);
if (wpa_s->last_gas_resp &&
- os_memcmp(addr, wpa_s->last_gas_addr, ETH_ALEN) == 0 &&
+ ether_addr_equal(addr, wpa_s->last_gas_addr) &&
dialog_token == wpa_s->last_gas_dialog_token)
resp = wpa_s->last_gas_resp;
else if (wpa_s->prev_gas_resp &&
- os_memcmp(addr, wpa_s->prev_gas_addr, ETH_ALEN) == 0 &&
+ ether_addr_equal(addr, wpa_s->prev_gas_addr) &&
dialog_token == wpa_s->prev_gas_dialog_token)
resp = wpa_s->prev_gas_resp;
else
wpa_s->dpp_gas_dialog_token = -1;
if (!auth || (!auth->auth_success && !auth->reconfig_success) ||
- os_memcmp(addr, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(addr, auth->peer_mac_addr)) {
wpa_printf(MSG_DEBUG, "DPP: No matching exchange in progress");
return;
}
}
if (!is_zero_ether_addr(auth->peer_mac_addr) &&
- os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(src, auth->peer_mac_addr)) {
wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
return;
return;
}
- if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(src, auth->peer_mac_addr)) {
wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
return;
if (!auth || !auth->waiting_conf_result) {
if (auth &&
- os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) == 0 &&
+ ether_addr_equal(src, auth->peer_mac_addr) &&
gas_server_response_sent(wpa_s->gas_server,
auth->gas_server_ctx)) {
/* This could happen if the TX status event gets delayed
}
}
- if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(src, auth->peer_mac_addr)) {
wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
return;
return;
}
- if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(src, auth->peer_mac_addr)) {
wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
return;
return;
}
- if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(src, auth->peer_mac_addr)) {
wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
return;
wpa_printf(MSG_DEBUG, "DPP: Peer Discovery Response from " MACSTR,
MAC2STR(src));
if (is_zero_ether_addr(wpa_s->dpp_intro_bssid) ||
- os_memcmp(src, wpa_s->dpp_intro_bssid, ETH_ALEN) != 0) {
+ !ether_addr_equal(src, wpa_s->dpp_intro_bssid)) {
wpa_printf(MSG_DEBUG, "DPP: Not waiting for response from "
MACSTR " - drop", MAC2STR(src));
return;
wpa_printf(MSG_DEBUG, "DPP: Private Peer Introduction Notify from "
MACSTR, MAC2STR(src));
if (is_zero_ether_addr(wpa_s->dpp_intro_bssid) ||
- os_memcmp(src, wpa_s->dpp_intro_bssid, ETH_ALEN) != 0) {
+ !ether_addr_equal(src, wpa_s->dpp_intro_bssid)) {
wpa_printf(MSG_DEBUG, "DPP: Not waiting for response from "
MACSTR " - drop", MAC2STR(src));
return;
wpa_printf(MSG_DEBUG, "DPP: GAS request from " MACSTR,
MAC2STR(sa));
if (!auth || (!auth->auth_success && !auth->reconfig_success) ||
- os_memcmp(sa, auth->peer_mac_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(sa, auth->peer_mac_addr)) {
wpa_printf(MSG_DEBUG, "DPP: No matching exchange in progress");
return NULL;
}
#endif /* CONFIG_WPS */
if (ssid->bssid_set && ssid->ssid_len == 0 &&
- os_memcmp(bss->bssid, ssid->bssid, ETH_ALEN) == 0)
+ ether_addr_equal(bss->bssid, ssid->bssid))
check_ssid = false;
if (check_ssid &&
}
if (ssid->bssid_set &&
- os_memcmp(bss->bssid, ssid->bssid, ETH_ALEN) != 0) {
+ !ether_addr_equal(bss->bssid, ssid->bssid)) {
if (debug_print)
wpa_dbg(wpa_s, MSG_DEBUG, " skip - BSSID mismatch");
return false;
}
if (p2p_parse_dev_addr_in_p2p_ie(p2p_ie, dev_addr) < 0 ||
- os_memcmp(dev_addr, ssid->go_p2p_dev_addr, ETH_ALEN) != 0) {
+ !ether_addr_equal(dev_addr, ssid->go_p2p_dev_addr)) {
if (debug_print)
wpa_dbg(wpa_s, MSG_DEBUG,
" skip - no matching GO P2P Device Address in P2P element");
* the selected BSSID, do not trigger new attempt.
*/
if (wpa_s->reassociate ||
- (os_memcmp(selected->bssid, wpa_s->bssid, ETH_ALEN) != 0 &&
+ (!ether_addr_equal(selected->bssid, wpa_s->bssid) &&
((wpa_s->wpa_state != WPA_ASSOCIATING &&
wpa_s->wpa_state != WPA_AUTHENTICATING) ||
(!is_zero_ether_addr(wpa_s->pending_bssid) &&
- os_memcmp(selected->bssid, wpa_s->pending_bssid, ETH_ALEN) !=
- 0) ||
+ !ether_addr_equal(selected->bssid, wpa_s->pending_bssid)) ||
(is_zero_ether_addr(wpa_s->pending_bssid) &&
ssid != wpa_s->current_ssid)))) {
if (wpa_supplicant_scard_init(wpa_s, ssid)) {
selected->snr, selected->est_throughput);
if (wpa_s->current_ssid->bssid_set &&
- os_memcmp(selected->bssid, wpa_s->current_ssid->bssid, ETH_ALEN) ==
- 0) {
+ ether_addr_equal(selected->bssid, wpa_s->current_ssid->bssid)) {
wpa_dbg(wpa_s, MSG_DEBUG, "Allow reassociation - selected BSS "
"has preferred BSSID");
return 1;
wpa_printf(MSG_DEBUG, "MLD: address: " MACSTR,
MAC2STR(common_info->mld_addr));
- if (os_memcmp(wpa_s->ap_mld_addr, common_info->mld_addr, ETH_ALEN) !=
- 0) {
+ if (!ether_addr_equal(wpa_s->ap_mld_addr, common_info->mld_addr)) {
wpa_printf(MSG_DEBUG, "MLD: Mismatching MLD address (expected "
MACSTR ")", MAC2STR(wpa_s->ap_mld_addr));
goto out;
if (!(mlo.valid_links & BIT(i)))
continue;
- if (os_memcmp(wpa_s->links[i].addr, mlo.links[i].addr,
- ETH_ALEN) != 0 ||
- os_memcmp(wpa_s->links[i].bssid, mlo.links[i].bssid,
- ETH_ALEN) != 0) {
+ if (!ether_addr_equal(wpa_s->links[i].addr,
+ mlo.links[i].addr) ||
+ !ether_addr_equal(wpa_s->links[i].bssid,
+ mlo.links[i].bssid)) {
match = false;
break;
}
}
if (match && wpa_s->mlo_assoc_link_id == mlo.assoc_link_id &&
- os_memcmp(wpa_s->ap_mld_addr, mlo.ap_mld_addr,
- ETH_ALEN) == 0)
+ ether_addr_equal(wpa_s->ap_mld_addr, mlo.ap_mld_addr))
return 0;
}
ft_completed = wpa_fils_is_completed(wpa_s->wpa);
wpa_supplicant_set_state(wpa_s, WPA_ASSOCIATED);
- if (os_memcmp(bssid, wpa_s->bssid, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(bssid, wpa_s->bssid)) {
if (os_reltime_initialized(&wpa_s->session_start)) {
os_reltime_age(&wpa_s->session_start,
&wpa_s->session_length);
os_get_reltime(&now);
os_reltime_sub(&now, &wpa_s->pending_eapol_rx_time, &age);
if (age.sec == 0 && age.usec < 200000 &&
- os_memcmp(wpa_s->pending_eapol_rx_src,
- wpa_s->valid_links ? wpa_s->ap_mld_addr : bssid,
- ETH_ALEN) == 0) {
+ ether_addr_equal(wpa_s->pending_eapol_rx_src,
+ wpa_s->valid_links ? wpa_s->ap_mld_addr :
+ bssid)) {
wpa_dbg(wpa_s, MSG_DEBUG, "Process pending EAPOL "
"frame that was received just before "
"association notification");
MACSTR " TargetAP " MACSTR " status %u",
MAC2STR(sta_addr), MAC2STR(target_ap_addr), status);
- if (os_memcmp(sta_addr, wpa_s->own_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(sta_addr, wpa_s->own_addr)) {
wpa_dbg(wpa_s, MSG_DEBUG, "FT: Foreign STA Address " MACSTR
" in FT Action Response", MAC2STR(sta_addr));
return;
size_t qlen = plen - 1;
wpa_dbg(wpa_s, MSG_DEBUG, "Interworking: Received QoS Map Configure frame from "
MACSTR, MAC2STR(mgmt->sa));
- if (os_memcmp(mgmt->sa, wpa_s->bssid, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(mgmt->sa, wpa_s->bssid) &&
qlen > 2 && pos[0] == WLAN_EID_QOS_MAP_SET &&
pos[1] <= qlen - 2 && pos[1] >= 16)
wpas_qos_map_set(wpa_s, pos + 2, pos[1]);
int res;
if (!data || wpa_s->wpa_state != WPA_COMPLETED ||
- os_memcmp(data->sa, wpa_s->bssid, ETH_ALEN) != 0)
+ !ether_addr_equal(data->sa, wpa_s->bssid))
return;
wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_UNPROT_BEACON MACSTR,
MAC2STR(data->sa));
return;
}
- if (os_memcmp(bssid, wpa_s->bssid, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(bssid, wpa_s->bssid)) {
os_memcpy(wpa_s->bssid, bssid, ETH_ALEN);
wpa_supplicant_update_current_bss(wpa_s, wpa_s->bssid);
wpas_notify_bssid_changed(wpa_s);
*/
if (data->tx_status.type == WLAN_FC_TYPE_MGMT &&
data->tx_status.stype == WLAN_FC_STYPE_ACTION &&
- os_memcmp(wpa_s->p2pdev->pending_action_dst,
- data->tx_status.dst, ETH_ALEN) == 0) {
+ ether_addr_equal(wpa_s->p2pdev->pending_action_dst,
+ data->tx_status.dst)) {
offchannel_send_action_tx_status(
wpa_s->p2pdev, data->tx_status.dst,
data->tx_status.data,
wpa_s, NULL);
os_memcpy(addr, wpa_s->own_addr, ETH_ALEN);
wpa_supplicant_update_mac_addr(wpa_s);
- if (os_memcmp(addr, wpa_s->own_addr, ETH_ALEN) != 0)
+ if (!ether_addr_equal(addr, wpa_s->own_addr))
wpa_sm_pmksa_cache_flush(wpa_s->wpa, NULL);
else
wpa_sm_pmksa_cache_reconfig(wpa_s->wpa);
#endif /* CONFIG_IBSS_RSN */
break;
case EVENT_DRIVER_GTK_REKEY:
- if (os_memcmp(data->driver_gtk_rekey.bssid,
- wpa_s->bssid, ETH_ALEN))
+ if (!ether_addr_equal(data->driver_gtk_rekey.bssid,
+ wpa_s->bssid))
break;
if (!wpa_s->wpa)
break;
struct wpa_supplicant *wpa_s = gas->wpa_s;
dl_list_for_each(q, &gas->pending, struct gas_query_pending, list) {
- if (os_memcmp(q->addr, addr, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(q->addr, addr) &&
q->dialog_token == dialog_token)
return q;
if (wpa_s->valid_links &&
- os_memcmp(wpa_s->ap_mld_addr, addr, ETH_ALEN) == 0 &&
+ ether_addr_equal(wpa_s->ap_mld_addr, addr) &&
wpas_ap_link_address(wpa_s, q->addr))
return q;
}
wpa_printf(MSG_DEBUG, "GAS: TX status: freq=%u dst=" MACSTR
" result=%d query=%p dialog_token=%u dur=%d ms",
freq, MAC2STR(dst), result, query, query->dialog_token, dur);
- if (os_memcmp(dst, query->addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(dst, query->addr)) {
wpa_printf(MSG_DEBUG, "GAS: TX status for unexpected destination");
return;
}
(!gas->wpa_s->conf->gas_address3 ||
(gas->wpa_s->current_ssid &&
gas->wpa_s->wpa_state >= WPA_ASSOCIATED &&
- os_memcmp(query->addr, gas->wpa_s->bssid, ETH_ALEN) == 0)))
+ ether_addr_equal(query->addr, gas->wpa_s->bssid))))
bssid = query->addr;
else
bssid = wildcard_bssid;
{
struct gas_query_pending *q;
dl_list_for_each(q, &gas->pending, struct gas_query_pending, list) {
- if (os_memcmp(dst, q->addr, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(dst, q->addr) &&
dialog_token == q->dialog_token)
return 0;
}
struct icon_entry *icon;
dl_list_for_each(icon, &wpa_s->icon_head, struct icon_entry, list) {
- if (os_memcmp(icon->bssid, bssid, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(icon->bssid, bssid) &&
os_strcmp(icon->file_name, file_name) == 0 && icon->image)
return icon;
}
dl_list_for_each_safe(icon, tmp, &wpa_s->icon_head, struct icon_entry,
list) {
- if ((!bssid || os_memcmp(icon->bssid, bssid, ETH_ALEN) == 0) &&
+ if ((!bssid || ether_addr_equal(icon->bssid, bssid)) &&
(!file_name ||
os_strcmp(icon->file_name, file_name) == 0)) {
dl_list_del(&icon->list);
list) {
if (icon == new_icon)
continue;
- if (os_memcmp(icon->bssid, new_icon->bssid, ETH_ALEN) == 0 &&
+ if (ether_addr_equal(icon->bssid, new_icon->bssid) &&
os_strcmp(icon->file_name, new_icon->file_name) == 0) {
dl_list_del(&icon->list);
hs20_free_icon_entry(icon);
dl_list_for_each(icon, &wpa_s->icon_head, struct icon_entry, list) {
if (icon->dialog_token == dialog_token && !icon->image &&
- os_memcmp(icon->bssid, sa, ETH_ALEN) == 0) {
+ ether_addr_equal(icon->bssid, sa)) {
icon->image = os_memdup(pos, slen);
if (!icon->image)
return -1;
struct ibss_rsn_peer *peer;
for (peer = ibss_rsn->peers; peer; peer = peer->next)
- if (os_memcmp(addr, peer->addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(addr, peer->addr))
break;
return peer;
}
for (prev = NULL, peer = ibss_rsn->peers; peer != NULL;
prev = peer, peer = peer->next) {
- if (os_memcmp(peermac, peer->addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(peermac, peer->addr)) {
if (prev == NULL)
ibss_rsn->peers = peer->next;
else
continue;
if (!(other->flags & WPA_BSS_ANQP_FETCH_TRIED))
continue;
- if (os_memcmp(bss->hessid, other->hessid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(bss->hessid, other->hessid))
continue;
if (bss->ssid_len != other->ssid_len ||
os_memcmp(bss->ssid, other->ssid, bss->ssid_len) != 0)
*/
dl_list_for_each_reverse(tmp, &wpa_s->bss, struct wpa_bss, list) {
if (tmp == wpa_s->interworking_gas_bss &&
- os_memcmp(tmp->bssid, dst, ETH_ALEN) == 0) {
+ ether_addr_equal(tmp->bssid, dst)) {
bss = tmp;
break;
}
if (ssid && ssid->no_auto_peer &&
(is_zero_ether_addr(data->mesh_required_peer) ||
- os_memcmp(data->mesh_required_peer, addr, ETH_ALEN) != 0)) {
+ !ether_addr_equal(data->mesh_required_peer, addr))) {
wpa_msg(wpa_s, MSG_INFO, "will not initiate new peer link with "
MACSTR " because of no_auto_peer", MAC2STR(addr));
if (data->mesh_pending_auth) {
mgmt = wpabuf_head(data->mesh_pending_auth);
os_reltime_age(&data->mesh_pending_auth_time, &age);
if (age.sec < 2 &&
- os_memcmp(mgmt->sa, addr, ETH_ALEN) == 0) {
+ ether_addr_equal(mgmt->sa, addr)) {
wpa_printf(MSG_DEBUG,
"mesh: Process pending Authentication frame from %u.%06u seconds ago",
(unsigned int) age.sec,
{
struct wpa_supplicant *iface;
- if (os_memcmp(src, wpa_s->own_addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(src, wpa_s->own_addr)) {
#ifdef CONFIG_P2P
if (wpa_s->p2p_mgmt && wpa_s != wpa_s->parent &&
wpa_s->parent->ap_iface &&
- os_memcmp(wpa_s->parent->own_addr,
- wpa_s->own_addr, ETH_ALEN) == 0 &&
+ ether_addr_equal(wpa_s->parent->own_addr,
+ wpa_s->own_addr) &&
wpabuf_len(wpa_s->pending_action_tx) >= 2 &&
*wpabuf_head_u8(wpa_s->pending_action_tx) !=
WLAN_ACTION_PUBLIC) {
*/
iface = wpa_s->global->ifaces;
while (iface) {
- if (os_memcmp(src, iface->own_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(src, iface->own_addr))
break;
iface = iface->next;
}
return;
}
- if (os_memcmp(dst, wpa_s->pending_action_dst, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(dst, wpa_s->pending_action_dst)) {
wpa_printf(MSG_DEBUG, "Off-channel: Ignore Action TX status - "
"unknown destination address");
return;
"group (GO Dev Addr " MACSTR ")", MAC2STR(go_dev_addr));
for (s = wpa_s->conf->ssid; s; s = s->next) {
if (s->disabled == 2 &&
- os_memcmp(go_dev_addr, s->bssid, ETH_ALEN) == 0 &&
+ ether_addr_equal(go_dev_addr, s->bssid) &&
s->ssid_len == ssid->ssid_len &&
os_memcmp(ssid->ssid, s->ssid, ssid->ssid_len) == 0)
break;
return;
for (i = 0; s->p2p_client_list && i < s->num_p2p_clients; i++) {
- if (os_memcmp(s->p2p_client_list + i * 2 * ETH_ALEN, addr,
- ETH_ALEN) != 0)
+ if (!ether_addr_equal(s->p2p_client_list + i * 2 * ETH_ALEN,
+ addr))
continue;
if (i == s->num_p2p_clients - 1)
if (result != OFFCHANNEL_SEND_ACTION_SUCCESS &&
wpa_s->pending_pd_before_join &&
- (os_memcmp(dst, wpa_s->pending_join_dev_addr, ETH_ALEN) == 0 ||
- os_memcmp(dst, wpa_s->pending_join_iface_addr, ETH_ALEN) == 0) &&
+ (ether_addr_equal(dst, wpa_s->pending_join_dev_addr) ||
+ ether_addr_equal(dst, wpa_s->pending_join_iface_addr)) &&
wpa_s->p2p_fallback_to_go_neg) {
wpa_s->pending_pd_before_join = 0;
wpa_dbg(wpa_s, MSG_DEBUG, "P2P: No ACK for PD Req "
char params[20];
if (wpa_s->pending_pd_before_join &&
- (os_memcmp(peer, wpa_s->pending_join_dev_addr, ETH_ALEN) == 0 ||
- os_memcmp(peer, wpa_s->pending_join_iface_addr, ETH_ALEN) == 0)) {
+ (ether_addr_equal(peer, wpa_s->pending_join_dev_addr) ||
+ ether_addr_equal(peer, wpa_s->pending_join_iface_addr))) {
wpa_s->pending_pd_before_join = 0;
wpa_printf(MSG_DEBUG, "P2P: Starting pending "
"join-existing-group operation");
" to join an active group (SSID: %s)",
MAC2STR(sa), wpa_ssid_txt(ssid, ssid_len));
if (!is_zero_ether_addr(wpa_s->p2p_auth_invite) &&
- (os_memcmp(go_dev_addr, wpa_s->p2p_auth_invite, ETH_ALEN)
- == 0 ||
- os_memcmp(sa, wpa_s->p2p_auth_invite, ETH_ALEN) == 0)) {
+ (ether_addr_equal(go_dev_addr, wpa_s->p2p_auth_invite) ||
+ ether_addr_equal(sa, wpa_s->p2p_auth_invite))) {
wpa_printf(MSG_DEBUG, "P2P: Accept previously "
"authorized invitation");
goto accept_inv;
}
if (!is_zero_ether_addr(wpa_s->p2p_auth_invite) &&
- os_memcmp(sa, wpa_s->p2p_auth_invite, ETH_ALEN) == 0) {
+ ether_addr_equal(sa, wpa_s->p2p_auth_invite)) {
wpa_printf(MSG_DEBUG, "P2P: Accept previously initiated "
"invitation to re-invoke a persistent group");
os_memset(wpa_s->p2p_auth_invite, 0, ETH_ALEN);
for (s = wpa_s->conf->ssid; s; s = s->next) {
if (s->disabled == 2 &&
- os_memcmp(s->bssid, go_dev_addr, ETH_ALEN) == 0 &&
+ ether_addr_equal(s->bssid, go_dev_addr) &&
s->ssid_len == ssid_len &&
os_memcmp(ssid, s->ssid, ssid_len) == 0)
break;
return;
for (i = 0; ssid->p2p_client_list && i < ssid->num_p2p_clients; i++) {
- if (os_memcmp(ssid->p2p_client_list + i * 2 * ETH_ALEN, peer,
- ETH_ALEN) == 0)
+ if (ether_addr_equal(ssid->p2p_client_list + i * 2 * ETH_ALEN,
+ peer))
break;
}
if (i >= ssid->num_p2p_clients || !ssid->p2p_client_list) {
if (ssid->mode != WPAS_MODE_P2P_GO &&
- os_memcmp(ssid->bssid, peer, ETH_ALEN) == 0) {
+ ether_addr_equal(ssid->bssid, peer)) {
wpa_printf(MSG_DEBUG, "P2P: Remove persistent group %d "
"due to invitation result", ssid->id);
wpas_notify_network_removed(wpa_s, ssid);
struct wpa_supplicant *wpa_s = ctx;
for (wpa_s = wpa_s->global->ifaces; wpa_s; wpa_s = wpa_s->next) {
- if (os_memcmp(wpa_s->own_addr, interface_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(wpa_s->own_addr, interface_addr))
break;
}
if (wpa_s == NULL)
struct wpa_ssid *ssid = wpa_s->current_ssid;
if (ssid && (ssid->mode != WPAS_MODE_INFRA || !ssid->p2p_group))
continue;
- if (os_memcmp(wpa_s->go_dev_addr, peer_dev_addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(wpa_s->go_dev_addr, peer_dev_addr))
return wpa_s;
}
while ((s = wpas_p2p_get_persistent(wpa_s, peer, NULL, 0))) {
if (go && ssid && ssid_len &&
s->ssid_len == ssid_len &&
- os_memcmp(go, s->bssid, ETH_ALEN) == 0 &&
+ ether_addr_equal(go, s->bssid) &&
os_memcmp(ssid, s->ssid, ssid_len) == 0)
break;
}
for (i = 0; i < s->num_p2p_clients; i++) {
- if (os_memcmp(s->p2p_client_list + i * 2 * ETH_ALEN,
- peer, ETH_ALEN) != 0)
+ if (!ether_addr_equal(s->p2p_client_list +
+ i * 2 * ETH_ALEN, peer))
continue;
os_memmove(s->p2p_client_list + i * 2 * ETH_ALEN,
break;
if (s && s->ssid_len == stale->ssid_len &&
- os_memcmp(stale->bssid, s->bssid, ETH_ALEN) == 0 &&
+ ether_addr_equal(stale->bssid, s->bssid) &&
os_memcmp(stale->ssid, s->ssid, s->ssid_len) == 0)
break;
size_t i;
for (i = 0; i < stale->num_p2p_clients; i++) {
- if (os_memcmp(stale->p2p_client_list +
- i * ETH_ALEN,
- dev, ETH_ALEN) == 0) {
+ if (ether_addr_equal(stale->p2p_client_list +
+ i * ETH_ALEN, dev)) {
os_memmove(stale->p2p_client_list +
i * ETH_ALEN,
stale->p2p_client_list +
p2p_get_interface_addr(wpa_s->global->p2p,
wpa_s->pending_join_dev_addr,
iface_addr) == 0 &&
- os_memcmp(iface_addr, wpa_s->pending_join_dev_addr, ETH_ALEN) != 0
- && !wpa_bss_get_bssid(wpa_s, wpa_s->pending_join_iface_addr)) {
+ !ether_addr_equal(iface_addr, wpa_s->pending_join_dev_addr) &&
+ !wpa_bss_get_bssid(wpa_s, wpa_s->pending_join_iface_addr)) {
wpa_printf(MSG_DEBUG, "P2P: Overwrite pending interface "
"address for join from " MACSTR " to " MACSTR
" based on newly discovered P2P peer entry",
wpa_ssid_txt(bss->ssid, bss->ssid_len));
if (p2p_parse_dev_addr(wpa_bss_ie_ptr(bss), bss->ie_len,
dev_addr) == 0 &&
- os_memcmp(wpa_s->pending_join_dev_addr,
- wpa_s->pending_join_iface_addr, ETH_ALEN) == 0 &&
- os_memcmp(dev_addr, wpa_s->pending_join_dev_addr,
- ETH_ALEN) != 0) {
+ ether_addr_equal(wpa_s->pending_join_dev_addr,
+ wpa_s->pending_join_iface_addr) &&
+ !ether_addr_equal(dev_addr, wpa_s->pending_join_dev_addr)) {
wpa_printf(MSG_DEBUG,
"P2P: Update target GO device address based on BSS entry: " MACSTR " (was " MACSTR ")",
MAC2STR(dev_addr),
return s;
continue;
}
- if (os_memcmp(s->bssid, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(s->bssid, addr))
return s; /* peer is GO in the persistent group */
if (s->mode != WPAS_MODE_P2P_GO || s->p2p_client_list == NULL)
continue;
for (i = 0; i < s->num_p2p_clients; i++) {
- if (os_memcmp(s->p2p_client_list + i * 2 * ETH_ALEN,
- addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(s->p2p_client_list +
+ i * 2 * ETH_ALEN, addr))
return s; /* peer is P2P client in persistent
* group */
}
dl_list_for_each_safe(psk, tmp, &s->psk_list, struct psk_list_entry,
list) {
if ((iface_addr && !psk->p2p &&
- os_memcmp(addr, psk->addr, ETH_ALEN) == 0) ||
+ ether_addr_equal(addr, psk->addr)) ||
(!iface_addr && psk->p2p &&
- os_memcmp(addr, psk->addr, ETH_ALEN) == 0)) {
+ ether_addr_equal(addr, psk->addr))) {
wpa_dbg(wpa_s, MSG_DEBUG,
"P2P: Remove persistent group PSK list entry for "
MACSTR " p2p=%u",
prev = NULL;
psk = hapd->conf->ssid.wpa_psk;
while (psk) {
- if ((iface_addr && os_memcmp(peer, psk->addr, ETH_ALEN) == 0) ||
+ if ((iface_addr && ether_addr_equal(peer, psk->addr)) ||
(!iface_addr &&
- os_memcmp(peer, psk->p2p_dev_addr, ETH_ALEN) == 0)) {
+ ether_addr_equal(peer, psk->p2p_dev_addr))) {
wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Remove operating group PSK entry for "
MACSTR " iface_addr=%d",
MAC2STR(peer), iface_addr);
return -1;
}
- if (os_memcmp(entry->own_addr, own_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(entry->own_addr, own_addr)) {
wpa_printf(MSG_DEBUG,
"PASN: own addr " MACSTR " and PTKSA entry own addr "
MACSTR " differ",
while (wpa_s->pasn_count < pasn_params->num_peers) {
peer = &pasn_params->peer[wpa_s->pasn_count];
- if (os_memcmp(wpa_s->bssid, peer->peer_addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(wpa_s->bssid, peer->peer_addr)) {
wpa_printf(MSG_DEBUG,
"PASN: Associated peer is not expected");
peer->status = PASN_STATUS_FAILURE;
struct wpa_ie_data rsne_data;
int ret;
- if (os_memcmp(wpa_s->bssid, peer_addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(wpa_s->bssid, peer_addr)) {
wpa_printf(MSG_DEBUG,
"PASN: Not doing authentication with current BSS");
return NULL;
struct ieee80211_mgmt *deauth;
int ret;
- if (os_memcmp(wpa_s->bssid, peer_addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(wpa_s->bssid, peer_addr)) {
wpa_printf(MSG_DEBUG,
"PASN: Cannot deauthenticate from current BSS");
return -1;
struct rrm_measurement_beacon_report rep;
u8 idx = 0;
- if (os_memcmp(data->bssid, broadcast_ether_addr, ETH_ALEN) != 0 &&
- os_memcmp(data->bssid, bss->bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(data->bssid, broadcast_ether_addr) &&
+ !ether_addr_equal(data->bssid, bss->bssid))
return 0;
if (data->ssid_len &&
MAC2STR(info->scan_start_tsf_bssid),
MAC2STR(wpa_s->current_bss->bssid));
if ((wpa_s->drv_rrm_flags & WPA_DRIVER_FLAGS_SUPPORT_BEACON_REPORT) &&
- os_memcmp(info->scan_start_tsf_bssid, wpa_s->current_bss->bssid,
- ETH_ALEN) != 0) {
+ !ether_addr_equal(info->scan_start_tsf_bssid,
+ wpa_s->current_bss->bssid)) {
wpa_printf(MSG_DEBUG,
"RRM: Ignore scan results due to mismatching TSF BSSID");
goto out;
if ((wpa_s->drv_rrm_flags &
WPA_DRIVER_FLAGS_SUPPORT_BEACON_REPORT) &&
- os_memcmp(scan_res->res[i]->tsf_bssid,
- wpa_s->current_bss->bssid, ETH_ALEN) != 0) {
+ !ether_addr_equal(scan_res->res[i]->tsf_bssid,
+ wpa_s->current_bss->bssid)) {
wpa_printf(MSG_DEBUG,
"RRM: Ignore scan result for " MACSTR
" due to mismatching TSF BSSID" MACSTR,
return 1;
for (i = 0; i < wpa_s->bssid_filter_count; i++) {
- if (os_memcmp(wpa_s->bssid_filter + i * ETH_ALEN, bssid,
- ETH_ALEN) == 0)
+ if (ether_addr_equal(wpa_s->bssid_filter + i * ETH_ALEN, bssid))
return 1;
}
}
if (reuse && wpa_s->sme.sae.tmp &&
- os_memcmp(addr, wpa_s->sme.sae.tmp->bssid, ETH_ALEN) == 0) {
+ ether_addr_equal(addr, wpa_s->sme.sae.tmp->bssid)) {
wpa_printf(MSG_DEBUG,
"SAE: Reuse previously generated PWE on a retry with the same AP");
use_pt = wpa_s->sme.sae.h2e;
if (wpa_s->mlo_assoc_link_id == i)
continue;
- if (os_memcmp(wpa_s->links[i].bssid,
- wpa_s->conf->mld_connect_bssid_pref,
- ETH_ALEN) == 0)
+ if (ether_addr_equal(
+ wpa_s->links[i].bssid,
+ wpa_s->conf->mld_connect_bssid_pref))
goto found;
}
}
wpa_printf(MSG_DEBUG, "MLD: mld_address=" MACSTR, MAC2STR(mld_addr));
- if (os_memcmp(wpa_s->ap_mld_addr, mld_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(wpa_s->ap_mld_addr, mld_addr)) {
wpa_printf(MSG_DEBUG, "MLD: Unexpected MLD address (expected "
MACSTR ")", MAC2STR(wpa_s->ap_mld_addr));
goto out;
wpa_printf(MSG_DEBUG, "MLD: mld_address=" MACSTR, MAC2STR(mld_addr));
- if (os_memcmp(wpa_s->sme.ext_auth_ap_mld_addr, mld_addr, ETH_ALEN) !=
- 0) {
+ if (!ether_addr_equal(wpa_s->sme.ext_auth_ap_mld_addr, mld_addr)) {
wpa_printf(MSG_DEBUG, "MLD: Unexpected MLD address (expected "
MACSTR ")",
MAC2STR(wpa_s->sme.ext_auth_ap_mld_addr));
return;
}
- if (os_memcmp(wpa_s->pending_bssid, data->auth.peer, ETH_ALEN) != 0 &&
+ if (!ether_addr_equal(wpa_s->pending_bssid, data->auth.peer) &&
!(wpa_s->valid_links &&
- os_memcmp(wpa_s->ap_mld_addr, data->auth.peer, ETH_ALEN) == 0)) {
+ ether_addr_equal(wpa_s->ap_mld_addr, data->auth.peer))) {
wpa_dbg(wpa_s, MSG_DEBUG, "SME: Ignore authentication with "
"unexpected peer " MACSTR,
MAC2STR(data->auth.peer));
ssid = wpa_s->current_ssid;
if (wpas_get_ssid_pmf(wpa_s, ssid) == NO_MGMT_FRAME_PROTECTION)
return;
- if (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(sa, wpa_s->bssid))
return;
if (reason_code != WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA &&
reason_code != WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA)
wpa_dbg(wpa_s, MSG_DEBUG, "SME: Received SA Query response from "
MACSTR " (trans_id %02x%02x)", MAC2STR(sa), data[1], data[2]);
- if (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(sa, wpa_s->bssid))
return;
for (i = 0; i < wpa_s->sme.sa_query_count; i++) {
}
/* make sure the params are the same */
- if (os_memcmp(req->address, sa, ETH_ALEN) != 0 ||
+ if (!ether_addr_equal(req->address, sa) ||
tsid != wmm_ac_get_tsid(&req->tspec) ||
up != wmm_ac_get_user_priority(&req->tspec) ||
dir != wmm_ac_get_direction(&req->tspec)) {
}
/* WMM AC action frame */
- if (os_memcmp(da, wpa_s->own_addr, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(da, wpa_s->own_addr)) {
wpa_printf(MSG_DEBUG, "WMM AC: frame destination addr="MACSTR
" is other than ours, ignoring frame", MAC2STR(da));
return;
}
- if (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(sa, wpa_s->bssid)) {
wpa_printf(MSG_DEBUG, "WMM AC: ignore frame with sa " MACSTR
" different other than our bssid", MAC2STR(da));
return;
if (reason) {
for (i = 0; i < info->num; i++) {
if (first_candidate_bssid &&
- os_memcmp(first_candidate_bssid,
- info->candidates[i].bssid, ETH_ALEN) == 0)
- {
+ ether_addr_equal(first_candidate_bssid,
+ info->candidates[i].bssid)) {
*reason = info->candidates[i].reject_reason;
break;
}
}
if (!wpa_s->current_bss ||
- os_memcmp(wpa_s->wnm_cand_from_bss, wpa_s->current_bss->bssid,
- ETH_ALEN) != 0) {
+ !ether_addr_equal(wpa_s->wnm_cand_from_bss,
+ wpa_s->current_bss->bssid)) {
wpa_printf(MSG_DEBUG, "WNM: Stored BSS transition candidate list not from the current BSS - ignore it");
return 0;
}
const u8 *ssid_ie;
res = scan_res->res[j];
- if (os_memcmp(nei->bssid, res->bssid, ETH_ALEN) != 0 ||
+ if (!ether_addr_equal(nei->bssid, res->bssid) ||
res->age > WNM_SCAN_RESULT_AGE * 1000)
continue;
bss = wpa_s->current_bss;
wnm_parse_neighbor_report(wpa_s, pos, len, rep);
if ((wpa_s->wnm_mode &
WNM_BSS_TM_REQ_DISASSOC_IMMINENT) &&
- os_memcmp(rep->bssid, wpa_s->bssid,
- ETH_ALEN) == 0)
+ ether_addr_equal(rep->bssid, wpa_s->bssid))
rep->disassoc_imminent = 1;
wpa_s->wnm_num_neighbor_report++;
pos, end - pos);
if (wpa_s->wpa_state != WPA_COMPLETED ||
- (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0 &&
+ (!ether_addr_equal(sa, wpa_s->bssid) &&
(!wpa_s->valid_links ||
- os_memcmp(sa, wpa_s->ap_mld_addr, ETH_ALEN) != 0))) {
+ !ether_addr_equal(sa, wpa_s->ap_mld_addr)))) {
wpa_dbg(wpa_s, MSG_DEBUG, "WNM: WNM-Notification frame not "
"from our AP - ignore it");
return;
return; /* only nonzero values are used for request */
if (wpa_s->wpa_state != WPA_COMPLETED ||
- (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0 &&
+ (!ether_addr_equal(sa, wpa_s->bssid) &&
(!wpa_s->valid_links ||
- os_memcmp(sa, wpa_s->ap_mld_addr, ETH_ALEN) != 0))) {
+ !ether_addr_equal(sa, wpa_s->ap_mld_addr)))) {
wpa_dbg(wpa_s, MSG_DEBUG,
"WNM: Collocated Interference Request frame not from current AP - ignore it");
return;
wpa_printf(MSG_DEBUG, "WNM: RX action %u from " MACSTR,
act, MAC2STR(mgmt->sa));
if (wpa_s->wpa_state < WPA_ASSOCIATED ||
- (os_memcmp(mgmt->sa, wpa_s->bssid, ETH_ALEN) != 0 &&
+ (!ether_addr_equal(mgmt->sa, wpa_s->bssid) &&
(!wpa_s->valid_links ||
- os_memcmp(mgmt->sa, wpa_s->ap_mld_addr, ETH_ALEN) != 0))) {
+ !ether_addr_equal(mgmt->sa, wpa_s->ap_mld_addr)))) {
wpa_printf(MSG_DEBUG, "WNM: Ignore unexpected WNM Action "
"frame");
return;
*/
if (wpa_s->current_bss &&
- os_memcmp(wpa_s->current_bss->bssid, bss->bssid, ETH_ALEN) == 0) {
+ ether_addr_equal(wpa_s->current_bss->bssid, bss->bssid)) {
wpa_dbg(wpa_s, MSG_DEBUG,
"WNM: Disassociation imminent: current BSS");
return true;
if (!(wpa_s->valid_links & BIT(i)))
continue;
- if (os_memcmp(wpa_s->links[i].bssid, bss->bssid,
- ETH_ALEN) == 0) {
+ if (ether_addr_equal(wpa_s->links[i].bssid, bss->bssid)) {
wpa_dbg(wpa_s, MSG_DEBUG,
"WNM: MLD: Disassociation imminent: current link");
return true;
if (style == WPAS_MAC_ADDR_STYLE_DEDICATED_PER_ESS) {
/* Pregenerated addresses do not expire but their value
* might have changed, so let's check that. */
- if (os_memcmp(wpa_s->own_addr, ssid->mac_value,
- ETH_ALEN) == 0)
+ if (ether_addr_equal(wpa_s->own_addr, ssid->mac_value))
return 0;
} else if ((wpa_s->last_mac_addr_change.sec != 0 ||
wpa_s->last_mac_addr_change.usec != 0) &&
os_memcmp(ssid, entry->ssid, ssid_len) == 0)) ||
wired) &&
(!entry->bssid_set ||
- os_memcmp(bssid, entry->bssid, ETH_ALEN) == 0))
+ ether_addr_equal(bssid, entry->bssid)))
return entry;
#ifdef CONFIG_WPS
if (!wpas_network_disabled(wpa_s, entry) &&
(entry->key_mgmt & WPA_KEY_MGMT_WPS) &&
(entry->ssid == NULL || entry->ssid_len == 0) &&
(!entry->bssid_set ||
- os_memcmp(bssid, entry->bssid, ETH_ALEN) == 0))
+ ether_addr_equal(bssid, entry->bssid)))
return entry;
#endif /* CONFIG_WPS */
owe_trans_ssid_match(wpa_s, bssid, entry->ssid,
entry->ssid_len)) &&
(!entry->bssid_set ||
- os_memcmp(bssid, entry->bssid, ETH_ALEN) == 0))
+ ether_addr_equal(bssid, entry->bssid)))
return entry;
#endif /* CONFIG_OWE */
if (!wpas_network_disabled(wpa_s, entry) && entry->bssid_set &&
entry->ssid_len == 0 &&
- os_memcmp(bssid, entry->bssid, ETH_ALEN) == 0)
+ ether_addr_equal(bssid, entry->bssid))
return entry;
entry = entry->next;
#ifdef CONFIG_AP
!wpa_s->ap_iface &&
#endif /* CONFIG_AP */
- os_memcmp(src_addr, connected_addr, ETH_ALEN) != 0)) {
+ !ether_addr_equal(src_addr, connected_addr))) {
/*
* There is possible race condition between receiving the
* association event and the EAPOL frame since they are coming
}
wpa_s->last_eapol_matches_bssid =
- os_memcmp(src_addr, connected_addr, ETH_ALEN) == 0;
+ ether_addr_equal(src_addr, connected_addr);
#ifdef CONFIG_AP
if (wpa_s->ap_iface) {
fst_update_mac_addr(wpa_s->fst, wpa_s->own_addr);
#endif /* CONFIG_FST */
- if (os_memcmp(prev_mac_addr, wpa_s->own_addr, ETH_ALEN) != 0)
+ if (!ether_addr_equal(prev_mac_addr, wpa_s->own_addr))
wpas_notify_mac_address_changed(wpa_s);
return 0;
return;
eth = (const struct l2_ethhdr *) buf;
- if (os_memcmp(eth->h_dest, wpa_s->own_addr, ETH_ALEN) != 0 &&
+ if (!ether_addr_equal(eth->h_dest, wpa_s->own_addr) &&
!(eth->h_dest[0] & 0x01)) {
wpa_dbg(wpa_s, MSG_DEBUG, "RX EAPOL from " MACSTR " to " MACSTR
" (bridge - not for this interface - ignore)",
{
struct wpa_supplicant *wpa_s = ctx;
- if (os_memcmp(wpa_s->bssid, da, ETH_ALEN) != 0) {
+ if (!ether_addr_equal(wpa_s->bssid, da)) {
wpa_printf(MSG_INFO, "FST:%s:bssid=" MACSTR " != da=" MACSTR,
__func__, MAC2STR(wpa_s->bssid), MAC2STR(da));
return -1;
{
struct wpa_supplicant *wpa_s = ctx;
- WPA_ASSERT(os_memcmp(wpa_s->bssid, addr, ETH_ALEN) == 0);
+ WPA_ASSERT(ether_addr_equal(wpa_s->bssid, addr));
return wpa_s->received_mb_ies;
}
struct wpa_supplicant *wpa_s = ctx;
struct mb_ies_info info;
- WPA_ASSERT(os_memcmp(wpa_s->bssid, addr, ETH_ALEN) == 0);
+ WPA_ASSERT(ether_addr_equal(wpa_s->bssid, addr));
if (!mb_ies_info_by_ies(&info, buf, size)) {
wpabuf_free(wpa_s->received_mb_ies);
wpa_s->wpa_state < WPA_4WAY_HANDSHAKE)
return 0;
if (wpa_s->valid_links) {
- if (os_memcmp(addr, wpa_s->ap_mld_addr, ETH_ALEN) != 0 &&
+ if (!ether_addr_equal(addr, wpa_s->ap_mld_addr) &&
!wpas_ap_link_address(wpa_s, addr))
return 0;
} else {
- if (os_memcmp(addr, wpa_s->bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(addr, wpa_s->bssid))
return 0;
}
return wpa_sm_pmf_enabled(wpa_s->wpa);
return 0;
for (i = 0; i < wpa_s->disallow_aps_bssid_count; i++) {
- if (os_memcmp(wpa_s->disallow_aps_bssid + i * ETH_ALEN,
- bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(wpa_s->disallow_aps_bssid + i * ETH_ALEN,
+ bssid))
return 1;
}
dl_list_for_each(bss, &wpa_s->bss_tmp_disallowed,
struct wpa_bss_tmp_disallowed, list) {
- if (os_memcmp(bssid, bss->bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(bssid, bss->bssid))
return bss;
}
dl_list_for_each_safe(tmp, prev, &wpa_s->bss_tmp_disallowed,
struct wpa_bss_tmp_disallowed, list) {
- if (os_memcmp(bss->bssid, tmp->bssid, ETH_ALEN) == 0) {
+ if (ether_addr_equal(bss->bssid, tmp->bssid)) {
disallowed = tmp;
break;
}
dl_list_for_each(dso, &wpa_s->drv_signal_override,
struct driver_signal_override, list) {
- if (os_memcmp(wpa_s->bssid, dso->bssid,
- ETH_ALEN) != 0)
+ if (!ether_addr_equal(wpa_s->bssid, dso->bssid))
continue;
wpa_printf(MSG_DEBUG,
"Override driver signal_poll information: current_signal: %d->%d avg_signal: %d->%d avg_beacon_signal: %d->%d current_noise: %d->%d",
dl_list_for_each(dso, &wpa_s->drv_signal_override,
struct driver_signal_override, list) {
- if (os_memcmp(res->bssid, dso->bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(res->bssid, dso->bssid))
continue;
wpa_printf(MSG_DEBUG,
"Override driver scan signal level %d->%d for "
if (!(wpa_s->valid_links & BIT(i)))
continue;
- if (os_memcmp(wpa_s->links[i].bssid, addr, ETH_ALEN) == 0)
+ if (ether_addr_equal(wpa_s->links[i].bssid, addr))
return true;
}
const u8 *ie;
dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
- if (os_memcmp(bss->bssid, wpa_s->bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(bss->bssid, wpa_s->bssid))
continue;
if (ssid == NULL ||
((bss->ssid_len == ssid->ssid_len &&
if (ssid->bssid_set || new_ssid->bssid_set) {
if (ssid->bssid_set != new_ssid->bssid_set)
continue;
- if (os_memcmp(ssid->bssid, new_ssid->bssid, ETH_ALEN) !=
- 0)
+ if (!ether_addr_equal(ssid->bssid, new_ssid->bssid))
continue;
}
*/
#ifndef CONFIG_P2P
dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
- if (os_memcmp(bssid, bss->bssid, ETH_ALEN) != 0)
+ if (!ether_addr_equal(bssid, bss->bssid))
continue;
os_free(ssid->ssid);
}
if (!ret && ssid->bssid_set &&
- os_memcmp(ssid->bssid, bss->bssid, ETH_ALEN) == 0) {
+ ether_addr_equal(ssid->bssid, bss->bssid)) {
/* allow wildcard SSID due to hardcoded BSSID match */
ret = 1;
}
const u8 *sel_uuid)
{
if (!ap->pbc_active ||
- os_memcmp(selected->bssid, ap->bssid, ETH_ALEN) == 0)
+ ether_addr_equal(selected->bssid, ap->bssid))
return false;
if (!is_zero_ether_addr(ssid->bssid) &&
- os_memcmp(ap->bssid, ssid->bssid, ETH_ALEN) != 0) {
+ !ether_addr_equal(ap->bssid, ssid->bssid)) {
wpa_printf(MSG_DEBUG, "WPS: Ignore another BSS " MACSTR
" in active PBC mode due to local BSSID limitation",
MAC2STR(ap->bssid));
for (i = 0; i < wpa_s->num_wps_ap; i++) {
struct wps_ap_info *ap = &wpa_s->wps_ap[i];
- if (os_memcmp(ap->bssid, bssid, ETH_ALEN) == 0)
+ if (ether_addr_equal(ap->bssid, bssid))
return ap;
}