brintos

brintos / linux-shallow public Read only

0
0
Text · 3.8 KiB · c322e30 Raw
102 lines · c
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_H7#define ATH11K_DP_RX_H8 9#include "core.h"10#include "rx_desc.h"11#include "debug.h"12 13#define DP_MAX_NWIFI_HDR_LEN	3014 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 */102