/** @file */ /****************************************************************************** * * Copyright(c) 2019 Realtek Corporation. All rights reserved. * * 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 _MAC_AX_RX_FORWARDING_H_ #define _MAC_AX_RX_FORWARDING_H_ #include "../type.h" /*--------------------Define ----------------------------------------*/ // Payload Match CAM #define PM_CAM_OFFSET_DW0 0 #define PM_CAM_OFFSET_DW1 1 #define PM_CAM_OFFSET_DW2 2 #define PM_CAM_OFFSET_DW3 3 #define PM_CAM_OFFSET_DW4 4 /* dword0 */ #define PM_CAM_VALID BIT(0) #define PM_CAM_TYPE_SH 1 #define PM_CAM_TYPE_MSK 0x3 #define PM_CAM_SUBTYPE_SH 3 #define PM_CAM_SUBTYPE_MSK 0xf #define PM_CAM_SKIP_MAC_IV_HDR BIT(7) #define PM_CAM_TARGET_IND_SH 8 #define PM_CAM_TARGET_IND_MSK 0x7 #define PM_CAM_CRC16_SH 16 #define PM_CAM_CRC16_MSK 0xffff /* dword1 */ #define PM_CAM_PLD_MASK0_SH 0 #define PM_CAM_PLD_MASK0_MSK 0xffffffff /* dword2 */ #define PM_CAM_PLD_MASK1_SH 0 #define PM_CAM_PLD_MASK1_MSK 0xffffffff /* dword3 */ #define PM_CAM_PLD_MASK2_SH 0 #define PM_CAM_PLD_MASK2_MSK 0xffffffff /* dword4 */ #define PM_CAM_PLD_MASK3_SH 0 #define PM_CAM_PLD_MASK3_MSK 0xffffffff #define MAC_AX_PM_CAM_ENTRY_CONTENT_SIZE 20 #define MAC_AX_PM_CAM_ENTRY_NUM_MAX 16 #define PM_CAM_WAIT_CNT 2000 #define PM_CAM_WAIT_US 1 /*--------------------Define Enum------------------------------------*/ /*--------------------Define MACRO----------------------------------*/ /*--------------------Define Struct-----------------------------------*/ /*--------------------Export global variable----------------------------*/ /*--------------------Function declaration-----------------------------*/ /** * @addtogroup Basic_TRX * @{ * @addtogroup RX_Forwarding * @{ */ /** * @brief mac_set_rx_forwarding: * Set rx forwarding feature: * 1. MAC_AX_FT_ACTION: for action frame * 2. MAC_AX_FT_ACTION_UD: for action frame with user define * 3. MAC_AX_FT_TRIGGER: for trigger frame * 4. MAC_AX_FT_PM_CAM: for Payload match CAM * * @param *adapter * @param *rf_ctrl_p * @return Please Place Description here. * @retval u32 * #if MAC_AX_FW_REG_OFLD * 1. MACSUCCESS 0 * 2. MACNPTR 5 * 3. MACNOBUF 9 * 4. MACFWNONRDY 80 * #else * 1. MACSUCCESS 0 * 2. MACNPTR 5 * 3. MACNOITEM 11 * 4. MACPOLLTO 12 * 5. MACRFPMCAM 42 * #endif */ u32 mac_set_rx_forwarding(struct mac_ax_adapter *adapter, struct mac_ax_rx_fwd_ctrl_t *rf_ctrl_p); /** * @} * @} */ #endif