FILE
dp_rx.h
File preview with syntax highlighting.
linux-6.19.14/drivers/net/wireless/ath/ath11k/dp_rx.h
1/* SPDX-License-Identifier: BSD-3-Clause-Clear */ 2/* 3 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. 4 * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. 5 */ 6#ifndef ATH11K_DP_RX_H 7#define ATH11K_DP_RX_H 8 9#include "core.h" 10#include "rx_desc.h" 11#include "debug.h" 12 13#define DP_MAX_NWIFI_HDR_LEN 30 14 15#define DP_RX_MPDU_ERR_FCS BIT(0) 16#define DP_RX_MPDU_ERR_DECRYPT BIT(1) 17#define DP_RX_MPDU_ERR_TKIP_MIC BIT(2) 18#define DP_RX_MPDU_ERR_AMSDU_ERR BIT(3) 19#define DP_RX_MPDU_ERR_OVERFLOW BIT(4) 20#define DP_RX_MPDU_ERR_MSDU_LEN BIT(5) 21#define DP_RX_MPDU_ERR_MPDU_LEN BIT(6) 22#define DP_RX_MPDU_ERR_UNENCRYPTED_FRAME BIT(7) 23 24enum dp_rx_decap_type { 25 DP_RX_DECAP_TYPE_RAW, 26 DP_RX_DECAP_TYPE_NATIVE_WIFI, 27 DP_RX_DECAP_TYPE_ETHERNET2_DIX, 28 DP_RX_DECAP_TYPE_8023, 29}; 30 31struct ath11k_dp_amsdu_subframe_hdr { 32 u8 dst[ETH_ALEN]; 33 u8 src[ETH_ALEN]; 34 __be16 len; 35} __packed; 36 37struct ath11k_dp_rfc1042_hdr { 38 u8 llc_dsap; 39 u8 llc_ssap; 40 u8 llc_ctrl; 41 u8 snap_oui[3]; 42 __be16 snap_type; 43} __packed; 44 45int ath11k_dp_rx_ampdu_start(struct ath11k *ar, 46 struct ieee80211_ampdu_params *params); 47int ath11k_dp_rx_ampdu_stop(struct ath11k *ar, 48 struct ieee80211_ampdu_params *params); 49int ath11k_dp_peer_rx_pn_replay_config(struct ath11k_vif *arvif, 50 const u8 *peer_addr, 51 enum set_key_cmd key_cmd, 52 struct ieee80211_key_conf *key); 53void ath11k_peer_frags_flush(struct ath11k *ar, struct ath11k_peer *peer); 54void ath11k_peer_rx_tid_cleanup(struct ath11k *ar, struct ath11k_peer *peer); 55void ath11k_peer_rx_tid_delete(struct ath11k *ar, 56 struct ath11k_peer *peer, u8 tid); 57int ath11k_peer_rx_tid_setup(struct ath11k *ar, const u8 *peer_mac, int vdev_id, 58 u8 tid, u32 ba_win_sz, u16 ssn, 59 enum hal_pn_type pn_type); 60void ath11k_dp_htt_htc_t2h_msg_handler(struct ath11k_base *ab, 61 struct sk_buff *skb); 62int ath11k_dp_pdev_reo_setup(struct ath11k_base *ab); 63void ath11k_dp_pdev_reo_cleanup(struct ath11k_base *ab); 64int ath11k_dp_rx_pdev_alloc(struct ath11k_base *ab, int pdev_idx); 65void ath11k_dp_rx_pdev_free(struct ath11k_base *ab, int pdev_idx); 66void ath11k_dp_reo_cmd_list_cleanup(struct ath11k_base *ab); 67void ath11k_dp_process_reo_status(struct ath11k_base *ab); 68int ath11k_dp_process_rxdma_err(struct ath11k_base *ab, int mac_id, int budget); 69int ath11k_dp_rx_process_wbm_err(struct ath11k_base *ab, 70 struct napi_struct *napi, int budget); 71int ath11k_dp_process_rx_err(struct ath11k_base *ab, struct napi_struct *napi, 72 int budget); 73int ath11k_dp_process_rx(struct ath11k_base *ab, int mac_id, 74 struct napi_struct *napi, 75 int budget); 76int ath11k_dp_rxbufs_replenish(struct ath11k_base *ab, int mac_id, 77 struct dp_rxdma_ring *rx_ring, 78 int req_entries, 79 enum hal_rx_buf_return_buf_manager mgr); 80int ath11k_dp_htt_tlv_iter(struct ath11k_base *ab, const void *ptr, size_t len, 81 int (*iter)(struct ath11k_base *ar, u16 tag, u16 len, 82 const void *ptr, void *data), 83 void *data); 84int ath11k_dp_rx_process_mon_rings(struct ath11k_base *ab, int mac_id, 85 struct napi_struct *napi, int budget); 86int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id, 87 struct napi_struct *napi, int budget); 88int ath11k_dp_rx_mon_status_bufs_replenish(struct ath11k_base *ab, int mac_id, 89 struct dp_rxdma_ring *rx_ring, 90 int req_entries, 91 enum hal_rx_buf_return_buf_manager mgr); 92int ath11k_dp_rx_pdev_mon_detach(struct ath11k *ar); 93int ath11k_dp_rx_pdev_mon_attach(struct ath11k *ar); 94int ath11k_peer_rx_frag_setup(struct ath11k *ar, const u8 *peer_mac, int vdev_id); 95 96int ath11k_dp_rx_pktlog_start(struct ath11k_base *ab); 97int ath11k_dp_rx_pktlog_stop(struct ath11k_base *ab, bool stop_timer); 98 99int ath11k_dp_rx_crypto_mic_len(struct ath11k *ar, enum hal_encrypt_type enctype); 100 101#endif /* ATH11K_DP_RX_H */
~/
Read-only file preview.