qcacld-3.0: Implement DP component per packet TX/RX support
Implement per packet TX/RX support in DP componentization model. This change will help to process per packet TX/RX path in STA interface. Change-Id: I3fbd8dbe26ccd24fc50c6e67cd1213c72837cf9b CRs-Fixed: 3173449
这个提交包含在:
@@ -32,6 +32,66 @@
|
||||
#include <ani_system_defs.h>
|
||||
#include "cdp_txrx_ops.h"
|
||||
#include <qdf_defer.h>
|
||||
#include <qdf_types.h>
|
||||
|
||||
#define DP_MAX_SUBTYPES_TRACKED 4
|
||||
|
||||
enum dp_rx_offld_flush_cb {
|
||||
DP_RX_FLUSH_LRO,
|
||||
DP_RX_FLUSH_THREAD,
|
||||
DP_RX_FLUSH_NAPI,
|
||||
};
|
||||
|
||||
enum dp_nbuf_push_type {
|
||||
DP_NBUF_PUSH_NI,
|
||||
DP_NBUF_PUSH_NAPI,
|
||||
DP_NBUF_PUSH_BH_DISABLE,
|
||||
DP_NBUF_PUSH_SIMPLE,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct dp_eapol_stats - eapol debug stats count
|
||||
* @eapol_m1_count: eapol m1 count
|
||||
* @eapol_m2_count: eapol m2 count
|
||||
* @eapol_m3_count: eapol m3 count
|
||||
* @eapol_m4_count: eapol m4 count
|
||||
* @tx_dropped: no of tx frames dropped by host
|
||||
* @tx_noack_cnt: no of frames for which there is no ack
|
||||
* @rx_delivered: no. of frames delivered to network stack
|
||||
* @rx_refused: no of frames not delivered to network stack
|
||||
*/
|
||||
struct dp_eapol_stats {
|
||||
uint16_t eapol_m1_count;
|
||||
uint16_t eapol_m2_count;
|
||||
uint16_t eapol_m3_count;
|
||||
uint16_t eapol_m4_count;
|
||||
uint16_t tx_dropped[DP_MAX_SUBTYPES_TRACKED];
|
||||
uint16_t tx_noack_cnt[DP_MAX_SUBTYPES_TRACKED];
|
||||
uint16_t rx_delivered[DP_MAX_SUBTYPES_TRACKED];
|
||||
uint16_t rx_refused[DP_MAX_SUBTYPES_TRACKED];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct dp_dhcp_stats - dhcp debug stats count
|
||||
* @dhcp_dis_count: dhcp discovery count
|
||||
* @dhcp_off_count: dhcp offer count
|
||||
* @dhcp_req_count: dhcp request count
|
||||
* @dhcp_ack_count: dhcp ack count
|
||||
* @tx_dropped: no of tx frames dropped by host
|
||||
* @tx_noack_cnt: no of frames for which there is no ack
|
||||
* @rx_delivered: no. of frames delivered to network stack
|
||||
* @rx_refused: no of frames not delivered to network stack
|
||||
*/
|
||||
struct dp_dhcp_stats {
|
||||
uint16_t dhcp_dis_count;
|
||||
uint16_t dhcp_off_count;
|
||||
uint16_t dhcp_req_count;
|
||||
uint16_t dhcp_ack_count;
|
||||
uint16_t tx_dropped[DP_MAX_SUBTYPES_TRACKED];
|
||||
uint16_t tx_noack_cnt[DP_MAX_SUBTYPES_TRACKED];
|
||||
uint16_t rx_delivered[DP_MAX_SUBTYPES_TRACKED];
|
||||
uint16_t rx_refused[DP_MAX_SUBTYPES_TRACKED];
|
||||
};
|
||||
|
||||
#ifdef TX_MULTIQ_PER_AC
|
||||
#define TX_GET_QUEUE_IDX(ac, off) (((ac) * TX_QUEUES_PER_AC) + (off))
|
||||
@@ -530,10 +590,41 @@ union wlan_tp_data {
|
||||
* @dp_nud_failure_work: Callback API to handle NUD failuire work
|
||||
*/
|
||||
struct wlan_dp_psoc_callbacks {
|
||||
void (*os_if_dp_gro_rx)(struct sk_buff *skb, uint8_t napi_to_use,
|
||||
bool flush_gro);
|
||||
hdd_cb_handle callback_ctx;
|
||||
|
||||
QDF_STATUS (*dp_get_nw_intf_mac_by_vdev_mac)(struct qdf_mac_addr *mac_addr,
|
||||
struct qdf_mac_addr *intf_mac);
|
||||
unsigned int (*dp_get_tx_flow_low_watermark)(hdd_cb_handle cb_ctx,
|
||||
uint8_t intf_id);
|
||||
void (*dp_get_tx_resource)(uint8_t intf_id, struct qdf_mac_addr *mac_addr);
|
||||
void (*dp_get_tsf_time)(uint8_t intf_id,
|
||||
uint64_t input_time, uint64_t *tsf_time);
|
||||
|
||||
void (*dp_tsf_timestamp_rx)(hdd_cb_handle ctx, qdf_nbuf_t nbuf);
|
||||
|
||||
QDF_STATUS (*dp_nbuf_push_pkt)(qdf_nbuf_t nbuf,
|
||||
enum dp_nbuf_push_type type);
|
||||
|
||||
QDF_STATUS (*dp_rx_napi_gro_flush)(qdf_napi_struct *napi_to_use,
|
||||
qdf_nbuf_t nbuf,
|
||||
uint8_t *force_flush);
|
||||
QDF_STATUS (*dp_rx_napi_gro_receive)(qdf_napi_struct *napi_to_use,
|
||||
qdf_nbuf_t nbuf);
|
||||
|
||||
QDF_STATUS (*dp_lro_rx_cb)(qdf_netdev_t netdev, qdf_nbuf_t nbuf);
|
||||
|
||||
qdf_napi_struct *(*dp_gro_rx_legacy_get_napi)(qdf_nbuf_t nbuf,
|
||||
bool enable_rx_thread);
|
||||
|
||||
void (*dp_register_rx_offld_flush_cb)(enum dp_rx_offld_flush_cb type);
|
||||
|
||||
QDF_STATUS (*dp_rx_check_qdisc_configured)(qdf_netdev_t dev,
|
||||
uint8_t rx_ctx_id);
|
||||
|
||||
bool (*dp_is_gratuitous_arp_unsolicited_na)(qdf_nbuf_t nbuf);
|
||||
|
||||
QDF_STATUS (*dp_send_rx_pkt_over_nl)(qdf_netdev_t dev, uint8_t *addr,
|
||||
qdf_nbuf_t nbuf, bool unecrypted);
|
||||
bool
|
||||
(*wlan_dp_sta_get_dot11mode)(hdd_cb_handle context, uint8_t vdev_id,
|
||||
enum qca_wlan_802_11_mode *dot11_mode);
|
||||
@@ -626,6 +717,7 @@ struct wlan_dp_psoc_nb_ops {
|
||||
*/
|
||||
struct wlan_dp_user_config {
|
||||
bool ipa_enable;
|
||||
uint32_t arp_connectivity_map;
|
||||
};
|
||||
|
||||
#endif /* end of _WLAN_DP_PUBLIC_STRUCT_H_ */
|
||||
|
@@ -138,6 +138,260 @@ void ucfg_dp_resume_wlan(struct wlan_objmgr_psoc *psoc);
|
||||
QDF_STATUS
|
||||
ucfg_dp_update_config(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_dp_user_config *req);
|
||||
/**
|
||||
* ucfg_dp_wait_complete_tasks() - wait for DP tasks to complete
|
||||
* Called from legacy layer to wait DP tasks completion
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void
|
||||
ucfg_dp_wait_complete_tasks(void);
|
||||
|
||||
/**
|
||||
* ucfg_dp_remove_conn_info() - Remove DP STA intf connection info
|
||||
* @vdev: vdev mapped to STA DP interface
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
void
|
||||
ucfg_dp_remove_conn_info(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_conn_info_set_bssid() - set BSSID info in STA intf
|
||||
* @vdev: vdev mapped to STA DP interface
|
||||
* @bssid: BSSID mac
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_conn_info_set_bssid(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *bssid);
|
||||
|
||||
/**
|
||||
* ucfg_dp_conn_info_set_arp_service() - set ARP service info
|
||||
* @vdev: vdev mapped to STA DP interface
|
||||
* @proxy_arp_service: ARP service info
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_conn_info_set_arp_service(struct wlan_objmgr_vdev *vdev,
|
||||
uint8_t proxy_arp_service);
|
||||
|
||||
/**
|
||||
* ucfg_dp_conn_info_set_peer_authenticate() - set Peer authenticated state
|
||||
* @vdev: vdev mapped to STA DP interface
|
||||
* is_authenticated: Peer authenticated info
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_conn_info_set_peer_authenticate(struct wlan_objmgr_vdev *vdev,
|
||||
uint8_t is_authenticated);
|
||||
|
||||
/**
|
||||
* ucfg_dp_conn_info_set_peer_mac() - set peer mac info in DP intf
|
||||
* @vdev: vdev mapped to STA DP interface
|
||||
* peer_mac: Peer MAC information
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_conn_info_set_peer_mac(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *peer_mac);
|
||||
|
||||
/**
|
||||
* ucfg_dp_softap_check_wait_for_tx_eap_pkt() - wait for TX EAP pkt in SAP
|
||||
* @vdev: vdev mapped to SAP DP interface
|
||||
* mac_addr: Peer MAC address info
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_softap_check_wait_for_tx_eap_pkt(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *mac_addr);
|
||||
|
||||
/**
|
||||
* ucfg_dp_update_dhcp_state_on_disassoc() - update DHCP during disassoc
|
||||
* @vdev: vdev mapped to SAP DP interface
|
||||
* mac_addr: Peer MAC address info
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_update_dhcp_state_on_disassoc(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *mac_addr);
|
||||
|
||||
/**
|
||||
* ucfg_dp_set_dfs_cac_tx() - update DFS CAC TX block info
|
||||
* @vdev: vdev mapped to SAP DP interface
|
||||
* tx_block: true if TX need to be blocked
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_set_dfs_cac_tx(struct wlan_objmgr_vdev *vdev,
|
||||
bool tx_block);
|
||||
|
||||
/**
|
||||
* ucfg_dp_set_bss_state_start() - update BSS state for SAP intf
|
||||
* @vdev: vdev mapped to SAP DP interface
|
||||
* start: true if BSS state is started
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_set_bss_state_start(struct wlan_objmgr_vdev *vdev, bool start);
|
||||
|
||||
/**
|
||||
* ucfg_dp_lro_set_reset() - LRO set/reset in DP
|
||||
* @vdev: vdev mapped to DP interface
|
||||
* enable_flag: Enable/disable LRO feature
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_lro_set_reset(struct wlan_objmgr_vdev *vdev,
|
||||
uint8_t enable_flag);
|
||||
/**
|
||||
* ucfg_dp_is_ol_enabled() - Get ol enable/disable info
|
||||
* @psoc: PSOC mapped to DP context
|
||||
*
|
||||
* Return: true if OL enabled
|
||||
*/
|
||||
bool ucfg_dp_is_ol_enabled(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
#ifdef RECEIVE_OFFLOAD
|
||||
/**
|
||||
* ucfg_dp_rx_handle_concurrency() - Handle concurrency setting in DP
|
||||
* @psoc: PSOC mapped to DP context
|
||||
* @is_wifi3_0_target: true if it is wifi3.0 target
|
||||
* @is_concurrency: Is concurrency enabled/disabled
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_rx_handle_concurrency(struct wlan_objmgr_psoc *psoc,
|
||||
bool is_wifi3_0_target,
|
||||
bool is_concurrency);
|
||||
#else
|
||||
static inline
|
||||
void ucfg_dp_rx_handle_concurrency(struct wlan_objmgr_psoc *psoc,
|
||||
bool is_wifi3_0_target,
|
||||
bool is_concurrency) { }
|
||||
#endif
|
||||
|
||||
/**
|
||||
* ucfg_dp_is_rx_common_thread_enabled() - Get common thread enable/disable info
|
||||
* @psoc: PSOC mapped to DP context
|
||||
*
|
||||
* Return: true if common thread enabled
|
||||
*/
|
||||
bool ucfg_dp_is_rx_common_thread_enabled(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_is_rx_threads_enabled() - Get RX DP threads info
|
||||
* @psoc: PSOC mapped to DP context
|
||||
*
|
||||
* Return: true if DP RX threads enabled
|
||||
*/
|
||||
bool ucfg_dp_is_rx_threads_enabled(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_rx_ol_init() - Initialize Rx offload mode (LRO or GRO)
|
||||
* @psoc: PSOC mapped to DP context
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_rx_ol_init(struct wlan_objmgr_psoc *psoc,
|
||||
bool is_wifi3_0_target);
|
||||
|
||||
/**
|
||||
* ucfg_dp_init_txrx() - Initialize STA DP init TX/RX
|
||||
* @vdev: vdev mapped to STA DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_init_txrx(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_deinit_txrx() - Deinitialize STA DP init TX/RX
|
||||
* @vdev: vdev mapped to STA DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_deinit_txrx(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_softap_init_txrx() - Initialize SAP DP init TX/RX
|
||||
* @vdev: vdev mapped to SAP DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_softap_init_txrx(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_softap_deinit_txrx() - Deinitialize SAP DP init TX/RX
|
||||
* @vdev: vdev mapped to SAP DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_softap_deinit_txrx(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_start_xmit() - Transmit packet on STA interface
|
||||
* @nbuf: n/w buffer to transmitted
|
||||
* @vdev: vdev mapped to STA DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS
|
||||
ucfg_dp_start_xmit(qdf_nbuf_t nbuf, struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_rx_packet_cbk() - Receive packet on STA interface
|
||||
* @nbuf: n/w buffer to be received
|
||||
* @vdev: vdev mapped to STA DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_rx_packet_cbk(struct wlan_objmgr_vdev *vdev,
|
||||
qdf_nbuf_t nbuf);
|
||||
|
||||
/**
|
||||
* ucfg_dp_tx_timeout() - called during transmission timeout on STA
|
||||
* @vdev: vdev mapped to STA DP interface
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_tx_timeout(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_softap_tx_timeout() - called during transmission timeout on SAP
|
||||
* @vdev: vdev mapped to SAP DP interface
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_softap_tx_timeout(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_softap_start_xmit() - Transmit packet on SAP interface
|
||||
* @nbuf: n/w buffer to transmitted
|
||||
* @vdev: vdev mapped to SAP DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS
|
||||
ucfg_dp_softap_start_xmit(qdf_nbuf_t nbuf, struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_get_dev_stats() - Get netdev stats info
|
||||
* @intf_addr: DP interface MAC address
|
||||
*
|
||||
* Return: qdf_net_dev_stats info
|
||||
*/
|
||||
qdf_net_dev_stats *ucfg_dp_get_dev_stats(struct qdf_mac_addr *intf_addr);
|
||||
|
||||
/**
|
||||
* ucfg_dp_inc_rx_pkt_stats() - DP increment RX pkt stats
|
||||
* @vdev: VDEV mapped to DP interface
|
||||
* pkt_len: packet length to be incremented in stats
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_inc_rx_pkt_stats(struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t pkt_len,
|
||||
bool delivered);
|
||||
|
||||
/**
|
||||
* ucfg_dp_get_rx_softirq_yield_duration() - Get rx soft IRQ yield duration
|
||||
@@ -154,6 +408,72 @@ ucfg_dp_get_rx_softirq_yield_duration(struct wlan_objmgr_psoc *psoc);
|
||||
*/
|
||||
void ucfg_dp_register_rx_mic_error_ind_handler(void *soc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_sta_register_txrx_ops() - Register ops for TX/RX operations in STA
|
||||
* @vdev: vdev mapped to STA DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_sta_register_txrx_ops(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
/**
|
||||
* ucfg_dp_tdlsta_register_txrx_ops() - Register ops for TX/RX operations
|
||||
* @vdev: vdev mapped to TDLS STA DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_tdlsta_register_txrx_ops(struct wlan_objmgr_vdev *vdev);
|
||||
#else
|
||||
static inline
|
||||
QDF_STATUS ucfg_dp_tdlsta_register_txrx_ops(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* ucfg_dp_ocb_register_txrx_ops() - Register ops for TX/RX operations
|
||||
* @vdev: vdev mapped to OCB DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_ocb_register_txrx_ops(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
#ifdef FEATURE_MONITOR_MODE_SUPPORT
|
||||
/**
|
||||
* ucfg_dp_mon_register_txrx_ops() - Register ops for TX/RX operations
|
||||
* @vdev: vdev mapped to Monitor mode DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_mon_register_txrx_ops(struct wlan_objmgr_vdev *vdev);
|
||||
#else
|
||||
static inline
|
||||
QDF_STATUS ucfg_dp_mon_register_txrx_ops(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* ucfg_dp_softap_register_txrx_ops() - Register ops for TX/RX operations
|
||||
* @vdev: vdev mapped to SAP mode DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_softap_register_txrx_ops(struct wlan_objmgr_vdev *vdev,
|
||||
struct ol_txrx_ops *txrx_ops);
|
||||
|
||||
/**
|
||||
* ucfg_dp_register_pkt_capture_callbacks() - Register ops for pkt capture operations
|
||||
* @vdev: vdev mapped to DP interface
|
||||
*
|
||||
* Return: 0 on success and non zero on failure.
|
||||
*/
|
||||
QDF_STATUS
|
||||
ucfg_dp_register_pkt_capture_callbacks(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_bbm_context_init() - Initialize BBM context
|
||||
* @psoc: psoc handle
|
||||
@@ -497,6 +817,14 @@ void ucfg_dp_clear_dns_payload_value(struct wlan_objmgr_vdev *vdev);
|
||||
void ucfg_dp_set_pkt_type_bitmap_value(struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t value);
|
||||
|
||||
/**
|
||||
* ucfg_dp_intf_get_pkt_type_bitmap_value() - Get packt type bitmap info
|
||||
* @intf_ctx: DP interface context
|
||||
*
|
||||
* Return: bitmap information
|
||||
*/
|
||||
uint32_t ucfg_dp_intf_get_pkt_type_bitmap_value(void *intf_ctx);
|
||||
|
||||
/**
|
||||
* ucfg_dp_set_track_dest_ipv4_value() - Set track_dest_ipv4 value
|
||||
* @vdev: vdev context
|
||||
@@ -732,4 +1060,93 @@ uint32_t ucfg_dp_get_bus_bw_compute_interval(struct wlan_objmgr_psoc *psoc);
|
||||
* Return: current bandwidth level
|
||||
*/
|
||||
int ucfg_dp_get_current_throughput_level(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_get_txrx_stats() - get current bandwidth level
|
||||
* @vdev: vdev handle
|
||||
* @dp_stats : dp_stats pointer
|
||||
*
|
||||
* This function update dp_stats pointer with DP component
|
||||
* txrx stats
|
||||
* Return: 0 on success
|
||||
*/
|
||||
QDF_STATUS ucfg_dp_get_txrx_stats(struct wlan_objmgr_vdev *vdev,
|
||||
struct dp_tx_rx_stats *dp_stats);
|
||||
|
||||
/**
|
||||
* ucfg_dp_reset_cont_txtimeout_cnt() - Reset Tx Timeout count
|
||||
* @vdev: vdev handle
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_reset_cont_txtimeout_cnt(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_set_rx_thread_affinity() - Set rx thread affinity mask
|
||||
* @psoc: psoc handle
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_set_rx_thread_affinity(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_get_disable_rx_ol_val() - Get Rx OL concurrency value
|
||||
* @psoc: psoc handle
|
||||
* @disable_conc : disable rx OL concurrency value
|
||||
* @disable_low_tput : disable rx OL low tput value
|
||||
*
|
||||
* this function reads and update value in pointer variable
|
||||
* passed as arguments to function.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
|
||||
void ucfg_dp_get_disable_rx_ol_val(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t *disable_conc,
|
||||
uint8_t *disable_low_tput);
|
||||
|
||||
/**
|
||||
* ucfg_dp_get_rx_aggregation_val() - Get Rx aggregation values
|
||||
* @psoc: psoc handle
|
||||
*
|
||||
* Return: Rx aggregation value
|
||||
*/
|
||||
uint32_t ucfg_dp_get_rx_aggregation_val(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_set_rx_aggregation_val() - Set rx aggregation value
|
||||
* @psoc: psoc handle
|
||||
* @value : value to be set
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_set_rx_aggregation_val(struct wlan_objmgr_psoc *psoc,
|
||||
uint32_t value);
|
||||
|
||||
/**
|
||||
* ucfg_dp_set_force_gro_enable() - Set force gro enable
|
||||
* @psoc: psoc handle
|
||||
* @value : value to be set
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_set_force_gro_enable(struct wlan_objmgr_psoc *psoc, bool value);
|
||||
|
||||
/**
|
||||
* ucfg_dp_runtime_disable_rx_thread() - Disable rx thread
|
||||
* @psoc: psoc handle
|
||||
* @value : value to be set (true/false)
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_runtime_disable_rx_thread(struct wlan_objmgr_vdev *vdev,
|
||||
bool value);
|
||||
|
||||
/**
|
||||
* ucfg_dp_get_napi_enabled() - Get NAPI enabled/disabled info
|
||||
* @psoc: psoc handle mapped to DP context
|
||||
*
|
||||
* Return: true if NAPI enabled
|
||||
*/
|
||||
bool ucfg_dp_get_napi_enabled(struct wlan_objmgr_psoc *psoc);
|
||||
#endif /* _WLAN_DP_UCFG_API_H_ */
|
||||
|
在新工单中引用
屏蔽一个用户