/******************************************************************************
|
*
|
* Copyright(c) 2007 - 2020 Realtek Corporation.
|
*
|
* This program is free software; you can redistribute it and/or modify it
|
* under the terms of version 2 of the GNU General Public License as
|
* published by the Free Software Foundation.
|
*
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
* more details.
|
*
|
*****************************************************************************/
|
|
#ifndef _RTW_RECV_SHORTCUT_H_
|
#define _RTW_RECV_SHORTCUT_H_
|
|
#ifdef CONFIG_RTW_CORE_RXSC
|
|
#define NUM_RXSC_ENTRY 4
|
|
enum rxsc_entry_status {
|
RXSC_ENTRY_INVALID = 0,
|
RXSC_ENTRY_VALID,
|
RXSC_ENTRY_APPLYING,
|
};
|
|
struct rxsc_wlan_hdr {
|
unsigned short fmctrl;
|
unsigned short duration;
|
unsigned char addr1[ETH_ALEN];
|
unsigned char addr2[ETH_ALEN];
|
unsigned char addr3[ETH_ALEN];
|
unsigned short sequence;
|
unsigned char addr4[ETH_ALEN];
|
unsigned short qosctrl;
|
unsigned char iv[8];
|
};
|
|
struct core_rxsc_entry {
|
u8 status;
|
u32 rxsc_payload_offset;
|
u32 rxsc_trim_pad;
|
|
struct rxsc_wlan_hdr rxsc_wlanhdr;
|
struct ethhdr rxsc_ethhdr;
|
struct rx_pkt_attrib rxsc_attrib;
|
|
u8 rxsc_wd[64];
|
};
|
|
struct core_rxsc_entry *core_rxsc_alloc_entry(_adapter *adapter, union recv_frame *prframe);
|
s32 core_rxsc_apply_check(_adapter *adapter, union recv_frame *prframe);
|
s32 core_rxsc_apply_shortcut(_adapter *adapter, union recv_frame *prframe);
|
void core_rxsc_clear_entry(_adapter *adapter, struct sta_info *psta);
|
|
#endif /* CONFIG_RTW_CORE_RXSC */
|
#endif /* _RTW_RECV_SHORTCUT_H_ */
|