/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.


Generated on 14 Jan 2020 for Ceva-RW WLAN FullMAC SW documentation by  doxygen 1.6.1