]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
OCV: Check the Frequency Segment 1 Channel Number only on 80+80 MHz
authorJouni Malinen <quic_jouni@quicinc.com>
Tue, 14 Jun 2022 14:19:27 +0000 (17:19 +0300)
committerJouni Malinen <j@w1.fi>
Tue, 14 Jun 2022 14:19:27 +0000 (17:19 +0300)
The initial OCV implementation validating this field in the OCI element
for both the 80+80 MHz and 160 MHz cases. However, IEEE Std 802.11-2020,
12.2.9 ("Requirements for Operating Channel Validation") limitis that
verification step for the 80+80 MHz case: "Verifying that, if operating
an 80+80 MHz operating class, the frequency segment 1 channel number ...
is equal to the Frequency Segment 1 Channel Number field of the OCI."

Remove this check for the 160 MHz case since there has been incorrect
interpretation on how the Frequency Segment 1 Channel Number field of
the OCI element is set in this case (using VHT rules for CCFS2). The
modified validation step is meets the real need here, is compliant with
the standard, and avoids potential interoperability issues when using
contiguous 160 MHz channels.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
src/common/ocv.c

index c9dc14fa6c09352b799a3a03825530e69da5e0a1..d77bc4bb820eda736e74b38f235f1cb070aac795 100644 (file)
@@ -159,11 +159,10 @@ ocv_verify_tx_params(const u8 *oci_ie, size_t oci_ie_len,
        }
 
        /*
-        * When using a 160 or 80+80 MHz channel to transmit, verify that we use
+        * When using an 80+80 MHz channel to transmit, verify that we use
         * the same segments as the receiver by comparing frequency segment 1.
         */
-       if ((ci->chanwidth == CHAN_WIDTH_160 ||
-            ci->chanwidth == CHAN_WIDTH_80P80) &&
+       if (ci->chanwidth == CHAN_WIDTH_80P80 &&
            tx_seg1_idx != oci.seg1_idx) {
                os_snprintf(ocv_errorstr, sizeof(ocv_errorstr),
                            "frequency segment 1 mismatch in received OCI (we use %d but receiver is using %d)",