From: Veerendranath Jakkam Date: Wed, 6 Sep 2023 20:45:26 +0000 (+0530) Subject: Extend maximum allowed bandwidth update type QCA vendor interface X-Git-Tag: hostap_2_11~975 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d65e27fb24bc05dec8c1ef0f2f9e32576b2afce;p=thirdparty%2Fhostap.git Extend maximum allowed bandwidth update type QCA vendor interface Extend QCA_WLAN_VENDOR_ATTR_CONFIG_CHAN_WIDTH_UPDATE_TYPE attribute to support handling interoperability issues with APs which don't handle the maximum bandwidth change indication correctly. Additionally define an enum for possible values of QCA_WLAN_VENDOR_ATTR_CONFIG_CHAN_WIDTH_UPDATE_TYPE. Signed-off-by: Veerendranath Jakkam --- diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h index 7506ad0a4..1b5286f93 100644 --- a/src/common/qca-vendor.h +++ b/src/common/qca-vendor.h @@ -3168,21 +3168,7 @@ enum qca_wlan_vendor_attr_config { * %QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINKS to specify the maximum * supported channel width update type per-MLO link. * - * valid values: - * 0 - The maximum allowed bandwidth change is applicable for both Tx - * and Rx paths. The driver shall conduct OMI operation as defined - * in 26.9 (Operating mode indication) or OMN operation as - * defined in 11.40 (Notification of operating mode - * changes) in IEEE P802.11-REVme/D2.0 with AP to indicate the - * change in the maximum allowed operating bandwidth. - * 1 - Limit the change in maximum allowed bandwidth only to Tx path. - * In this case the driver doesn't need to conduct OMI/OMN - * operation since %QCA_WLAN_VENDOR_ATTR_CONFIG_CHANNEL_WIDTH is - * expected to be less than the current connection maximum - * negotiated bandwidth. - * For example: Negotiated maximum bandwidth is 160 MHz and the new - * maximum bandwidth configured is 80 MHz, now the driver limits - * the maximum bandwidth to 80 MHz only in the Tx path. + * Uses enum qca_chan_width_update_type values. */ QCA_WLAN_VENDOR_ATTR_CONFIG_CHAN_WIDTH_UPDATE_TYPE = 96, @@ -16528,4 +16514,40 @@ enum qca_wlan_vendor_attr_tx_latency { QCA_WLAN_VENDOR_ATTR_TX_LATENCY_AFTER_LAST - 1, }; +/** + * enum qca_chan_width_update_type - Represents the possible values for + * %QCA_WLAN_VENDOR_ATTR_CONFIG_CHAN_WIDTH_UPDATE_TYPE. + * + * @QCA_CHAN_WIDTH_UPDATE_TYPE_TX_RX: The maximum allowed bandwidth change is + * applicable for both Tx and Rx paths. The driver shall conduct OMI operation + * as defined in 26.9 (Operating mode indication) or OMN operation as defined in + * 11.40 (Notification of operating mode changes) in IEEE P802.11-REVme/D2.0 + * with AP to indicate the change in the maximum allowed operating bandwidth. + * + * @QCA_CHAN_WIDTH_UPDATE_TYPE_TX_ONLY: Limit the change in maximum allowed + * bandwidth only to Tx path. In this case the driver doesn't need to conduct + * OMI/OMN operation since %QCA_WLAN_VENDOR_ATTR_CONFIG_CHANNEL_WIDTH is + * expected to be less than the current connection maximum negotiated bandwidth. + * For example: Negotiated maximum bandwidth is 160 MHz and the new maximum + * bandwidth configured is 80 MHz, now the driver limits the maximum bandwidth + * to 80 MHz only in the Tx path. + * + * @QCA_CHAN_WIDTH_UPDATE_TYPE_TX_RX_EXT: This is similar to + * %QCA_CHAN_WIDTH_UPDATE_TYPE_TX_RX but the driver doesn't change current + * phymode bandwidth to avoid interoperability issues with APs which don't + * handle the maximum bandwidth change indication correctly. + * For example: Negotiated maximum bandwidth is 40 MHz and the new maximum + * bandwidth configured is 20 MHz, now the driver indicates the change in + * maximum allowed bandwidth to the AP and limits the bandwidth to 20 MHz in the + * Tx path but keeps the phymode bandwidth as 40 MHz. This will avoid + * interoperability issues with APs which still use 40 MHz for sending the + * frames though it received maximum allowed bandwidth indication as 20 MHz + * from the STA. + */ +enum qca_chan_width_update_type { + QCA_CHAN_WIDTH_UPDATE_TYPE_TX_RX = 0, + QCA_CHAN_WIDTH_UPDATE_TYPE_TX_ONLY = 1, + QCA_CHAN_WIDTH_UPDATE_TYPE_TX_RX_EXT = 2, +}; + #endif /* QCA_VENDOR_H */