|
@@ -223,10 +223,18 @@ struct cfr_capture_params {
|
|
* struct psoc_cfr - private psoc object for cfr
|
|
* struct psoc_cfr - private psoc object for cfr
|
|
* psoc_obj: pointer to psoc object
|
|
* psoc_obj: pointer to psoc object
|
|
* is_cfr_capable: flag to determine if cfr is enabled or not
|
|
* is_cfr_capable: flag to determine if cfr is enabled or not
|
|
|
|
+ * is_cap_interval_mode_sel_support: flag to determine if target supports both
|
|
|
|
+ * capture_count and capture_duration modes
|
|
|
|
+ * with a nob provided to configure
|
|
|
|
+ * is_mo_marking_support: flag to determine if MO marking is supported or not
|
|
*/
|
|
*/
|
|
struct psoc_cfr {
|
|
struct psoc_cfr {
|
|
struct wlan_objmgr_psoc *psoc_obj;
|
|
struct wlan_objmgr_psoc *psoc_obj;
|
|
uint8_t is_cfr_capable;
|
|
uint8_t is_cfr_capable;
|
|
|
|
+#ifdef WLAN_ENH_CFR_ENABLE
|
|
|
|
+ uint8_t is_cap_interval_mode_sel_support;
|
|
|
|
+ uint8_t is_mo_marking_support;
|
|
|
|
+#endif
|
|
};
|
|
};
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -402,11 +410,16 @@ struct ta_ra_cfr_cfg {
|
|
* m_ta_ra_filter: Filter Frames based on TA/RA/Subtype as provided in CFR Group
|
|
* m_ta_ra_filter: Filter Frames based on TA/RA/Subtype as provided in CFR Group
|
|
* config
|
|
* config
|
|
* m_all_packet: Filter in All packets for CFR Capture
|
|
* m_all_packet: Filter in All packets for CFR Capture
|
|
|
|
+ * en_ta_ra_filter_in_as_fp: Filter in frames as FP/MO in m_ta_ra_filter mode
|
|
* num_grp_tlvs: Indicates the number of groups in M_TA_RA mode, that have
|
|
* num_grp_tlvs: Indicates the number of groups in M_TA_RA mode, that have
|
|
* changes in the current commit session, use to construct WMI group TLV(s)
|
|
* changes in the current commit session, use to construct WMI group TLV(s)
|
|
* curr: Placeholder for M_TA_RA group config in current commit session
|
|
* curr: Placeholder for M_TA_RA group config in current commit session
|
|
* modified_in_curr_session: Bitmap indicating number of groups in M_TA_RA mode
|
|
* modified_in_curr_session: Bitmap indicating number of groups in M_TA_RA mode
|
|
* that have changed in current commit session.
|
|
* that have changed in current commit session.
|
|
|
|
+ * capture_count: After capture_count+1 number of captures, MAC stops RCC and
|
|
|
|
+ * waits for capture_interval duration before enabling again
|
|
|
|
+ * capture_intval_mode_sel: 0 indicates capture_duration mode, 1 indicates the
|
|
|
|
+ * capture_count mode.
|
|
*/
|
|
*/
|
|
struct cfr_rcc_param {
|
|
struct cfr_rcc_param {
|
|
uint8_t pdev_id;
|
|
uint8_t pdev_id;
|
|
@@ -420,17 +433,21 @@ struct cfr_rcc_param {
|
|
freeze_tlv_delay_cnt_thr :8,
|
|
freeze_tlv_delay_cnt_thr :8,
|
|
rsvd0 :7;
|
|
rsvd0 :7;
|
|
uint16_t filter_group_bitmap;
|
|
uint16_t filter_group_bitmap;
|
|
- uint8_t m_directed_ftm : 1,
|
|
|
|
- m_all_ftm_ack : 1,
|
|
|
|
- m_ndpa_ndp_directed : 1,
|
|
|
|
- m_ndpa_ndp_all : 1,
|
|
|
|
- m_ta_ra_filter : 1,
|
|
|
|
- m_all_packet : 1,
|
|
|
|
- rsvd1 : 2;
|
|
|
|
|
|
+ uint8_t m_directed_ftm : 1,
|
|
|
|
+ m_all_ftm_ack : 1,
|
|
|
|
+ m_ndpa_ndp_directed : 1,
|
|
|
|
+ m_ndpa_ndp_all : 1,
|
|
|
|
+ m_ta_ra_filter : 1,
|
|
|
|
+ m_all_packet : 1,
|
|
|
|
+ en_ta_ra_filter_in_as_fp : 1,
|
|
|
|
+ rsvd1 : 1;
|
|
uint8_t num_grp_tlvs;
|
|
uint8_t num_grp_tlvs;
|
|
|
|
|
|
struct ta_ra_cfr_cfg curr[MAX_TA_RA_ENTRIES];
|
|
struct ta_ra_cfr_cfg curr[MAX_TA_RA_ENTRIES];
|
|
uint16_t modified_in_curr_session;
|
|
uint16_t modified_in_curr_session;
|
|
|
|
+ uint32_t capture_count :16,
|
|
|
|
+ capture_intval_mode_sel :1,
|
|
|
|
+ rsvd2 :15;
|
|
};
|
|
};
|
|
#endif /* WLAN_ENH_CFR_ENABLE */
|
|
#endif /* WLAN_ENH_CFR_ENABLE */
|
|
|
|
|
|
@@ -476,6 +493,9 @@ struct cfr_rcc_param {
|
|
* last_success_tstamp: DBR timestamp which indicates that both DBR and TX/RX
|
|
* last_success_tstamp: DBR timestamp which indicates that both DBR and TX/RX
|
|
* events have been received successfully.
|
|
* events have been received successfully.
|
|
* cfr_dma_aborts: No. of CFR DMA aborts in ucode
|
|
* cfr_dma_aborts: No. of CFR DMA aborts in ucode
|
|
|
|
+ * is_cap_interval_mode_sel_support: flag to determine if target supports both
|
|
|
|
+ * is_mo_marking_support: flag to determine if MO marking is supported or not
|
|
|
|
+ * capture_count and capture_duration modes with a nob provided to configure.
|
|
* unassoc_pool: Pool of un-associated clients used when capture method is
|
|
* unassoc_pool: Pool of un-associated clients used when capture method is
|
|
* CFR_CAPTURE_METHOD_PROBE_RESPONSE
|
|
* CFR_CAPTURE_METHOD_PROBE_RESPONSE
|
|
* lut_lock: Lock to protect access to cfr lookup table
|
|
* lut_lock: Lock to protect access to cfr lookup table
|
|
@@ -521,6 +541,8 @@ struct pdev_cfr {
|
|
uint64_t clear_txrx_event;
|
|
uint64_t clear_txrx_event;
|
|
uint64_t last_success_tstamp;
|
|
uint64_t last_success_tstamp;
|
|
uint64_t cfr_dma_aborts;
|
|
uint64_t cfr_dma_aborts;
|
|
|
|
+ uint8_t is_cap_interval_mode_sel_support;
|
|
|
|
+ uint8_t is_mo_marking_support;
|
|
#endif
|
|
#endif
|
|
struct unassoc_pool_entry unassoc_pool[MAX_CFR_ENABLED_CLIENTS];
|
|
struct unassoc_pool_entry unassoc_pool[MAX_CFR_ENABLED_CLIENTS];
|
|
qdf_spinlock_t lut_lock;
|
|
qdf_spinlock_t lut_lock;
|