qcacld-3.0: Add dot11f support to handle EPCS action frames

Add dot11f support to handle EPCS action frames, such as
request, response, and teardown action frames.

CRs-Fixed: 3511067
Change-Id: I1896d7fcf89a8dd9b60a89f2902567bc60667972
This commit is contained in:
Paul Zhang
2023-05-30 10:00:26 +08:00
committed by Rahul Choudhary
orang tua c148b9d2c7
melakukan b1fb8f6257
3 mengubah file dengan 268 tambahan dan 10 penghapusan

Melihat File

@@ -4926,6 +4926,27 @@ FRAME mscs_request_action_frame
MANDIE descriptor_element;
}
FRAME epcs_neg_req
{
FF Category;
FF Action;
FF DialogToken;
}
FRAME epcs_neg_rsp
{
FF Category;
FF Action;
FF DialogToken;
FF Status;
}
FRAME epcs_teardown
{
FF Category;
FF Action;
}
// Local Variables:
// mode: c++
// fill-column: 77

Melihat File

@@ -27,7 +27,7 @@
*
*
* This file was automatically generated by 'framesc'
* Thu May 18 15:31:21 2023 from the following file(s):
* Tue May 30 09:55:35 2023 from the following file(s):
*
* dot11f.frms
*
@@ -12439,6 +12439,84 @@ uint32_t dot11f_get_packed_delba_req_size(tpAniSirGlobal pCtx,
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fepcs_neg_req{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
} tDot11fepcs_neg_req;
#define DOT11F_EPCS_NEG_REQ (49)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_epcs_neg_req(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fepcs_neg_req * pFrm, bool append_ie);
uint32_t dot11f_pack_epcs_neg_req(tpAniSirGlobal pCtx,
tDot11fepcs_neg_req *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_epcs_neg_reqSize(tpAniSirGlobal pCtx,
tDot11fepcs_neg_req *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fepcs_neg_rsp{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfStatus Status;
} tDot11fepcs_neg_rsp;
#define DOT11F_EPCS_NEG_RSP (50)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_epcs_neg_rsp(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fepcs_neg_rsp * pFrm, bool append_ie);
uint32_t dot11f_pack_epcs_neg_rsp(tpAniSirGlobal pCtx,
tDot11fepcs_neg_rsp *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_epcs_neg_rspSize(tpAniSirGlobal pCtx,
tDot11fepcs_neg_rsp *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fepcs_teardown{
tDot11fFfCategory Category;
tDot11fFfAction Action;
} tDot11fepcs_teardown;
#define DOT11F_EPCS_TEARDOWN (51)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_epcs_teardown(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fepcs_teardown * pFrm, bool append_ie);
uint32_t dot11f_pack_epcs_teardown(tpAniSirGlobal pCtx,
tDot11fepcs_teardown *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_epcs_teardownSize(tpAniSirGlobal pCtx,
tDot11fepcs_teardown *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fext_channel_switch_action_frame{
tDot11fFfCategory Category;
tDot11fFfAction Action;
@@ -12447,7 +12525,7 @@ typedef struct sDot11fext_channel_switch_action_frame{
tDot11fIEqcn_ie qcn_ie;
} tDot11fext_channel_switch_action_frame;
#define DOT11F_EXT_CHANNEL_SWITCH_ACTION_FRAME (49)
#define DOT11F_EXT_CHANNEL_SWITCH_ACTION_FRAME (52)
#ifdef __cplusplus
extern "C" {
@@ -12474,7 +12552,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 (50)
#define DOT11F_HT2040_BSS_COEXISTENCE_MGMT_ACTION_FRAME (53)
#ifdef __cplusplus
extern "C" {
@@ -12501,7 +12579,7 @@ typedef struct sDot11fmscs_request_action_frame{
tDot11fIEdescriptor_element descriptor_element;
} tDot11fmscs_request_action_frame;
#define DOT11F_MSCS_REQUEST_ACTION_FRAME (51)
#define DOT11F_MSCS_REQUEST_ACTION_FRAME (54)
#ifdef __cplusplus
extern "C" {
@@ -12531,7 +12609,7 @@ typedef struct sDot11fp2p_oper_chan_change_confirm{
tDot11fIEOperatingMode OperatingMode;
} tDot11fp2p_oper_chan_change_confirm;
#define DOT11F_P2P_OPER_CHAN_CHANGE_CONFIRM (52)
#define DOT11F_P2P_OPER_CHAN_CHANGE_CONFIRM (55)
#ifdef __cplusplus
extern "C" {
@@ -12559,7 +12637,7 @@ typedef struct sDot11ft2lm_neg_req{
tDot11fIEt2lm_ie t2lm_ie[2];
} tDot11ft2lm_neg_req;
#define DOT11F_T2LM_NEG_REQ (53)
#define DOT11F_T2LM_NEG_REQ (56)
#ifdef __cplusplus
extern "C" {
@@ -12586,7 +12664,7 @@ typedef struct sDot11ft2lm_neg_rsp{
tDot11fFfStatus Status;
} tDot11ft2lm_neg_rsp;
#define DOT11F_T2LM_NEG_RSP (54)
#define DOT11F_T2LM_NEG_RSP (57)
#ifdef __cplusplus
extern "C" {
@@ -12611,7 +12689,7 @@ typedef struct sDot11ft2lm_teardown{
tDot11fFfAction Action;
} tDot11ft2lm_teardown;
#define DOT11F_T2LM_TEARDOWN (55)
#define DOT11F_T2LM_TEARDOWN (58)
#ifdef __cplusplus
extern "C" {
@@ -12637,7 +12715,7 @@ typedef struct sDot11fvendor_action_frame{
tDot11fFfvendor_action_subtype vendor_action_subtype;
} tDot11fvendor_action_frame;
#define DOT11F_VENDOR_ACTION_FRAME (56)
#define DOT11F_VENDOR_ACTION_FRAME (59)
#ifdef __cplusplus
extern "C" {

Melihat File

@@ -25,7 +25,7 @@
*
*
* This file was automatically generated by 'framesc'
* Thu May 18 15:31:21 2023 from the following file(s):
* Tue May 30 09:55:35 2023 from the following file(s):
*
* dot11f.frms
*
@@ -14134,6 +14134,90 @@ uint32_t dot11f_unpack_delba_req(tpAniSirGlobal pCtx,
} /* End dot11f_unpack_delba_req. */
static const tFFDefn FFS_epcs_neg_req[] = {
{ "Category", offsetof(tDot11fepcs_neg_req, Category), SigFfCategory,
DOT11F_FF_CATEGORY_LEN, },
{ "Action", offsetof(tDot11fepcs_neg_req, Action), SigFfAction,
DOT11F_FF_ACTION_LEN, },
{ "DialogToken", offsetof(tDot11fepcs_neg_req, DialogToken),
SigFfDialogToken, DOT11F_FF_DIALOGTOKEN_LEN, },
{ NULL, 0, 0, 0,},
};
static const tIEDefn IES_epcs_neg_req[] = {
{0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },};
uint32_t dot11f_unpack_epcs_neg_req(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fepcs_neg_req *pFrm, bool append_ie)
{
uint32_t i = 0;
uint32_t status = 0;
status = unpack_core(pCtx, pBuf, nBuf,
FFS_epcs_neg_req, IES_epcs_neg_req,
(uint8_t *)pFrm, sizeof(*pFrm), append_ie);
(void)i;
return status;
} /* End dot11f_unpack_epcs_neg_req. */
static const tFFDefn FFS_epcs_neg_rsp[] = {
{ "Category", offsetof(tDot11fepcs_neg_rsp, Category), SigFfCategory,
DOT11F_FF_CATEGORY_LEN, },
{ "Action", offsetof(tDot11fepcs_neg_rsp, Action), SigFfAction,
DOT11F_FF_ACTION_LEN, },
{ "DialogToken", offsetof(tDot11fepcs_neg_rsp, DialogToken),
SigFfDialogToken, DOT11F_FF_DIALOGTOKEN_LEN, },
{ "Status", offsetof(tDot11fepcs_neg_rsp, Status), SigFfStatus,
DOT11F_FF_STATUS_LEN, },
{ NULL, 0, 0, 0,},
};
static const tIEDefn IES_epcs_neg_rsp[] = {
{0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },};
uint32_t dot11f_unpack_epcs_neg_rsp(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fepcs_neg_rsp *pFrm, bool append_ie)
{
uint32_t i = 0;
uint32_t status = 0;
status = unpack_core(pCtx, pBuf, nBuf,
FFS_epcs_neg_rsp, IES_epcs_neg_rsp,
(uint8_t *)pFrm, sizeof(*pFrm), append_ie);
(void)i;
return status;
} /* End dot11f_unpack_epcs_neg_rsp. */
static const tFFDefn FFS_epcs_teardown[] = {
{ "Category", offsetof(tDot11fepcs_teardown, Category), SigFfCategory,
DOT11F_FF_CATEGORY_LEN, },
{ "Action", offsetof(tDot11fepcs_teardown, Action), SigFfAction,
DOT11F_FF_ACTION_LEN, },
{ NULL, 0, 0, 0,},
};
static const tIEDefn IES_epcs_teardown[] = {
{0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },};
uint32_t dot11f_unpack_epcs_teardown(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fepcs_teardown *pFrm, bool append_ie)
{
uint32_t i = 0;
uint32_t status = 0;
status = unpack_core(pCtx, pBuf, nBuf,
FFS_epcs_teardown, IES_epcs_teardown,
(uint8_t *)pFrm, sizeof(*pFrm), append_ie);
(void)i;
return status;
} /* End dot11f_unpack_epcs_teardown. */
static const tFFDefn FFS_ext_channel_switch_action_frame[] = {
{ "Category", offsetof(tDot11fext_channel_switch_action_frame, Category),
SigFfCategory, DOT11F_FF_CATEGORY_LEN, },
@@ -18504,6 +18588,36 @@ uint32_t dot11f_get_packed_delba_req_size(tpAniSirGlobal pCtx,
return status;
} /* End dot11f_get_packed_delba_req_size. */
uint32_t dot11f_get_packed_epcs_neg_reqSize(tpAniSirGlobal pCtx,
tDot11fepcs_neg_req *pFrm, uint32_t *pnNeeded)
{
uint32_t status = 0;
*pnNeeded = 3;
status = get_packed_size_core(pCtx, (uint8_t *)pFrm, pnNeeded,
IES_epcs_neg_req);
return status;
} /* End dot11f_get_packed_epcs_neg_reqSize. */
uint32_t dot11f_get_packed_epcs_neg_rspSize(tpAniSirGlobal pCtx,
tDot11fepcs_neg_rsp *pFrm, uint32_t *pnNeeded)
{
uint32_t status = 0;
*pnNeeded = 5;
status = get_packed_size_core(pCtx, (uint8_t *)pFrm, pnNeeded,
IES_epcs_neg_rsp);
return status;
} /* End dot11f_get_packed_epcs_neg_rspSize. */
uint32_t dot11f_get_packed_epcs_teardownSize(tpAniSirGlobal pCtx,
tDot11fepcs_teardown *pFrm, uint32_t *pnNeeded)
{
uint32_t status = 0;
*pnNeeded = 2;
status = get_packed_size_core(pCtx, (uint8_t *)pFrm, pnNeeded,
IES_epcs_teardown);
return status;
} /* End dot11f_get_packed_epcs_teardownSize. */
uint32_t dot11f_get_packed_ext_channel_switch_action_frame_size(tpAniSirGlobal pCtx,
tDot11fext_channel_switch_action_frame *pFrm, uint32_t *pnNeeded)
{
@@ -31233,6 +31347,51 @@ uint32_t dot11f_pack_delba_req(tpAniSirGlobal pCtx,
} /* End dot11f_unpack_delba_req. */
uint32_t dot11f_pack_epcs_neg_req(tpAniSirGlobal pCtx,
tDot11fepcs_neg_req *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_epcs_neg_req, IES_epcs_neg_req);
return status;
} /* End dot11f_unpack_epcs_neg_req. */
uint32_t dot11f_pack_epcs_neg_rsp(tpAniSirGlobal pCtx,
tDot11fepcs_neg_rsp *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_epcs_neg_rsp, IES_epcs_neg_rsp);
return status;
} /* End dot11f_unpack_epcs_neg_rsp. */
uint32_t dot11f_pack_epcs_teardown(tpAniSirGlobal pCtx,
tDot11fepcs_teardown *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_epcs_teardown, IES_epcs_teardown);
return status;
} /* End dot11f_unpack_epcs_teardown. */
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)