qcacld-3.0: Add get and set stats API to DP component

Add Get and Set stats API.

Change-Id: Ie00e973234d14e4110f8e028600d8a52728b29d6
CRs-Fixed: 3165194
This commit is contained in:
Amit Mehta
2022-03-08 03:53:35 -08:00
کامیت شده توسط Madan Koyyalamudi
والد d5f826cd34
کامیت 3cdb874884
5فایلهای تغییر یافته به همراه1423 افزوده شده و 0 حذف شده

مشاهده پرونده

@@ -448,6 +448,246 @@ uint8_t ucfg_dp_nud_tracking_enabled(struct wlan_objmgr_psoc *psoc);
*/
void ucfg_dp_nud_indicate_roam(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_clear_arp_stats() - Clear ARP Stats
* @vdev: vdev context
*
* Return: None
*/
void ucfg_dp_clear_arp_stats(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_clear_dns_stats() - Clear DNS Stats
* @vdev: vdev context
*
* Return: None
*/
void ucfg_dp_clear_dns_stats(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_clear_tcp_stats() - Clear TCP Stats
* @vdev: vdev context
*
* Return: None
*/
void ucfg_dp_clear_tcp_stats(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_clear_icmpv4_stats() - Clear ICMPv4 Stats
* @vdev: vdev context
*
* Return: None
*/
void ucfg_dp_clear_icmpv4_stats(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_clear_dns_payload_value() - Clear DNS payload value
* @vdev: vdev context
*
* Return: None
*/
void ucfg_dp_clear_dns_payload_value(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_set_pkt_type_bitmap_value() - Set Packet type bitmap value
* @vdev: vdev context
*
* Return: None
*/
void ucfg_dp_set_pkt_type_bitmap_value(struct wlan_objmgr_vdev *vdev,
uint32_t value);
/**
* ucfg_dp_set_track_dest_ipv4_value() - Set track_dest_ipv4 value
* @vdev: vdev context
*
* Return: None
*/
void ucfg_dp_set_track_dest_ipv4_value(struct wlan_objmgr_vdev *vdev,
uint32_t value);
/**
* ucfg_dp_set_track_dest_port_value() - Set track_dest_port value
* @vdev: vdev context
*
* Return: None
*/
void ucfg_dp_set_track_dest_port_value(struct wlan_objmgr_vdev *vdev,
uint32_t value);
/**
* ucfg_dp_set_track_src_port_value() - Set track_dest_port value
* @vdev: vdev context
*
* Return: None
*/
void ucfg_dp_set_track_src_port_value(struct wlan_objmgr_vdev *vdev,
uint32_t value);
/**
* ucfg_dp_set_track_dns_domain_len_value() - Set track_dns_domain_len value
* @vdev: vdev context
*
* Return: None
*/
void ucfg_dp_set_track_dns_domain_len_value(struct wlan_objmgr_vdev *vdev,
uint32_t value);
/**
* ucfg_dp_set_track_arp_ip_value() - Set track_arp_ip value
* @vdev: vdev context
*
* Return: None
*/
void ucfg_dp_set_track_arp_ip_value(struct wlan_objmgr_vdev *vdev,
uint32_t value);
/**
* ucfg_dp_get_pkt_type_bitmap_value() - Get pkt_type_bitmap value
* @vdev: vdev context
*
* Return: pkt_type_bitmap value
*/
uint32_t ucfg_dp_get_pkt_type_bitmap_value(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_get_dns_payload_value() - Get dns_payload value
* @vdev: vdev context
* @dns_query : DNS query pointer
* Return: None
*/
void ucfg_dp_get_dns_payload_value(struct wlan_objmgr_vdev *vdev,
uint8_t *dns_query);
/**
* ucfg_dp_get_track_dns_domain_len_value() - Get track_dns_domain_len value
* @vdev: vdev context
*
* Return: track_dns_domain_len value
*/
uint32_t ucfg_dp_get_track_dns_domain_len_value(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_get_track_dest_port_value() - Get track_dest_port value
* @vdev: vdev context
*
* Return: track_dest_port value
*/
uint32_t ucfg_dp_get_track_dest_port_value(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_get_track_src_port_value() - Get track_src_port value
* @vdev: vdev context
*
* Return: track_src_port value
*/
uint32_t ucfg_dp_get_track_src_port_value(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_get_track_dest_ipv4_value() - Get track_dest_ipv4 value
* @vdev: vdev context
*
* Return: track_dest_ipv4 value
*/
uint32_t ucfg_dp_get_track_dest_ipv4_value(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_get_dad_value() - Get dad value
* @vdev: vdev context
*
* Return: dad value
*/
bool ucfg_dp_get_dad_value(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_get_con_status_value() - Get con_status value
* @vdev: vdev context
*
* Return: con_status value
*/
bool ucfg_dp_get_con_status_value(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_get_intf_id() - Get intf_id
* @vdev: vdev context
*
* Return: intf_id
*/
uint8_t ucfg_dp_get_intf_id(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_get_arp_stats() - Get ARP stats
* @vdev: vdev context
*
* Return: ARP Stats
*/
struct dp_arp_stats *ucfg_dp_get_arp_stats(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_get_icmpv4_stats() - Get ICMPv4 stats
* @vdev: vdev context
*
* Return: ICMPv4 Stats
*/
struct dp_icmpv4_stats
*ucfg_dp_get_icmpv4_stats(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_get_tcp_stats() - Get TCP stats
* @vdev: vdev context
*
* Return: TCP Stats
*/
struct dp_tcp_stats *ucfg_dp_get_tcp_stats(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_get_dns_stats() - Get DNS stats
* @vdev: vdev context
*
* Return: DNS Stats
*/
struct dp_dns_stats *ucfg_dp_get_dns_stats(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_dp_set_nud_stats_cb() - Register callback with WMI
* @psoc: psoc context
* @cookie: callback context
*
* Return: None
*/
void ucfg_dp_set_nud_stats_cb(struct wlan_objmgr_psoc *psoc, void *cookie);
/**
* ucfg_dp_clear_nud_stats_cb() - Unregister callback with WMI
* @psoc: psoc context
*
* Return: None
*/
void ucfg_dp_clear_nud_stats_cb(struct wlan_objmgr_psoc *psoc);
/**
* ucfg_dp_req_get_arp_stats() - Send Get ARP set request to FW
* @psoc: psoc context
* @params : Get ARP stats param
*
* Return: Status
*/
QDF_STATUS
ucfg_dp_req_get_arp_stats(struct wlan_objmgr_psoc *psoc,
struct dp_get_arp_stats_params *params);
/**
* ucfg_dp_req_set_arp_stats() - Send Set ARP set request to FW
* @psoc: psoc context
* @params : Set ARP stats param
*
* Return: Status
*/
QDF_STATUS
ucfg_dp_req_set_arp_stats(struct wlan_objmgr_psoc *psoc,
struct dp_set_arp_stats_params *params);
/**
* ucfg_dp_register_hdd_callbacks() - Resiter HDD callbacks with DP component
* @psoc: psoc handle

مشاهده پرونده

@@ -674,6 +674,315 @@ void ucfg_dp_nud_indicate_roam(struct wlan_objmgr_vdev *vdev)
dp_nud_indicate_roam(vdev);
}
void ucfg_dp_clear_arp_stats(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
qdf_mem_zero(&dp_intf->dp_stats.arp_stats,
sizeof(dp_intf->dp_stats.arp_stats));
}
void ucfg_dp_clear_dns_stats(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
qdf_mem_zero(&dp_intf->dp_stats.dns_stats,
sizeof(dp_intf->dp_stats.dns_stats));
}
void ucfg_dp_clear_tcp_stats(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
qdf_mem_zero(&dp_intf->dp_stats.tcp_stats,
sizeof(dp_intf->dp_stats.tcp_stats));
}
void ucfg_dp_clear_icmpv4_stats(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
qdf_mem_zero(&dp_intf->dp_stats.icmpv4_stats,
sizeof(dp_intf->dp_stats.icmpv4_stats));
}
void ucfg_dp_clear_dns_payload_value(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
qdf_mem_zero(dp_intf->dns_payload, dp_intf->track_dns_domain_len);
}
void ucfg_dp_set_pkt_type_bitmap_value(struct wlan_objmgr_vdev *vdev,
uint32_t value)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
dp_intf->pkt_type_bitmap = value;
}
void ucfg_dp_set_track_dest_ipv4_value(struct wlan_objmgr_vdev *vdev,
uint32_t value)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
dp_intf->track_dest_ipv4 = value;
}
void ucfg_dp_set_track_dest_port_value(struct wlan_objmgr_vdev *vdev,
uint32_t value)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
dp_intf->track_dest_port = value;
}
void ucfg_dp_set_track_src_port_value(struct wlan_objmgr_vdev *vdev,
uint32_t value)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
dp_intf->track_src_port = value;
}
void ucfg_dp_set_track_dns_domain_len_value(struct wlan_objmgr_vdev *vdev,
uint32_t value)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
dp_intf->track_dns_domain_len = value;
}
void ucfg_dp_set_track_arp_ip_value(struct wlan_objmgr_vdev *vdev,
uint32_t value)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
dp_intf->track_arp_ip = value;
}
uint32_t ucfg_dp_get_pkt_type_bitmap_value(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return 0;
}
return dp_intf->pkt_type_bitmap;
}
void ucfg_dp_get_dns_payload_value(struct wlan_objmgr_vdev *vdev,
uint8_t *dns_query)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return;
}
qdf_mem_copy(dns_query, dp_intf->dns_payload,
dp_intf->track_dns_domain_len);
}
uint32_t ucfg_dp_get_track_dns_domain_len_value(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return 0;
}
return dp_intf->track_dns_domain_len;
}
uint32_t ucfg_dp_get_track_dest_port_value(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return 0;
}
return dp_intf->track_dest_port;
}
uint32_t ucfg_dp_get_track_src_port_value(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return 0;
}
return dp_intf->track_src_port;
}
uint32_t ucfg_dp_get_track_dest_ipv4_value(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return 0;
}
return dp_intf->track_dest_ipv4;
}
bool ucfg_dp_get_dad_value(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return 0;
}
return dp_intf->dad;
}
bool ucfg_dp_get_con_status_value(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return 0;
}
return dp_intf->con_status;
}
uint8_t ucfg_dp_get_intf_id(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return 0;
}
return dp_intf->intf_id;
}
struct dp_arp_stats *ucfg_dp_get_arp_stats(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return NULL;
}
return &dp_intf->dp_stats.arp_stats;
}
struct dp_icmpv4_stats *ucfg_dp_get_icmpv4_stats(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return NULL;
}
return &dp_intf->dp_stats.icmpv4_stats;
}
struct dp_tcp_stats *ucfg_dp_get_tcp_stats(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return NULL;
}
return &dp_intf->dp_stats.tcp_stats;
}
struct dp_dns_stats *ucfg_dp_get_dns_stats(struct wlan_objmgr_vdev *vdev)
{
struct wlan_dp_intf *dp_intf = dp_get_vdev_priv_obj(vdev);
if (!dp_intf) {
dp_err("DP Context is NULL");
return NULL;
}
return &dp_intf->dp_stats.dns_stats;
}
void ucfg_dp_set_nud_stats_cb(struct wlan_objmgr_psoc *psoc, void *cookie)
{
struct wlan_dp_psoc_sb_ops *sb_ops = dp_intf_get_tx_ops(psoc);
sb_ops->dp_arp_stats_register_event_handler(psoc);
sb_ops->arp_request_ctx = cookie;
}
void ucfg_dp_clear_nud_stats_cb(struct wlan_objmgr_psoc *psoc)
{
struct wlan_dp_psoc_sb_ops *sb_ops = dp_intf_get_tx_ops(psoc);
sb_ops->dp_arp_stats_unregister_event_handler(psoc);
}
QDF_STATUS
ucfg_dp_req_get_arp_stats(struct wlan_objmgr_psoc *psoc,
struct dp_get_arp_stats_params *params)
{
struct wlan_dp_psoc_sb_ops *sb_ops = dp_intf_get_tx_ops(psoc);
return sb_ops->dp_get_arp_req_stats(psoc, params);
}
QDF_STATUS
ucfg_dp_req_set_arp_stats(struct wlan_objmgr_psoc *psoc,
struct dp_set_arp_stats_params *params)
{
struct wlan_dp_psoc_sb_ops *sb_ops = dp_intf_get_tx_ops(psoc);
return sb_ops->dp_set_arp_req_stats(psoc, params);
}
void ucfg_dp_register_hdd_callbacks(struct wlan_objmgr_psoc *psoc,
struct wlan_dp_psoc_callbacks *cb_obj)
{