Loading dp/inc/cdp_txrx_cmn.h +28 −0 Original line number Diff line number Diff line /* * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -694,6 +695,33 @@ cdp_peer_delete(ol_txrx_soc_handle soc, uint8_t vdev_id, soc->ops->cmn_drv_ops->txrx_peer_delete(soc, vdev_id, peer_mac, bitmap); } #ifdef DP_RX_UDP_OVER_PEER_ROAM static inline void cdp_update_roaming_peer_in_vdev(ol_txrx_soc_handle soc, uint8_t vdev_id, uint8_t *peer_mac, uint32_t auth_status) { if (!soc || !soc->ops) { QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG, "%s: Invalid Instance:", __func__); QDF_BUG(0); return; } if (!soc->ops->cmn_drv_ops || !soc->ops->cmn_drv_ops->txrx_update_roaming_peer) return; soc->ops->cmn_drv_ops->txrx_update_roaming_peer(soc, vdev_id, peer_mac, auth_status); } #else static inline void cdp_update_roaming_peer_in_vdev(ol_txrx_soc_handle soc, uint8_t vdev_id, uint8_t *peer_mac, uint32_t auth_status) { } #endif /** * cdp_peer_detach_sync() - peer detach sync callback * @soc: datapath soc handle Loading dp/inc/cdp_txrx_ctrl.h +83 −0 Original line number Diff line number Diff line /* * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -1217,4 +1218,86 @@ cdp_dump_rx_flow_tag_stats(ol_txrx_soc_handle soc, uint8_t pdev_id, flow_info); } #endif /* WLAN_SUPPORT_RX_FLOW_TAG */ #ifdef WLAN_FEATURE_TSF_UPLINK_DELAY /** * cdp_set_delta_tsf() - wrapper function to set delta_tsf * @soc: SOC TXRX handle * @vdev_id: vdev id * @delta_tsf: difference between TSF clock and qtimer * * Return: None */ static inline void cdp_set_delta_tsf(ol_txrx_soc_handle soc, uint8_t vdev_id, uint32_t delta_tsf) { if (!soc || !soc->ops) { dp_cdp_err("Invalid instance"); QDF_BUG(0); return; } if (!soc->ops->ctrl_ops || !soc->ops->ctrl_ops->txrx_set_delta_tsf) return; soc->ops->ctrl_ops->txrx_set_delta_tsf(soc, vdev_id, delta_tsf); } /** * cdp_set_tsf_ul_delay_report() - Enable or disable reporting uplink delay * @soc: SOC TXRX handle * @vdev_id: vdev id * @enable: true to enable and false to disable * * Return: QDF_STATUS */ static inline QDF_STATUS cdp_set_tsf_ul_delay_report(ol_txrx_soc_handle soc, uint8_t vdev_id, bool enable) { if (!soc || !soc->ops) { dp_cdp_err("Invalid SOC instance"); QDF_BUG(0); return QDF_STATUS_E_FAILURE; } if (!soc->ops->ctrl_ops || !soc->ops->ctrl_ops->txrx_set_tsf_ul_delay_report) return QDF_STATUS_E_FAILURE; return soc->ops->ctrl_ops->txrx_set_tsf_ul_delay_report(soc, vdev_id, enable); } /** * cdp_get_uplink_delay() - Get uplink delay value * @soc: SOC TXRX handle * @vdev_id: vdev id * @val: pointer to save uplink delay value * * Return: QDF_STATUS */ static inline QDF_STATUS cdp_get_uplink_delay(ol_txrx_soc_handle soc, uint32_t vdev_id, uint32_t *val) { if (!soc || !soc->ops) { dp_cdp_err("Invalid SOC instance"); QDF_BUG(0); return QDF_STATUS_E_FAILURE; } if (!val) { dp_cdp_err("Invalid params val"); return QDF_STATUS_E_FAILURE; } if (!soc->ops->ctrl_ops || !soc->ops->ctrl_ops->txrx_get_uplink_delay) return QDF_STATUS_E_FAILURE; return soc->ops->ctrl_ops->txrx_get_uplink_delay(soc, vdev_id, val); } #endif /* WLAN_FEATURE_TSF_UPLINK_DELAY */ #endif /* _CDP_TXRX_CTRL_H_ */ dp/inc/cdp_txrx_ops.h +19 −1 Original line number Diff line number Diff line /* * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved. * * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -558,6 +558,13 @@ struct cdp_cmn_ops { QDF_STATUS (*set_vdev_pcp_tid_map)(struct cdp_soc_t *soc, uint8_t vdev_id, uint8_t pcp, uint8_t tid); #ifdef DP_RX_UDP_OVER_PEER_ROAM QDF_STATUS (*txrx_update_roaming_peer)(struct cdp_soc_t *soc, uint8_t vdev_id, uint8_t *peer_mac, uint32_t auth_status); #endif #ifdef QCA_MULTIPASS_SUPPORT QDF_STATUS (*set_vlan_groupkey)(struct cdp_soc_t *soc, uint8_t vdev_id, uint16_t vlan_id, uint16_t group_key); Loading Loading @@ -794,6 +801,17 @@ struct cdp_ctrl_ops { int8_t vdev_id); #endif #ifdef WLAN_FEATURE_TSF_UPLINK_DELAY void (*txrx_set_delta_tsf)(struct cdp_soc_t *soc, uint8_t vdev_id, uint32_t delta_tsf); QDF_STATUS (*txrx_set_tsf_ul_delay_report)(struct cdp_soc_t *soc, uint8_t vdev_id, bool enable); QDF_STATUS (*txrx_get_uplink_delay)(struct cdp_soc_t *soc, uint8_t vdev_id, uint32_t *val); #endif }; struct cdp_me_ops { Loading dp/wifi3.0/dp_htt.c +3 −2 Original line number Diff line number Diff line /* * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -4584,7 +4585,7 @@ static void dp_htt_t2h_msg_handler(void *context, HTC_PACKET *pkt) (u_int8_t *) (msg_word+1), &mac_addr_deswizzle_buf[0]); QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO, QDF_TRACE_LEVEL_DEBUG, "HTT_T2H_MSG_TYPE_PEER_MAP msg for peer id %d vdev id %d n", peer_id, vdev_id); Loading Loading @@ -4792,7 +4793,7 @@ static void dp_htt_t2h_msg_handler(void *context, HTC_PACKET *pkt) HTT_RX_PEER_MAP_V2_TID_VALID_HI_PRI_GET(*(msg_word + 5)); QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO, QDF_TRACE_LEVEL_DEBUG, "HTT_T2H_MSG_TYPE_PEER_MAP msg for peer id %d vdev id %d n", peer_id, vdev_id); Loading dp/wifi3.0/dp_main.c +28 −0 Original line number Diff line number Diff line Loading @@ -7267,6 +7267,26 @@ static QDF_STATUS dp_peer_delete_wifi3(struct cdp_soc_t *soc_hdl, return QDF_STATUS_SUCCESS; } #ifdef DP_RX_UDP_OVER_PEER_ROAM static QDF_STATUS dp_update_roaming_peer_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, uint8_t *peer_mac, uint32_t auth_status) { struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); struct dp_vdev *vdev = dp_vdev_get_ref_by_id(soc, vdev_id, DP_MOD_ID_CDP); if (!vdev) return QDF_STATUS_E_FAILURE; vdev->roaming_peer_status = auth_status; qdf_mem_copy(vdev->roaming_peer_mac.raw, peer_mac, QDF_MAC_ADDR_SIZE); dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_CDP); return QDF_STATUS_SUCCESS; } #endif /* * dp_get_vdev_mac_addr_wifi3() – Detach txrx peer * @soc_hdl: Datapath soc handle Loading Loading @@ -11332,6 +11352,9 @@ static struct cdp_cmn_ops dp_ops_cmn = { .txrx_peer_ast_delete_by_pdev = dp_peer_ast_entry_del_by_pdev, .txrx_peer_delete = dp_peer_delete_wifi3, #ifdef DP_RX_UDP_OVER_PEER_ROAM .txrx_update_roaming_peer = dp_update_roaming_peer_wifi3, #endif .txrx_vdev_register = dp_vdev_register_wifi3, .txrx_soc_detach = dp_soc_detach_wifi3, .txrx_soc_deinit = dp_soc_deinit_wifi3, Loading Loading @@ -11475,6 +11498,11 @@ static struct cdp_ctrl_ops dp_ops_ctrl = { .txrx_update_peer_pkt_capture_params = dp_peer_update_pkt_capture_params, #endif /* WLAN_TX_PKT_CAPTURE_ENH || WLAN_RX_PKT_CAPTURE_ENH */ #ifdef WLAN_FEATURE_TSF_UPLINK_DELAY .txrx_set_delta_tsf = dp_set_delta_tsf, .txrx_set_tsf_ul_delay_report = dp_set_tsf_ul_delay_report, .txrx_get_uplink_delay = dp_get_uplink_delay, #endif }; static struct cdp_me_ops dp_ops_me = { Loading Loading
dp/inc/cdp_txrx_cmn.h +28 −0 Original line number Diff line number Diff line /* * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -694,6 +695,33 @@ cdp_peer_delete(ol_txrx_soc_handle soc, uint8_t vdev_id, soc->ops->cmn_drv_ops->txrx_peer_delete(soc, vdev_id, peer_mac, bitmap); } #ifdef DP_RX_UDP_OVER_PEER_ROAM static inline void cdp_update_roaming_peer_in_vdev(ol_txrx_soc_handle soc, uint8_t vdev_id, uint8_t *peer_mac, uint32_t auth_status) { if (!soc || !soc->ops) { QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG, "%s: Invalid Instance:", __func__); QDF_BUG(0); return; } if (!soc->ops->cmn_drv_ops || !soc->ops->cmn_drv_ops->txrx_update_roaming_peer) return; soc->ops->cmn_drv_ops->txrx_update_roaming_peer(soc, vdev_id, peer_mac, auth_status); } #else static inline void cdp_update_roaming_peer_in_vdev(ol_txrx_soc_handle soc, uint8_t vdev_id, uint8_t *peer_mac, uint32_t auth_status) { } #endif /** * cdp_peer_detach_sync() - peer detach sync callback * @soc: datapath soc handle Loading
dp/inc/cdp_txrx_ctrl.h +83 −0 Original line number Diff line number Diff line /* * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -1217,4 +1218,86 @@ cdp_dump_rx_flow_tag_stats(ol_txrx_soc_handle soc, uint8_t pdev_id, flow_info); } #endif /* WLAN_SUPPORT_RX_FLOW_TAG */ #ifdef WLAN_FEATURE_TSF_UPLINK_DELAY /** * cdp_set_delta_tsf() - wrapper function to set delta_tsf * @soc: SOC TXRX handle * @vdev_id: vdev id * @delta_tsf: difference between TSF clock and qtimer * * Return: None */ static inline void cdp_set_delta_tsf(ol_txrx_soc_handle soc, uint8_t vdev_id, uint32_t delta_tsf) { if (!soc || !soc->ops) { dp_cdp_err("Invalid instance"); QDF_BUG(0); return; } if (!soc->ops->ctrl_ops || !soc->ops->ctrl_ops->txrx_set_delta_tsf) return; soc->ops->ctrl_ops->txrx_set_delta_tsf(soc, vdev_id, delta_tsf); } /** * cdp_set_tsf_ul_delay_report() - Enable or disable reporting uplink delay * @soc: SOC TXRX handle * @vdev_id: vdev id * @enable: true to enable and false to disable * * Return: QDF_STATUS */ static inline QDF_STATUS cdp_set_tsf_ul_delay_report(ol_txrx_soc_handle soc, uint8_t vdev_id, bool enable) { if (!soc || !soc->ops) { dp_cdp_err("Invalid SOC instance"); QDF_BUG(0); return QDF_STATUS_E_FAILURE; } if (!soc->ops->ctrl_ops || !soc->ops->ctrl_ops->txrx_set_tsf_ul_delay_report) return QDF_STATUS_E_FAILURE; return soc->ops->ctrl_ops->txrx_set_tsf_ul_delay_report(soc, vdev_id, enable); } /** * cdp_get_uplink_delay() - Get uplink delay value * @soc: SOC TXRX handle * @vdev_id: vdev id * @val: pointer to save uplink delay value * * Return: QDF_STATUS */ static inline QDF_STATUS cdp_get_uplink_delay(ol_txrx_soc_handle soc, uint32_t vdev_id, uint32_t *val) { if (!soc || !soc->ops) { dp_cdp_err("Invalid SOC instance"); QDF_BUG(0); return QDF_STATUS_E_FAILURE; } if (!val) { dp_cdp_err("Invalid params val"); return QDF_STATUS_E_FAILURE; } if (!soc->ops->ctrl_ops || !soc->ops->ctrl_ops->txrx_get_uplink_delay) return QDF_STATUS_E_FAILURE; return soc->ops->ctrl_ops->txrx_get_uplink_delay(soc, vdev_id, val); } #endif /* WLAN_FEATURE_TSF_UPLINK_DELAY */ #endif /* _CDP_TXRX_CTRL_H_ */
dp/inc/cdp_txrx_ops.h +19 −1 Original line number Diff line number Diff line /* * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved. * * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -558,6 +558,13 @@ struct cdp_cmn_ops { QDF_STATUS (*set_vdev_pcp_tid_map)(struct cdp_soc_t *soc, uint8_t vdev_id, uint8_t pcp, uint8_t tid); #ifdef DP_RX_UDP_OVER_PEER_ROAM QDF_STATUS (*txrx_update_roaming_peer)(struct cdp_soc_t *soc, uint8_t vdev_id, uint8_t *peer_mac, uint32_t auth_status); #endif #ifdef QCA_MULTIPASS_SUPPORT QDF_STATUS (*set_vlan_groupkey)(struct cdp_soc_t *soc, uint8_t vdev_id, uint16_t vlan_id, uint16_t group_key); Loading Loading @@ -794,6 +801,17 @@ struct cdp_ctrl_ops { int8_t vdev_id); #endif #ifdef WLAN_FEATURE_TSF_UPLINK_DELAY void (*txrx_set_delta_tsf)(struct cdp_soc_t *soc, uint8_t vdev_id, uint32_t delta_tsf); QDF_STATUS (*txrx_set_tsf_ul_delay_report)(struct cdp_soc_t *soc, uint8_t vdev_id, bool enable); QDF_STATUS (*txrx_get_uplink_delay)(struct cdp_soc_t *soc, uint8_t vdev_id, uint32_t *val); #endif }; struct cdp_me_ops { Loading
dp/wifi3.0/dp_htt.c +3 −2 Original line number Diff line number Diff line /* * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -4584,7 +4585,7 @@ static void dp_htt_t2h_msg_handler(void *context, HTC_PACKET *pkt) (u_int8_t *) (msg_word+1), &mac_addr_deswizzle_buf[0]); QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO, QDF_TRACE_LEVEL_DEBUG, "HTT_T2H_MSG_TYPE_PEER_MAP msg for peer id %d vdev id %d n", peer_id, vdev_id); Loading Loading @@ -4792,7 +4793,7 @@ static void dp_htt_t2h_msg_handler(void *context, HTC_PACKET *pkt) HTT_RX_PEER_MAP_V2_TID_VALID_HI_PRI_GET(*(msg_word + 5)); QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO, QDF_TRACE_LEVEL_DEBUG, "HTT_T2H_MSG_TYPE_PEER_MAP msg for peer id %d vdev id %d n", peer_id, vdev_id); Loading
dp/wifi3.0/dp_main.c +28 −0 Original line number Diff line number Diff line Loading @@ -7267,6 +7267,26 @@ static QDF_STATUS dp_peer_delete_wifi3(struct cdp_soc_t *soc_hdl, return QDF_STATUS_SUCCESS; } #ifdef DP_RX_UDP_OVER_PEER_ROAM static QDF_STATUS dp_update_roaming_peer_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, uint8_t *peer_mac, uint32_t auth_status) { struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); struct dp_vdev *vdev = dp_vdev_get_ref_by_id(soc, vdev_id, DP_MOD_ID_CDP); if (!vdev) return QDF_STATUS_E_FAILURE; vdev->roaming_peer_status = auth_status; qdf_mem_copy(vdev->roaming_peer_mac.raw, peer_mac, QDF_MAC_ADDR_SIZE); dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_CDP); return QDF_STATUS_SUCCESS; } #endif /* * dp_get_vdev_mac_addr_wifi3() – Detach txrx peer * @soc_hdl: Datapath soc handle Loading Loading @@ -11332,6 +11352,9 @@ static struct cdp_cmn_ops dp_ops_cmn = { .txrx_peer_ast_delete_by_pdev = dp_peer_ast_entry_del_by_pdev, .txrx_peer_delete = dp_peer_delete_wifi3, #ifdef DP_RX_UDP_OVER_PEER_ROAM .txrx_update_roaming_peer = dp_update_roaming_peer_wifi3, #endif .txrx_vdev_register = dp_vdev_register_wifi3, .txrx_soc_detach = dp_soc_detach_wifi3, .txrx_soc_deinit = dp_soc_deinit_wifi3, Loading Loading @@ -11475,6 +11498,11 @@ static struct cdp_ctrl_ops dp_ops_ctrl = { .txrx_update_peer_pkt_capture_params = dp_peer_update_pkt_capture_params, #endif /* WLAN_TX_PKT_CAPTURE_ENH || WLAN_RX_PKT_CAPTURE_ENH */ #ifdef WLAN_FEATURE_TSF_UPLINK_DELAY .txrx_set_delta_tsf = dp_set_delta_tsf, .txrx_set_tsf_ul_delay_report = dp_set_tsf_ul_delay_report, .txrx_get_uplink_delay = dp_get_uplink_delay, #endif }; static struct cdp_me_ops dp_ops_me = { Loading