From 07acefecec0d0d3e7fba65e7a88217137a455267 Mon Sep 17 00:00:00 2001 From: Abhishek Singh Date: Mon, 19 Oct 2015 17:42:01 +0530 Subject: [PATCH] qcacld-3.0: Implement ECSA Action Frame qcacld-2.0 to qcacld-3.0 propagation. Implement: 1. Send & receive logic of ECSA action frame from P2P-CLI/GO 2. Trigger channel change on P2P GO side once ECSA action frame is received by, i) Adding CSA & ESCA IE in beacon template and updating FW to send it out ii) Notifying supplicant of channel change for P2P GO. This change include UMAC changes. CRs-fixed: 895240 Change-Id: Ie6c9154fb44ec75c699e37aaba660c637869c099 --- core/mac/inc/sir_api.h | 24 + core/mac/inc/sir_mac_prot_def.h | 6 + core/mac/inc/wni_api.h | 2 + core/mac/src/cfg/cfgUtil/dot11f.frms | 16 + core/mac/src/include/dot11f.h | 56 +- .../mac/src/pe/lim/lim_process_action_frame.c | 111 +- .../src/pe/lim/lim_process_message_queue.c | 1 + .../src/pe/lim/lim_process_sme_req_messages.c | 106 + .../src/pe/lim/lim_send_management_frames.c | 133 ++ core/mac/src/pe/lim/lim_types.h | 4 + core/mac/src/pe/sch/sch_beacon_gen.c | 9 + .../mac/src/sys/legacy/src/utils/src/dot11f.c | 1890 +++++++++-------- core/sap/inc/sap_api.h | 12 +- core/sap/src/sap_api_link_cntl.c | 10 + core/sap/src/sap_fsm.c | 9 +- core/sap/src/sap_module.c | 10 +- core/sme/inc/csr_api.h | 4 + core/sme/inc/sme_api.h | 2 + core/sme/src/common/sme_api.c | 85 + core/sme/src/csr/csr_api_roam.c | 30 + core/sme/src/csr/csr_inside_api.h | 2 + 21 files changed, 1615 insertions(+), 907 deletions(-) diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index 22d3c253b120..3fc95da65826 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -5396,4 +5396,28 @@ enum powersave_mode { PS_DUTY_CYCLING_QPOWER = 5 }; +/** + * struct sir_sme_ext_change_chan_req - channel change request + * @message_type: message id + * @length: msg length + * @new_channel: new channel + * @session_id: session id + */ +struct sir_sme_ext_cng_chan_req { + uint16_t message_type; /* eWNI_SME_EXT_CHANGE_CHANNEL */ + uint16_t length; + uint32_t new_channel; + uint8_t session_id; +}; + +/** + * struct sir_sme_ext_change_chan_ind. + * @session_id: session id + * @new_channel: new channel to change + */ +struct sir_sme_ext_cng_chan_ind { + uint8_t session_id; + uint8_t new_channel; +}; + #endif /* __SIR_API_H */ diff --git a/core/mac/inc/sir_mac_prot_def.h b/core/mac/inc/sir_mac_prot_def.h index ccc2dcefbfad..20c1516cf503 100644 --- a/core/mac/inc/sir_mac_prot_def.h +++ b/core/mac/inc/sir_mac_prot_def.h @@ -214,6 +214,8 @@ /* Public Action for 20/40 BSS Coexistence */ #define SIR_MAC_ACTION_2040_BSS_COEXISTENCE 0 +#define SIR_MAC_ACTION_EXT_CHANNEL_SWITCH_ID 4 + #ifdef WLAN_FEATURE_11W /* 11w SA query request/response action frame category code */ @@ -355,6 +357,10 @@ #define SIR_MAC_EXTENDED_RATE_EID 50 #define SIR_MAC_EXTENDED_RATE_EID_MIN 0 #define SIR_MAC_EXTENDED_RATE_EID_MAX 255 +#define SIR_MAC_CHNL_EXTENDED_SWITCH_ANN_EID 60 +#define SIR_MAC_CHNL_EXTENDED_SWITCH_ANN_EID_MIN 0 +#define SIR_MAC_CHNL_EXTENDED_SWITCH_ANN_EID_MAX 255 + /* reserved 51-69 */ #define SIR_MAC_RM_ENABLED_CAPABILITY_EID 70 #define SIR_MAC_RM_ENABLED_CAPABILITY_EID_MIN 5 diff --git a/core/mac/inc/wni_api.h b/core/mac/inc/wni_api.h index 9c279eada39e..ca7bf580ecf1 100644 --- a/core/mac/inc/wni_api.h +++ b/core/mac/inc/wni_api.h @@ -247,6 +247,8 @@ enum eWniMsgTypes { eWNI_SME_ROC_CMD, eWNI_SME_SET_THERMAL_LEVEL_IND, eWNI_SME_SET_IE_REQ, + eWNI_SME_EXT_CHANGE_CHANNEL, + eWNI_SME_EXT_CHANGE_CHANNEL_IND, eWNI_SME_MSG_TYPES_END }; diff --git a/core/mac/src/cfg/cfgUtil/dot11f.frms b/core/mac/src/cfg/cfgUtil/dot11f.frms index 04165e7907e4..3c9004a007ae 100644 --- a/core/mac/src/cfg/cfgUtil/dot11f.frms +++ b/core/mac/src/cfg/cfgUtil/dot11f.frms @@ -390,6 +390,15 @@ FF VhtUserPositionArray(16) // 8.4.1.52 userPositionArray[16]; } +FF ext_chan_switch_ann_action(4) +{ + { + switch_mode: 8; + op_class: 8; + new_channel: 8; + switch_count: 8; + } +} ///////////////////////////////////////////////////////////////////////////// // TLVs // @@ -3600,6 +3609,13 @@ FRAME TimingAdvertisementFrame // 8.3.3.15 OPTIE Vendor3IE; } +FRAME ext_channel_switch_action_frame +{ + FF Category; + FF Action; + FF ext_chan_switch_ann_action; +} + // Local Variables: // mode: c++ // fill-column: 77 diff --git a/core/mac/src/include/dot11f.h b/core/mac/src/include/dot11f.h index 0258abdf8f06..09dfde671127 100644 --- a/core/mac/src/include/dot11f.h +++ b/core/mac/src/include/dot11f.h @@ -35,7 +35,7 @@ * * * This file was automatically generated by 'framesc' - * Wed Oct 14 10:14:42 2015 from the following file(s): + * Mon Nov 16 10:55:21 2015 from the following file(s): * * dot11f.frms * @@ -544,6 +544,32 @@ void dot11f_pack_ff_vht_user_position_array(tpAniSirGlobal, uint8_t *); +typedef struct sDot11fFfext_chan_switch_ann_action { + uint32_t switch_mode:8; + uint32_t op_class:8; + uint32_t new_channel:8; + uint32_t switch_count:8; +} tDot11fFfext_chan_switch_ann_action; + +#define DOT11F_FF_EXT_CHAN_SWITCH_ANN_ACTION_LEN (4) + +void dot11f_unpack_ff_ext_chan_switch_ann_action(tpAniSirGlobal, uint8_t *, + tDot11fFfext_chan_switch_ann_action *); + +void dot11f_pack_ff_ext_chan_switch_ann_action(tpAniSirGlobal, + tDot11fFfext_chan_switch_ann_action *, + uint8_t *); + + +#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_MODE_OFFSET 0 +#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_MODE_WIDTH 8 +#define EXT_CHAN_SWITCH_ANN_ACTION_OP_CLASS_OFFSET 8 +#define EXT_CHAN_SWITCH_ANN_ACTION_OP_CLASS_WIDTH 8 +#define EXT_CHAN_SWITCH_ANN_ACTION_NEW_CHANNEL_OFFSET 16 +#define EXT_CHAN_SWITCH_ANN_ACTION_NEW_CHANNEL_WIDTH 8 +#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_COUNT_OFFSET 24 +#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_COUNT_WIDTH 8 + /********************************************************************* * TLVs * ********************************************************************/ @@ -8890,6 +8916,32 @@ uint32_t dot11f_get_packed_wmm_del_ts_size(tpAniSirGlobal pCtx, } /* End extern "C". */ #endif /* C++ */ +typedef struct sDot11fext_channel_switch_action_frame { + tDot11fFfCategory Category; + tDot11fFfAction Action; + tDot11fFfext_chan_switch_ann_action ext_chan_switch_ann_action; +} tDot11fext_channel_switch_action_frame; + +#define DOT11F_EXT_CHANNEL_SWITCH_ACTION_FRAME (46) + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ + +uint32_t dot11f_unpack_ext_channel_switch_action_frame(tpAniSirGlobal pCtx, + uint8_t *pBuf, uint32_t nBuf, + tDot11fext_channel_switch_action_frame * pFrm); +uint32_t dot11f_pack_ext_channel_switch_action_frame(tpAniSirGlobal pCtx, + tDot11fext_channel_switch_action_frame *pFrm, uint8_t *pBuf, + uint32_t nBuf, uint32_t *pnConsumed); +uint32_t dot11f_get_packed_ext_channel_switch_action_frame_size(tpAniSirGlobal pCtx, + tDot11fext_channel_switch_action_frame *pFrm, + uint32_t *pnNeeded); + +#ifdef __cplusplus +} /* End extern "C". */ +#endif /* C++ */ + typedef struct sDot11fht2040_bss_coexistence_mgmt_action_frame{ tDot11fFfCategory Category; tDot11fFfAction Action; @@ -8897,7 +8949,7 @@ typedef struct sDot11fht2040_bss_coexistence_mgmt_action_frame{ tDot11fIEht2040_bss_intolerant_report ht2040_bss_intolerant_report; } tDot11fht2040_bss_coexistence_mgmt_action_frame; -#define DOT11F_HT2040_BSS_COEXISTENCE_MGMT_ACTION_FRAME (46) +#define DOT11F_HT2040_BSS_COEXISTENCE_MGMT_ACTION_FRAME (47) #ifdef __cplusplus extern "C" { diff --git a/core/mac/src/pe/lim/lim_process_action_frame.c b/core/mac/src/pe/lim/lim_process_action_frame.c index c77ae536ae93..15d039276b4d 100644 --- a/core/mac/src/pe/lim/lim_process_action_frame.c +++ b/core/mac/src/pe/lim/lim_process_action_frame.c @@ -56,7 +56,7 @@ #include "rrm_api.h" #endif #include "lim_session_utils.h" - +#include "cds_concurrency.h" #include "wma_types.h" @@ -338,6 +338,110 @@ static void __lim_process_channel_switch_action_frame(tpAniSirGlobal mac_ctx, return; } +/** + * lim_process_ext_channel_switch_action_frame()- Process ECSA Action + * Frames. + * @mac_ctx: pointer to global mac structure + * @rx_packet_info: rx packet meta information + * @session_entry: Session entry. + * + * This function is called when ECSA action frame is received. + * + * Return: void + */ +static void +lim_process_ext_channel_switch_action_frame(tpAniSirGlobal mac_ctx, + uint8_t *rx_packet_info, tpPESession session_entry) +{ + + tpSirMacMgmtHdr hdr; + uint8_t *body; + tDot11fext_channel_switch_action_frame *ext_channel_switch_frame; + uint32_t frame_len; + uint32_t status; + uint8_t target_channel; + + hdr = WMA_GET_RX_MAC_HEADER(rx_packet_info); + body = WMA_GET_RX_MPDU_DATA(rx_packet_info); + frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_packet_info); + + lim_log(mac_ctx, LOG1, FL("Received EXT Channel switch action frame")); + + ext_channel_switch_frame = + cdf_mem_malloc(sizeof(*ext_channel_switch_frame)); + if (NULL == ext_channel_switch_frame) { + lim_log(mac_ctx, LOGE, FL("AllocateMemory failed")); + return; + } + + /* Unpack channel switch frame */ + status = dot11f_unpack_ext_channel_switch_action_frame(mac_ctx, + body, frame_len, ext_channel_switch_frame); + + if (DOT11F_FAILED(status)) { + + lim_log(mac_ctx, LOGE, + FL("Failed to parse CHANSW action frame (0x%08x, len %d):"), + status, frame_len); + cdf_mem_free(ext_channel_switch_frame); + return; + } else if (DOT11F_WARNED(status)) { + + lim_log(mac_ctx, LOGW, + FL("There were warnings while unpacking CHANSW Request (0x%08x, %d bytes):"), + status, frame_len); + } + + target_channel = + ext_channel_switch_frame->ext_chan_switch_ann_action.new_channel; + + /* Free ext_channel_switch_frame here as its no longer needed */ + cdf_mem_free(ext_channel_switch_frame); + /* + * Now, validate if channel change is required for the passed + * channel and if is valid in the current regulatory domain, + * and no concurrent session is running. + */ + if (!((session_entry->currentOperChannel != target_channel) && + ((cds_get_channel_state(target_channel) + == CHANNEL_STATE_ENABLE) || + (cds_get_channel_state(target_channel) == CHANNEL_STATE_DFS && + !cds_concurrent_open_sessions_running())))) { + lim_log(mac_ctx, LOGE, FL("Channel %d is not valid"), + target_channel); + return; + } + + if (eLIM_AP_ROLE == session_entry->limSystemRole) { + + struct sir_sme_ext_cng_chan_ind *ext_cng_chan_ind; + tSirMsgQ mmh_msg; + + ext_cng_chan_ind = cdf_mem_malloc(sizeof(*ext_cng_chan_ind)); + if (NULL == ext_cng_chan_ind) { + lim_log(mac_ctx, LOGP, + FL("AllocateMemory failed for ext_cng_chan_ind")); + return; + } + + cdf_mem_zero(ext_cng_chan_ind, + sizeof(*ext_cng_chan_ind)); + ext_cng_chan_ind->session_id = + session_entry->smeSessionId; + + /* No need to extract op mode as BW will be decided in + * in SAP FSM depending on previous BW. + */ + ext_cng_chan_ind->new_channel = target_channel; + + mmh_msg.type = eWNI_SME_EXT_CHANGE_CHANNEL_IND; + mmh_msg.bodyptr = ext_cng_chan_ind; + mmh_msg.bodyval = 0; + lim_sys_process_mmh_msg_api(mac_ctx, &mmh_msg, ePROT); + } + return; +} /*** end lim_process_ext_channel_switch_action_frame() ***/ + #ifdef WLAN_FEATURE_11AC /** * __lim_process_operating_mode_action_frame() - To process op mode frames @@ -1943,7 +2047,10 @@ void lim_process_action_frame(tpAniSirGlobal mac_ctx, WMA_GET_RX_CH(rx_pkt_info), session, rssi); break; #endif - + case SIR_MAC_ACTION_EXT_CHANNEL_SWITCH_ID: + lim_process_ext_channel_switch_action_frame(mac_ctx, + rx_pkt_info, session); + break; default: lim_log(mac_ctx, LOGE, FL("Unhandled public action frame -- %x "), diff --git a/core/mac/src/pe/lim/lim_process_message_queue.c b/core/mac/src/pe/lim/lim_process_message_queue.c index 25e7ed1a5c06..bdd66b31434a 100644 --- a/core/mac/src/pe/lim/lim_process_message_queue.c +++ b/core/mac/src/pe/lim/lim_process_message_queue.c @@ -1353,6 +1353,7 @@ void lim_process_messages(tpAniSirGlobal mac_ctx, tpSirMsgQ msg) #if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD) case eWNI_SME_GET_TSM_STATS_REQ: #endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */ + case eWNI_SME_EXT_CHANGE_CHANNEL: /* These messages are from HDD.No need to respond to HDD */ lim_process_normal_hdd_msg(mac_ctx, msg, false); break; diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c index 811a24f94990..b0b85524b5fb 100644 --- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c @@ -64,6 +64,7 @@ #if defined WLAN_FEATURE_VOWIFI_11R #include #endif +#include "cds_regdomain_common.h" /* * This overhead is time for sending NOA start to host in case of GO/sending @@ -114,6 +115,10 @@ static void lim_process_update_add_ies(tpAniSirGlobal pMac, uint32_t *pMsg); extern void pe_register_wma_handle(tpAniSirGlobal pMac); +static void lim_process_ext_change_channel(tpAniSirGlobal mac_ctx, + uint32_t *msg); + + /** * lim_process_set_hw_mode() - Send set HW mode command to WMA * @mac: Globacl MAC pointer @@ -4988,6 +4993,9 @@ bool lim_process_sme_req_messages(tpAniSirGlobal pMac, tpSirMsgQ pMsg) case eWNI_SME_SET_IE_REQ: lim_process_set_ie_req(pMac, pMsgBuf); break; + case eWNI_SME_EXT_CHANGE_CHANNEL: + lim_process_ext_change_channel(pMac, pMsgBuf); + break; default: cdf_mem_free((void *)pMsg->bodyptr); pMsg->bodyptr = NULL; @@ -5464,6 +5472,58 @@ end: update_ie->pAdditionIEBuffer = NULL; } +/** + * send_extended_chan_switch_action_frame()- function to send ECSA + * action frame for each sta connected to SAP/GO and AP in case of + * STA . + * @mac_ctx: pointer to global mac structure + * @new_channel: new channel to switch to. + * @ch_bandwidth: BW of channel to calculate op_class + * @session_entry: pe session + * + * This function is called to send ECSA frame for STA/CLI and SAP/GO. + * + * Return: void + */ + +static void send_extended_chan_switch_action_frame(tpAniSirGlobal mac_ctx, + uint16_t new_channel, uint8_t ch_bandwidth, + tpPESession session_entry) +{ + uint16_t op_class; + uint8_t switch_mode = 0, i; + tpDphHashNode psta; + + + op_class = cds_regdm_get_opclass_from_channel( + mac_ctx->scan.countryCodeCurrent, + new_channel, + ch_bandwidth); + + if (LIM_IS_AP_ROLE(session_entry) && + (mac_ctx->sap.SapDfsInfo.disable_dfs_ch_switch == false)) + switch_mode = 1; + + if (LIM_IS_AP_ROLE(session_entry)) { + for (i = 0; i < mac_ctx->lim.maxStation; i++) { + psta = + session_entry->dph.dphHashTable.pDphNodeArray + i; + if (psta && psta->added) + lim_send_extended_chan_switch_action_frame( + mac_ctx, + psta->staAddr, + switch_mode, op_class, new_channel, + LIM_MAX_CSA_IE_UPDATES, session_entry); + } + } else if (LIM_IS_STA_ROLE(session_entry)) { + lim_send_extended_chan_switch_action_frame(mac_ctx, + session_entry->bssId, + switch_mode, op_class, new_channel, + LIM_MAX_CSA_IE_UPDATES, session_entry); + } + +} + /** * lim_process_sme_dfs_csa_ie_request() - process sme dfs csa ie req * @@ -5595,9 +5655,55 @@ skip_vht: lim_send_beacon_ind(mac_ctx, session_entry); lim_log(mac_ctx, LOG1, FL("Updated CSA IE, IE COUNT = %d"), session_entry->gLimChannelSwitch.switchCount); + /* Send ECSA Action frame after updating the beacon */ + send_extended_chan_switch_action_frame(mac_ctx, + session_entry->gLimChannelSwitch.primaryChannel, + session_entry->gLimChannelSwitch.ch_width, + session_entry); session_entry->gLimChannelSwitch.switchCount--; } +/** + * lim_process_ext_change_channel()- function to send ECSA + * action frame for STA/CLI . + * @mac_ctx: pointer to global mac structure + * @msg: params from sme for new channel. + * + * This function is called to send ECSA frame for STA/CLI. + * + * Return: void + */ + +static void lim_process_ext_change_channel(tpAniSirGlobal mac_ctx, + uint32_t *msg) +{ + struct sir_sme_ext_cng_chan_req *ext_chng_channel = + (struct sir_sme_ext_cng_chan_req *) msg; + tpPESession session_entry = NULL; + + if (NULL == msg) { + lim_log(mac_ctx, LOGE, FL("Buffer is Pointing to NULL")); + return; + } + session_entry = + pe_find_session_by_sme_session_id(mac_ctx, + ext_chng_channel->session_id); + if (NULL == session_entry) { + lim_log(mac_ctx, LOGE, + FL("Session not found for given session %d"), + ext_chng_channel->session_id); + return; + } + if (LIM_IS_AP_ROLE(session_entry)) { + lim_log(mac_ctx, LOGE, + FL("not an STA/CLI session")); + return; + } + send_extended_chan_switch_action_frame(mac_ctx, + ext_chng_channel->new_channel, + 0, session_entry); +} + /** * lim_process_nss_update_request() - process sme nss update req * diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c index 74c9cbf7e0ca..484a5d7ac332 100644 --- a/core/mac/src/pe/lim/lim_send_management_frames.c +++ b/core/mac/src/pe/lim/lim_send_management_frames.c @@ -4092,6 +4092,139 @@ lim_send_channel_switch_mgmt_frame(tpAniSirGlobal pMac, } /* End lim_send_channel_switch_mgmt_frame. */ +/** + * lim_send_extended_chan_switch_action_frame()- function to send ECSA + * action frame over the air . + * @mac_ctx: pointer to global mac structure + * @peer: Destination mac. + * @mode: channel switch mode + * @new_op_class: new op class + * @new_channel: new channel to switch + * @count: channel switch count + * + * This function is called to send ECSA frame. + * + * Return: success if frame is sent else return failure + */ + +tSirRetStatus +lim_send_extended_chan_switch_action_frame(tpAniSirGlobal mac_ctx, + tSirMacAddr peer, uint8_t mode, uint8_t new_op_class, + uint8_t new_channel, uint8_t count, tpPESession session_entry) +{ + tDot11fext_channel_switch_action_frame frm; + uint8_t *frame; + tpSirMacMgmtHdr mac_hdr; + uint32_t num_bytes, n_payload, status; + void *packet; + CDF_STATUS cdf_status; + uint8_t txFlag = 0; + uint8_t sme_session_id = 0; + + if (session_entry == NULL) { + lim_log(mac_ctx, LOGE, FL("Session entry is NULL!!!")); + return eSIR_FAILURE; + } + + sme_session_id = session_entry->smeSessionId; + + cdf_mem_set(&frm, sizeof(frm), 0); + + frm.Category.category = SIR_MAC_ACTION_PUBLIC_USAGE; + frm.Action.action = SIR_MAC_ACTION_EXT_CHANNEL_SWITCH_ID; + + frm.ext_chan_switch_ann_action.switch_mode = mode; + frm.ext_chan_switch_ann_action.op_class = new_op_class; + frm.ext_chan_switch_ann_action.new_channel = new_channel; + frm.ext_chan_switch_ann_action.switch_count = count; + + + status = dot11f_get_packed_ext_channel_switch_action_frame_size(mac_ctx, + &frm, &n_payload); + if (DOT11F_FAILED(status)) { + lim_log(mac_ctx, LOGP, + FL("Failed to get packed size for Channel Switch 0x%08x."), + status); + /* We'll fall back on the worst case scenario*/ + n_payload = sizeof(tDot11fext_channel_switch_action_frame); + } else if (DOT11F_WARNED(status)) { + lim_log(mac_ctx, LOGW, + FL("There were warnings while calculating the packed size for a Ext Channel Switch (0x%08x)."), + status); + } + + num_bytes = n_payload + sizeof(tSirMacMgmtHdr); + + cdf_status = cds_packet_alloc((uint16_t)num_bytes, + (void **) &frame, (void **) &packet); + + if (!CDF_IS_STATUS_SUCCESS(cdf_status)) { + lim_log(mac_ctx, LOGP, + FL("Failed to allocate %d bytes for a Ext Channel Switch."), + num_bytes); + return eSIR_FAILURE; + } + + /* Paranoia*/ + cdf_mem_set(frame, num_bytes, 0); + + /* Next, we fill out the buffer descriptor */ + lim_populate_mac_header(mac_ctx, frame, SIR_MAC_MGMT_FRAME, + SIR_MAC_MGMT_ACTION, peer, session_entry->selfMacAddr); + mac_hdr = (tpSirMacMgmtHdr) frame; + cdf_mem_copy((uint8_t *) mac_hdr->bssId, + (uint8_t *) session_entry->bssId, + sizeof(tSirMacAddr)); + + status = dot11f_pack_ext_channel_switch_action_frame(mac_ctx, &frm, + frame + sizeof(tSirMacMgmtHdr), n_payload, &n_payload); + if (DOT11F_FAILED(status)) { + lim_log(mac_ctx, LOGE, + FL("Failed to pack a Channel Switch 0x%08x."), + status); + cds_packet_free((void *)packet); + return eSIR_FAILURE; + } else if (DOT11F_WARNED(status)) { + lim_log(mac_ctx, LOGW, + FL("There were warnings while packing a Channel Switch 0x%08x."), + status); + } + + if ((SIR_BAND_5_GHZ == + lim_get_rf_band(session_entry->currentOperChannel)) || + (session_entry->pePersona == CDF_P2P_CLIENT_MODE) || + (session_entry->pePersona == CDF_P2P_GO_MODE)) { + txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME; + } + + lim_log(mac_ctx, LOG1, + FL("Send Ext channel Switch to :"MAC_ADDRESS_STR" with swcount %d, swmode %d , newchannel %d newops %d"), + MAC_ADDR_ARRAY(mac_hdr->da), + frm.ext_chan_switch_ann_action.switch_count, + frm.ext_chan_switch_ann_action.switch_mode, + frm.ext_chan_switch_ann_action.new_channel, + frm.ext_chan_switch_ann_action.op_class); + + MTRACE(cdf_trace(CDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT, + session_entry->peSessionId, mac_hdr->fc.subType)); + cdf_status = wma_tx_frame(mac_ctx, packet, (uint16_t) num_bytes, + TXRX_FRM_802_11_MGMT, + ANI_TXDIR_TODS, + 7, + lim_tx_complete, frame, + txFlag, sme_session_id, 0); + MTRACE(cdf_trace(CDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE, + session_entry->peSessionId, cdf_status)); + if (!CDF_IS_STATUS_SUCCESS(cdf_status)) { + lim_log(mac_ctx, LOGE, + FL("Failed to send a Ext Channel Switch %X!"), + cdf_status); + /* Pkt will be freed up by the callback */ + return eSIR_FAILURE; + } + return eSIR_SUCCESS; +} /* End lim_send_extended_chan_switch_action_frame */ + #ifdef WLAN_FEATURE_11AC tSirRetStatus lim_send_vht_opmode_notification_frame(tpAniSirGlobal pMac, diff --git a/core/mac/src/pe/lim/lim_types.h b/core/mac/src/pe/lim/lim_types.h index 715e7751e7ae..a61a9cadba00 100644 --- a/core/mac/src/pe/lim/lim_types.h +++ b/core/mac/src/pe/lim/lim_types.h @@ -496,6 +496,10 @@ tSirRetStatus lim_send_channel_switch_mgmt_frame(tpAniSirGlobal, tSirMacAddr, uint8_t, uint8_t, uint8_t, tpPESession); +tSirRetStatus lim_send_extended_chan_switch_action_frame(tpAniSirGlobal mac_ctx, + tSirMacAddr peer, uint8_t mode, uint8_t new_op_class, + uint8_t new_channel, uint8_t count, tpPESession session_entry); + #ifdef WLAN_FEATURE_11AC tSirRetStatus lim_send_vht_opmode_notification_frame(tpAniSirGlobal pMac, tSirMacAddr peer, uint8_t nMode, diff --git a/core/mac/src/pe/sch/sch_beacon_gen.c b/core/mac/src/pe/sch/sch_beacon_gen.c index 365b3492fa01..7e0b23cbf2d9 100644 --- a/core/mac/src/pe/sch/sch_beacon_gen.c +++ b/core/mac/src/pe/sch/sch_beacon_gen.c @@ -573,6 +573,15 @@ void lim_update_probe_rsp_template_ie_bitmap_beacon2(tpAniSirGlobal pMac, } + /* EXT Channel Switch Announcement CHNL_EXTENDED_SWITCH_ANN_EID*/ + if (beacon2->ext_chan_switch_ann.present) { + set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, + SIR_MAC_CHNL_EXTENDED_SWITCH_ANN_EID); + cdf_mem_copy((void *)&prb_rsp->ext_chan_switch_ann, + (void *)&beacon2->ext_chan_switch_ann, + sizeof(beacon2->ext_chan_switch_ann)); + } + #ifdef FEATURE_AP_MCC_CH_AVOIDANCE if (beacon2->QComVendorIE.present) { set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, diff --git a/core/mac/src/sys/legacy/src/utils/src/dot11f.c b/core/mac/src/sys/legacy/src/utils/src/dot11f.c index 6286a019287e..aed4bd917005 100644 --- a/core/mac/src/sys/legacy/src/utils/src/dot11f.c +++ b/core/mac/src/sys/legacy/src/utils/src/dot11f.c @@ -33,7 +33,7 @@ * * * This file was automatically generated by 'framesc' - * Wed Oct 14 10:14:42 2015 from the following file(s): + * Mon Nov 16 10:55:21 2015 from the following file(s): * * dot11f.frms * @@ -767,6 +767,21 @@ void dot11f_unpack_ff_vht_user_position_array(tpAniSirGlobal pCtx, #define SigFfVhtUserPositionArray (0x001e) +void dot11f_unpack_ff_ext_chan_switch_ann_action(tpAniSirGlobal pCtx, + uint8_t *pBuf, + tDot11fFfext_chan_switch_ann_action *pDst) +{ + uint32_t tmp4__; + framesntohl(pCtx, &tmp4__, pBuf, 0); + pDst->switch_mode = tmp4__ >> 0 & 0xff; + pDst->op_class = tmp4__ >> 8 & 0xff; + pDst->new_channel = tmp4__ >> 16 & 0xff; + pDst->switch_count = tmp4__ >> 24 & 0xff; + (void)pCtx; +} /* End dot11f_unpack_ff_ext_chan_switch_ann_action. */ + +#define SigFfext_chan_switch_ann_action (0x001f) + uint32_t dot11f_unpack_tlv_authorized_ma_cs(tpAniSirGlobal pCtx, uint8_t *pBuf, uint16_t tlvlen, @@ -793,13 +808,13 @@ uint32_t dot11f_unpack_tlv_version2(tpAniSirGlobal pCtx, tDot11fTLVVersion2 *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp4__; + uint8_t tmp5__; pDst->present = 1; - tmp4__ = *pBuf; + tmp5__ = *pBuf; pBuf += 1; tlvlen -= 1; - pDst->minor = tmp4__ >> 0 & 0xf; - pDst->major = tmp4__ >> 4 & 0xf; + pDst->minor = tmp5__ >> 0 & 0xf; + pDst->major = tmp5__ >> 4 & 0xf; (void)pCtx; return status; } /* End dot11f_unpack_tlv_version2. */ @@ -1268,13 +1283,13 @@ uint32_t dot11f_unpack_tlv_version(tpAniSirGlobal pCtx, tDot11fTLVVersion *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp5__; + uint8_t tmp6__; pDst->present = 1; - tmp5__ = *pBuf; + tmp6__ = *pBuf; pBuf += 1; tlvlen -= 1; - pDst->minor = tmp5__ >> 0 & 0xf; - pDst->major = tmp5__ >> 4 & 0xf; + pDst->minor = tmp6__ >> 0 & 0xf; + pDst->major = tmp6__ >> 4 & 0xf; (void)pCtx; return status; } /* End dot11f_unpack_tlv_version. */ @@ -1329,16 +1344,16 @@ uint32_t dot11f_unpack_ie_gtk(tpAniSirGlobal pCtx, tDot11fIEGTK *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp6__; + uint16_t tmp7__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - framesntohs(pCtx, &tmp6__, pBuf, 0); + framesntohs(pCtx, &tmp7__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->keyId = tmp6__ >> 0 & 0x3; - pDst->reserved = tmp6__ >> 2 & 0x3feb; + pDst->keyId = tmp7__ >> 0 & 0x3; + pDst->reserved = tmp7__ >> 2 & 0x3feb; pDst->keyLength = *pBuf; pBuf += 1; ielen -= (uint8_t)1; @@ -1635,59 +1650,59 @@ uint32_t dot11f_unpack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, tDot11fIERRMEnabledCap *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp7__; uint8_t tmp8__; uint8_t tmp9__; uint8_t tmp10__; uint8_t tmp11__; + uint8_t tmp12__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp7__ = *pBuf; - pBuf += 1; - ielen -= 1; - pDst->LinkMeasurement = tmp7__ >> 0 & 0x1; - pDst->NeighborRpt = tmp7__ >> 1 & 0x1; - pDst->parallel = tmp7__ >> 2 & 0x1; - pDst->repeated = tmp7__ >> 3 & 0x1; - pDst->BeaconPassive = tmp7__ >> 4 & 0x1; - pDst->BeaconActive = tmp7__ >> 5 & 0x1; - pDst->BeaconTable = tmp7__ >> 6 & 0x1; - pDst->BeaconRepCond = tmp7__ >> 7 & 0x1; tmp8__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->FrameMeasurement = tmp8__ >> 0 & 0x1; - pDst->ChannelLoad = tmp8__ >> 1 & 0x1; - pDst->NoiseHistogram = tmp8__ >> 2 & 0x1; - pDst->statistics = tmp8__ >> 3 & 0x1; - pDst->LCIMeasurement = tmp8__ >> 4 & 0x1; - pDst->LCIAzimuth = tmp8__ >> 5 & 0x1; - pDst->TCMCapability = tmp8__ >> 6 & 0x1; - pDst->triggeredTCM = tmp8__ >> 7 & 0x1; + pDst->LinkMeasurement = tmp8__ >> 0 & 0x1; + pDst->NeighborRpt = tmp8__ >> 1 & 0x1; + pDst->parallel = tmp8__ >> 2 & 0x1; + pDst->repeated = tmp8__ >> 3 & 0x1; + pDst->BeaconPassive = tmp8__ >> 4 & 0x1; + pDst->BeaconActive = tmp8__ >> 5 & 0x1; + pDst->BeaconTable = tmp8__ >> 6 & 0x1; + pDst->BeaconRepCond = tmp8__ >> 7 & 0x1; tmp9__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->APChanReport = tmp9__ >> 0 & 0x1; - pDst->RRMMIBEnabled = tmp9__ >> 1 & 0x1; - pDst->operatingChanMax = tmp9__ >> 2 & 0x7; - pDst->nonOperatinChanMax = tmp9__ >> 5 & 0x7; + pDst->FrameMeasurement = tmp9__ >> 0 & 0x1; + pDst->ChannelLoad = tmp9__ >> 1 & 0x1; + pDst->NoiseHistogram = tmp9__ >> 2 & 0x1; + pDst->statistics = tmp9__ >> 3 & 0x1; + pDst->LCIMeasurement = tmp9__ >> 4 & 0x1; + pDst->LCIAzimuth = tmp9__ >> 5 & 0x1; + pDst->TCMCapability = tmp9__ >> 6 & 0x1; + pDst->triggeredTCM = tmp9__ >> 7 & 0x1; tmp10__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->MeasurementPilot = tmp10__ >> 0 & 0x7; - pDst->MeasurementPilotEnabled = tmp10__ >> 3 & 0x1; - pDst->NeighborTSFOffset = tmp10__ >> 4 & 0x1; - pDst->RCPIMeasurement = tmp10__ >> 5 & 0x1; - pDst->RSNIMeasurement = tmp10__ >> 6 & 0x1; - pDst->BssAvgAccessDelay = tmp10__ >> 7 & 0x1; + pDst->APChanReport = tmp10__ >> 0 & 0x1; + pDst->RRMMIBEnabled = tmp10__ >> 1 & 0x1; + pDst->operatingChanMax = tmp10__ >> 2 & 0x7; + pDst->nonOperatinChanMax = tmp10__ >> 5 & 0x7; tmp11__ = *pBuf; - pDst->BSSAvailAdmission = tmp11__ >> 0 & 0x1; - pDst->AntennaInformation = tmp11__ >> 1 & 0x1; - pDst->fine_time_meas_rpt = tmp11__ >> 2 & 0x1; - pDst->lci_capability = tmp11__ >> 3 & 0x1; - pDst->reserved = tmp11__ >> 4 & 0xf; + pBuf += 1; + ielen -= 1; + pDst->MeasurementPilot = tmp11__ >> 0 & 0x7; + pDst->MeasurementPilotEnabled = tmp11__ >> 3 & 0x1; + pDst->NeighborTSFOffset = tmp11__ >> 4 & 0x1; + pDst->RCPIMeasurement = tmp11__ >> 5 & 0x1; + pDst->RSNIMeasurement = tmp11__ >> 6 & 0x1; + pDst->BssAvgAccessDelay = tmp11__ >> 7 & 0x1; + tmp12__ = *pBuf; + pDst->BSSAvailAdmission = tmp12__ >> 0 & 0x1; + pDst->AntennaInformation = tmp12__ >> 1 & 0x1; + pDst->fine_time_meas_rpt = tmp12__ >> 2 & 0x1; + pDst->lci_capability = tmp12__ >> 3 & 0x1; + pDst->reserved = tmp12__ >> 4 & 0xf; (void)pCtx; return status; } /* End dot11f_unpack_ie_rrm_enabled_cap. */ @@ -1746,18 +1761,18 @@ uint32_t dot11f_unpack_ie_schedule(tpAniSirGlobal pCtx, tDot11fIESchedule *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp12__; + uint16_t tmp13__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - framesntohs(pCtx, &tmp12__, pBuf, 0); + framesntohs(pCtx, &tmp13__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->aggregation = tmp12__ >> 0 & 0x1; - pDst->tsid = tmp12__ >> 1 & 0xf; - pDst->direction = tmp12__ >> 5 & 0x3; - pDst->reserved = tmp12__ >> 7 & 0x1ff; + pDst->aggregation = tmp13__ >> 0 & 0x1; + pDst->tsid = tmp13__ >> 1 & 0xf; + pDst->direction = tmp13__ >> 5 & 0x3; + pDst->reserved = tmp13__ >> 7 & 0x1ff; framesntohl(pCtx, &pDst->service_start_time, pBuf, 0); pBuf += 4; ielen -= (uint8_t)4; @@ -1893,34 +1908,34 @@ uint32_t dot11f_unpack_ie_tspec(tpAniSirGlobal pCtx, tDot11fIETSPEC *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp13__; - uint8_t tmp14__; - uint16_t tmp15__; + uint16_t tmp14__; + uint8_t tmp15__; + uint16_t tmp16__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - framesntohs(pCtx, &tmp13__, pBuf, 0); + framesntohs(pCtx, &tmp14__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->traffic_type = tmp13__ >> 0 & 0x1; - pDst->tsid = tmp13__ >> 1 & 0xf; - pDst->direction = tmp13__ >> 5 & 0x3; - pDst->access_policy = tmp13__ >> 7 & 0x3; - pDst->aggregation = tmp13__ >> 9 & 0x1; - pDst->psb = tmp13__ >> 10 & 0x1; - pDst->user_priority = tmp13__ >> 11 & 0x7; - pDst->tsinfo_ack_pol = tmp13__ >> 14 & 0x3; - tmp14__ = *pBuf; + pDst->traffic_type = tmp14__ >> 0 & 0x1; + pDst->tsid = tmp14__ >> 1 & 0xf; + pDst->direction = tmp14__ >> 5 & 0x3; + pDst->access_policy = tmp14__ >> 7 & 0x3; + pDst->aggregation = tmp14__ >> 9 & 0x1; + pDst->psb = tmp14__ >> 10 & 0x1; + pDst->user_priority = tmp14__ >> 11 & 0x7; + pDst->tsinfo_ack_pol = tmp14__ >> 14 & 0x3; + tmp15__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->schedule = tmp14__ >> 0 & 0x1; - pDst->unused = tmp14__ >> 1 & 0x7f; - framesntohs(pCtx, &tmp15__, pBuf, 0); + pDst->schedule = tmp15__ >> 0 & 0x1; + pDst->unused = tmp15__ >> 1 & 0x7f; + framesntohs(pCtx, &tmp16__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->size = tmp15__ >> 0 & 0x7fff; - pDst->fixed = tmp15__ >> 15 & 0x1; + pDst->size = tmp16__ >> 0 & 0x7fff; + pDst->fixed = tmp16__ >> 15 & 0x1; framesntohs(pCtx, &pDst->max_msdu_size, pBuf, 0); pBuf += 2; ielen -= (uint8_t)2; @@ -1974,50 +1989,50 @@ uint32_t dot11f_unpack_ie_vht_caps(tpAniSirGlobal pCtx, tDot11fIEVHTCaps *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint32_t tmp16__; - uint16_t tmp17__; + uint32_t tmp17__; uint16_t tmp18__; + uint16_t tmp19__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - framesntohl(pCtx, &tmp16__, pBuf, 0); + framesntohl(pCtx, &tmp17__, pBuf, 0); pBuf += 4; ielen -= 4; - pDst->maxMPDULen = tmp16__ >> 0 & 0x3; - pDst->supportedChannelWidthSet = tmp16__ >> 2 & 0x3; - pDst->ldpcCodingCap = tmp16__ >> 4 & 0x1; - pDst->shortGI80MHz = tmp16__ >> 5 & 0x1; - pDst->shortGI160and80plus80MHz = tmp16__ >> 6 & 0x1; - pDst->txSTBC = tmp16__ >> 7 & 0x1; - pDst->rxSTBC = tmp16__ >> 8 & 0x7; - pDst->suBeamFormerCap = tmp16__ >> 11 & 0x1; - pDst->suBeamformeeCap = tmp16__ >> 12 & 0x1; - pDst->csnofBeamformerAntSup = tmp16__ >> 13 & 0x7; - pDst->numSoundingDim = tmp16__ >> 16 & 0x7; - pDst->muBeamformerCap = tmp16__ >> 19 & 0x1; - pDst->muBeamformeeCap = tmp16__ >> 20 & 0x1; - pDst->vhtTXOPPS = tmp16__ >> 21 & 0x1; - pDst->htcVHTCap = tmp16__ >> 22 & 0x1; - pDst->maxAMPDULenExp = tmp16__ >> 23 & 0x7; - pDst->vhtLinkAdaptCap = tmp16__ >> 26 & 0x3; - pDst->rxAntPattern = tmp16__ >> 28 & 0x1; - pDst->txAntPattern = tmp16__ >> 29 & 0x1; - pDst->reserved1 = tmp16__ >> 30 & 0x3; + pDst->maxMPDULen = tmp17__ >> 0 & 0x3; + pDst->supportedChannelWidthSet = tmp17__ >> 2 & 0x3; + pDst->ldpcCodingCap = tmp17__ >> 4 & 0x1; + pDst->shortGI80MHz = tmp17__ >> 5 & 0x1; + pDst->shortGI160and80plus80MHz = tmp17__ >> 6 & 0x1; + pDst->txSTBC = tmp17__ >> 7 & 0x1; + pDst->rxSTBC = tmp17__ >> 8 & 0x7; + pDst->suBeamFormerCap = tmp17__ >> 11 & 0x1; + pDst->suBeamformeeCap = tmp17__ >> 12 & 0x1; + pDst->csnofBeamformerAntSup = tmp17__ >> 13 & 0x7; + pDst->numSoundingDim = tmp17__ >> 16 & 0x7; + pDst->muBeamformerCap = tmp17__ >> 19 & 0x1; + pDst->muBeamformeeCap = tmp17__ >> 20 & 0x1; + pDst->vhtTXOPPS = tmp17__ >> 21 & 0x1; + pDst->htcVHTCap = tmp17__ >> 22 & 0x1; + pDst->maxAMPDULenExp = tmp17__ >> 23 & 0x7; + pDst->vhtLinkAdaptCap = tmp17__ >> 26 & 0x3; + pDst->rxAntPattern = tmp17__ >> 28 & 0x1; + pDst->txAntPattern = tmp17__ >> 29 & 0x1; + pDst->reserved1 = tmp17__ >> 30 & 0x3; framesntohs(pCtx, &pDst->rxMCSMap, pBuf, 0); pBuf += 2; ielen -= (uint8_t)2; - framesntohs(pCtx, &tmp17__, pBuf, 0); + framesntohs(pCtx, &tmp18__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->rxHighSupDataRate = tmp17__ >> 0 & 0x1fff; - pDst->reserved2 = tmp17__ >> 13 & 0x7; + pDst->rxHighSupDataRate = tmp18__ >> 0 & 0x1fff; + pDst->reserved2 = tmp18__ >> 13 & 0x7; framesntohs(pCtx, &pDst->txMCSMap, pBuf, 0); pBuf += 2; ielen -= (uint8_t)2; - framesntohs(pCtx, &tmp18__, pBuf, 0); - pDst->txSupDataRate = tmp18__ >> 0 & 0x1fff; - pDst->reserved3 = tmp18__ >> 13 & 0x7; + framesntohs(pCtx, &tmp19__, pBuf, 0); + pDst->txSupDataRate = tmp19__ >> 0 & 0x1fff; + pDst->reserved3 = tmp19__ >> 13 & 0x7; (void)pCtx; return status; } /* End dot11f_unpack_ie_vht_caps. */ @@ -2058,7 +2073,7 @@ uint32_t dot11f_unpack_ie_wmm_schedule(tpAniSirGlobal pCtx, tDot11fIEWMMSchedule *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp19__; + uint16_t tmp20__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -2070,13 +2085,13 @@ uint32_t dot11f_unpack_ie_wmm_schedule(tpAniSirGlobal pCtx, pDst->present = 0; return status | DOT11F_BAD_FIXED_VALUE; } - framesntohs(pCtx, &tmp19__, pBuf, 0); + framesntohs(pCtx, &tmp20__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->aggregation = tmp19__ >> 0 & 0x1; - pDst->tsid = tmp19__ >> 1 & 0xf; - pDst->direction = tmp19__ >> 5 & 0x3; - pDst->reserved = tmp19__ >> 7 & 0x1ff; + pDst->aggregation = tmp20__ >> 0 & 0x1; + pDst->tsid = tmp20__ >> 1 & 0xf; + pDst->direction = tmp20__ >> 5 & 0x3; + pDst->reserved = tmp20__ >> 7 & 0x1ff; framesntohl(pCtx, &pDst->service_start_time, pBuf, 0); pBuf += 4; ielen -= (uint8_t)4; @@ -2248,9 +2263,9 @@ uint32_t dot11f_unpack_ie_wmmtspec(tpAniSirGlobal pCtx, tDot11fIEWMMTSPEC *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp20__; - uint8_t tmp21__; - uint16_t tmp22__; + uint16_t tmp21__; + uint8_t tmp22__; + uint16_t tmp23__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -2262,27 +2277,27 @@ uint32_t dot11f_unpack_ie_wmmtspec(tpAniSirGlobal pCtx, pDst->present = 0; return status | DOT11F_BAD_FIXED_VALUE; } - framesntohs(pCtx, &tmp20__, pBuf, 0); + framesntohs(pCtx, &tmp21__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->traffic_type = tmp20__ >> 0 & 0x1; - pDst->tsid = tmp20__ >> 1 & 0xf; - pDst->direction = tmp20__ >> 5 & 0x3; - pDst->access_policy = tmp20__ >> 7 & 0x3; - pDst->aggregation = tmp20__ >> 9 & 0x1; - pDst->psb = tmp20__ >> 10 & 0x1; - pDst->user_priority = tmp20__ >> 11 & 0x7; - pDst->tsinfo_ack_pol = tmp20__ >> 14 & 0x3; - tmp21__ = *pBuf; + pDst->traffic_type = tmp21__ >> 0 & 0x1; + pDst->tsid = tmp21__ >> 1 & 0xf; + pDst->direction = tmp21__ >> 5 & 0x3; + pDst->access_policy = tmp21__ >> 7 & 0x3; + pDst->aggregation = tmp21__ >> 9 & 0x1; + pDst->psb = tmp21__ >> 10 & 0x1; + pDst->user_priority = tmp21__ >> 11 & 0x7; + pDst->tsinfo_ack_pol = tmp21__ >> 14 & 0x3; + tmp22__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->tsinfo_rsvd = tmp21__ >> 0 & 0x7f; - pDst->burst_size_defn = tmp21__ >> 7 & 0x1; - framesntohs(pCtx, &tmp22__, pBuf, 0); + pDst->tsinfo_rsvd = tmp22__ >> 0 & 0x7f; + pDst->burst_size_defn = tmp22__ >> 7 & 0x1; + framesntohs(pCtx, &tmp23__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->size = tmp22__ >> 0 & 0x7fff; - pDst->fixed = tmp22__ >> 15 & 0x1; + pDst->size = tmp23__ >> 0 & 0x7fff; + pDst->fixed = tmp23__ >> 15 & 0x1; framesntohs(pCtx, &pDst->max_msdu_size, pBuf, 0); pBuf += 2; ielen -= (uint8_t)2; @@ -2524,7 +2539,6 @@ uint32_t dot11f_unpack_ie_edca_param_set(tpAniSirGlobal pCtx, tDot11fIEEDCAParamSet *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp23__; uint8_t tmp24__; uint8_t tmp25__; uint8_t tmp26__; @@ -2532,6 +2546,7 @@ uint32_t dot11f_unpack_ie_edca_param_set(tpAniSirGlobal pCtx, uint8_t tmp28__; uint8_t tmp29__; uint8_t tmp30__; + uint8_t tmp31__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -2542,63 +2557,63 @@ uint32_t dot11f_unpack_ie_edca_param_set(tpAniSirGlobal pCtx, pDst->reserved = *pBuf; pBuf += 1; ielen -= (uint8_t)1; - tmp23__ = *pBuf; - pBuf += 1; - ielen -= 1; - pDst->acbe_aifsn = tmp23__ >> 0 & 0xf; - pDst->acbe_acm = tmp23__ >> 4 & 0x1; - pDst->acbe_aci = tmp23__ >> 5 & 0x3; - pDst->unused1 = tmp23__ >> 7 & 0x1; tmp24__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbe_acwmin = tmp24__ >> 0 & 0xf; - pDst->acbe_acwmax = tmp24__ >> 4 & 0xf; - framesntohs(pCtx, &pDst->acbe_txoplimit, pBuf, 0); - pBuf += 2; - ielen -= (uint8_t)2; + pDst->acbe_aifsn = tmp24__ >> 0 & 0xf; + pDst->acbe_acm = tmp24__ >> 4 & 0x1; + pDst->acbe_aci = tmp24__ >> 5 & 0x3; + pDst->unused1 = tmp24__ >> 7 & 0x1; tmp25__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_aifsn = tmp25__ >> 0 & 0xf; - pDst->acbk_acm = tmp25__ >> 4 & 0x1; - pDst->acbk_aci = tmp25__ >> 5 & 0x3; - pDst->unused2 = tmp25__ >> 7 & 0x1; + pDst->acbe_acwmin = tmp25__ >> 0 & 0xf; + pDst->acbe_acwmax = tmp25__ >> 4 & 0xf; + framesntohs(pCtx, &pDst->acbe_txoplimit, pBuf, 0); + pBuf += 2; + ielen -= (uint8_t)2; tmp26__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_acwmin = tmp26__ >> 0 & 0xf; - pDst->acbk_acwmax = tmp26__ >> 4 & 0xf; - framesntohs(pCtx, &pDst->acbk_txoplimit, pBuf, 0); - pBuf += 2; - ielen -= (uint8_t)2; + pDst->acbk_aifsn = tmp26__ >> 0 & 0xf; + pDst->acbk_acm = tmp26__ >> 4 & 0x1; + pDst->acbk_aci = tmp26__ >> 5 & 0x3; + pDst->unused2 = tmp26__ >> 7 & 0x1; tmp27__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_aifsn = tmp27__ >> 0 & 0xf; - pDst->acvi_acm = tmp27__ >> 4 & 0x1; - pDst->acvi_aci = tmp27__ >> 5 & 0x3; - pDst->unused3 = tmp27__ >> 7 & 0x1; + pDst->acbk_acwmin = tmp27__ >> 0 & 0xf; + pDst->acbk_acwmax = tmp27__ >> 4 & 0xf; + framesntohs(pCtx, &pDst->acbk_txoplimit, pBuf, 0); + pBuf += 2; + ielen -= (uint8_t)2; tmp28__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_acwmin = tmp28__ >> 0 & 0xf; - pDst->acvi_acwmax = tmp28__ >> 4 & 0xf; - framesntohs(pCtx, &pDst->acvi_txoplimit, pBuf, 0); - pBuf += 2; - ielen -= (uint8_t)2; + pDst->acvi_aifsn = tmp28__ >> 0 & 0xf; + pDst->acvi_acm = tmp28__ >> 4 & 0x1; + pDst->acvi_aci = tmp28__ >> 5 & 0x3; + pDst->unused3 = tmp28__ >> 7 & 0x1; tmp29__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_aifsn = tmp29__ >> 0 & 0xf; - pDst->acvo_acm = tmp29__ >> 4 & 0x1; - pDst->acvo_aci = tmp29__ >> 5 & 0x3; - pDst->unused4 = tmp29__ >> 7 & 0x1; + pDst->acvi_acwmin = tmp29__ >> 0 & 0xf; + pDst->acvi_acwmax = tmp29__ >> 4 & 0xf; + framesntohs(pCtx, &pDst->acvi_txoplimit, pBuf, 0); + pBuf += 2; + ielen -= (uint8_t)2; tmp30__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_acwmin = tmp30__ >> 0 & 0xf; - pDst->acvo_acwmax = tmp30__ >> 4 & 0xf; + pDst->acvo_aifsn = tmp30__ >> 0 & 0xf; + pDst->acvo_acm = tmp30__ >> 4 & 0x1; + pDst->acvo_aci = tmp30__ >> 5 & 0x3; + pDst->unused4 = tmp30__ >> 7 & 0x1; + tmp31__ = *pBuf; + pBuf += 1; + ielen -= 1; + pDst->acvo_acwmin = tmp31__ >> 0 & 0xf; + pDst->acvo_acwmax = tmp31__ >> 4 & 0xf; framesntohs(pCtx, &pDst->acvo_txoplimit, pBuf, 0); (void)pCtx; return status; @@ -2613,16 +2628,16 @@ uint32_t dot11f_unpack_ie_erp_info(tpAniSirGlobal pCtx, tDot11fIEERPInfo *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp31__; + uint8_t tmp32__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp31__ = *pBuf; - pDst->non_erp_present = tmp31__ >> 0 & 0x1; - pDst->use_prot = tmp31__ >> 1 & 0x1; - pDst->barker_preamble = tmp31__ >> 2 & 0x1; - pDst->unused = tmp31__ >> 3 & 0x1f; + tmp32__ = *pBuf; + pDst->non_erp_present = tmp32__ >> 0 & 0x1; + pDst->use_prot = tmp32__ >> 1 & 0x1; + pDst->barker_preamble = tmp32__ >> 2 & 0x1; + pDst->unused = tmp32__ >> 3 & 0x1f; (void)pCtx; return status; } /* End dot11f_unpack_ie_erp_info. */ @@ -2660,7 +2675,7 @@ uint32_t dot11f_unpack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, tDot11fIEESERadMgmtCap *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp32__; + uint8_t tmp33__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -2668,9 +2683,9 @@ uint32_t dot11f_unpack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, pDst->mgmt_state = *pBuf; pBuf += 1; ielen -= (uint8_t)1; - tmp32__ = *pBuf; - pDst->mbssid_mask = tmp32__ >> 0 & 0x7; - pDst->reserved = tmp32__ >> 3 & 0x1f; + tmp33__ = *pBuf; + pDst->mbssid_mask = tmp33__ >> 0 & 0x7; + pDst->reserved = tmp33__ >> 3 & 0x1f; (void)pCtx; return status; } /* End dot11f_unpack_ie_ese_rad_mgmt_cap. */ @@ -2937,16 +2952,16 @@ uint32_t dot11f_unpack_ie_ft_info(tpAniSirGlobal pCtx, tDot11fIEFTInfo *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp33__; + uint16_t tmp34__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - framesntohs(pCtx, &tmp33__, pBuf, 0); + framesntohs(pCtx, &tmp34__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->reserved = tmp33__ >> 0 & 0xff; - pDst->IECount = tmp33__ >> 8 & 0xff; + pDst->reserved = tmp34__ >> 0 & 0xff; + pDst->IECount = tmp34__ >> 8 & 0xff; DOT11F_MEMCPY(pCtx, pDst->MIC, pBuf, 16); pBuf += 16; ielen -= (uint8_t)16; @@ -2976,79 +2991,79 @@ uint32_t dot11f_unpack_ie_ht_caps(tpAniSirGlobal pCtx, tDot11fIEHTCaps *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp34__; - uint8_t tmp35__; - uint16_t tmp36__; - uint32_t tmp37__; - uint8_t tmp38__; + uint16_t tmp35__; + uint8_t tmp36__; + uint16_t tmp37__; + uint32_t tmp38__; + uint8_t tmp39__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - framesntohs(pCtx, &tmp34__, pBuf, 0); + framesntohs(pCtx, &tmp35__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->advCodingCap = tmp34__ >> 0 & 0x1; - pDst->supportedChannelWidthSet = tmp34__ >> 1 & 0x1; - pDst->mimoPowerSave = tmp34__ >> 2 & 0x3; - pDst->greenField = tmp34__ >> 4 & 0x1; - pDst->shortGI20MHz = tmp34__ >> 5 & 0x1; - pDst->shortGI40MHz = tmp34__ >> 6 & 0x1; - pDst->txSTBC = tmp34__ >> 7 & 0x1; - pDst->rxSTBC = tmp34__ >> 8 & 0x3; - pDst->delayedBA = tmp34__ >> 10 & 0x1; - pDst->maximalAMSDUsize = tmp34__ >> 11 & 0x1; - pDst->dsssCckMode40MHz = tmp34__ >> 12 & 0x1; - pDst->psmp = tmp34__ >> 13 & 0x1; - pDst->stbcControlFrame = tmp34__ >> 14 & 0x1; - pDst->lsigTXOPProtection = tmp34__ >> 15 & 0x1; - tmp35__ = *pBuf; + pDst->advCodingCap = tmp35__ >> 0 & 0x1; + pDst->supportedChannelWidthSet = tmp35__ >> 1 & 0x1; + pDst->mimoPowerSave = tmp35__ >> 2 & 0x3; + pDst->greenField = tmp35__ >> 4 & 0x1; + pDst->shortGI20MHz = tmp35__ >> 5 & 0x1; + pDst->shortGI40MHz = tmp35__ >> 6 & 0x1; + pDst->txSTBC = tmp35__ >> 7 & 0x1; + pDst->rxSTBC = tmp35__ >> 8 & 0x3; + pDst->delayedBA = tmp35__ >> 10 & 0x1; + pDst->maximalAMSDUsize = tmp35__ >> 11 & 0x1; + pDst->dsssCckMode40MHz = tmp35__ >> 12 & 0x1; + pDst->psmp = tmp35__ >> 13 & 0x1; + pDst->stbcControlFrame = tmp35__ >> 14 & 0x1; + pDst->lsigTXOPProtection = tmp35__ >> 15 & 0x1; + tmp36__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->maxRxAMPDUFactor = tmp35__ >> 0 & 0x3; - pDst->mpduDensity = tmp35__ >> 2 & 0x7; - pDst->reserved1 = tmp35__ >> 5 & 0x7; + pDst->maxRxAMPDUFactor = tmp36__ >> 0 & 0x3; + pDst->mpduDensity = tmp36__ >> 2 & 0x7; + pDst->reserved1 = tmp36__ >> 5 & 0x7; DOT11F_MEMCPY(pCtx, pDst->supportedMCSSet, pBuf, 16); pBuf += 16; ielen -= (uint8_t)16; - framesntohs(pCtx, &tmp36__, pBuf, 0); + framesntohs(pCtx, &tmp37__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->pco = tmp36__ >> 0 & 0x1; - pDst->transitionTime = tmp36__ >> 1 & 0x3; - pDst->reserved2 = tmp36__ >> 3 & 0x1f; - pDst->mcsFeedback = tmp36__ >> 8 & 0x3; - pDst->reserved3 = tmp36__ >> 10 & 0x3f; - framesntohl(pCtx, &tmp37__, pBuf, 0); + pDst->pco = tmp37__ >> 0 & 0x1; + pDst->transitionTime = tmp37__ >> 1 & 0x3; + pDst->reserved2 = tmp37__ >> 3 & 0x1f; + pDst->mcsFeedback = tmp37__ >> 8 & 0x3; + pDst->reserved3 = tmp37__ >> 10 & 0x3f; + framesntohl(pCtx, &tmp38__, pBuf, 0); pBuf += 4; ielen -= 4; - pDst->txBF = tmp37__ >> 0 & 0x1; - pDst->rxStaggeredSounding = tmp37__ >> 1 & 0x1; - pDst->txStaggeredSounding = tmp37__ >> 2 & 0x1; - pDst->rxZLF = tmp37__ >> 3 & 0x1; - pDst->txZLF = tmp37__ >> 4 & 0x1; - pDst->implicitTxBF = tmp37__ >> 5 & 0x1; - pDst->calibration = tmp37__ >> 6 & 0x3; - pDst->explicitCSITxBF = tmp37__ >> 8 & 0x1; - pDst->explicitUncompressedSteeringMatrix = tmp37__ >> 9 & 0x1; - pDst->explicitBFCSIFeedback = tmp37__ >> 10 & 0x7; - pDst->explicitUncompressedSteeringMatrixFeedback = tmp37__ >> 13 & 0x7; - pDst->explicitCompressedSteeringMatrixFeedback = tmp37__ >> 16 & 0x7; - pDst->csiNumBFAntennae = tmp37__ >> 19 & 0x3; - pDst->uncompressedSteeringMatrixBFAntennae = tmp37__ >> 21 & 0x3; - pDst->compressedSteeringMatrixBFAntennae = tmp37__ >> 23 & 0x3; - pDst->reserved4 = tmp37__ >> 25 & 0x7f; - tmp38__ = *pBuf; + pDst->txBF = tmp38__ >> 0 & 0x1; + pDst->rxStaggeredSounding = tmp38__ >> 1 & 0x1; + pDst->txStaggeredSounding = tmp38__ >> 2 & 0x1; + pDst->rxZLF = tmp38__ >> 3 & 0x1; + pDst->txZLF = tmp38__ >> 4 & 0x1; + pDst->implicitTxBF = tmp38__ >> 5 & 0x1; + pDst->calibration = tmp38__ >> 6 & 0x3; + pDst->explicitCSITxBF = tmp38__ >> 8 & 0x1; + pDst->explicitUncompressedSteeringMatrix = tmp38__ >> 9 & 0x1; + pDst->explicitBFCSIFeedback = tmp38__ >> 10 & 0x7; + pDst->explicitUncompressedSteeringMatrixFeedback = tmp38__ >> 13 & 0x7; + pDst->explicitCompressedSteeringMatrixFeedback = tmp38__ >> 16 & 0x7; + pDst->csiNumBFAntennae = tmp38__ >> 19 & 0x3; + pDst->uncompressedSteeringMatrixBFAntennae = tmp38__ >> 21 & 0x3; + pDst->compressedSteeringMatrixBFAntennae = tmp38__ >> 23 & 0x3; + pDst->reserved4 = tmp38__ >> 25 & 0x7f; + tmp39__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->antennaSelection = tmp38__ >> 0 & 0x1; - pDst->explicitCSIFeedbackTx = tmp38__ >> 1 & 0x1; - pDst->antennaIndicesFeedbackTx = tmp38__ >> 2 & 0x1; - pDst->explicitCSIFeedback = tmp38__ >> 3 & 0x1; - pDst->antennaIndicesFeedback = tmp38__ >> 4 & 0x1; - pDst->rxAS = tmp38__ >> 5 & 0x1; - pDst->txSoundingPPDUs = tmp38__ >> 6 & 0x1; - pDst->reserved5 = tmp38__ >> 7 & 0x1; + pDst->antennaSelection = tmp39__ >> 0 & 0x1; + pDst->explicitCSIFeedbackTx = tmp39__ >> 1 & 0x1; + pDst->antennaIndicesFeedbackTx = tmp39__ >> 2 & 0x1; + pDst->explicitCSIFeedback = tmp39__ >> 3 & 0x1; + pDst->antennaIndicesFeedback = tmp39__ >> 4 & 0x1; + pDst->rxAS = tmp39__ >> 5 & 0x1; + pDst->txSoundingPPDUs = tmp39__ >> 6 & 0x1; + pDst->reserved5 = tmp39__ >> 7 & 0x1; pDst->num_rsvd = (uint8_t)(ielen); if (ielen > 32) { pDst->present = 0; @@ -3069,9 +3084,9 @@ uint32_t dot11f_unpack_ie_ht_info(tpAniSirGlobal pCtx, tDot11fIEHTInfo *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp39__; - uint16_t tmp40__; + uint8_t tmp40__; uint16_t tmp41__; + uint16_t tmp42__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -3079,32 +3094,32 @@ uint32_t dot11f_unpack_ie_ht_info(tpAniSirGlobal pCtx, pDst->primaryChannel = *pBuf; pBuf += 1; ielen -= (uint8_t)1; - tmp39__ = *pBuf; + tmp40__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->secondaryChannelOffset = tmp39__ >> 0 & 0x3; - pDst->recommendedTxWidthSet = tmp39__ >> 2 & 0x1; - pDst->rifsMode = tmp39__ >> 3 & 0x1; - pDst->controlledAccessOnly = tmp39__ >> 4 & 0x1; - pDst->serviceIntervalGranularity = tmp39__ >> 5 & 0x7; - framesntohs(pCtx, &tmp40__, pBuf, 0); - pBuf += 2; - ielen -= 2; - pDst->opMode = tmp40__ >> 0 & 0x3; - pDst->nonGFDevicesPresent = tmp40__ >> 2 & 0x1; - pDst->transmitBurstLimit = tmp40__ >> 3 & 0x1; - pDst->obssNonHTStaPresent = tmp40__ >> 4 & 0x1; - pDst->reserved = tmp40__ >> 5 & 0x7ff; + pDst->secondaryChannelOffset = tmp40__ >> 0 & 0x3; + pDst->recommendedTxWidthSet = tmp40__ >> 2 & 0x1; + pDst->rifsMode = tmp40__ >> 3 & 0x1; + pDst->controlledAccessOnly = tmp40__ >> 4 & 0x1; + pDst->serviceIntervalGranularity = tmp40__ >> 5 & 0x7; framesntohs(pCtx, &tmp41__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->basicSTBCMCS = tmp41__ >> 0 & 0x7f; - pDst->dualCTSProtection = tmp41__ >> 7 & 0x1; - pDst->secondaryBeacon = tmp41__ >> 8 & 0x1; - pDst->lsigTXOPProtectionFullSupport = tmp41__ >> 9 & 0x1; - pDst->pcoActive = tmp41__ >> 10 & 0x1; - pDst->pcoPhase = tmp41__ >> 11 & 0x1; - pDst->reserved2 = tmp41__ >> 12 & 0xf; + pDst->opMode = tmp41__ >> 0 & 0x3; + pDst->nonGFDevicesPresent = tmp41__ >> 2 & 0x1; + pDst->transmitBurstLimit = tmp41__ >> 3 & 0x1; + pDst->obssNonHTStaPresent = tmp41__ >> 4 & 0x1; + pDst->reserved = tmp41__ >> 5 & 0x7ff; + framesntohs(pCtx, &tmp42__, pBuf, 0); + pBuf += 2; + ielen -= 2; + pDst->basicSTBCMCS = tmp42__ >> 0 & 0x7f; + pDst->dualCTSProtection = tmp42__ >> 7 & 0x1; + pDst->secondaryBeacon = tmp42__ >> 8 & 0x1; + pDst->lsigTXOPProtectionFullSupport = tmp42__ >> 9 & 0x1; + pDst->pcoActive = tmp42__ >> 10 & 0x1; + pDst->pcoPhase = tmp42__ >> 11 & 0x1; + pDst->reserved2 = tmp42__ >> 12 & 0xf; DOT11F_MEMCPY(pCtx, pDst->basicMCSSet, pBuf, 16); pBuf += 16; ielen -= (uint8_t)16; @@ -3183,9 +3198,9 @@ uint32_t dot11f_unpack_ie_measurement_report(tpAniSirGlobal pCtx, tDot11fIEMeasurementReport *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp42__; uint8_t tmp43__; uint8_t tmp44__; + uint8_t tmp45__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -3193,13 +3208,13 @@ uint32_t dot11f_unpack_ie_measurement_report(tpAniSirGlobal pCtx, pDst->token = *pBuf; pBuf += 1; ielen -= (uint8_t)1; - tmp42__ = *pBuf; + tmp43__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->late = tmp42__ >> 0 & 0x1; - pDst->incapable = tmp42__ >> 1 & 0x1; - pDst->refused = tmp42__ >> 2 & 0x1; - pDst->unused = tmp42__ >> 3 & 0x1f; + pDst->late = tmp43__ >> 0 & 0x1; + pDst->incapable = tmp43__ >> 1 & 0x1; + pDst->refused = tmp43__ >> 2 & 0x1; + pDst->unused = tmp43__ >> 3 & 0x1f; pDst->type = *pBuf; pBuf += 1; ielen -= (uint8_t)1; @@ -3217,15 +3232,15 @@ uint32_t dot11f_unpack_ie_measurement_report(tpAniSirGlobal pCtx, framesntohs(pCtx, &pDst->report.Basic.meas_duration, pBuf, 0); pBuf += 2; ielen -= (uint8_t)2; - tmp43__ = *pBuf; + tmp44__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->report.Basic.bss = tmp43__ >> 0 & 0x1; - pDst->report.Basic.ofdm_preamble = tmp43__ >> 1 & 0x1; - pDst->report.Basic.unid_signal = tmp43__ >> 2 & 0x1; - pDst->report.Basic.rader = tmp43__ >> 3 & 0x1; - pDst->report.Basic.unmeasured = tmp43__ >> 4 & 0x1; - pDst->report.Basic.unused = tmp43__ >> 5 & 0x7; + pDst->report.Basic.bss = tmp44__ >> 0 & 0x1; + pDst->report.Basic.ofdm_preamble = tmp44__ >> 1 & 0x1; + pDst->report.Basic.unid_signal = tmp44__ >> 2 & 0x1; + pDst->report.Basic.rader = tmp44__ >> 3 & 0x1; + pDst->report.Basic.unmeasured = tmp44__ >> 4 & 0x1; + pDst->report.Basic.unused = tmp44__ >> 5 & 0x7; break; case 1: pDst->report.CCA.channel = *pBuf; @@ -3289,11 +3304,11 @@ uint32_t dot11f_unpack_ie_measurement_report(tpAniSirGlobal pCtx, framesntohs(pCtx, &pDst->report.Beacon.meas_duration, pBuf, 0); pBuf += 2; ielen -= (uint8_t)2; - tmp44__ = *pBuf; + tmp45__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->report.Beacon.condensed_PHY = tmp44__ >> 0 & 0x7f; - pDst->report.Beacon.reported_frame_type = tmp44__ >> 7 & 0x1; + pDst->report.Beacon.condensed_PHY = tmp45__ >> 0 & 0x7f; + pDst->report.Beacon.reported_frame_type = tmp45__ >> 7 & 0x1; pDst->report.Beacon.RCPI = *pBuf; pBuf += 1; ielen -= (uint8_t)1; @@ -3362,7 +3377,7 @@ uint32_t dot11f_unpack_ie_measurement_request(tpAniSirGlobal pCtx, tDot11fIEMeasurementRequest *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp45__; + uint8_t tmp46__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -3370,15 +3385,15 @@ uint32_t dot11f_unpack_ie_measurement_request(tpAniSirGlobal pCtx, pDst->measurement_token = *pBuf; pBuf += 1; ielen -= (uint8_t)1; - tmp45__ = *pBuf; + tmp46__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->parallel = tmp45__ >> 0 & 0x1; - pDst->enable = tmp45__ >> 1 & 0x1; - pDst->request = tmp45__ >> 2 & 0x1; - pDst->report = tmp45__ >> 3 & 0x1; - pDst->durationMandatory = tmp45__ >> 4 & 0x1; - pDst->unused = tmp45__ >> 5 & 0x7; + pDst->parallel = tmp46__ >> 0 & 0x1; + pDst->enable = tmp46__ >> 1 & 0x1; + pDst->request = tmp46__ >> 2 & 0x1; + pDst->report = tmp46__ >> 3 & 0x1; + pDst->durationMandatory = tmp46__ >> 4 & 0x1; + pDst->unused = tmp46__ >> 5 & 0x7; pDst->measurement_type = *pBuf; pBuf += 1; ielen -= (uint8_t)1; @@ -3457,7 +3472,7 @@ uint32_t dot11f_unpack_ie_mobility_domain(tpAniSirGlobal pCtx, tDot11fIEMobilityDomain *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp46__; + uint8_t tmp47__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -3465,10 +3480,10 @@ uint32_t dot11f_unpack_ie_mobility_domain(tpAniSirGlobal pCtx, framesntohs(pCtx, &pDst->MDID, pBuf, 0); pBuf += 2; ielen -= (uint8_t)2; - tmp46__ = *pBuf; - pDst->overDSCap = tmp46__ >> 0 & 0x1; - pDst->resourceReqCap = tmp46__ >> 1 & 0x1; - pDst->reserved = tmp46__ >> 2 & 0x3f; + tmp47__ = *pBuf; + pDst->overDSCap = tmp47__ >> 0 & 0x1; + pDst->resourceReqCap = tmp47__ >> 1 & 0x1; + pDst->reserved = tmp47__ >> 2 & 0x3f; (void)pCtx; return status; } /* End dot11f_unpack_ie_mobility_domain. */ @@ -3509,8 +3524,8 @@ uint32_t dot11f_unpack_ie_neighbor_report(tpAniSirGlobal pCtx, tDot11fIENeighborReport *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp47__; uint8_t tmp48__; + uint8_t tmp49__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -3518,23 +3533,23 @@ uint32_t dot11f_unpack_ie_neighbor_report(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pDst->bssid, pBuf, 6); pBuf += 6; ielen -= (uint8_t)6; - tmp47__ = *pBuf; - pBuf += 1; - ielen -= 1; - pDst->APReachability = tmp47__ >> 0 & 0x3; - pDst->Security = tmp47__ >> 2 & 0x1; - pDst->KeyScope = tmp47__ >> 3 & 0x1; - pDst->SpecMgmtCap = tmp47__ >> 4 & 0x1; - pDst->QosCap = tmp47__ >> 5 & 0x1; - pDst->apsd = tmp47__ >> 6 & 0x1; - pDst->rrm = tmp47__ >> 7 & 0x1; tmp48__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->DelayedBA = tmp48__ >> 0 & 0x1; - pDst->ImmBA = tmp48__ >> 1 & 0x1; - pDst->MobilityDomain = tmp48__ >> 2 & 0x1; - pDst->reserved = tmp48__ >> 3 & 0x1f; + pDst->APReachability = tmp48__ >> 0 & 0x3; + pDst->Security = tmp48__ >> 2 & 0x1; + pDst->KeyScope = tmp48__ >> 3 & 0x1; + pDst->SpecMgmtCap = tmp48__ >> 4 & 0x1; + pDst->QosCap = tmp48__ >> 5 & 0x1; + pDst->apsd = tmp48__ >> 6 & 0x1; + pDst->rrm = tmp48__ >> 7 & 0x1; + tmp49__ = *pBuf; + pBuf += 1; + ielen -= 1; + pDst->DelayedBA = tmp49__ >> 0 & 0x1; + pDst->ImmBA = tmp49__ >> 1 & 0x1; + pDst->MobilityDomain = tmp49__ >> 2 & 0x1; + pDst->reserved = tmp49__ >> 3 & 0x1f; framesntohs(pCtx, &pDst->reserved1, pBuf, 0); pBuf += 2; ielen -= (uint8_t)2; @@ -3603,16 +3618,16 @@ uint32_t dot11f_unpack_ie_operating_mode(tpAniSirGlobal pCtx, tDot11fIEOperatingMode *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp49__; + uint8_t tmp50__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp49__ = *pBuf; - pDst->chanWidth = tmp49__ >> 0 & 0x3; - pDst->reserved = tmp49__ >> 2 & 0x3; - pDst->rxNSS = tmp49__ >> 4 & 0x7; - pDst->rxNSSType = tmp49__ >> 7 & 0x1; + tmp50__ = *pBuf; + pDst->chanWidth = tmp50__ >> 0 & 0x3; + pDst->reserved = tmp50__ >> 2 & 0x3; + pDst->rxNSS = tmp50__ >> 4 & 0x7; + pDst->rxNSSType = tmp50__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11f_unpack_ie_operating_mode. */ @@ -3928,17 +3943,17 @@ uint32_t dot11f_unpack_ie_pu_buffer_status(tpAniSirGlobal pCtx, tDot11fIEPUBufferStatus *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp50__; + uint8_t tmp51__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp50__ = *pBuf; - pDst->ac_bk_traffic_aval = tmp50__ >> 0 & 0x1; - pDst->ac_be_traffic_aval = tmp50__ >> 1 & 0x1; - pDst->ac_vi_traffic_aval = tmp50__ >> 2 & 0x1; - pDst->ac_vo_traffic_aval = tmp50__ >> 3 & 0x1; - pDst->reserved = tmp50__ >> 4 & 0xf; + tmp51__ = *pBuf; + pDst->ac_bk_traffic_aval = tmp51__ >> 0 & 0x1; + pDst->ac_be_traffic_aval = tmp51__ >> 1 & 0x1; + pDst->ac_vi_traffic_aval = tmp51__ >> 2 & 0x1; + pDst->ac_vo_traffic_aval = tmp51__ >> 3 & 0x1; + pDst->reserved = tmp51__ >> 4 & 0xf; (void)pCtx; return status; } /* End dot11f_unpack_ie_pu_buffer_status. */ @@ -4036,17 +4051,17 @@ uint32_t dot11f_unpack_ie_qos_caps_ap(tpAniSirGlobal pCtx, tDot11fIEQOSCapsAp *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp51__; + uint8_t tmp52__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp51__ = *pBuf; - pDst->count = tmp51__ >> 0 & 0xf; - pDst->qack = tmp51__ >> 4 & 0x1; - pDst->qreq = tmp51__ >> 5 & 0x1; - pDst->txopreq = tmp51__ >> 6 & 0x1; - pDst->reserved = tmp51__ >> 7 & 0x1; + tmp52__ = *pBuf; + pDst->count = tmp52__ >> 0 & 0xf; + pDst->qack = tmp52__ >> 4 & 0x1; + pDst->qreq = tmp52__ >> 5 & 0x1; + pDst->txopreq = tmp52__ >> 6 & 0x1; + pDst->reserved = tmp52__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11f_unpack_ie_qos_caps_ap. */ @@ -4060,19 +4075,19 @@ uint32_t dot11f_unpack_ie_qos_caps_station(tpAniSirGlobal pCtx, tDot11fIEQOSCapsStation *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp52__; + uint8_t tmp53__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp52__ = *pBuf; - pDst->acvo_uapsd = tmp52__ >> 0 & 0x1; - pDst->acvi_uapsd = tmp52__ >> 1 & 0x1; - pDst->acbk_uapsd = tmp52__ >> 2 & 0x1; - pDst->acbe_uapsd = tmp52__ >> 3 & 0x1; - pDst->qack = tmp52__ >> 4 & 0x1; - pDst->max_sp_length = tmp52__ >> 5 & 0x3; - pDst->more_data_ack = tmp52__ >> 7 & 0x1; + tmp53__ = *pBuf; + pDst->acvo_uapsd = tmp53__ >> 0 & 0x1; + pDst->acvi_uapsd = tmp53__ >> 1 & 0x1; + pDst->acbk_uapsd = tmp53__ >> 2 & 0x1; + pDst->acbe_uapsd = tmp53__ >> 3 & 0x1; + pDst->qack = tmp53__ >> 4 & 0x1; + pDst->max_sp_length = tmp53__ >> 5 & 0x3; + pDst->more_data_ack = tmp53__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11f_unpack_ie_qos_caps_station. */ @@ -4622,7 +4637,7 @@ uint32_t dot11f_unpack_ie_wapi(tpAniSirGlobal pCtx, tDot11fIEWAPI *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp53__; + uint16_t tmp54__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -4659,11 +4674,11 @@ uint32_t dot11f_unpack_ie_wapi(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pDst->multicast_cipher_suite, pBuf, 4); pBuf += 4; ielen -= (uint8_t)4; - framesntohs(pCtx, &tmp53__, pBuf, 0); + framesntohs(pCtx, &tmp54__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->preauth = tmp53__ >> 0 & 0x1; - pDst->reserved = tmp53__ >> 1 & 0x7fff; + pDst->preauth = tmp54__ >> 0 & 0x1; + pDst->reserved = tmp54__ >> 1 & 0x7fff; if (!ielen) { pDst->bkid_count = 0U; return 0U; @@ -4760,7 +4775,7 @@ uint32_t dot11f_unpack_ie_wmm_caps(tpAniSirGlobal pCtx, tDot11fIEWMMCaps *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp54__; + uint8_t tmp55__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -4772,12 +4787,12 @@ uint32_t dot11f_unpack_ie_wmm_caps(tpAniSirGlobal pCtx, pDst->present = 0; return status | DOT11F_BAD_FIXED_VALUE; } - tmp54__ = *pBuf; - pDst->reserved = tmp54__ >> 0 & 0xf; - pDst->qack = tmp54__ >> 4 & 0x1; - pDst->queue_request = tmp54__ >> 5 & 0x1; - pDst->txop_request = tmp54__ >> 6 & 0x1; - pDst->more_ack = tmp54__ >> 7 & 0x1; + tmp55__ = *pBuf; + pDst->reserved = tmp55__ >> 0 & 0xf; + pDst->qack = tmp55__ >> 4 & 0x1; + pDst->queue_request = tmp55__ >> 5 & 0x1; + pDst->txop_request = tmp55__ >> 6 & 0x1; + pDst->more_ack = tmp55__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11f_unpack_ie_wmm_caps. */ @@ -4791,7 +4806,7 @@ uint32_t dot11f_unpack_ie_wmm_info_ap(tpAniSirGlobal pCtx, tDot11fIEWMMInfoAp *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp55__; + uint8_t tmp56__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -4799,10 +4814,10 @@ uint32_t dot11f_unpack_ie_wmm_info_ap(tpAniSirGlobal pCtx, pDst->version = *pBuf; pBuf += 1; ielen -= (uint8_t)1; - tmp55__ = *pBuf; - pDst->param_set_count = tmp55__ >> 0 & 0xf; - pDst->reserved = tmp55__ >> 4 & 0x7; - pDst->uapsd = tmp55__ >> 7 & 0x1; + tmp56__ = *pBuf; + pDst->param_set_count = tmp56__ >> 0 & 0xf; + pDst->reserved = tmp56__ >> 4 & 0x7; + pDst->uapsd = tmp56__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11f_unpack_ie_wmm_info_ap. */ @@ -4816,7 +4831,7 @@ uint32_t dot11f_unpack_ie_wmm_info_station(tpAniSirGlobal pCtx, tDot11fIEWMMInfoStation *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp56__; + uint8_t tmp57__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -4824,14 +4839,14 @@ uint32_t dot11f_unpack_ie_wmm_info_station(tpAniSirGlobal pCtx, pDst->version = *pBuf; pBuf += 1; ielen -= (uint8_t)1; - tmp56__ = *pBuf; - pDst->acvo_uapsd = tmp56__ >> 0 & 0x1; - pDst->acvi_uapsd = tmp56__ >> 1 & 0x1; - pDst->acbk_uapsd = tmp56__ >> 2 & 0x1; - pDst->acbe_uapsd = tmp56__ >> 3 & 0x1; - pDst->reserved1 = tmp56__ >> 4 & 0x1; - pDst->max_sp_length = tmp56__ >> 5 & 0x3; - pDst->reserved2 = tmp56__ >> 7 & 0x1; + tmp57__ = *pBuf; + pDst->acvo_uapsd = tmp57__ >> 0 & 0x1; + pDst->acvi_uapsd = tmp57__ >> 1 & 0x1; + pDst->acbk_uapsd = tmp57__ >> 2 & 0x1; + pDst->acbe_uapsd = tmp57__ >> 3 & 0x1; + pDst->reserved1 = tmp57__ >> 4 & 0x1; + pDst->max_sp_length = tmp57__ >> 5 & 0x3; + pDst->reserved2 = tmp57__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11f_unpack_ie_wmm_info_station. */ @@ -4845,7 +4860,6 @@ uint32_t dot11f_unpack_ie_wmm_params(tpAniSirGlobal pCtx, tDot11fIEWMMParams *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp57__; uint8_t tmp58__; uint8_t tmp59__; uint8_t tmp60__; @@ -4853,6 +4867,7 @@ uint32_t dot11f_unpack_ie_wmm_params(tpAniSirGlobal pCtx, uint8_t tmp62__; uint8_t tmp63__; uint8_t tmp64__; + uint8_t tmp65__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; @@ -4870,63 +4885,63 @@ uint32_t dot11f_unpack_ie_wmm_params(tpAniSirGlobal pCtx, pDst->reserved2 = *pBuf; pBuf += 1; ielen -= (uint8_t)1; - tmp57__ = *pBuf; - pBuf += 1; - ielen -= 1; - pDst->acbe_aifsn = tmp57__ >> 0 & 0xf; - pDst->acbe_acm = tmp57__ >> 4 & 0x1; - pDst->acbe_aci = tmp57__ >> 5 & 0x3; - pDst->unused1 = tmp57__ >> 7 & 0x1; tmp58__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbe_acwmin = tmp58__ >> 0 & 0xf; - pDst->acbe_acwmax = tmp58__ >> 4 & 0xf; - framesntohs(pCtx, &pDst->acbe_txoplimit, pBuf, 0); - pBuf += 2; - ielen -= (uint8_t)2; + pDst->acbe_aifsn = tmp58__ >> 0 & 0xf; + pDst->acbe_acm = tmp58__ >> 4 & 0x1; + pDst->acbe_aci = tmp58__ >> 5 & 0x3; + pDst->unused1 = tmp58__ >> 7 & 0x1; tmp59__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_aifsn = tmp59__ >> 0 & 0xf; - pDst->acbk_acm = tmp59__ >> 4 & 0x1; - pDst->acbk_aci = tmp59__ >> 5 & 0x3; - pDst->unused2 = tmp59__ >> 7 & 0x1; + pDst->acbe_acwmin = tmp59__ >> 0 & 0xf; + pDst->acbe_acwmax = tmp59__ >> 4 & 0xf; + framesntohs(pCtx, &pDst->acbe_txoplimit, pBuf, 0); + pBuf += 2; + ielen -= (uint8_t)2; tmp60__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_acwmin = tmp60__ >> 0 & 0xf; - pDst->acbk_acwmax = tmp60__ >> 4 & 0xf; - framesntohs(pCtx, &pDst->acbk_txoplimit, pBuf, 0); - pBuf += 2; - ielen -= (uint8_t)2; + pDst->acbk_aifsn = tmp60__ >> 0 & 0xf; + pDst->acbk_acm = tmp60__ >> 4 & 0x1; + pDst->acbk_aci = tmp60__ >> 5 & 0x3; + pDst->unused2 = tmp60__ >> 7 & 0x1; tmp61__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_aifsn = tmp61__ >> 0 & 0xf; - pDst->acvi_acm = tmp61__ >> 4 & 0x1; - pDst->acvi_aci = tmp61__ >> 5 & 0x3; - pDst->unused3 = tmp61__ >> 7 & 0x1; + pDst->acbk_acwmin = tmp61__ >> 0 & 0xf; + pDst->acbk_acwmax = tmp61__ >> 4 & 0xf; + framesntohs(pCtx, &pDst->acbk_txoplimit, pBuf, 0); + pBuf += 2; + ielen -= (uint8_t)2; tmp62__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_acwmin = tmp62__ >> 0 & 0xf; - pDst->acvi_acwmax = tmp62__ >> 4 & 0xf; - framesntohs(pCtx, &pDst->acvi_txoplimit, pBuf, 0); - pBuf += 2; - ielen -= (uint8_t)2; + pDst->acvi_aifsn = tmp62__ >> 0 & 0xf; + pDst->acvi_acm = tmp62__ >> 4 & 0x1; + pDst->acvi_aci = tmp62__ >> 5 & 0x3; + pDst->unused3 = tmp62__ >> 7 & 0x1; tmp63__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_aifsn = tmp63__ >> 0 & 0xf; - pDst->acvo_acm = tmp63__ >> 4 & 0x1; - pDst->acvo_aci = tmp63__ >> 5 & 0x3; - pDst->unused4 = tmp63__ >> 7 & 0x1; + pDst->acvi_acwmin = tmp63__ >> 0 & 0xf; + pDst->acvi_acwmax = tmp63__ >> 4 & 0xf; + framesntohs(pCtx, &pDst->acvi_txoplimit, pBuf, 0); + pBuf += 2; + ielen -= (uint8_t)2; tmp64__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_acwmin = tmp64__ >> 0 & 0xf; - pDst->acvo_acwmax = tmp64__ >> 4 & 0xf; + pDst->acvo_aifsn = tmp64__ >> 0 & 0xf; + pDst->acvo_acm = tmp64__ >> 4 & 0x1; + pDst->acvo_aci = tmp64__ >> 5 & 0x3; + pDst->unused4 = tmp64__ >> 7 & 0x1; + tmp65__ = *pBuf; + pBuf += 1; + ielen -= 1; + pDst->acvo_acwmin = tmp65__ >> 0 & 0xf; + pDst->acvo_acwmax = tmp65__ >> 4 & 0xf; framesntohs(pCtx, &pDst->acvo_txoplimit, pBuf, 0); (void)pCtx; return status; @@ -5550,18 +5565,18 @@ uint32_t dot11f_unpack_ie_ht2040_bss_coexistence(tpAniSirGlobal pCtx, tDot11fIEht2040_bss_coexistence *pDst) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp65__; + uint8_t tmp66__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp65__ = *pBuf; - pDst->info_request = tmp65__ >> 0 & 0x1; - pDst->forty_mhz_intolerant = tmp65__ >> 1 & 0x1; - pDst->twenty_mhz_bsswidth_req = tmp65__ >> 2 & 0x1; - pDst->obss_scan_exemption_req = tmp65__ >> 3 & 0x1; - pDst->obss_scan_exemption_grant = tmp65__ >> 4 & 0x1; - pDst->unused = tmp65__ >> 5 & 0x7; + tmp66__ = *pBuf; + pDst->info_request = tmp66__ >> 0 & 0x1; + pDst->forty_mhz_intolerant = tmp66__ >> 1 & 0x1; + pDst->twenty_mhz_bsswidth_req = tmp66__ >> 2 & 0x1; + pDst->obss_scan_exemption_req = tmp66__ >> 3 & 0x1; + pDst->obss_scan_exemption_grant = tmp66__ >> 4 & 0x1; + pDst->unused = tmp66__ >> 5 & 0x7; (void)pCtx; return status; } /* End dot11f_unpack_ie_ht2040_bss_coexistence. */ @@ -8391,6 +8406,36 @@ uint32_t dot11f_unpack_wmm_del_ts(tpAniSirGlobal pCtx, } /* End dot11f_unpack_wmm_del_ts. */ +static const tFFDefn FFS_ext_channel_switch_action_frame[] = { + { "Category", offsetof(tDot11fext_channel_switch_action_frame, Category), + SigFfCategory, DOT11F_FF_CATEGORY_LEN, }, + { "Action", offsetof(tDot11fext_channel_switch_action_frame, Action), + SigFfAction, DOT11F_FF_ACTION_LEN, }, + { "ext_chan_switch_ann_action", + offsetof(tDot11fext_channel_switch_action_frame, + ext_chan_switch_ann_action), SigFfext_chan_switch_ann_action, + DOT11F_FF_EXT_CHAN_SWITCH_ANN_ACTION_LEN, }, + { NULL, 0, 0, 0,}, +}; + +static const tIEDefn IES_ext_channel_switch_action_frame[] = { + {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; + +uint32_t dot11f_unpack_ext_channel_switch_action_frame(tpAniSirGlobal pCtx, + uint8_t *pBuf, uint32_t nBuf, + tDot11fext_channel_switch_action_frame *pFrm) +{ + uint32_t i = 0; + uint32_t status = 0; + status = unpack_core(pCtx, pBuf, nBuf, + FFS_ext_channel_switch_action_frame, IES_ext_channel_switch_action_frame, + (uint8_t *)pFrm, sizeof(*pFrm)); + + (void)i; + return status; + +} /* End dot11f_unpack_ext_channel_switch_action_frame. */ + static const tFFDefn FFS_ht2040_bss_coexistence_mgmt_action_frame[] = { { "Category", offsetof(tDot11fht2040_bss_coexistence_mgmt_action_frame, Category), SigFfCategory, DOT11F_FF_CATEGORY_LEN, }, @@ -8625,6 +8670,11 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, pBufRemaining, (tDot11fFfVhtUserPositionArray *) (pFrm + pFf->offset)); break; + case SigFfext_chan_switch_ann_action: + dot11f_unpack_ff_ext_chan_switch_ann_action(pCtx, + pBufRemaining, (tDot11fFfext_chan_switch_ann_action *) + (pFrm + pFf->offset)); + break; default: FRAMES_LOG1(pCtx, FRLOGE, FRFL("INTERNAL ERROR: I don'" "t know about the FF signature %d-- this is most " @@ -11374,6 +11424,16 @@ uint32_t dot11f_get_packed_wmm_del_ts_size(tpAniSirGlobal pCtx, return status; } /* End dot11f_get_packed_wmm_del_ts_size. */ +uint32_t dot11f_get_packed_ext_channel_switch_action_frame_size(tpAniSirGlobal pCtx, + tDot11fext_channel_switch_action_frame *pFrm, uint32_t *pnNeeded) +{ + uint32_t status = 0; + *pnNeeded = 6; + status = get_packed_size_core(pCtx, (uint8_t *)pFrm, pnNeeded, + IES_ext_channel_switch_action_frame); + return status; +} /* End dot11f_get_packed_ext_channel_switch_action_frame_size. */ + uint32_t dot11f_get_packed_ht2040_bss_coexistence_mgmt_action_frameSize(tpAniSirGlobal pCtx, tDot11fht2040_bss_coexistence_mgmt_action_frame *pFrm, uint32_t *pnNeeded) { @@ -12625,25 +12685,25 @@ void dot11f_pack_ff_capabilities(tpAniSirGlobal pCtx, tDot11fFfCapabilities *pSrc, uint8_t *pBuf) { - uint16_t tmp66__; - tmp66__ = 0U; - tmp66__ |= (pSrc->ess << 0); - tmp66__ |= (pSrc->ibss << 1); - tmp66__ |= (pSrc->cfPollable << 2); - tmp66__ |= (pSrc->cfPollReq << 3); - tmp66__ |= (pSrc->privacy << 4); - tmp66__ |= (pSrc->shortPreamble << 5); - tmp66__ |= (pSrc->pbcc << 6); - tmp66__ |= (pSrc->channelAgility << 7); - tmp66__ |= (pSrc->spectrumMgt << 8); - tmp66__ |= (pSrc->qos << 9); - tmp66__ |= (pSrc->shortSlotTime << 10); - tmp66__ |= (pSrc->apsd << 11); - tmp66__ |= (pSrc->rrm << 12); - tmp66__ |= (pSrc->dsssOfdm << 13); - tmp66__ |= (pSrc->delayedBA << 14); - tmp66__ |= (pSrc->immediateBA << 15); - frameshtons(pCtx, pBuf, tmp66__, 0); + uint16_t tmp67__; + tmp67__ = 0U; + tmp67__ |= (pSrc->ess << 0); + tmp67__ |= (pSrc->ibss << 1); + tmp67__ |= (pSrc->cfPollable << 2); + tmp67__ |= (pSrc->cfPollReq << 3); + tmp67__ |= (pSrc->privacy << 4); + tmp67__ |= (pSrc->shortPreamble << 5); + tmp67__ |= (pSrc->pbcc << 6); + tmp67__ |= (pSrc->channelAgility << 7); + tmp67__ |= (pSrc->spectrumMgt << 8); + tmp67__ |= (pSrc->qos << 9); + tmp67__ |= (pSrc->shortSlotTime << 10); + tmp67__ |= (pSrc->apsd << 11); + tmp67__ |= (pSrc->rrm << 12); + tmp67__ |= (pSrc->dsssOfdm << 13); + tmp67__ |= (pSrc->delayedBA << 14); + tmp67__ |= (pSrc->immediateBA << 15); + frameshtons(pCtx, pBuf, tmp67__, 0); (void)pCtx; } /* End dot11f_pack_ff_capabilities. */ @@ -12707,13 +12767,13 @@ void dot11f_pack_ff_operating_mode(tpAniSirGlobal pCtx, tDot11fFfOperatingMode *pSrc, uint8_t *pBuf) { - uint8_t tmp67__; - tmp67__ = 0U; - tmp67__ |= (pSrc->chanWidth << 0); - tmp67__ |= (pSrc->reserved << 2); - tmp67__ |= (pSrc->rxNSS << 4); - tmp67__ |= (pSrc->rxNSSType << 7); - *pBuf = tmp67__; + uint8_t tmp68__; + tmp68__ = 0U; + tmp68__ |= (pSrc->chanWidth << 0); + tmp68__ |= (pSrc->reserved << 2); + tmp68__ |= (pSrc->rxNSS << 4); + tmp68__ |= (pSrc->rxNSSType << 7); + *pBuf = tmp68__; (void)pCtx; } /* End dot11f_pack_ff_operating_mode. */ @@ -12753,12 +12813,12 @@ void dot11f_pack_ff_sm_power_mode_set(tpAniSirGlobal pCtx, tDot11fFfSMPowerModeSet *pSrc, uint8_t *pBuf) { - uint8_t tmp68__; - tmp68__ = 0U; - tmp68__ |= (pSrc->PowerSave_En << 0); - tmp68__ |= (pSrc->Mode << 1); - tmp68__ |= (pSrc->reserved << 2); - *pBuf = tmp68__; + uint8_t tmp69__; + tmp69__ = 0U; + tmp69__ |= (pSrc->PowerSave_En << 0); + tmp69__ |= (pSrc->Mode << 1); + tmp69__ |= (pSrc->reserved << 2); + *pBuf = tmp69__; (void)pCtx; } /* End dot11f_pack_ff_sm_power_mode_set. */ @@ -12798,19 +12858,19 @@ void dot11f_pack_ff_ts_info(tpAniSirGlobal pCtx, tDot11fFfTSInfo *pSrc, uint8_t *pBuf) { - uint32_t tmp69__; - tmp69__ = 0U; - tmp69__ |= (pSrc->traffic_type << 0); - tmp69__ |= (pSrc->tsid << 1); - tmp69__ |= (pSrc->direction << 5); - tmp69__ |= (pSrc->access_policy << 7); - tmp69__ |= (pSrc->aggregation << 9); - tmp69__ |= (pSrc->psb << 10); - tmp69__ |= (pSrc->user_priority << 11); - tmp69__ |= (pSrc->tsinfo_ack_pol << 14); - tmp69__ |= (pSrc->schedule << 16); - tmp69__ |= (pSrc->unused << 17); - frameshtonl(pCtx, pBuf, tmp69__, 0); + uint32_t tmp70__; + tmp70__ = 0U; + tmp70__ |= (pSrc->traffic_type << 0); + tmp70__ |= (pSrc->tsid << 1); + tmp70__ |= (pSrc->direction << 5); + tmp70__ |= (pSrc->access_policy << 7); + tmp70__ |= (pSrc->aggregation << 9); + tmp70__ |= (pSrc->psb << 10); + tmp70__ |= (pSrc->user_priority << 11); + tmp70__ |= (pSrc->tsinfo_ack_pol << 14); + tmp70__ |= (pSrc->schedule << 16); + tmp70__ |= (pSrc->unused << 17); + frameshtonl(pCtx, pBuf, tmp70__, 0); (void)pCtx; } /* End dot11f_pack_ff_ts_info. */ @@ -12862,6 +12922,20 @@ void dot11f_pack_ff_vht_user_position_array(tpAniSirGlobal pCtx, (void)pCtx; } /* End dot11f_pack_ff_vht_user_position_array. */ +void dot11f_pack_ff_ext_chan_switch_ann_action(tpAniSirGlobal pCtx, + tDot11fFfext_chan_switch_ann_action *pSrc, + uint8_t *pBuf) +{ + uint32_t tmp71__; + tmp71__ = 0U; + tmp71__ |= (pSrc->switch_mode << 0); + tmp71__ |= (pSrc->op_class << 8); + tmp71__ |= (pSrc->new_channel << 16); + tmp71__ |= (pSrc->switch_count << 24); + frameshtonl(pCtx, pBuf, tmp71__, 0); + (void)pCtx; +} /* End dot11f_pack_ff_ext_chan_switch_ann_action. */ + uint32_t dot11f_pack_tlv_authorized_ma_cs(tpAniSirGlobal pCtx, tDot11fTLVAuthorizedMACs *pSrc, uint8_t *pBuf, @@ -12929,7 +13003,7 @@ uint32_t dot11f_pack_tlv_version2(tpAniSirGlobal pCtx, uint8_t *pTlvLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp70__; + uint8_t tmp72__; nNeeded += 3; if (nNeeded > nBuf) return DOT11F_BUFFER_OVERFLOW; @@ -12938,10 +13012,10 @@ uint32_t dot11f_pack_tlv_version2(tpAniSirGlobal pCtx, pBuf += 1; *pnConsumed += 1; pTlvLen = pBuf; pBuf += 1; *pnConsumed += 1; - tmp70__ = 0U; - tmp70__ |= (pSrc->minor << 0); - tmp70__ |= (pSrc->major << 4); - *pBuf = tmp70__; + tmp72__ = 0U; + tmp72__ |= (pSrc->minor << 0); + tmp72__ |= (pSrc->major << 4); + *pBuf = tmp72__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -13898,7 +13972,7 @@ uint32_t dot11f_pack_tlv_version(tpAniSirGlobal pCtx, uint8_t *pTlvLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp71__; + uint8_t tmp73__; nNeeded += 5; if (nNeeded > nBuf) return DOT11F_BUFFER_OVERFLOW; @@ -13907,10 +13981,10 @@ uint32_t dot11f_pack_tlv_version(tpAniSirGlobal pCtx, pBuf += 2; *pnConsumed += 2; pTlvLen = pBuf; pBuf += 2; *pnConsumed += 2; - tmp71__ = 0U; - tmp71__ |= (pSrc->minor << 0); - tmp71__ |= (pSrc->major << 4); - *pBuf = tmp71__; + tmp73__ = 0U; + tmp73__ |= (pSrc->minor << 0); + tmp73__ |= (pSrc->major << 4); + *pBuf = tmp73__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -14048,7 +14122,7 @@ uint32_t dot11f_pack_ie_gtk(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp72__; + uint16_t tmp74__; nNeeded += (pSrc->num_key + 11); while (pSrc->present) { if (nNeeded > nBuf) @@ -14057,10 +14131,10 @@ uint32_t dot11f_pack_ie_gtk(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp72__ = 0U; - tmp72__ |= (pSrc->keyId << 0); - tmp72__ |= (pSrc->reserved << 2); - frameshtons(pCtx, pBuf, tmp72__, 0); + tmp74__ = 0U; + tmp74__ |= (pSrc->keyId << 0); + tmp74__ |= (pSrc->reserved << 2); + frameshtons(pCtx, pBuf, tmp74__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -14472,11 +14546,11 @@ uint32_t dot11f_pack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp73__; - uint8_t tmp74__; uint8_t tmp75__; uint8_t tmp76__; uint8_t tmp77__; + uint8_t tmp78__; + uint8_t tmp79__; nNeeded += 5; while (pSrc->present) { if (nNeeded > nBuf) @@ -14485,60 +14559,60 @@ uint32_t dot11f_pack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp73__ = 0U; - tmp73__ |= (pSrc->LinkMeasurement << 0); - tmp73__ |= (pSrc->NeighborRpt << 1); - tmp73__ |= (pSrc->parallel << 2); - tmp73__ |= (pSrc->repeated << 3); - tmp73__ |= (pSrc->BeaconPassive << 4); - tmp73__ |= (pSrc->BeaconActive << 5); - tmp73__ |= (pSrc->BeaconTable << 6); - tmp73__ |= (pSrc->BeaconRepCond << 7); - *pBuf = tmp73__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; - tmp74__ = 0U; - tmp74__ |= (pSrc->FrameMeasurement << 0); - tmp74__ |= (pSrc->ChannelLoad << 1); - tmp74__ |= (pSrc->NoiseHistogram << 2); - tmp74__ |= (pSrc->statistics << 3); - tmp74__ |= (pSrc->LCIMeasurement << 4); - tmp74__ |= (pSrc->LCIAzimuth << 5); - tmp74__ |= (pSrc->TCMCapability << 6); - tmp74__ |= (pSrc->triggeredTCM << 7); - *pBuf = tmp74__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; tmp75__ = 0U; - tmp75__ |= (pSrc->APChanReport << 0); - tmp75__ |= (pSrc->RRMMIBEnabled << 1); - tmp75__ |= (pSrc->operatingChanMax << 2); - tmp75__ |= (pSrc->nonOperatinChanMax << 5); + tmp75__ |= (pSrc->LinkMeasurement << 0); + tmp75__ |= (pSrc->NeighborRpt << 1); + tmp75__ |= (pSrc->parallel << 2); + tmp75__ |= (pSrc->repeated << 3); + tmp75__ |= (pSrc->BeaconPassive << 4); + tmp75__ |= (pSrc->BeaconActive << 5); + tmp75__ |= (pSrc->BeaconTable << 6); + tmp75__ |= (pSrc->BeaconRepCond << 7); *pBuf = tmp75__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; tmp76__ = 0U; - tmp76__ |= (pSrc->MeasurementPilot << 0); - tmp76__ |= (pSrc->MeasurementPilotEnabled << 3); - tmp76__ |= (pSrc->NeighborTSFOffset << 4); - tmp76__ |= (pSrc->RCPIMeasurement << 5); - tmp76__ |= (pSrc->RSNIMeasurement << 6); - tmp76__ |= (pSrc->BssAvgAccessDelay << 7); + tmp76__ |= (pSrc->FrameMeasurement << 0); + tmp76__ |= (pSrc->ChannelLoad << 1); + tmp76__ |= (pSrc->NoiseHistogram << 2); + tmp76__ |= (pSrc->statistics << 3); + tmp76__ |= (pSrc->LCIMeasurement << 4); + tmp76__ |= (pSrc->LCIAzimuth << 5); + tmp76__ |= (pSrc->TCMCapability << 6); + tmp76__ |= (pSrc->triggeredTCM << 7); *pBuf = tmp76__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; tmp77__ = 0U; - tmp77__ |= (pSrc->BSSAvailAdmission << 0); - tmp77__ |= (pSrc->AntennaInformation << 1); - tmp77__ |= (pSrc->fine_time_meas_rpt << 2); - tmp77__ |= (pSrc->lci_capability << 3); - tmp77__ |= (pSrc->reserved << 4); + tmp77__ |= (pSrc->APChanReport << 0); + tmp77__ |= (pSrc->RRMMIBEnabled << 1); + tmp77__ |= (pSrc->operatingChanMax << 2); + tmp77__ |= (pSrc->nonOperatinChanMax << 5); *pBuf = tmp77__; *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; + tmp78__ = 0U; + tmp78__ |= (pSrc->MeasurementPilot << 0); + tmp78__ |= (pSrc->MeasurementPilotEnabled << 3); + tmp78__ |= (pSrc->NeighborTSFOffset << 4); + tmp78__ |= (pSrc->RCPIMeasurement << 5); + tmp78__ |= (pSrc->RSNIMeasurement << 6); + tmp78__ |= (pSrc->BssAvgAccessDelay << 7); + *pBuf = tmp78__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; + tmp79__ = 0U; + tmp79__ |= (pSrc->BSSAvailAdmission << 0); + tmp79__ |= (pSrc->AntennaInformation << 1); + tmp79__ |= (pSrc->fine_time_meas_rpt << 2); + tmp79__ |= (pSrc->lci_capability << 3); + tmp79__ |= (pSrc->reserved << 4); + *pBuf = tmp79__; + *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; break; @@ -14617,7 +14691,7 @@ uint32_t dot11f_pack_ie_schedule(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp78__; + uint16_t tmp80__; nNeeded += 14; while (pSrc->present) { if (nNeeded > nBuf) @@ -14626,12 +14700,12 @@ uint32_t dot11f_pack_ie_schedule(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp78__ = 0U; - tmp78__ |= (pSrc->aggregation << 0); - tmp78__ |= (pSrc->tsid << 1); - tmp78__ |= (pSrc->direction << 5); - tmp78__ |= (pSrc->reserved << 7); - frameshtons(pCtx, pBuf, tmp78__, 0); + tmp80__ = 0U; + tmp80__ |= (pSrc->aggregation << 0); + tmp80__ |= (pSrc->tsid << 1); + tmp80__ |= (pSrc->direction << 5); + tmp80__ |= (pSrc->reserved << 7); + frameshtons(pCtx, pBuf, tmp80__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -14826,9 +14900,9 @@ uint32_t dot11f_pack_ie_tspec(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp79__; - uint8_t tmp80__; uint16_t tmp81__; + uint8_t tmp82__; + uint16_t tmp83__; nNeeded += 55; while (pSrc->present) { if (nNeeded > nBuf) @@ -14837,30 +14911,30 @@ uint32_t dot11f_pack_ie_tspec(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp79__ = 0U; - tmp79__ |= (pSrc->traffic_type << 0); - tmp79__ |= (pSrc->tsid << 1); - tmp79__ |= (pSrc->direction << 5); - tmp79__ |= (pSrc->access_policy << 7); - tmp79__ |= (pSrc->aggregation << 9); - tmp79__ |= (pSrc->psb << 10); - tmp79__ |= (pSrc->user_priority << 11); - tmp79__ |= (pSrc->tsinfo_ack_pol << 14); - frameshtons(pCtx, pBuf, tmp79__, 0); + tmp81__ = 0U; + tmp81__ |= (pSrc->traffic_type << 0); + tmp81__ |= (pSrc->tsid << 1); + tmp81__ |= (pSrc->direction << 5); + tmp81__ |= (pSrc->access_policy << 7); + tmp81__ |= (pSrc->aggregation << 9); + tmp81__ |= (pSrc->psb << 10); + tmp81__ |= (pSrc->user_priority << 11); + tmp81__ |= (pSrc->tsinfo_ack_pol << 14); + frameshtons(pCtx, pBuf, tmp81__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp80__ = 0U; - tmp80__ |= (pSrc->schedule << 0); - tmp80__ |= (pSrc->unused << 1); - *pBuf = tmp80__; + tmp82__ = 0U; + tmp82__ |= (pSrc->schedule << 0); + tmp82__ |= (pSrc->unused << 1); + *pBuf = tmp82__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp81__ = 0U; - tmp81__ |= (pSrc->size << 0); - tmp81__ |= (pSrc->fixed << 15); - frameshtons(pCtx, pBuf, tmp81__, 0); + tmp83__ = 0U; + tmp83__ |= (pSrc->size << 0); + tmp83__ |= (pSrc->fixed << 15); + frameshtons(pCtx, pBuf, tmp83__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -14924,9 +14998,9 @@ uint32_t dot11f_pack_ie_vht_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint32_t tmp82__; - uint16_t tmp83__; - uint16_t tmp84__; + uint32_t tmp84__; + uint16_t tmp85__; + uint16_t tmp86__; nNeeded += 12; while (pSrc->present) { if (nNeeded > nBuf) @@ -14935,48 +15009,48 @@ uint32_t dot11f_pack_ie_vht_caps(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp82__ = 0U; - tmp82__ |= (pSrc->maxMPDULen << 0); - tmp82__ |= (pSrc->supportedChannelWidthSet << 2); - tmp82__ |= (pSrc->ldpcCodingCap << 4); - tmp82__ |= (pSrc->shortGI80MHz << 5); - tmp82__ |= (pSrc->shortGI160and80plus80MHz << 6); - tmp82__ |= (pSrc->txSTBC << 7); - tmp82__ |= (pSrc->rxSTBC << 8); - tmp82__ |= (pSrc->suBeamFormerCap << 11); - tmp82__ |= (pSrc->suBeamformeeCap << 12); - tmp82__ |= (pSrc->csnofBeamformerAntSup << 13); - tmp82__ |= (pSrc->numSoundingDim << 16); - tmp82__ |= (pSrc->muBeamformerCap << 19); - tmp82__ |= (pSrc->muBeamformeeCap << 20); - tmp82__ |= (pSrc->vhtTXOPPS << 21); - tmp82__ |= (pSrc->htcVHTCap << 22); - tmp82__ |= (pSrc->maxAMPDULenExp << 23); - tmp82__ |= (pSrc->vhtLinkAdaptCap << 26); - tmp82__ |= (pSrc->rxAntPattern << 28); - tmp82__ |= (pSrc->txAntPattern << 29); - tmp82__ |= (pSrc->reserved1 << 30); - frameshtonl(pCtx, pBuf, tmp82__, 0); + tmp84__ = 0U; + tmp84__ |= (pSrc->maxMPDULen << 0); + tmp84__ |= (pSrc->supportedChannelWidthSet << 2); + tmp84__ |= (pSrc->ldpcCodingCap << 4); + tmp84__ |= (pSrc->shortGI80MHz << 5); + tmp84__ |= (pSrc->shortGI160and80plus80MHz << 6); + tmp84__ |= (pSrc->txSTBC << 7); + tmp84__ |= (pSrc->rxSTBC << 8); + tmp84__ |= (pSrc->suBeamFormerCap << 11); + tmp84__ |= (pSrc->suBeamformeeCap << 12); + tmp84__ |= (pSrc->csnofBeamformerAntSup << 13); + tmp84__ |= (pSrc->numSoundingDim << 16); + tmp84__ |= (pSrc->muBeamformerCap << 19); + tmp84__ |= (pSrc->muBeamformeeCap << 20); + tmp84__ |= (pSrc->vhtTXOPPS << 21); + tmp84__ |= (pSrc->htcVHTCap << 22); + tmp84__ |= (pSrc->maxAMPDULenExp << 23); + tmp84__ |= (pSrc->vhtLinkAdaptCap << 26); + tmp84__ |= (pSrc->rxAntPattern << 28); + tmp84__ |= (pSrc->txAntPattern << 29); + tmp84__ |= (pSrc->reserved1 << 30); + frameshtonl(pCtx, pBuf, tmp84__, 0); *pnConsumed += 4; pBuf += 4; nBuf -= 4 ; frameshtons(pCtx, pBuf, pSrc->rxMCSMap, 0); *pnConsumed += 2; pBuf += 2; - tmp83__ = 0U; - tmp83__ |= (pSrc->rxHighSupDataRate << 0); - tmp83__ |= (pSrc->reserved2 << 13); - frameshtons(pCtx, pBuf, tmp83__, 0); + tmp85__ = 0U; + tmp85__ |= (pSrc->rxHighSupDataRate << 0); + tmp85__ |= (pSrc->reserved2 << 13); + frameshtons(pCtx, pBuf, tmp85__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; frameshtons(pCtx, pBuf, pSrc->txMCSMap, 0); *pnConsumed += 2; pBuf += 2; - tmp84__ = 0U; - tmp84__ |= (pSrc->txSupDataRate << 0); - tmp84__ |= (pSrc->reserved3 << 13); - frameshtons(pCtx, pBuf, tmp84__, 0); + tmp86__ = 0U; + tmp86__ |= (pSrc->txSupDataRate << 0); + tmp86__ |= (pSrc->reserved3 << 13); + frameshtons(pCtx, pBuf, tmp86__, 0); *pnConsumed += 2; /* fieldsEndFlag = 1 */ nBuf -= 2 ; @@ -15036,7 +15110,7 @@ uint32_t dot11f_pack_ie_wmm_schedule(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp85__; + uint16_t tmp87__; nNeeded += 15; while (pSrc->present) { if (nNeeded > nBuf) @@ -15058,12 +15132,12 @@ uint32_t dot11f_pack_ie_wmm_schedule(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp85__ = 0U; - tmp85__ |= (pSrc->aggregation << 0); - tmp85__ |= (pSrc->tsid << 1); - tmp85__ |= (pSrc->direction << 5); - tmp85__ |= (pSrc->reserved << 7); - frameshtons(pCtx, pBuf, tmp85__, 0); + tmp87__ = 0U; + tmp87__ |= (pSrc->aggregation << 0); + tmp87__ |= (pSrc->tsid << 1); + tmp87__ |= (pSrc->direction << 5); + tmp87__ |= (pSrc->reserved << 7); + frameshtons(pCtx, pBuf, tmp87__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -15297,9 +15371,9 @@ uint32_t dot11f_pack_ie_wmmtspec(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp86__; - uint8_t tmp87__; uint16_t tmp88__; + uint8_t tmp89__; + uint16_t tmp90__; nNeeded += 38; while (pSrc->present) { if (nNeeded > nBuf) @@ -15321,30 +15395,30 @@ uint32_t dot11f_pack_ie_wmmtspec(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp86__ = 0U; - tmp86__ |= (pSrc->traffic_type << 0); - tmp86__ |= (pSrc->tsid << 1); - tmp86__ |= (pSrc->direction << 5); - tmp86__ |= (pSrc->access_policy << 7); - tmp86__ |= (pSrc->aggregation << 9); - tmp86__ |= (pSrc->psb << 10); - tmp86__ |= (pSrc->user_priority << 11); - tmp86__ |= (pSrc->tsinfo_ack_pol << 14); - frameshtons(pCtx, pBuf, tmp86__, 0); + tmp88__ = 0U; + tmp88__ |= (pSrc->traffic_type << 0); + tmp88__ |= (pSrc->tsid << 1); + tmp88__ |= (pSrc->direction << 5); + tmp88__ |= (pSrc->access_policy << 7); + tmp88__ |= (pSrc->aggregation << 9); + tmp88__ |= (pSrc->psb << 10); + tmp88__ |= (pSrc->user_priority << 11); + tmp88__ |= (pSrc->tsinfo_ack_pol << 14); + frameshtons(pCtx, pBuf, tmp88__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp87__ = 0U; - tmp87__ |= (pSrc->tsinfo_rsvd << 0); - tmp87__ |= (pSrc->burst_size_defn << 7); - *pBuf = tmp87__; + tmp89__ = 0U; + tmp89__ |= (pSrc->tsinfo_rsvd << 0); + tmp89__ |= (pSrc->burst_size_defn << 7); + *pBuf = tmp89__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp88__ = 0U; - tmp88__ |= (pSrc->size << 0); - tmp88__ |= (pSrc->fixed << 15); - frameshtons(pCtx, pBuf, tmp88__, 0); + tmp90__ = 0U; + tmp90__ |= (pSrc->size << 0); + tmp90__ |= (pSrc->fixed << 15); + frameshtons(pCtx, pBuf, tmp90__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -15678,14 +15752,14 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp89__; - uint8_t tmp90__; uint8_t tmp91__; uint8_t tmp92__; uint8_t tmp93__; uint8_t tmp94__; uint8_t tmp95__; uint8_t tmp96__; + uint8_t tmp97__; + uint8_t tmp98__; nNeeded += 18; while (pSrc->present) { if (nNeeded > nBuf) @@ -15700,76 +15774,76 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, *pBuf = pSrc->reserved; *pnConsumed += 1; pBuf += 1; - tmp89__ = 0U; - tmp89__ |= (pSrc->acbe_aifsn << 0); - tmp89__ |= (pSrc->acbe_acm << 4); - tmp89__ |= (pSrc->acbe_aci << 5); - tmp89__ |= (pSrc->unused1 << 7); - *pBuf = tmp89__; + tmp91__ = 0U; + tmp91__ |= (pSrc->acbe_aifsn << 0); + tmp91__ |= (pSrc->acbe_acm << 4); + tmp91__ |= (pSrc->acbe_aci << 5); + tmp91__ |= (pSrc->unused1 << 7); + *pBuf = tmp91__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp90__ = 0U; - tmp90__ |= (pSrc->acbe_acwmin << 0); - tmp90__ |= (pSrc->acbe_acwmax << 4); - *pBuf = tmp90__; + tmp92__ = 0U; + tmp92__ |= (pSrc->acbe_acwmin << 0); + tmp92__ |= (pSrc->acbe_acwmax << 4); + *pBuf = tmp92__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp91__ = 0U; - tmp91__ |= (pSrc->acbk_aifsn << 0); - tmp91__ |= (pSrc->acbk_acm << 4); - tmp91__ |= (pSrc->acbk_aci << 5); - tmp91__ |= (pSrc->unused2 << 7); - *pBuf = tmp91__; + tmp93__ = 0U; + tmp93__ |= (pSrc->acbk_aifsn << 0); + tmp93__ |= (pSrc->acbk_acm << 4); + tmp93__ |= (pSrc->acbk_aci << 5); + tmp93__ |= (pSrc->unused2 << 7); + *pBuf = tmp93__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp92__ = 0U; - tmp92__ |= (pSrc->acbk_acwmin << 0); - tmp92__ |= (pSrc->acbk_acwmax << 4); - *pBuf = tmp92__; + tmp94__ = 0U; + tmp94__ |= (pSrc->acbk_acwmin << 0); + tmp94__ |= (pSrc->acbk_acwmax << 4); + *pBuf = tmp94__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp93__ = 0U; - tmp93__ |= (pSrc->acvi_aifsn << 0); - tmp93__ |= (pSrc->acvi_acm << 4); - tmp93__ |= (pSrc->acvi_aci << 5); - tmp93__ |= (pSrc->unused3 << 7); - *pBuf = tmp93__; + tmp95__ = 0U; + tmp95__ |= (pSrc->acvi_aifsn << 0); + tmp95__ |= (pSrc->acvi_acm << 4); + tmp95__ |= (pSrc->acvi_aci << 5); + tmp95__ |= (pSrc->unused3 << 7); + *pBuf = tmp95__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp94__ = 0U; - tmp94__ |= (pSrc->acvi_acwmin << 0); - tmp94__ |= (pSrc->acvi_acwmax << 4); - *pBuf = tmp94__; + tmp96__ = 0U; + tmp96__ |= (pSrc->acvi_acwmin << 0); + tmp96__ |= (pSrc->acvi_acwmax << 4); + *pBuf = tmp96__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp95__ = 0U; - tmp95__ |= (pSrc->acvo_aifsn << 0); - tmp95__ |= (pSrc->acvo_acm << 4); - tmp95__ |= (pSrc->acvo_aci << 5); - tmp95__ |= (pSrc->unused4 << 7); - *pBuf = tmp95__; + tmp97__ = 0U; + tmp97__ |= (pSrc->acvo_aifsn << 0); + tmp97__ |= (pSrc->acvo_acm << 4); + tmp97__ |= (pSrc->acvo_aci << 5); + tmp97__ |= (pSrc->unused4 << 7); + *pBuf = tmp97__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp96__ = 0U; - tmp96__ |= (pSrc->acvo_acwmin << 0); - tmp96__ |= (pSrc->acvo_acwmax << 4); - *pBuf = tmp96__; + tmp98__ = 0U; + tmp98__ |= (pSrc->acvo_acwmin << 0); + tmp98__ |= (pSrc->acvo_acwmax << 4); + *pBuf = tmp98__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -15794,7 +15868,7 @@ uint32_t dot11f_pack_ie_erp_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp97__; + uint8_t tmp99__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -15803,12 +15877,12 @@ uint32_t dot11f_pack_ie_erp_info(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp97__ = 0U; - tmp97__ |= (pSrc->non_erp_present << 0); - tmp97__ |= (pSrc->use_prot << 1); - tmp97__ |= (pSrc->barker_preamble << 2); - tmp97__ |= (pSrc->unused << 3); - *pBuf = tmp97__; + tmp99__ = 0U; + tmp99__ |= (pSrc->non_erp_present << 0); + tmp99__ |= (pSrc->use_prot << 1); + tmp99__ |= (pSrc->barker_preamble << 2); + tmp99__ |= (pSrc->unused << 3); + *pBuf = tmp99__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -15867,7 +15941,7 @@ uint32_t dot11f_pack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp98__; + uint8_t tmp100__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -15887,10 +15961,10 @@ uint32_t dot11f_pack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, *pBuf = pSrc->mgmt_state; *pnConsumed += 1; pBuf += 1; - tmp98__ = 0U; - tmp98__ |= (pSrc->mbssid_mask << 0); - tmp98__ |= (pSrc->reserved << 3); - *pBuf = tmp98__; + tmp100__ = 0U; + tmp100__ |= (pSrc->mbssid_mask << 0); + tmp100__ |= (pSrc->reserved << 3); + *pBuf = tmp100__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -16241,7 +16315,7 @@ uint32_t dot11f_pack_ie_ft_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp99__; + uint16_t tmp101__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ieft_info(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -16253,10 +16327,10 @@ uint32_t dot11f_pack_ie_ft_info(tpAniSirGlobal pCtx, ++pBuf; --nBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; --nBuf; ++(*pnConsumed); - tmp99__ = 0U; - tmp99__ |= (pSrc->reserved << 0); - tmp99__ |= (pSrc->IECount << 8); - frameshtons(pCtx, pBuf, tmp99__, 0); + tmp101__ = 0U; + tmp101__ |= (pSrc->reserved << 0); + tmp101__ |= (pSrc->IECount << 8); + frameshtons(pCtx, pBuf, tmp101__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -16294,11 +16368,11 @@ uint32_t dot11f_pack_ie_ht_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp100__; - uint8_t tmp101__; uint16_t tmp102__; - uint32_t tmp103__; - uint8_t tmp104__; + uint8_t tmp103__; + uint16_t tmp104__; + uint32_t tmp105__; + uint8_t tmp106__; nNeeded += (pSrc->num_rsvd + 26); while (pSrc->present) { if (nNeeded > nBuf) @@ -16307,77 +16381,77 @@ uint32_t dot11f_pack_ie_ht_caps(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp100__ = 0U; - tmp100__ |= (pSrc->advCodingCap << 0); - tmp100__ |= (pSrc->supportedChannelWidthSet << 1); - tmp100__ |= (pSrc->mimoPowerSave << 2); - tmp100__ |= (pSrc->greenField << 4); - tmp100__ |= (pSrc->shortGI20MHz << 5); - tmp100__ |= (pSrc->shortGI40MHz << 6); - tmp100__ |= (pSrc->txSTBC << 7); - tmp100__ |= (pSrc->rxSTBC << 8); - tmp100__ |= (pSrc->delayedBA << 10); - tmp100__ |= (pSrc->maximalAMSDUsize << 11); - tmp100__ |= (pSrc->dsssCckMode40MHz << 12); - tmp100__ |= (pSrc->psmp << 13); - tmp100__ |= (pSrc->stbcControlFrame << 14); - tmp100__ |= (pSrc->lsigTXOPProtection << 15); - frameshtons(pCtx, pBuf, tmp100__, 0); + tmp102__ = 0U; + tmp102__ |= (pSrc->advCodingCap << 0); + tmp102__ |= (pSrc->supportedChannelWidthSet << 1); + tmp102__ |= (pSrc->mimoPowerSave << 2); + tmp102__ |= (pSrc->greenField << 4); + tmp102__ |= (pSrc->shortGI20MHz << 5); + tmp102__ |= (pSrc->shortGI40MHz << 6); + tmp102__ |= (pSrc->txSTBC << 7); + tmp102__ |= (pSrc->rxSTBC << 8); + tmp102__ |= (pSrc->delayedBA << 10); + tmp102__ |= (pSrc->maximalAMSDUsize << 11); + tmp102__ |= (pSrc->dsssCckMode40MHz << 12); + tmp102__ |= (pSrc->psmp << 13); + tmp102__ |= (pSrc->stbcControlFrame << 14); + tmp102__ |= (pSrc->lsigTXOPProtection << 15); + frameshtons(pCtx, pBuf, tmp102__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp101__ = 0U; - tmp101__ |= (pSrc->maxRxAMPDUFactor << 0); - tmp101__ |= (pSrc->mpduDensity << 2); - tmp101__ |= (pSrc->reserved1 << 5); - *pBuf = tmp101__; + tmp103__ = 0U; + tmp103__ |= (pSrc->maxRxAMPDUFactor << 0); + tmp103__ |= (pSrc->mpduDensity << 2); + tmp103__ |= (pSrc->reserved1 << 5); + *pBuf = tmp103__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; DOT11F_MEMCPY(pCtx, pBuf, pSrc->supportedMCSSet, 16); *pnConsumed += 16; pBuf += 16; - tmp102__ = 0U; - tmp102__ |= (pSrc->pco << 0); - tmp102__ |= (pSrc->transitionTime << 1); - tmp102__ |= (pSrc->reserved2 << 3); - tmp102__ |= (pSrc->mcsFeedback << 8); - tmp102__ |= (pSrc->reserved3 << 10); - frameshtons(pCtx, pBuf, tmp102__, 0); + tmp104__ = 0U; + tmp104__ |= (pSrc->pco << 0); + tmp104__ |= (pSrc->transitionTime << 1); + tmp104__ |= (pSrc->reserved2 << 3); + tmp104__ |= (pSrc->mcsFeedback << 8); + tmp104__ |= (pSrc->reserved3 << 10); + frameshtons(pCtx, pBuf, tmp104__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp103__ = 0U; - tmp103__ |= (pSrc->txBF << 0); - tmp103__ |= (pSrc->rxStaggeredSounding << 1); - tmp103__ |= (pSrc->txStaggeredSounding << 2); - tmp103__ |= (pSrc->rxZLF << 3); - tmp103__ |= (pSrc->txZLF << 4); - tmp103__ |= (pSrc->implicitTxBF << 5); - tmp103__ |= (pSrc->calibration << 6); - tmp103__ |= (pSrc->explicitCSITxBF << 8); - tmp103__ |= (pSrc->explicitUncompressedSteeringMatrix << 9); - tmp103__ |= (pSrc->explicitBFCSIFeedback << 10); - tmp103__ |= (pSrc->explicitUncompressedSteeringMatrixFeedback << 13); - tmp103__ |= (pSrc->explicitCompressedSteeringMatrixFeedback << 16); - tmp103__ |= (pSrc->csiNumBFAntennae << 19); - tmp103__ |= (pSrc->uncompressedSteeringMatrixBFAntennae << 21); - tmp103__ |= (pSrc->compressedSteeringMatrixBFAntennae << 23); - tmp103__ |= (pSrc->reserved4 << 25); - frameshtonl(pCtx, pBuf, tmp103__, 0); + tmp105__ = 0U; + tmp105__ |= (pSrc->txBF << 0); + tmp105__ |= (pSrc->rxStaggeredSounding << 1); + tmp105__ |= (pSrc->txStaggeredSounding << 2); + tmp105__ |= (pSrc->rxZLF << 3); + tmp105__ |= (pSrc->txZLF << 4); + tmp105__ |= (pSrc->implicitTxBF << 5); + tmp105__ |= (pSrc->calibration << 6); + tmp105__ |= (pSrc->explicitCSITxBF << 8); + tmp105__ |= (pSrc->explicitUncompressedSteeringMatrix << 9); + tmp105__ |= (pSrc->explicitBFCSIFeedback << 10); + tmp105__ |= (pSrc->explicitUncompressedSteeringMatrixFeedback << 13); + tmp105__ |= (pSrc->explicitCompressedSteeringMatrixFeedback << 16); + tmp105__ |= (pSrc->csiNumBFAntennae << 19); + tmp105__ |= (pSrc->uncompressedSteeringMatrixBFAntennae << 21); + tmp105__ |= (pSrc->compressedSteeringMatrixBFAntennae << 23); + tmp105__ |= (pSrc->reserved4 << 25); + frameshtonl(pCtx, pBuf, tmp105__, 0); *pnConsumed += 4; pBuf += 4; nBuf -= 4 ; - tmp104__ = 0U; - tmp104__ |= (pSrc->antennaSelection << 0); - tmp104__ |= (pSrc->explicitCSIFeedbackTx << 1); - tmp104__ |= (pSrc->antennaIndicesFeedbackTx << 2); - tmp104__ |= (pSrc->explicitCSIFeedback << 3); - tmp104__ |= (pSrc->antennaIndicesFeedback << 4); - tmp104__ |= (pSrc->rxAS << 5); - tmp104__ |= (pSrc->txSoundingPPDUs << 6); - tmp104__ |= (pSrc->reserved5 << 7); - *pBuf = tmp104__; + tmp106__ = 0U; + tmp106__ |= (pSrc->antennaSelection << 0); + tmp106__ |= (pSrc->explicitCSIFeedbackTx << 1); + tmp106__ |= (pSrc->antennaIndicesFeedbackTx << 2); + tmp106__ |= (pSrc->explicitCSIFeedback << 3); + tmp106__ |= (pSrc->antennaIndicesFeedback << 4); + tmp106__ |= (pSrc->rxAS << 5); + tmp106__ |= (pSrc->txSoundingPPDUs << 6); + tmp106__ |= (pSrc->reserved5 << 7); + *pBuf = tmp106__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -16402,9 +16476,9 @@ uint32_t dot11f_pack_ie_ht_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp105__; - uint16_t tmp106__; - uint16_t tmp107__; + uint8_t tmp107__; + uint16_t tmp108__; + uint16_t tmp109__; nNeeded += (pSrc->num_rsvd + 22); while (pSrc->present) { if (nNeeded > nBuf) @@ -16416,35 +16490,35 @@ uint32_t dot11f_pack_ie_ht_info(tpAniSirGlobal pCtx, *pBuf = pSrc->primaryChannel; *pnConsumed += 1; pBuf += 1; - tmp105__ = 0U; - tmp105__ |= (pSrc->secondaryChannelOffset << 0); - tmp105__ |= (pSrc->recommendedTxWidthSet << 2); - tmp105__ |= (pSrc->rifsMode << 3); - tmp105__ |= (pSrc->controlledAccessOnly << 4); - tmp105__ |= (pSrc->serviceIntervalGranularity << 5); - *pBuf = tmp105__; + tmp107__ = 0U; + tmp107__ |= (pSrc->secondaryChannelOffset << 0); + tmp107__ |= (pSrc->recommendedTxWidthSet << 2); + tmp107__ |= (pSrc->rifsMode << 3); + tmp107__ |= (pSrc->controlledAccessOnly << 4); + tmp107__ |= (pSrc->serviceIntervalGranularity << 5); + *pBuf = tmp107__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp106__ = 0U; - tmp106__ |= (pSrc->opMode << 0); - tmp106__ |= (pSrc->nonGFDevicesPresent << 2); - tmp106__ |= (pSrc->transmitBurstLimit << 3); - tmp106__ |= (pSrc->obssNonHTStaPresent << 4); - tmp106__ |= (pSrc->reserved << 5); - frameshtons(pCtx, pBuf, tmp106__, 0); + tmp108__ = 0U; + tmp108__ |= (pSrc->opMode << 0); + tmp108__ |= (pSrc->nonGFDevicesPresent << 2); + tmp108__ |= (pSrc->transmitBurstLimit << 3); + tmp108__ |= (pSrc->obssNonHTStaPresent << 4); + tmp108__ |= (pSrc->reserved << 5); + frameshtons(pCtx, pBuf, tmp108__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp107__ = 0U; - tmp107__ |= (pSrc->basicSTBCMCS << 0); - tmp107__ |= (pSrc->dualCTSProtection << 7); - tmp107__ |= (pSrc->secondaryBeacon << 8); - tmp107__ |= (pSrc->lsigTXOPProtectionFullSupport << 9); - tmp107__ |= (pSrc->pcoActive << 10); - tmp107__ |= (pSrc->pcoPhase << 11); - tmp107__ |= (pSrc->reserved2 << 12); - frameshtons(pCtx, pBuf, tmp107__, 0); + tmp109__ = 0U; + tmp109__ |= (pSrc->basicSTBCMCS << 0); + tmp109__ |= (pSrc->dualCTSProtection << 7); + tmp109__ |= (pSrc->secondaryBeacon << 8); + tmp109__ |= (pSrc->lsigTXOPProtectionFullSupport << 9); + tmp109__ |= (pSrc->pcoActive << 10); + tmp109__ |= (pSrc->pcoPhase << 11); + tmp109__ |= (pSrc->reserved2 << 12); + frameshtons(pCtx, pBuf, tmp109__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -16536,9 +16610,9 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp108__; - uint8_t tmp109__; uint8_t tmp110__; + uint8_t tmp111__; + uint8_t tmp112__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_measurement_report(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -16553,12 +16627,12 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, *pBuf = pSrc->token; *pnConsumed += 1; pBuf += 1; - tmp108__ = 0U; - tmp108__ |= (pSrc->late << 0); - tmp108__ |= (pSrc->incapable << 1); - tmp108__ |= (pSrc->refused << 2); - tmp108__ |= (pSrc->unused << 3); - *pBuf = tmp108__; + tmp110__ = 0U; + tmp110__ |= (pSrc->late << 0); + tmp110__ |= (pSrc->incapable << 1); + tmp110__ |= (pSrc->refused << 2); + tmp110__ |= (pSrc->unused << 3); + *pBuf = tmp110__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -16577,14 +16651,14 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->report.Basic.meas_duration, 0); *pnConsumed += 2; pBuf += 2; - tmp109__ = 0U; - tmp109__ |= (pSrc->report.Basic.bss << 0); - tmp109__ |= (pSrc->report.Basic.ofdm_preamble << 1); - tmp109__ |= (pSrc->report.Basic.unid_signal << 2); - tmp109__ |= (pSrc->report.Basic.rader << 3); - tmp109__ |= (pSrc->report.Basic.unmeasured << 4); - tmp109__ |= (pSrc->report.Basic.unused << 5); - *pBuf = tmp109__; + tmp111__ = 0U; + tmp111__ |= (pSrc->report.Basic.bss << 0); + tmp111__ |= (pSrc->report.Basic.ofdm_preamble << 1); + tmp111__ |= (pSrc->report.Basic.unid_signal << 2); + tmp111__ |= (pSrc->report.Basic.rader << 3); + tmp111__ |= (pSrc->report.Basic.unmeasured << 4); + tmp111__ |= (pSrc->report.Basic.unused << 5); + *pBuf = tmp111__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -16651,10 +16725,10 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->report.Beacon.meas_duration, 0); *pnConsumed += 2; pBuf += 2; - tmp110__ = 0U; - tmp110__ |= (pSrc->report.Beacon.condensed_PHY << 0); - tmp110__ |= (pSrc->report.Beacon.reported_frame_type << 7); - *pBuf = tmp110__; + tmp112__ = 0U; + tmp112__ |= (pSrc->report.Beacon.condensed_PHY << 0); + tmp112__ |= (pSrc->report.Beacon.reported_frame_type << 7); + *pBuf = tmp112__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -16703,7 +16777,7 @@ uint32_t dot11f_pack_ie_measurement_request(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp111__; + uint8_t tmp113__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_measurement_request(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -16718,14 +16792,14 @@ uint32_t dot11f_pack_ie_measurement_request(tpAniSirGlobal pCtx, *pBuf = pSrc->measurement_token; *pnConsumed += 1; pBuf += 1; - tmp111__ = 0U; - tmp111__ |= (pSrc->parallel << 0); - tmp111__ |= (pSrc->enable << 1); - tmp111__ |= (pSrc->request << 2); - tmp111__ |= (pSrc->report << 3); - tmp111__ |= (pSrc->durationMandatory << 4); - tmp111__ |= (pSrc->unused << 5); - *pBuf = tmp111__; + tmp113__ = 0U; + tmp113__ |= (pSrc->parallel << 0); + tmp113__ |= (pSrc->enable << 1); + tmp113__ |= (pSrc->request << 2); + tmp113__ |= (pSrc->report << 3); + tmp113__ |= (pSrc->durationMandatory << 4); + tmp113__ |= (pSrc->unused << 5); + *pBuf = tmp113__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -16812,7 +16886,7 @@ uint32_t dot11f_pack_ie_mobility_domain(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp112__; + uint8_t tmp114__; nNeeded += 3; while (pSrc->present) { if (nNeeded > nBuf) @@ -16824,11 +16898,11 @@ uint32_t dot11f_pack_ie_mobility_domain(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->MDID, 0); *pnConsumed += 2; pBuf += 2; - tmp112__ = 0U; - tmp112__ |= (pSrc->overDSCap << 0); - tmp112__ |= (pSrc->resourceReqCap << 1); - tmp112__ |= (pSrc->reserved << 2); - *pBuf = tmp112__; + tmp114__ = 0U; + tmp114__ |= (pSrc->overDSCap << 0); + tmp114__ |= (pSrc->resourceReqCap << 1); + tmp114__ |= (pSrc->reserved << 2); + *pBuf = tmp114__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -16850,8 +16924,8 @@ uint32_t dot11f_pack_ie_neighbor_report(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp113__; - uint8_t tmp114__; + uint8_t tmp115__; + uint8_t tmp116__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_neighbor_report(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -16866,24 +16940,24 @@ uint32_t dot11f_pack_ie_neighbor_report(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->bssid, 6); *pnConsumed += 6; pBuf += 6; - tmp113__ = 0U; - tmp113__ |= (pSrc->APReachability << 0); - tmp113__ |= (pSrc->Security << 2); - tmp113__ |= (pSrc->KeyScope << 3); - tmp113__ |= (pSrc->SpecMgmtCap << 4); - tmp113__ |= (pSrc->QosCap << 5); - tmp113__ |= (pSrc->apsd << 6); - tmp113__ |= (pSrc->rrm << 7); - *pBuf = tmp113__; + tmp115__ = 0U; + tmp115__ |= (pSrc->APReachability << 0); + tmp115__ |= (pSrc->Security << 2); + tmp115__ |= (pSrc->KeyScope << 3); + tmp115__ |= (pSrc->SpecMgmtCap << 4); + tmp115__ |= (pSrc->QosCap << 5); + tmp115__ |= (pSrc->apsd << 6); + tmp115__ |= (pSrc->rrm << 7); + *pBuf = tmp115__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp114__ = 0U; - tmp114__ |= (pSrc->DelayedBA << 0); - tmp114__ |= (pSrc->ImmBA << 1); - tmp114__ |= (pSrc->MobilityDomain << 2); - tmp114__ |= (pSrc->reserved << 3); - *pBuf = tmp114__; + tmp116__ = 0U; + tmp116__ |= (pSrc->DelayedBA << 0); + tmp116__ |= (pSrc->ImmBA << 1); + tmp116__ |= (pSrc->MobilityDomain << 2); + tmp116__ |= (pSrc->reserved << 3); + *pBuf = tmp116__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -16971,7 +17045,7 @@ uint32_t dot11f_pack_ie_operating_mode(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp115__; + uint8_t tmp117__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -16980,12 +17054,12 @@ uint32_t dot11f_pack_ie_operating_mode(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp115__ = 0U; - tmp115__ |= (pSrc->chanWidth << 0); - tmp115__ |= (pSrc->reserved << 2); - tmp115__ |= (pSrc->rxNSS << 4); - tmp115__ |= (pSrc->rxNSSType << 7); - *pBuf = tmp115__; + tmp117__ = 0U; + tmp117__ |= (pSrc->chanWidth << 0); + tmp117__ |= (pSrc->reserved << 2); + tmp117__ |= (pSrc->rxNSS << 4); + tmp117__ |= (pSrc->rxNSSType << 7); + *pBuf = tmp117__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -17460,7 +17534,7 @@ uint32_t dot11f_pack_ie_pu_buffer_status(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp116__; + uint8_t tmp118__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -17469,13 +17543,13 @@ uint32_t dot11f_pack_ie_pu_buffer_status(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp116__ = 0U; - tmp116__ |= (pSrc->ac_bk_traffic_aval << 0); - tmp116__ |= (pSrc->ac_be_traffic_aval << 1); - tmp116__ |= (pSrc->ac_vi_traffic_aval << 2); - tmp116__ |= (pSrc->ac_vo_traffic_aval << 3); - tmp116__ |= (pSrc->reserved << 4); - *pBuf = tmp116__; + tmp118__ = 0U; + tmp118__ |= (pSrc->ac_bk_traffic_aval << 0); + tmp118__ |= (pSrc->ac_be_traffic_aval << 1); + tmp118__ |= (pSrc->ac_vi_traffic_aval << 2); + tmp118__ |= (pSrc->ac_vo_traffic_aval << 3); + tmp118__ |= (pSrc->reserved << 4); + *pBuf = tmp118__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -17631,7 +17705,7 @@ uint32_t dot11f_pack_ie_qos_caps_ap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp117__; + uint8_t tmp119__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -17640,13 +17714,13 @@ uint32_t dot11f_pack_ie_qos_caps_ap(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp117__ = 0U; - tmp117__ |= (pSrc->count << 0); - tmp117__ |= (pSrc->qack << 4); - tmp117__ |= (pSrc->qreq << 5); - tmp117__ |= (pSrc->txopreq << 6); - tmp117__ |= (pSrc->reserved << 7); - *pBuf = tmp117__; + tmp119__ = 0U; + tmp119__ |= (pSrc->count << 0); + tmp119__ |= (pSrc->qack << 4); + tmp119__ |= (pSrc->qreq << 5); + tmp119__ |= (pSrc->txopreq << 6); + tmp119__ |= (pSrc->reserved << 7); + *pBuf = tmp119__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -17668,7 +17742,7 @@ uint32_t dot11f_pack_ie_qos_caps_station(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp118__; + uint8_t tmp120__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -17677,15 +17751,15 @@ uint32_t dot11f_pack_ie_qos_caps_station(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp118__ = 0U; - tmp118__ |= (pSrc->acvo_uapsd << 0); - tmp118__ |= (pSrc->acvi_uapsd << 1); - tmp118__ |= (pSrc->acbk_uapsd << 2); - tmp118__ |= (pSrc->acbe_uapsd << 3); - tmp118__ |= (pSrc->qack << 4); - tmp118__ |= (pSrc->max_sp_length << 5); - tmp118__ |= (pSrc->more_data_ack << 7); - *pBuf = tmp118__; + tmp120__ = 0U; + tmp120__ |= (pSrc->acvo_uapsd << 0); + tmp120__ |= (pSrc->acvi_uapsd << 1); + tmp120__ |= (pSrc->acbk_uapsd << 2); + tmp120__ |= (pSrc->acbe_uapsd << 3); + tmp120__ |= (pSrc->qack << 4); + tmp120__ |= (pSrc->max_sp_length << 5); + tmp120__ |= (pSrc->more_data_ack << 7); + *pBuf = tmp120__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -18322,7 +18396,7 @@ uint32_t dot11f_pack_ie_wapi(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp119__; + uint16_t tmp121__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_iewapi(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -18352,10 +18426,10 @@ uint32_t dot11f_pack_ie_wapi(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->multicast_cipher_suite, 4); *pnConsumed += 4; pBuf += 4; - tmp119__ = 0U; - tmp119__ |= (pSrc->preauth << 0); - tmp119__ |= (pSrc->reserved << 1); - frameshtons(pCtx, pBuf, tmp119__, 0); + tmp121__ = 0U; + tmp121__ |= (pSrc->preauth << 0); + tmp121__ |= (pSrc->reserved << 1); + frameshtons(pCtx, pBuf, tmp121__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -18495,7 +18569,7 @@ uint32_t dot11f_pack_ie_wmm_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp120__; + uint8_t tmp122__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -18517,13 +18591,13 @@ uint32_t dot11f_pack_ie_wmm_caps(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp120__ = 0U; - tmp120__ |= (pSrc->reserved << 0); - tmp120__ |= (pSrc->qack << 4); - tmp120__ |= (pSrc->queue_request << 5); - tmp120__ |= (pSrc->txop_request << 6); - tmp120__ |= (pSrc->more_ack << 7); - *pBuf = tmp120__; + tmp122__ = 0U; + tmp122__ |= (pSrc->reserved << 0); + tmp122__ |= (pSrc->qack << 4); + tmp122__ |= (pSrc->queue_request << 5); + tmp122__ |= (pSrc->txop_request << 6); + tmp122__ |= (pSrc->more_ack << 7); + *pBuf = tmp122__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -18545,7 +18619,7 @@ uint32_t dot11f_pack_ie_wmm_info_ap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp121__; + uint8_t tmp123__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -18567,11 +18641,11 @@ uint32_t dot11f_pack_ie_wmm_info_ap(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp121__ = 0U; - tmp121__ |= (pSrc->param_set_count << 0); - tmp121__ |= (pSrc->reserved << 4); - tmp121__ |= (pSrc->uapsd << 7); - *pBuf = tmp121__; + tmp123__ = 0U; + tmp123__ |= (pSrc->param_set_count << 0); + tmp123__ |= (pSrc->reserved << 4); + tmp123__ |= (pSrc->uapsd << 7); + *pBuf = tmp123__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -18593,7 +18667,7 @@ uint32_t dot11f_pack_ie_wmm_info_station(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp122__; + uint8_t tmp124__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -18615,15 +18689,15 @@ uint32_t dot11f_pack_ie_wmm_info_station(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp122__ = 0U; - tmp122__ |= (pSrc->acvo_uapsd << 0); - tmp122__ |= (pSrc->acvi_uapsd << 1); - tmp122__ |= (pSrc->acbk_uapsd << 2); - tmp122__ |= (pSrc->acbe_uapsd << 3); - tmp122__ |= (pSrc->reserved1 << 4); - tmp122__ |= (pSrc->max_sp_length << 5); - tmp122__ |= (pSrc->reserved2 << 7); - *pBuf = tmp122__; + tmp124__ = 0U; + tmp124__ |= (pSrc->acvo_uapsd << 0); + tmp124__ |= (pSrc->acvi_uapsd << 1); + tmp124__ |= (pSrc->acbk_uapsd << 2); + tmp124__ |= (pSrc->acbe_uapsd << 3); + tmp124__ |= (pSrc->reserved1 << 4); + tmp124__ |= (pSrc->max_sp_length << 5); + tmp124__ |= (pSrc->reserved2 << 7); + *pBuf = tmp124__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -18645,14 +18719,14 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp123__; - uint8_t tmp124__; uint8_t tmp125__; uint8_t tmp126__; uint8_t tmp127__; uint8_t tmp128__; uint8_t tmp129__; uint8_t tmp130__; + uint8_t tmp131__; + uint8_t tmp132__; nNeeded += 19; while (pSrc->present) { if (nNeeded > nBuf) @@ -18680,76 +18754,76 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, *pBuf = pSrc->reserved2; *pnConsumed += 1; pBuf += 1; - tmp123__ = 0U; - tmp123__ |= (pSrc->acbe_aifsn << 0); - tmp123__ |= (pSrc->acbe_acm << 4); - tmp123__ |= (pSrc->acbe_aci << 5); - tmp123__ |= (pSrc->unused1 << 7); - *pBuf = tmp123__; + tmp125__ = 0U; + tmp125__ |= (pSrc->acbe_aifsn << 0); + tmp125__ |= (pSrc->acbe_acm << 4); + tmp125__ |= (pSrc->acbe_aci << 5); + tmp125__ |= (pSrc->unused1 << 7); + *pBuf = tmp125__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp124__ = 0U; - tmp124__ |= (pSrc->acbe_acwmin << 0); - tmp124__ |= (pSrc->acbe_acwmax << 4); - *pBuf = tmp124__; + tmp126__ = 0U; + tmp126__ |= (pSrc->acbe_acwmin << 0); + tmp126__ |= (pSrc->acbe_acwmax << 4); + *pBuf = tmp126__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp125__ = 0U; - tmp125__ |= (pSrc->acbk_aifsn << 0); - tmp125__ |= (pSrc->acbk_acm << 4); - tmp125__ |= (pSrc->acbk_aci << 5); - tmp125__ |= (pSrc->unused2 << 7); - *pBuf = tmp125__; + tmp127__ = 0U; + tmp127__ |= (pSrc->acbk_aifsn << 0); + tmp127__ |= (pSrc->acbk_acm << 4); + tmp127__ |= (pSrc->acbk_aci << 5); + tmp127__ |= (pSrc->unused2 << 7); + *pBuf = tmp127__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp126__ = 0U; - tmp126__ |= (pSrc->acbk_acwmin << 0); - tmp126__ |= (pSrc->acbk_acwmax << 4); - *pBuf = tmp126__; + tmp128__ = 0U; + tmp128__ |= (pSrc->acbk_acwmin << 0); + tmp128__ |= (pSrc->acbk_acwmax << 4); + *pBuf = tmp128__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp127__ = 0U; - tmp127__ |= (pSrc->acvi_aifsn << 0); - tmp127__ |= (pSrc->acvi_acm << 4); - tmp127__ |= (pSrc->acvi_aci << 5); - tmp127__ |= (pSrc->unused3 << 7); - *pBuf = tmp127__; + tmp129__ = 0U; + tmp129__ |= (pSrc->acvi_aifsn << 0); + tmp129__ |= (pSrc->acvi_acm << 4); + tmp129__ |= (pSrc->acvi_aci << 5); + tmp129__ |= (pSrc->unused3 << 7); + *pBuf = tmp129__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp128__ = 0U; - tmp128__ |= (pSrc->acvi_acwmin << 0); - tmp128__ |= (pSrc->acvi_acwmax << 4); - *pBuf = tmp128__; + tmp130__ = 0U; + tmp130__ |= (pSrc->acvi_acwmin << 0); + tmp130__ |= (pSrc->acvi_acwmax << 4); + *pBuf = tmp130__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp129__ = 0U; - tmp129__ |= (pSrc->acvo_aifsn << 0); - tmp129__ |= (pSrc->acvo_acm << 4); - tmp129__ |= (pSrc->acvo_aci << 5); - tmp129__ |= (pSrc->unused4 << 7); - *pBuf = tmp129__; + tmp131__ = 0U; + tmp131__ |= (pSrc->acvo_aifsn << 0); + tmp131__ |= (pSrc->acvo_acm << 4); + tmp131__ |= (pSrc->acvo_aci << 5); + tmp131__ |= (pSrc->unused4 << 7); + *pBuf = tmp131__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp130__ = 0U; - tmp130__ |= (pSrc->acvo_acwmin << 0); - tmp130__ |= (pSrc->acvo_acwmax << 4); - *pBuf = tmp130__; + tmp132__ = 0U; + tmp132__ |= (pSrc->acvo_acwmin << 0); + tmp132__ |= (pSrc->acvo_acwmax << 4); + *pBuf = tmp132__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -19344,7 +19418,7 @@ uint32_t dot11f_pack_ie_ht2040_bss_coexistence(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp131__; + uint8_t tmp133__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -19353,14 +19427,14 @@ uint32_t dot11f_pack_ie_ht2040_bss_coexistence(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp131__ = 0U; - tmp131__ |= (pSrc->info_request << 0); - tmp131__ |= (pSrc->forty_mhz_intolerant << 1); - tmp131__ |= (pSrc->twenty_mhz_bsswidth_req << 2); - tmp131__ |= (pSrc->obss_scan_exemption_req << 3); - tmp131__ |= (pSrc->obss_scan_exemption_grant << 4); - tmp131__ |= (pSrc->unused << 5); - *pBuf = tmp131__; + tmp133__ = 0U; + tmp133__ |= (pSrc->info_request << 0); + tmp133__ |= (pSrc->forty_mhz_intolerant << 1); + tmp133__ |= (pSrc->twenty_mhz_bsswidth_req << 2); + tmp133__ |= (pSrc->obss_scan_exemption_req << 3); + tmp133__ |= (pSrc->obss_scan_exemption_grant << 4); + tmp133__ |= (pSrc->unused << 5); + *pBuf = tmp133__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -20157,6 +20231,21 @@ uint32_t dot11f_pack_wmm_del_ts(tpAniSirGlobal pCtx, } /* End dot11f_unpack_wmm_del_ts. */ +uint32_t dot11f_pack_ext_channel_switch_action_frame(tpAniSirGlobal pCtx, + tDot11fext_channel_switch_action_frame *pFrm, + uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed) +{ + uint32_t i = 0; + uint32_t status = 0; + (void)i; + *pnConsumed = 0U; + status = pack_core(pCtx, (uint8_t *)pFrm, pBuf, nBuf, pnConsumed, + FFS_ext_channel_switch_action_frame, IES_ext_channel_switch_action_frame); + + return status; + +} /* End dot11f_unpack_ext_channel_switch_action_frame. */ + uint32_t dot11f_pack_ht2040_bss_coexistence_mgmt_action_frame(tpAniSirGlobal pCtx, tDot11fht2040_bss_coexistence_mgmt_action_frame *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed) @@ -20357,6 +20446,11 @@ static uint32_t pack_core(tpAniSirGlobal pCtx, pCtx, (tDot11fFfVhtUserPositionArray *) (pSrc + pFf->offset), pBufRemaining); break; + case SigFfext_chan_switch_ann_action: + dot11f_pack_ff_ext_chan_switch_ann_action( + pCtx, (tDot11fFfext_chan_switch_ann_action *) + (pSrc + pFf->offset), pBufRemaining); + break; default: FRAMES_LOG1(pCtx, FRLOGE, FRFL("INTERNAL ERROR-- I don" "'t know about the Fixed Field %d; this is most l" diff --git a/core/sap/inc/sap_api.h b/core/sap/inc/sap_api.h index dc450e22abe8..50a42391ee24 100644 --- a/core/sap/inc/sap_api.h +++ b/core/sap/inc/sap_api.h @@ -187,6 +187,7 @@ typedef enum { eSAP_ACS_SCAN_SUCCESS_EVENT, #endif eSAP_ACS_CHANNEL_SELECTED, + eSAP_ECSA_CHANGE_CHAN_IND, } eSapHddEvent; typedef enum { @@ -407,6 +408,15 @@ struct sap_ch_selected_s { struct sap_roc_ready_ind_s { uint32_t scan_id; }; + +/** + * struct sap_ch_change_ind - channel change indication + * @new_chan: channel to change + */ +struct sap_ch_change_ind { + uint16_t new_chan; +}; + /* * This struct will be filled in and passed to tpWLAN_SAPEventCB that is * provided during wlansap_start_bss call The event id corresponding to @@ -450,7 +460,7 @@ typedef struct sap_Event_s { tSap_DfsNolInfo sapDfsNolInfo; struct sap_ch_selected_s sap_ch_selected; struct sap_roc_ready_ind_s sap_roc_ind; - + struct sap_ch_change_ind sap_chan_cng_ind; } sapevt; } tSap_Event, *tpSap_Event; diff --git a/core/sap/src/sap_api_link_cntl.c b/core/sap/src/sap_api_link_cntl.c index 4ea65dcec7ed..381f444d640b 100644 --- a/core/sap/src/sap_api_link_cntl.c +++ b/core/sap/src/sap_api_link_cntl.c @@ -974,6 +974,10 @@ wlansap_roam_callback(void *ctx, tCsrRoamInfo *csr_roam_info, uint32_t roamId, CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH, FL("Received set channel response")); break; + case eCSR_ROAM_EXT_CHG_CHNL_IND: + CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH, + FL("Received set channel Indication")); + break; default: CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR, FL("CSR roam_status not handled roam_status = %s (%d)\n"), @@ -1198,6 +1202,12 @@ wlansap_roam_callback(void *ctx, tCsrRoamInfo *csr_roam_info, uint32_t roamId, sap_ctx->sapsMachine = eSAP_DISCONNECTED; /* Inform cfg80211 and hostapd that BSS is not alive anymore */ break; + case eCSR_ROAM_EXT_CHG_CHNL_UPDATE_IND: + cdf_status = sap_signal_hdd_event(sap_ctx, csr_roam_info, + eSAP_ECSA_CHANGE_CHAN_IND, NULL); + if (!CDF_IS_STATUS_SUCCESS(cdf_status)) + cdf_ret_status = CDF_STATUS_E_FAILURE; + break; default: CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR, FL("CSR roam_result = %s (%d) not handled\n"), diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c index 3d2021e6de66..1ca439e69cda 100644 --- a/core/sap/src/sap_fsm.c +++ b/core/sap/src/sap_fsm.c @@ -2814,7 +2814,14 @@ CDF_STATUS sap_signal_hdd_event(ptSapContext sap_ctx, sap_ap_event.sapevt.sapDfsNolInfo.pDfsList = (void *) (&mac_ctx->sap.SapDfsInfo.sapDfsChannelNolList[0]); break; - + case eSAP_ECSA_CHANGE_CHAN_IND: + CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH, + "In %s, SAP event callback event = %s", + __func__, "eSAP_ECSA_CHANGE_CHAN_IND"); + sap_ap_event.sapHddEventCode = eSAP_ECSA_CHANGE_CHAN_IND; + sap_ap_event.sapevt.sap_chan_cng_ind.new_chan = + csr_roaminfo->target_channel; + break; default: CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR, FL("SAP Unknown callback event = %d"), diff --git a/core/sap/src/sap_module.c b/core/sap/src/sap_module.c index b2df4dc49de9..b54f6563e4e0 100644 --- a/core/sap/src/sap_module.c +++ b/core/sap/src/sap_module.c @@ -2179,7 +2179,7 @@ CDF_STATUS wlansap_de_register_mgmt_frame SIDE EFFECTS ============================================================================*/ CDF_STATUS -wlansap_channel_change_request(void *pSapCtx, uint8_t targetChannel) +wlansap_channel_change_request(void *pSapCtx, uint8_t target_channel) { ptSapContext sapContext = NULL; CDF_STATUS cdf_ret_status = CDF_STATUS_E_FAILURE; @@ -2205,7 +2205,7 @@ wlansap_channel_change_request(void *pSapCtx, uint8_t targetChannel) } mac_ctx = PMAC_STRUCT(hHal); phy_mode = sapContext->csr_roamProfile.phyMode; - sapContext->csr_roamProfile.ChannelInfo.ChannelList[0] = targetChannel; + sapContext->csr_roamProfile.ChannelInfo.ChannelList[0] = target_channel; /* * We are getting channel bonding mode from sapDfsInfor structure * because we've implemented channel width fallback mechanism for DFS @@ -2214,8 +2214,12 @@ wlansap_channel_change_request(void *pSapCtx, uint8_t targetChannel) cb_mode = mac_ctx->sap.SapDfsInfo.new_cbMode; vht_channel_width = mac_ctx->sap.SapDfsInfo.new_chanWidth; ch_params.ch_width = vht_channel_width; - sme_set_ch_params(hHal, phy_mode, targetChannel, 0, &ch_params); + sme_set_ch_params(hHal, phy_mode, target_channel, 0, &ch_params); sapContext->ch_params.ch_width = vht_channel_width; + /* Update the channel as this will be used to + * send event to supplicant + */ + sapContext->channel = target_channel; sapContext->csr_roamProfile.ch_params.ch_width = vht_channel_width; cdf_ret_status = sme_roam_channel_change_req(hHal, sapContext->bssid, cb_mode, &sapContext->csr_roamProfile); diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index 365401784c6f..88dead78f1ce 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -528,6 +528,7 @@ typedef enum { /* Channel sw update notification */ eCSR_ROAM_DFS_CHAN_SW_NOTIFY, + eCSR_ROAM_EXT_CHG_CHNL_IND, } eRoamCmdStatus; /* comment inside indicates what roaming callback gets */ @@ -636,6 +637,7 @@ typedef enum { eCSR_ROAM_RESULT_CHANNEL_CHANGE_FAILURE, eCSR_ROAM_RESULT_DFS_CHANSW_UPDATE_SUCCESS, eCSR_ROAM_RESULT_DFS_CHANSW_UPDATE_FAILURE, + eCSR_ROAM_EXT_CHG_CHNL_UPDATE_IND, } eCsrRoamResult; /*---------------------------------------------------------------------------- @@ -1374,6 +1376,7 @@ typedef struct tagCsrRoamInfo { uint8_t replay_ctr[SIR_REPLAY_CTR_LEN]; #endif tSirSmeChanInfo chan_info; + uint8_t target_channel; } tCsrRoamInfo; typedef struct tagCsrFreqScanInfo { @@ -1400,6 +1403,7 @@ typedef struct sSirSmeAssocIndToUpperLayerCnf { /* Timing and fine Timing measurement capability clubbed together */ uint8_t timingMeasCap; tSirSmeChanInfo chan_info; + uint8_t target_channel; } tSirSmeAssocIndToUpperLayerCnf, *tpSirSmeAssocIndToUpperLayerCnf; typedef struct tagCsrSummaryStatsInfo { diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h index c8e1e361e4e1..b931dc43f43d 100644 --- a/core/sme/inc/sme_api.h +++ b/core/sme/inc/sme_api.h @@ -946,6 +946,8 @@ CDF_STATUS sme_set_led_flashing(tHalHandle hHal, uint8_t type, CDF_STATUS sme_handle_dfs_chan_scan(tHalHandle hHal, uint8_t dfs_flag); CDF_STATUS sme_set_mas(uint32_t val); CDF_STATUS sme_set_miracast(tHalHandle hal, uint8_t filter_type); +CDF_STATUS sme_ext_change_channel(tHalHandle hHal, uint32_t channel, + uint8_t session_id); CDF_STATUS sme_configure_modulated_dtim(tHalHandle hal, uint8_t session_id, uint32_t modulated_dtim); diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index ac42abd8e347..4bfb7d992d3f 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -1919,6 +1919,48 @@ CDF_STATUS dfs_msg_processor(tpAniSirGlobal pMac, uint16_t msgType, void *pMsgBu return status; } +/** + * sme_extended_change_channel_ind()- function to indicate ECSA + * action frame is received in lim to SAP + * @mac_ctx: pointer to global mac structure + * @msg_buf: contain new channel and session id. + * + * This function is called to post ECSA action frame + * receive event to SAP. + * + * Return: success if msg indicated to SAP else return failure + */ +static CDF_STATUS sme_extended_change_channel_ind(tpAniSirGlobal mac_ctx, + void *msg_buf) +{ + struct sir_sme_ext_cng_chan_ind *ext_chan_ind; + CDF_STATUS status = CDF_STATUS_SUCCESS; + uint32_t session_id = 0; + tCsrRoamInfo roamInfo = {0}; + eRoamCmdStatus roam_status; + eCsrRoamResult roam_result; + + + ext_chan_ind = msg_buf; + if (NULL == ext_chan_ind) { + sms_log(mac_ctx, LOGE, + FL("pMsg is NULL for eWNI_SME_EXT_CHANGE_CHANNEL_IND")); + return CDF_STATUS_E_FAILURE; + } + session_id = ext_chan_ind->session_id; + roamInfo.target_channel = ext_chan_ind->new_channel; + roam_status = eCSR_ROAM_EXT_CHG_CHNL_IND; + roam_result = eCSR_ROAM_EXT_CHG_CHNL_UPDATE_IND; + sms_log(mac_ctx, LOG1, + FL("sapdfs: Received eWNI_SME_EXT_CHANGE_CHANNEL_IND for session id [%d]"), + session_id); + + /* Indicate Ext Channel Change event to SAP */ + csr_roam_call_callback(mac_ctx, session_id, &roamInfo, 0, + roam_status, roam_result); + return status; +} + #if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD) /*------------------------------------------------------------------ * @@ -2681,6 +2723,10 @@ CDF_STATUS sme_process_msg(tHalHandle hHal, cds_msg_t *pMsg) pMac->sme.set_thermal_level_cb(pMac->hHdd, pMsg->bodyval); break; + case eWNI_SME_EXT_CHANGE_CHANNEL_IND: + status = sme_extended_change_channel_ind(pMac, pMsg->bodyptr); + cdf_mem_free(pMsg->bodyptr); + break; default: if ((pMsg->type >= eWNI_SME_MSG_TYPES_BEGIN) @@ -8078,6 +8124,45 @@ CDF_STATUS sme_update_roam_scan_home_away_time(tHalHandle hHal, return status; } +/** + * sme_ext_change_channel()- function to post send ECSA + * action frame to csr. + * @hHal: Hal context + * @channel: new channel to switch + * @session_id: senssion it should be sent on. + * + * This function is called to post ECSA frame to csr. + * + * Return: success if msg is sent else return failure + */ +CDF_STATUS sme_ext_change_channel(tHalHandle h_hal, uint32_t channel, + uint8_t session_id) +{ + CDF_STATUS status = CDF_STATUS_SUCCESS; + tpAniSirGlobal mac_ctx = PMAC_STRUCT(h_hal); + uint8_t channel_state; + + sms_log(mac_ctx, LOGE, FL(" Set Channel %d "), channel); + channel_state = + cds_get_channel_state(channel); + + if (CHANNEL_STATE_DISABLE == channel_state) { + sms_log(mac_ctx, LOGE, FL(" Invalid channel %d "), channel); + return CDF_STATUS_E_INVAL; + } + + status = sme_acquire_global_lock(&mac_ctx->sme); + + if (CDF_STATUS_SUCCESS == status) { + /* update the channel list to the firmware */ + status = csr_send_ext_change_channel(mac_ctx, + channel, session_id); + sme_release_global_lock(&mac_ctx->sme); + } + + return status; +} + /* --------------------------------------------------------------------------- \fn sme_get_roam_intra_band \brief get Intra band roaming diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 22df06520af6..d860d6f1c870 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -18344,6 +18344,36 @@ csr_roam_update_add_ies(tpAniSirGlobal pMac, return status; } +/** + * csr_send_ext_change_channel()- function to post send ECSA + * action frame to lim. + * @mac_ctx: pointer to global mac structure + * @channel: new channel to switch + * @session_id: senssion it should be sent on. + * + * This function is called to post ECSA frame to lim. + * + * Return: success if msg posted to LIM else return failure + */ +CDF_STATUS csr_send_ext_change_channel(tpAniSirGlobal mac_ctx, uint32_t channel, + uint8_t session_id) +{ + CDF_STATUS status = CDF_STATUS_SUCCESS; + struct sir_sme_ext_cng_chan_req *msg; + + msg = cdf_mem_malloc(sizeof(*msg)); + if (NULL == msg) + return CDF_STATUS_E_NOMEM; + + cdf_mem_zero(msg, sizeof(*msg)); + msg->message_type = eWNI_SME_EXT_CHANGE_CHANNEL; + msg->length = sizeof(*msg); + msg->new_channel = channel; + msg->session_id = session_id; + status = cds_send_mb_message_to_mac(msg); + return status; +} + /** * csr_roam_send_chan_sw_ie_request() - Request to transmit CSA IE * @mac_ctx: Global MAC context diff --git a/core/sme/src/csr/csr_inside_api.h b/core/sme/src/csr/csr_inside_api.h index 0c7fef801057..0f21bec8a2b7 100644 --- a/core/sme/src/csr/csr_inside_api.h +++ b/core/sme/src/csr/csr_inside_api.h @@ -1056,6 +1056,8 @@ void csr_add_vote_for_country_info(tpAniSirGlobal pMac, uint8_t *pCountryCode); void csr_clear_votes_for_country_info(tpAniSirGlobal pMac); #endif +CDF_STATUS csr_send_ext_change_channel(tpAniSirGlobal mac_ctx, + uint32_t channel, uint8_t session_id); #ifdef QCA_HT_2040_COEX CDF_STATUS csr_set_ht2040_mode(tpAniSirGlobal pMac, uint32_t sessionId,