// SPDX-License-Identifier: GPL-2.0-only /* * This file contains the handling of RX in wlan driver. */ #define pr_fmt(fmt) … #include <linux/etherdevice.h> #include <linux/hardirq.h> #include <linux/slab.h> #include <linux/types.h> #include <linux/export.h> #include <net/cfg80211.h> #include "defs.h" #include "host.h" #include "radiotap.h" #include "decl.h" #include "dev.h" #include "mesh.h" struct eth803hdr { … } __packed; struct rfc1042hdr { … } __packed; struct rxpackethdr { … } __packed; struct rx80211packethdr { … } __packed; static int process_rxed_802_11_packet(struct lbs_private *priv, struct sk_buff *skb); /** * lbs_process_rxed_packet - processes received packet and forwards it * to kernel/upper layer * * @priv: A pointer to &struct lbs_private * @skb: A pointer to skb which includes the received packet * returns: 0 or -1 */ int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *skb) { … } EXPORT_SYMBOL_GPL(…); /** * convert_mv_rate_to_radiotap - converts Tx/Rx rates from Marvell WLAN format * (see Table 2 in Section 3.1) to IEEE80211_RADIOTAP_RATE units (500 Kb/s) * * @rate: Input rate * returns: Output Rate (0 if invalid) */ static u8 convert_mv_rate_to_radiotap(u8 rate) { … } /** * process_rxed_802_11_packet - processes a received 802.11 packet and forwards * it to kernel/upper layer * * @priv: A pointer to &struct lbs_private * @skb: A pointer to skb which includes the received packet * returns: 0 or -1 */ static int process_rxed_802_11_packet(struct lbs_private *priv, struct sk_buff *skb) { … }