# /space/home/slher/rel/Beken/v6_4_5/macsw/ip/umac/src/rxu/rxu_cntrl.h File Reference

Conatins Rx Module's structures, constants, and helper function declarations. More...

`#include "rwnx_config.h"`
`#include "co_int.h"`
`#include "co_bool.h"`
`#include "co_status.h"`
`#include "mac.h"`
`#include "mac_frame.h"`
`#include "mm_timer.h"`
`#include "me_mic.h"`
`#include "dma.h"`
`#include "llc.h"`
`#include "rxl_cntrl.h"`

Go to the source code of this file.

## Data Structures
struct | rxu_mic_calc
| Structure used for RX MIC checking. More...
struct | rxu_cntrl_defrag
| Structure used during reassembly. More...
struct | rxu_cntrl_reord_elt
| Structure describing an element of the RX reordering table. More...
struct | rxu_cntrl_reord
| RX reordering environment declaration. More...
struct | rx_cntrl_rx_status
| Structure in which we store much information about the current packet. More...
struct | rx_cntrl_dupli
| Structure used for Duplicate Filtering of packet received on unregistered STA. More...
struct | rx_cntrl_pm_mon
| Structure used for Duplicate Filtering of packet received on unregistered STA. More...
struct | rxu_cntrl_env_tag
| The context structure of the UMAC's Rx module. More...
struct | rxu_stat_val
| RX status value structure (as expected by Upper Layers). More...
struct | rxu_stat_desc
| RX status descriptor structure (contains value plus other internal data). More...
## Defines
#define | RX_CNTRL_DEFRAG_POOL_SIZE (3)
| Size of the pool containing Reassembly structure.
#define | RX_CNTRL_DEFRAG_MAX_WAIT (100000)
| Maximum time we can wait for a fragment (in us).
#define | RX_CNTRL_REORD_POOL_SIZE (NX_REORD)
| Size of the pool containing reordering structure.
#define | RX_CNTRL_REORD_WIN_SIZE (NX_REORD_BUF_SIZE)
| Size of the windows used in reordering operations.
#define | RX_CNTRL_REORD_MAX_WAIT (50000)
| Maximum time we can wait for an SN (in us).
#define | RX_MIN_STAT_DESC_CNT (NX_RXDESC_CNT + 2)
| Minimum number of RX descriptors.
#define | RX_STAT_DESC_CNT RX_MIN_STAT_DESC_CNT
| Number of Descriptors for IPC transfers between the embedded and the host.
#define | RX_MAX_AMSDU_SUBFRAME_LEN (LLC_ETHER_MTU + LLC_ETHER_HDR_LEN + LLC_802_2_HDR_LEN)
| Maximum A-MSDU subframe length we support (Ethernet Header + LLC/SNAP + Ethernet MTU).
#define | RX_FLAGS_IS_AMSDU_BIT CO_BIT(0)
| Packet contains an A-MSDU.
#define | RX_FLAGS_IS_MPDU_BIT CO_BIT(1)
| Packet contains a 802.11 MPDU.
#define | RX_FLAGS_4_ADDR_BIT CO_BIT(2)
| Packet contains 4 addresses.
#define | RX_FLAGS_NEW_MESH_PEER_BIT CO_BIT(3)
| Packet is a Mesh Beacon received from an unknown Mesh STA.
#define | RX_FLAGS_NON_MSDU_MSK
| Bitmask indicating that a received packet is not a MSDU.
#define | RX_FLAGS_USER_PRIO_INDEX_OFT 4
| Offset of the User priority index field.
#define | RX_FLAGS_USER_PRIO_INDEX_MSK (0x7 << RX_FLAGS_USER_PRIO_INDEX_OFT)
| Mask of the User priority index field.
#define | RX_FLAGS_VIF_INDEX_OFT 8
| Offset of the VIF index field.
#define | RX_FLAGS_VIF_INDEX_MSK (0xFF << RX_FLAGS_VIF_INDEX_OFT)
| Mask of the VIF index field.
#define | RX_FLAGS_STA_INDEX_OFT 16
| Offset of the STA index field.
#define | RX_FLAGS_STA_INDEX_MSK (0xFF << RX_FLAGS_STA_INDEX_OFT)
| Mask of the STA index field.
#define | RX_FLAGS_DST_INDEX_OFT 24
| Offset of the destination STA index field.
#define | RX_FLAGS_DST_INDEX_MSK (0xFF << RX_FLAGS_DST_INDEX_OFT)
| Mask of the destination STA index field.
## Enumerations
enum | rx_status_bits { RX_STAT_FORWARD = CO_BIT(0), RX_STAT_ALLOC = CO_BIT(1), RX_STAT_DELETE = CO_BIT(2), RX_STAT_LEN_UPDATE = CO_BIT(3), RX_STAT_ETH_LEN_UPDATE = CO_BIT(4), RX_STAT_COPY = CO_BIT(5), RX_STAT_SPURIOUS = CO_BIT(6), RX_STAT_MONITOR = CO_BIT(7), RX_STAT_UF = CO_BIT(8) }
| RX status bits uploaded in the RX IPC descriptor. More...
enum | rxu_cntrl_frame_info_pos { RXU_CNTRL_MIC_CHECK_NEEDED = CO_BIT(0), RXU_CNTRL_PN_CHECK_NEEDED = CO_BIT(1), RXU_CNTRL_NEW_MESH_PEER = CO_BIT(2), RXU_CNTRL_GROUP_ADDRESSED = CO_BIT(3) }
| Bit field positions for frame_info value (struct rxu_cntrl_rx_status). More...
## Functions
bool | rxu_cntrl_frame_handle (struct rxdesc *rxdesc)
| Upper MAC RX frame handler.
bool | rxu_cntrl_reord_create (struct sta_info_tag *sta, uint8_t tid, uint16_t ssn)
| Allocate and initialize a reordering structure upon a new RX BlockAck agreement creation.
void | rxu_cntrl_reord_delete (struct sta_info_tag *sta, uint8_t tid)
| Delete a reordering structure previously allocated.
void | rxu_cntrl_init (void)
| initializes the rx_context.
void | rxu_cntrl_monitor_pm (struct mac_addr *addr)
| Start the PM bit monitoring on incoming frames for which the TA is unknown.
uint8_t | rxu_cntrl_get_pm (void)
| This function returns the PM state of the station for which the PM monitoring was started.
void | rxu_cntrl_evt (int dummy)
| This function is a kernel event handler that is triggered when new RX descriptors are pushed by the host.
bool | rxu_cntrl_desc_check (void)
| Check if a RX status descriptor is available.
## Variables
struct rxu_cntrl_env_tag | rxu_cntrl_env
| The RX module's environment.
struct rxu_cntrl_reord | rxu_cntrl_reord_pool [RX_CNTRL_REORD_POOL_SIZE]
| Pool of reordering structures.
struct rxu_cntrl_defrag | rxu_cntrl_defrag_pool [RX_CNTRL_DEFRAG_POOL_SIZE]
| Pool of Reassembly structures.
struct rxu_stat_desc | rxu_stat_desc_pool [RX_STAT_DESC_CNT]
| Pool of RX status descriptors.

## Detailed Description

Conatins Rx Module's structures, constants, and helper function declarations.

This header file will contain the definitions of the structures and constants used only by the Rx, and the Rx module's Helper function declarations.

Copyright (C) RivieraWaves 2011-2019

Definition in file rxu_cntrl.h.