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:

committed by
Rahul Choudhary

orang tua
c148b9d2c7
melakukan
b1fb8f6257
@@ -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
|
||||
|
@@ -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" {
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user