From aa5072728480790d33ab5f6bccfd032a6d8febf2 Mon Sep 17 00:00:00 2001 From: Surabhi Vishnoi Date: Tue, 6 Apr 2021 14:36:37 +0530 Subject: [PATCH] qcacmn: Update mgmt action category Host updates newly added action categories in enum mgmt_action_category. Change-Id: I86048f59a6a3917685c18f07b6cb103fc809837f CRs-Fixed: 3262361 --- .../dispatcher/inc/wlan_mgmt_txrx_utils_api.h | 22 ++++++++++++ .../dispatcher/src/wlan_mgmt_txrx_utils_api.c | 34 +++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/umac/cmn_services/mgmt_txrx/dispatcher/inc/wlan_mgmt_txrx_utils_api.h b/umac/cmn_services/mgmt_txrx/dispatcher/inc/wlan_mgmt_txrx_utils_api.h index a21b81dc1ea1..abf95dbc1ea0 100644 --- a/umac/cmn_services/mgmt_txrx/dispatcher/inc/wlan_mgmt_txrx_utils_api.h +++ b/umac/cmn_services/mgmt_txrx/dispatcher/inc/wlan_mgmt_txrx_utils_api.h @@ -116,6 +116,14 @@ enum mgmt_subtype { * @ACTION_CATEGORY_RVS: robust av streaming action category * @ACTION_CATEGORY_UNPROT_DMG: dmg action category * @ACTION_CATEGORY_VHT: vht action category + * @ACTION_CATEGORY_USIG: Unprotected S1G Action frame + * @ACTION_CATEGORY_SIG: S1G Action frame + * @ACTION_CATEGORY_FLOW_CONTROL: Flow Control Action frame + * @ACTION_CATEGORY_CONTROL_RSP_MCS_NEGO: Control Response MCS Negotiation frame + * @ACTION_CATEGORY_FIL: FILS Action frame + * @ACTION_CATEGORY_CDMG: CDMG Action frame + * @ACTION_CATEGORY_CMMG: CMMG Action frame + * @ACTION_CATEGORY_GLK: GLK Action frame * @ACTION_CATEGORY_VENDOR_SPECIFIC_PROTECTED: vendor specific protected * action category * @ACTION_CATEGORY_VENDOR_SPECIFIC: vendor specific action category @@ -144,6 +152,13 @@ enum mgmt_action_category { ACTION_CATEGORY_UNPROT_DMG = 20, ACTION_CATEGORY_VHT = 21, ACTION_CATEGORY_USIG = 22, + ACTION_CATEGORY_SIG = 23, + ACTION_CATEGORY_FLOW_CONTROL = 24, + ACTION_CATEGORY_CONTROL_RSP_MCS_NEGO = 25, + ACTION_CATEGORY_FILS = 26, + ACTION_CATEGORY_CDMG = 27, + ACTION_CATEGORY_CMMG = 28, + ACTION_CATEGORY_GLK = 29, ACTION_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126, ACTION_CATEGORY_VENDOR_SPECIFIC = 127, }; @@ -912,6 +927,13 @@ QDF_STATUS wlan_mgmt_txrx_mgmt_frame_tx(struct wlan_objmgr_peer *peer, mgmt_ota_comp_cb tx_ota_comp_cb, enum wlan_umac_comp_id comp_id, void *mgmt_tx_params); +/** + * wlan_mgmt_is_rmf_mgmt_action_frame() - API to check action category is rmf + * @action_category: action category to check + * + * Return: true if action category is rmf else false + */ +bool wlan_mgmt_is_rmf_mgmt_action_frame(uint8_t action_category); /** * wlan_mgmt_txrx_beacon_frame_tx() - transmits mgmt. beacon diff --git a/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_utils_api.c b/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_utils_api.c index efb9e0a97700..c4775f3ac523 100644 --- a/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_utils_api.c +++ b/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_utils_api.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -505,6 +506,39 @@ QDF_STATUS wlan_mgmt_txrx_beacon_frame_tx(struct wlan_objmgr_peer *peer, return QDF_STATUS_SUCCESS; } +bool wlan_mgmt_is_rmf_mgmt_action_frame(uint8_t action_category) +{ + switch (action_category) { + case ACTION_CATEGORY_SPECTRUM_MGMT: + case ACTION_CATEGORY_QOS: + case ACTION_CATEGORY_DLS: + case ACTION_CATEGORY_BACK: + case ACTION_CATEGORY_RRM: + case ACTION_FAST_BSS_TRNST: + case ACTION_CATEGORY_SA_QUERY: + case ACTION_CATEGORY_PROTECTED_DUAL_OF_PUBLIC_ACTION: + case ACTION_CATEGORY_WNM: + case ACTION_CATEGORY_MESH_ACTION: + case ACTION_CATEGORY_MULTIHOP_ACTION: + case ACTION_CATEGORY_DMG: + case ACTION_CATEGORY_FST: + case ACTION_CATEGORY_RVS: + case ACTION_CATEGORY_SIG: + case ACTION_CATEGORY_FLOW_CONTROL: + case ACTION_CATEGORY_CONTROL_RSP_MCS_NEGO: + case ACTION_CATEGORY_FILS: + case ACTION_CATEGORY_CDMG: + case ACTION_CATEGORY_CMMG: + case ACTION_CATEGORY_GLK: + case ACTION_CATEGORY_VENDOR_SPECIFIC_PROTECTED: + return true; + default: + break; + } + + return false; +} + #ifdef WLAN_SUPPORT_FILS QDF_STATUS wlan_mgmt_txrx_fd_action_frame_tx(struct wlan_objmgr_vdev *vdev,