From: Jouni Malinen Date: Fri, 23 May 2025 12:35:29 +0000 (+0300) Subject: Update IEEE 802.11 references to point to the latest standard X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c94fa4483320490237f78319d05af0246a19b37d;p=thirdparty%2Fhostap.git Update IEEE 802.11 references to point to the latest standard Update references to various draft versions of the IEEE 802.11 standard or amendments to point to the latest standard. Signed-off-by: Jouni Malinen --- diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c index f4d78ef6a..049777b0a 100644 --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c @@ -1570,7 +1570,7 @@ setup_mld: /* * Short SSID calculation is identical to FCS and it is defined in - * IEEE P802.11-REVmd/D3.0, 9.4.2.170.3 (Calculating the Short-SSID). + * IEEE Std 802.11-2024, 9.4.2.169.3 (Calculating the Short-SSID). */ conf->ssid.short_ssid = ieee80211_crc32(conf->ssid.ssid, conf->ssid.ssid_len); diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c index e5939a1f1..47375abba 100644 --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c @@ -6493,7 +6493,8 @@ static int handle_action(struct hostapd_data *hapd, struct ieee80211_mgmt *resp; /* - * IEEE 802.11-REVma/D9.0 - 7.3.1.11 + * IEEE Std 802.11-2020, 10.28.4 (Response to an invalid Action + * and Action No Ack frame) * Return the Action frame to the source without change * except that MSB of the Category set to 1. */ @@ -7565,7 +7566,8 @@ static u8 * hostapd_eid_wb_channel_switch(struct hostapd_data *hapd, u8 *eid, u8 bw; /* bandwidth: 0: 40, 1: 80, 160, 80+80, 4 to 255 reserved as per - * IEEE P802.11-REVme/D7.0, 9.4.2.159 and Table 9-316. + * IEEE Std 802.11-2024, 9.4.2.156 and Table 9-316 (VHT Operation + * Information subfields). */ switch (hapd->cs_freq_params.bandwidth) { case 320: @@ -7585,7 +7587,8 @@ static u8 * hostapd_eid_wb_channel_switch(struct hostapd_data *hapd, u8 *eid, /* fallthrough */ case 160: /* Update the CCFS0 and CCFS1 values in the element based on - * IEEE P802.11-REVme/D7.0, Table 9-316 + * IEEE Std 802.11-2024, Table 9-316 (VHT Operation + * Information subfields). */ /* CCFS1 - The channel center frequency index of the 160 MHz diff --git a/src/ap/ieee802_11_eht.c b/src/ap/ieee802_11_eht.c index 07b6727f3..fe4d0ce56 100644 --- a/src/ap/ieee802_11_eht.c +++ b/src/ap/ieee802_11_eht.c @@ -1057,7 +1057,7 @@ static const u8 * auth_skip_fixed_fields(struct hostapd_data *hapd, #endif /* CONFIG_SAE */ const u8 *pos = mgmt->u.auth.variable; - /* Skip fixed fields as based on IEE P802.11-REVme/D3.0, Table 9-69 + /* Skip fixed fields as based on IEEE Std 802.11-2024, Table 9-71 * (Presence of fields and elements in Authentications frames) */ switch (auth_alg) { case WLAN_AUTH_OPEN: diff --git a/src/ap/neighbor_db.c b/src/ap/neighbor_db.c index f7a7d83d4..1768982d8 100644 --- a/src/ap/neighbor_db.c +++ b/src/ap/neighbor_db.c @@ -266,8 +266,6 @@ void hostapd_neighbor_set_own_report(struct hostapd_data *hapd) if (ht) { bssid_info |= NEI_REP_BSSID_INFO_HT | NEI_REP_BSSID_INFO_DELAYED_BA; - - /* VHT bit added in IEEE P802.11-REVmc/D4.3 */ if (vht) bssid_info |= NEI_REP_BSSID_INFO_VHT; } @@ -317,8 +315,8 @@ void hostapd_neighbor_set_own_report(struct hostapd_data *hapd) /* * Wide Bandwidth Channel subelement may be needed to allow the - * receiving STA to send packets to the AP. See IEEE P802.11-REVmc/D5.0 - * Figure 9-301. + * receiving STA to send packets to the AP. See IEEE Std 802.11-2024, + * Figure 9-423 (Wide Bandwidth Channel subelement format). */ wpabuf_put_u8(nr, WNM_NEIGHBOR_WIDE_BW_CHAN); wpabuf_put_u8(nr, 3); diff --git a/src/ap/rrm.c b/src/ap/rrm.c index fbcddf3f9..73771e4c5 100644 --- a/src/ap/rrm.c +++ b/src/ap/rrm.c @@ -536,13 +536,14 @@ int hostapd_send_range_req(struct hostapd_data *hapd, const u8 *addr, if (!hapd->range_req_token) /* For wraparounds */ hapd->range_req_token++; - /* IEEE P802.11-REVmc/D5.0, 9.6.7.2 */ + /* IEEE Std 802.11-2024, 9.6.6.2 (Radio Measurement Request frame + * format) */ wpabuf_put_u8(buf, WLAN_ACTION_RADIO_MEASUREMENT); wpabuf_put_u8(buf, WLAN_RRM_RADIO_MEASUREMENT_REQUEST); wpabuf_put_u8(buf, hapd->range_req_token); /* Dialog Token */ wpabuf_put_le16(buf, 0); /* Number of Repetitions */ - /* IEEE P802.11-REVmc/D5.0, 9.4.2.21 */ + /* IEEE Std 802.11-2024, 9.4.2.19 (Measurement Request element) */ wpabuf_put_u8(buf, WLAN_EID_MEASURE_REQUEST); len = wpabuf_put(buf, 1); /* Length will be set later */ @@ -554,7 +555,7 @@ int hostapd_send_range_req(struct hostapd_data *hapd, const u8 *addr, wpabuf_put_u8(buf, 0); /* Measurement Request Mode */ wpabuf_put_u8(buf, MEASURE_TYPE_FTM_RANGE); /* Measurement Type */ - /* IEEE P802.11-REVmc/D5.0, 9.4.2.21.19 */ + /* IEEE Std 802.11-2024, 9.4.2.19.19 (FTM Range request) */ wpabuf_put_le16(buf, random_interval); /* Randomization Interval */ wpabuf_put_u8(buf, min_ap); /* Minimum AP Count */ diff --git a/src/common/common_module_tests.c b/src/common/common_module_tests.c index 5763c51f4..4339fc772 100644 --- a/src/common/common_module_tests.c +++ b/src/common/common_module_tests.c @@ -608,7 +608,8 @@ static int sae_pk_tests(void) static int pasn_test_pasn_auth(void) { - /* Test vector taken from IEEE P802.11az/D2.6, J.12 */ + /* Test vector taken from IEEE Std 802.11-2024, + * J.12 (PASN Test Vectors) */ const u8 pmk[] = { 0xde, 0xf4, 0x3e, 0x55, 0x67, 0xe0, 0x1c, 0xa6, 0x64, 0x92, 0x65, 0xf1, 0x9a, 0x29, 0x0e, 0xef, @@ -680,7 +681,8 @@ static int pasn_test_pasn_auth(void) static int pasn_test_no_pasn_auth(void) { - /* Test vector taken from IEEE P802.11az/D2.6, J.13 */ + /* Test vector taken from IEEE Std 802.11-2024, + * J.13 (KDK Test Vectors when PASN authentication is not used) */ const u8 pmk[] = { 0xde, 0xf4, 0x3e, 0x55, 0x67, 0xe0, 0x1c, 0xa6, 0x64, 0x92, 0x65, 0xf1, 0x9a, 0x29, 0x0e, 0xef, diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h index 4dcdcbcb1..8ded386e5 100644 --- a/src/common/ieee802_11_defs.h +++ b/src/common/ieee802_11_defs.h @@ -707,7 +707,7 @@ #define WLAN_PA_FILS_DISCOVERY 34 #define WLAN_PA_LOCATION_MEASUREMENT_REPORT 47 -/* HT Action field values (IEEE P802.11-REVme/D4.0, 9.6.11.1, Table 9-491) */ +/* HT Action field values (IEEE Std 802.11-2024, 9.6.11.1, Table 9-517) */ #define WLAN_HT_ACTION_NOTIFY_CHANWIDTH 0 #define WLAN_HT_ACTION_SMPS 1 #define WLAN_HT_ACTION_CSI 4 @@ -715,7 +715,7 @@ #define WLAN_HT_ACTION_COMPRESSED_BF 6 #define WLAN_HT_ACTION_ASEL_IDX_FEEDBACK 7 -/* VHT Action field values (IEEE P802.11-REVme/D4.0, 9.6.22.1, Table 9-579) */ +/* VHT Action field values (IEEE Std 802.11-2024, 9.6.22.1, Table 9-605) */ #define WLAN_VHT_ACTION_COMPRESSED_BF 0 #define WLAN_VHT_ACTION_GROUP_ID_MGMT 1 #define WLAN_VHT_ACTION_OPMODE_NOTIF 2 @@ -2550,7 +2550,8 @@ struct ieee80211_spatial_reuse { /** * enum he_reg_info_6ghz_ap_type - Allowed Access Point types for 6 GHz Band * - * IEEE P802.11-REVme/D4.0, Table E-12 (Regulatory Info subfield encoding) + * IEEE Std 802.11-2024, Table E-12 (Regulatory Info subfield interpretation by + * non-AP STAs with dot11ExtendedRegInfoSupport not set to true) */ enum he_reg_info_6ghz_ap_type { HE_REG_INFO_6GHZ_AP_TYPE_INDOOR = 0, diff --git a/src/common/wpa_common.c b/src/common/wpa_common.c index e5e99b95d..4367a227d 100644 --- a/src/common/wpa_common.c +++ b/src/common/wpa_common.c @@ -1420,8 +1420,9 @@ void wpa_ft_parse_ies_free(struct wpa_ft_ies *parse) * @akmp: Authentication and key management protocol * @cipher: The cipher suite * - * According to IEEE P802.11az/D2.7, 12.12.7, the hash algorithm to use is the - * hash algorithm defined for the Base AKM (see Table 9-151 (AKM suite + * According to IEEE Std 802.11-2024, 12.13.8 (PTKSA derivation with PASN + * authentication), the hash algorithm to use is the + * hash algorithm defined for the Base AKM (see Table 9-190 (AKM suite * selectors)). When there is no Base AKM, the hash algorithm is selected based * on the pairwise cipher suite provided in the RSNE by the AP in the second * PASN frame. SHA-256 is used as the hash algorithm, except for the ciphers diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h index d2c326c43..5b9773e33 100644 --- a/src/common/wpa_common.h +++ b/src/common/wpa_common.h @@ -614,7 +614,7 @@ struct wpa_ft_ies { struct wpabuf *fte_buf; }; -/* IEEE P802.11az/D2.6 - 9.4.2.303 PASN Parameters element */ +/* IEEE Std 802.11-2024 - 9.4.2.305 PASN Parameters element */ #define WPA_PASN_CTRL_COMEBACK_INFO_PRESENT BIT(0) #define WPA_PASN_CTRL_GROUP_AND_KEY_PRESENT BIT(1) diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index 96737fb21..97d9ae1f0 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -10781,7 +10781,7 @@ static void wpas_ctrl_neighbor_rep_cb(void *ctx, struct wpabuf *neighbor_rep) const u8 *data; /* - * Neighbor Report element (IEEE P802.11-REVmc/D5.0) + * Neighbor Report element (IEEE Std 802.11-2024, 9.4.2.35) * BSSID[6] * BSSID Information[4] * Operating Class[1] diff --git a/wpa_supplicant/rrm.c b/wpa_supplicant/rrm.c index 2ec43105c..88241e736 100644 --- a/wpa_supplicant/rrm.c +++ b/wpa_supplicant/rrm.c @@ -198,7 +198,8 @@ int wpas_rrm_send_neighbor_rep_request(struct wpa_supplicant *wpa_s, } if (lci) { - /* IEEE P802.11-REVmc/D5.0 9.4.2.21 */ + /* IEEE Std 802.11-2024, 9.4.2.19 (Measurement Request element) + */ wpabuf_put_u8(buf, WLAN_EID_MEASURE_REQUEST); wpabuf_put_u8(buf, MEASURE_REQUEST_LCI_LEN); @@ -215,13 +216,14 @@ int wpas_rrm_send_neighbor_rep_request(struct wpa_supplicant *wpa_s, wpabuf_put_u8(buf, 0); /* Measurement Request Mode */ wpabuf_put_u8(buf, MEASURE_TYPE_LCI); /* Measurement Type */ - /* IEEE P802.11-REVmc/D5.0 9.4.2.21.10 - LCI request */ + /* IEEE Std 802.11-2024, 9.4.2.19.10 (LCI request) */ /* Location Subject */ wpabuf_put_u8(buf, LOCATION_SUBJECT_REMOTE); /* Optional Subelements */ /* - * IEEE P802.11-REVmc/D5.0 Figure 9-170 + * IEEE Std 802.11-2024, Figure 9-265 (Maximum Age subelement + * format) * The Maximum Age subelement is required, otherwise the AP can * send only data that was determined after receiving the * request. Setting it here to unlimited age. @@ -232,7 +234,8 @@ int wpas_rrm_send_neighbor_rep_request(struct wpa_supplicant *wpa_s, } if (civic) { - /* IEEE P802.11-REVmc/D5.0 9.4.2.21 */ + /* IEEE Std 802.11-2024, 9.4.2.19 (Measurement Request element) + */ wpabuf_put_u8(buf, WLAN_EID_MEASURE_REQUEST); wpabuf_put_u8(buf, MEASURE_REQUEST_CIVIC_LEN); @@ -250,8 +253,7 @@ int wpas_rrm_send_neighbor_rep_request(struct wpa_supplicant *wpa_s, /* Measurement Type */ wpabuf_put_u8(buf, MEASURE_TYPE_LOCATION_CIVIC); - /* IEEE P802.11-REVmc/D5.0 9.4.2.21.14: - * Location Civic request */ + /* IEEE Std 802.11-2024, 9.4.2.19.14 (Location Civic request) */ /* Location Subject */ wpabuf_put_u8(buf, LOCATION_SUBJECT_REMOTE); wpabuf_put_u8(buf, 0); /* Civic Location Type: IETF RFC 4776 */ diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c index 8f39b5f2d..881c0af6f 100644 --- a/wpa_supplicant/wnm_sta.c +++ b/wpa_supplicant/wnm_sta.c @@ -907,9 +907,10 @@ static int wnm_send_bss_transition_mgmt_resp( wpabuf_put_data(buf, target_bssid, ETH_ALEN); } else if (status == WNM_BSS_TM_ACCEPT) { /* - * P802.11-REVmc clarifies that the Target BSSID field is always - * present when status code is zero, so use a fake value here if - * no BSSID is yet known. + * IEEE Std 802.11-2024, 9.6.13.10 (BSS Transition Management + * Response frame format) clarifies that the Target BSSID field + * is always present when status code is zero, so use a fake + * value here if no BSSID is yet known. */ wpabuf_put_data(buf, "\0\0\0\0\0\0", ETH_ALEN); }