|
@@ -24,7 +24,7 @@
|
|
|
*
|
|
|
*
|
|
|
* This file was automatically generated by 'framesc'
|
|
|
- * Tue Sep 18 11:47:29 2018 from the following file(s):
|
|
|
+ * Thu Sep 27 15:54:27 2018 from the following file(s):
|
|
|
*
|
|
|
* dot11f.frms
|
|
|
*
|
|
@@ -860,6 +860,26 @@ void dot11f_unpack_ff_p2p_action_subtype(tpAniSirGlobal pCtx,
|
|
|
|
|
|
#define SigFfp2p_action_subtype (0x0025)
|
|
|
|
|
|
+void dot11f_unpack_ff_vendor_action_subtype(tpAniSirGlobal pCtx,
|
|
|
+ uint8_t *pBuf,
|
|
|
+ tDot11fFfvendor_action_subtype *pDst)
|
|
|
+{
|
|
|
+ pDst->subtype = *pBuf;
|
|
|
+ (void)pCtx;
|
|
|
+} /* End dot11f_unpack_ff_vendor_action_subtype. */
|
|
|
+
|
|
|
+#define SigFfvendor_action_subtype (0x0026)
|
|
|
+
|
|
|
+void dot11f_unpack_ff_vendor_oui(tpAniSirGlobal pCtx,
|
|
|
+ uint8_t *pBuf,
|
|
|
+ tDot11fFfvendor_oui *pDst)
|
|
|
+{
|
|
|
+ DOT11F_MEMCPY(pCtx, pDst->oui_data, pBuf, 3);
|
|
|
+ (void)pCtx;
|
|
|
+} /* End dot11f_unpack_ff_vendor_oui. */
|
|
|
+
|
|
|
+#define SigFfvendor_oui (0x0027)
|
|
|
+
|
|
|
uint32_t dot11f_unpack_tlv_authorized_ma_cs(tpAniSirGlobal pCtx,
|
|
|
uint8_t *pBuf,
|
|
|
uint16_t tlvlen,
|
|
@@ -12615,6 +12635,35 @@ uint32_t dot11f_unpack_p2p_oper_chan_change_confirm(tpAniSirGlobal pCtx,
|
|
|
|
|
|
} /* End dot11f_unpack_p2p_oper_chan_change_confirm. */
|
|
|
|
|
|
+static const tFFDefn FFS_vendor_action_frame[] = {
|
|
|
+ { "Category", offsetof(tDot11fvendor_action_frame, Category),
|
|
|
+ SigFfCategory, DOT11F_FF_CATEGORY_LEN, },
|
|
|
+ { "vendor_oui", offsetof(tDot11fvendor_action_frame, vendor_oui),
|
|
|
+ SigFfvendor_oui, DOT11F_FF_VENDOR_OUI_LEN, },
|
|
|
+ { "vendor_action_subtype", offsetof(tDot11fvendor_action_frame,
|
|
|
+ vendor_action_subtype), SigFfvendor_action_subtype,
|
|
|
+ DOT11F_FF_VENDOR_ACTION_SUBTYPE_LEN, },
|
|
|
+ { NULL, 0, 0, 0,},
|
|
|
+};
|
|
|
+
|
|
|
+static const tIEDefn IES_vendor_action_frame[] = {
|
|
|
+ {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },};
|
|
|
+
|
|
|
+uint32_t dot11f_unpack_vendor_action_frame(tpAniSirGlobal pCtx,
|
|
|
+ uint8_t *pBuf, uint32_t nBuf,
|
|
|
+ tDot11fvendor_action_frame *pFrm, bool append_ie)
|
|
|
+{
|
|
|
+ uint32_t i = 0;
|
|
|
+ uint32_t status = 0;
|
|
|
+ status = unpack_core(pCtx, pBuf, nBuf,
|
|
|
+ FFS_vendor_action_frame, IES_vendor_action_frame,
|
|
|
+ (uint8_t *)pFrm, sizeof(*pFrm), append_ie);
|
|
|
+
|
|
|
+ (void)i;
|
|
|
+ return status;
|
|
|
+
|
|
|
+} /* End dot11f_unpack_vendor_action_frame. */
|
|
|
+
|
|
|
/**
|
|
|
* Note: If @append_ie is set TRUE, pFrm will not be reset to zero,
|
|
|
* but parsed IE's would be populated to pFrm with already
|
|
@@ -12853,6 +12902,16 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx,
|
|
|
pBufRemaining, (tDot11fFfp2p_action_subtype *)
|
|
|
(pFrm + pFf->offset));
|
|
|
break;
|
|
|
+ case SigFfvendor_action_subtype:
|
|
|
+ dot11f_unpack_ff_vendor_action_subtype(pCtx,
|
|
|
+ pBufRemaining, (tDot11fFfvendor_action_subtype *)
|
|
|
+ (pFrm + pFf->offset));
|
|
|
+ break;
|
|
|
+ case SigFfvendor_oui:
|
|
|
+ dot11f_unpack_ff_vendor_oui(pCtx,
|
|
|
+ pBufRemaining, (tDot11fFfvendor_oui *)
|
|
|
+ (pFrm + pFf->offset));
|
|
|
+ break;
|
|
|
default:
|
|
|
FRAMES_LOG1(pCtx, FRLOGE, FRFL("INTERNAL ERROR: I don'"
|
|
|
"t know about the FF signature %d-- this is most "
|
|
@@ -16309,6 +16368,16 @@ uint32_t dot11f_get_packed_p2p_oper_chan_change_confirmSize(tpAniSirGlobal pCtx,
|
|
|
return status;
|
|
|
} /* End dot11f_get_packed_p2p_oper_chan_change_confirmSize. */
|
|
|
|
|
|
+uint32_t dot11f_get_packed_vendor_action_frameSize(tpAniSirGlobal pCtx,
|
|
|
+ tDot11fvendor_action_frame *pFrm, uint32_t *pnNeeded)
|
|
|
+{
|
|
|
+ uint32_t status = 0;
|
|
|
+ *pnNeeded = 5;
|
|
|
+ status = get_packed_size_core(pCtx, (uint8_t *)pFrm, pnNeeded,
|
|
|
+ IES_vendor_action_frame);
|
|
|
+ return status;
|
|
|
+} /* End dot11f_get_packed_vendor_action_frameSize. */
|
|
|
+
|
|
|
static uint32_t get_packed_size_core(tpAniSirGlobal pCtx,
|
|
|
uint8_t *pFrm,
|
|
|
uint32_t *pnNeeded,
|
|
@@ -18151,6 +18220,22 @@ void dot11f_pack_ff_p2p_action_subtype(tpAniSirGlobal pCtx,
|
|
|
(void)pCtx;
|
|
|
} /* End dot11f_pack_ff_p2p_action_subtype. */
|
|
|
|
|
|
+void dot11f_pack_ff_vendor_action_subtype(tpAniSirGlobal pCtx,
|
|
|
+ tDot11fFfvendor_action_subtype *pSrc,
|
|
|
+ uint8_t *pBuf)
|
|
|
+{
|
|
|
+ *pBuf = pSrc->subtype;
|
|
|
+ (void)pCtx;
|
|
|
+} /* End dot11f_pack_ff_vendor_action_subtype. */
|
|
|
+
|
|
|
+void dot11f_pack_ff_vendor_oui(tpAniSirGlobal pCtx,
|
|
|
+ tDot11fFfvendor_oui *pSrc,
|
|
|
+ uint8_t *pBuf)
|
|
|
+{
|
|
|
+ DOT11F_MEMCPY(pCtx, pBuf, pSrc->oui_data, 3);
|
|
|
+ (void)pCtx;
|
|
|
+} /* End dot11f_pack_ff_vendor_oui. */
|
|
|
+
|
|
|
uint32_t dot11f_pack_tlv_authorized_ma_cs(tpAniSirGlobal pCtx,
|
|
|
tDot11fTLVAuthorizedMACs *pSrc,
|
|
|
uint8_t *pBuf,
|
|
@@ -27494,6 +27579,21 @@ uint32_t dot11f_pack_p2p_oper_chan_change_confirm(tpAniSirGlobal pCtx,
|
|
|
|
|
|
} /* End dot11f_unpack_p2p_oper_chan_change_confirm. */
|
|
|
|
|
|
+uint32_t dot11f_pack_vendor_action_frame(tpAniSirGlobal pCtx,
|
|
|
+ tDot11fvendor_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_vendor_action_frame, IES_vendor_action_frame);
|
|
|
+
|
|
|
+ return status;
|
|
|
+
|
|
|
+} /* End dot11f_unpack_vendor_action_frame. */
|
|
|
+
|
|
|
static uint32_t pack_core(tpAniSirGlobal pCtx,
|
|
|
uint8_t *pSrc,
|
|
|
uint8_t *pBuf,
|
|
@@ -27714,6 +27814,16 @@ static uint32_t pack_core(tpAniSirGlobal pCtx,
|
|
|
pCtx, (tDot11fFfp2p_action_subtype *)
|
|
|
(pSrc + pFf->offset), pBufRemaining);
|
|
|
break;
|
|
|
+ case SigFfvendor_action_subtype:
|
|
|
+ dot11f_pack_ff_vendor_action_subtype(
|
|
|
+ pCtx, (tDot11fFfvendor_action_subtype *)
|
|
|
+ (pSrc + pFf->offset), pBufRemaining);
|
|
|
+ break;
|
|
|
+ case SigFfvendor_oui:
|
|
|
+ dot11f_pack_ff_vendor_oui(
|
|
|
+ pCtx, (tDot11fFfvendor_oui *)
|
|
|
+ (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"
|