📄 rtmp.h
字号:
} ABGBAND_STATE;typedef struct _MLME_STRUCT {#ifdef CONFIG_STA_SUPPORT // STA state machines STATE_MACHINE CntlMachine; STATE_MACHINE AssocMachine; STATE_MACHINE AuthMachine; STATE_MACHINE AuthRspMachine; STATE_MACHINE SyncMachine; STATE_MACHINE WpaPskMachine; STATE_MACHINE LeapMachine; STATE_MACHINE AironetMachine; STATE_MACHINE_FUNC AssocFunc[ASSOC_FUNC_SIZE]; STATE_MACHINE_FUNC AuthFunc[AUTH_FUNC_SIZE]; STATE_MACHINE_FUNC AuthRspFunc[AUTH_RSP_FUNC_SIZE]; STATE_MACHINE_FUNC SyncFunc[SYNC_FUNC_SIZE]; STATE_MACHINE_FUNC WpaPskFunc[WPA_PSK_FUNC_SIZE]; STATE_MACHINE_FUNC AironetFunc[AIRONET_FUNC_SIZE];#endif // CONFIG_STA_SUPPORT // STATE_MACHINE_FUNC ActFunc[ACT_FUNC_SIZE]; // Action STATE_MACHINE ActMachine;#ifdef QOS_DLS_SUPPORT STATE_MACHINE DlsMachine; STATE_MACHINE_FUNC DlsFunc[DLS_FUNC_SIZE];#endif // QOS_DLS_SUPPORT // ULONG ChannelQuality; // 0..100, Channel Quality Indication for Roaming ULONG Now32; // latch the value of NdisGetSystemUpTime() ULONG LastSendNULLpsmTime; BOOLEAN bRunning; NDIS_SPIN_LOCK TaskLock; MLME_QUEUE Queue; UINT ShiftReg; RALINK_TIMER_STRUCT PeriodicTimer; RALINK_TIMER_STRUCT APSDPeriodicTimer; RALINK_TIMER_STRUCT LinkDownTimer; RALINK_TIMER_STRUCT LinkUpTimer; ULONG PeriodicRound; ULONG OneSecPeriodicRound; UCHAR RealRxPath; BOOLEAN bLowThroughput; BOOLEAN bEnableAutoAntennaCheck; RALINK_TIMER_STRUCT RxAntEvalTimer;#ifdef RT30xx UCHAR CaliBW40RfR24; UCHAR CaliBW20RfR24;#endif // RT30xx // } MLME_STRUCT, *PMLME_STRUCT;// structure for radar detection and channel switchtypedef struct _RADAR_DETECT_STRUCT { //BOOLEAN IEEE80211H; // 0: disable, 1: enable IEEE802.11h UCHAR CSCount; //Channel switch counter UCHAR CSPeriod; //Channel switch period (beacon count) UCHAR RDCount; //Radar detection counter UCHAR RDMode; //Radar Detection mode UCHAR RDDurRegion; //Radar detection duration region UCHAR BBPR16; UCHAR BBPR17; UCHAR BBPR18; UCHAR BBPR21; UCHAR BBPR22; UCHAR BBPR64; ULONG InServiceMonitorCount; // unit: sec UINT8 DfsSessionTime; BOOLEAN bFastDfs; UINT8 ChMovingTime; UINT8 LongPulseRadarTh;} RADAR_DETECT_STRUCT, *PRADAR_DETECT_STRUCT;#ifdef CARRIER_DETECTION_SUPPORTtypedef enum CD_STATE_n{ CD_NORMAL, CD_SILENCE, CD_MAX_STATE} CD_STATE;typedef struct CARRIER_DETECTION_s{ BOOLEAN Enable; UINT8 CDSessionTime; UINT8 CDPeriod; CD_STATE CD_State;} CARRIER_DETECTION, *PCARRIER_DETECTION;#endif // CARRIER_DETECTION_SUPPORT //typedef enum _REC_BLOCKACK_STATUS{ Recipient_NONE=0, Recipient_USED, Recipient_HandleRes, Recipient_Accept} REC_BLOCKACK_STATUS, *PREC_BLOCKACK_STATUS;typedef enum _ORI_BLOCKACK_STATUS{ Originator_NONE=0, Originator_USED, Originator_WaitRes, Originator_Done} ORI_BLOCKACK_STATUS, *PORI_BLOCKACK_STATUS;#ifdef DOT11_N_SUPPORTtypedef struct _BA_ORI_ENTRY{ UCHAR Wcid; UCHAR TID; UCHAR BAWinSize; UCHAR Token;// Sequence is to fill every outgoing QoS DATA frame's sequence field in 802.11 header. USHORT Sequence; USHORT TimeOutValue; ORI_BLOCKACK_STATUS ORI_BA_Status; RALINK_TIMER_STRUCT ORIBATimer; PVOID pAdapter;} BA_ORI_ENTRY, *PBA_ORI_ENTRY;typedef struct _BA_REC_ENTRY { UCHAR Wcid; UCHAR TID; UCHAR BAWinSize; // 7.3.1.14. each buffer is capable of holding a max AMSDU or MSDU. //UCHAR NumOfRxPkt; //UCHAR Curindidx; // the head in the RX reordering buffer USHORT LastIndSeq;// USHORT LastIndSeqAtTimer; USHORT TimeOutValue; RALINK_TIMER_STRUCT RECBATimer; ULONG LastIndSeqAtTimer; ULONG nDropPacket; ULONG rcvSeq; REC_BLOCKACK_STATUS REC_BA_Status;// UCHAR RxBufIdxUsed; // corresponding virtual address for RX reordering packet storage. //RTMP_REORDERDMABUF MAP_RXBuf[MAX_RX_REORDERBUF]; NDIS_SPIN_LOCK RxReRingLock; // Rx Ring spinlock// struct _BA_REC_ENTRY *pNext; PVOID pAdapter; struct reordering_list list;} BA_REC_ENTRY, *PBA_REC_ENTRY;typedef struct { ULONG numAsRecipient; // I am recipient of numAsRecipient clients. These client are in the BARecEntry[] ULONG numAsOriginator; // I am originator of numAsOriginator clients. These clients are in the BAOriEntry[] BA_ORI_ENTRY BAOriEntry[MAX_LEN_OF_BA_ORI_TABLE]; BA_REC_ENTRY BARecEntry[MAX_LEN_OF_BA_REC_TABLE];} BA_TABLE, *PBA_TABLE;//For QureyBATableOID use;typedef struct PACKED _OID_BA_REC_ENTRY{ UCHAR MACAddr[MAC_ADDR_LEN]; UCHAR BaBitmap; // if (BaBitmap&(1<<TID)), this session with{MACAddr, TID}exists, so read BufSize[TID] for BufferSize UCHAR rsv; UCHAR BufSize[8]; REC_BLOCKACK_STATUS REC_BA_Status[8];} OID_BA_REC_ENTRY, *POID_BA_REC_ENTRY;//For QureyBATableOID use;typedef struct PACKED _OID_BA_ORI_ENTRY{ UCHAR MACAddr[MAC_ADDR_LEN]; UCHAR BaBitmap; // if (BaBitmap&(1<<TID)), this session with{MACAddr, TID}exists, so read BufSize[TID] for BufferSize, read ORI_BA_Status[TID] for status UCHAR rsv; UCHAR BufSize[8]; ORI_BLOCKACK_STATUS ORI_BA_Status[8];} OID_BA_ORI_ENTRY, *POID_BA_ORI_ENTRY;typedef struct _QUERYBA_TABLE{ OID_BA_ORI_ENTRY BAOriEntry[32]; OID_BA_REC_ENTRY BARecEntry[32]; UCHAR OriNum;// Number of below BAOriEntry UCHAR RecNum;// Number of below BARecEntry} QUERYBA_TABLE, *PQUERYBA_TABLE;typedef union _BACAP_STRUC {#ifdef RT_BIG_ENDIAN struct { UINT32 :4; UINT32 b2040CoexistScanSup:1; //As Sta, support do 2040 coexistence scan for AP. As Ap, support monitor trigger event to check if can use BW 40MHz. UINT32 bHtAdhoc:1; // adhoc can use ht rate. UINT32 MMPSmode:2; // MIMO power save more, 0:static, 1:dynamic, 2:rsv, 3:mimo enable UINT32 AmsduSize:1; // 0:3839, 1:7935 bytes. UINT MSDUSizeToBytes[] = { 3839, 7935}; UINT32 AmsduEnable:1; //Enable AMSDU transmisstion UINT32 MpduDensity:3; UINT32 Policy:2; // 0: DELAY_BA 1:IMMED_BA (//BA Policy subfiled value in ADDBA frame) 2:BA-not use UINT32 AutoBA:1; // automatically BA UINT32 TxBAWinLimit:8; UINT32 RxBAWinLimit:8; } field;#else struct { UINT32 RxBAWinLimit:8; UINT32 TxBAWinLimit:8; UINT32 AutoBA:1; // automatically BA UINT32 Policy:2; // 0: DELAY_BA 1:IMMED_BA (//BA Policy subfiled value in ADDBA frame) 2:BA-not use UINT32 MpduDensity:3; UINT32 AmsduEnable:1; //Enable AMSDU transmisstion UINT32 AmsduSize:1; // 0:3839, 1:7935 bytes. UINT MSDUSizeToBytes[] = { 3839, 7935}; UINT32 MMPSmode:2; // MIMO power save more, 0:static, 1:dynamic, 2:rsv, 3:mimo enable UINT32 bHtAdhoc:1; // adhoc can use ht rate. UINT32 b2040CoexistScanSup:1; //As Sta, support do 2040 coexistence scan for AP. As Ap, support monitor trigger event to check if can use BW 40MHz. UINT32 :4; } field;#endif UINT32 word;} BACAP_STRUC, *PBACAP_STRUC;#endif // DOT11_N_SUPPORT ////This structure is for all 802.11n card InterOptibilityTest action. Reset all Num every n second. (Details see MLMEPeriodic)typedef struct _IOT_STRUC { UCHAR Threshold[2]; UCHAR ReorderTimeOutNum[MAX_LEN_OF_BA_REC_TABLE]; // compare with threshold[0] UCHAR RefreshNum[MAX_LEN_OF_BA_REC_TABLE]; // compare with threshold[1] ULONG OneSecInWindowCount; ULONG OneSecFrameDuplicateCount; ULONG OneSecOutWindowCount; UCHAR DelOriAct; UCHAR DelRecAct; UCHAR RTSShortProt; UCHAR RTSLongProt; BOOLEAN bRTSLongProtOn;#ifdef CONFIG_STA_SUPPORT BOOLEAN bLastAtheros; BOOLEAN bCurrentAtheros; BOOLEAN bNowAtherosBurstOn; BOOLEAN bNextDisableRxBA; BOOLEAN bToggle;#endif // CONFIG_STA_SUPPORT //} IOT_STRUC, *PIOT_STRUC;// This is the registry setting for 802.11n transmit setting. Used in advanced page.typedef union _REG_TRANSMIT_SETTING {#ifdef RT_BIG_ENDIAN struct { UINT32 rsv:13; UINT32 EXTCHA:2; UINT32 HTMODE:1; UINT32 TRANSNO:2; UINT32 STBC:1; //SPACE UINT32 ShortGI:1; UINT32 BW:1; //channel bandwidth 20MHz or 40 MHz UINT32 TxBF:1; // 3*3 UINT32 rsv0:10; //UINT32 MCS:7; // MCS //UINT32 PhyMode:4; } field;#else struct { //UINT32 PhyMode:4; //UINT32 MCS:7; // MCS UINT32 rsv0:10; UINT32 TxBF:1; UINT32 BW:1; //channel bandwidth 20MHz or 40 MHz UINT32 ShortGI:1; UINT32 STBC:1; //SPACE UINT32 TRANSNO:2; UINT32 HTMODE:1; UINT32 EXTCHA:2; UINT32 rsv:13; } field;#endif UINT32 word;} REG_TRANSMIT_SETTING, *PREG_TRANSMIT_SETTING;typedef union _DESIRED_TRANSMIT_SETTING {#ifdef RT_BIG_ENDIAN struct { USHORT rsv:3; USHORT FixedTxMode:2; // If MCS isn't AUTO, fix rate in CCK, OFDM or HT mode. USHORT PhyMode:4; USHORT MCS:7; // MCS } field;#else struct { USHORT MCS:7; // MCS USHORT PhyMode:4; USHORT FixedTxMode:2; // If MCS isn't AUTO, fix rate in CCK, OFDM or HT mode. USHORT rsv:3; } field;#endif USHORT word; } DESIRED_TRANSMIT_SETTING, *PDESIRED_TRANSMIT_SETTING;typedef struct { BOOLEAN IsRecipient; UCHAR MACAddr[MAC_ADDR_LEN]; UCHAR TID; UCHAR nMSDU; USHORT TimeOut; BOOLEAN bAllTid; // If True, delete all TID for BA sessions with this MACaddr.} OID_ADD_BA_ENTRY, *POID_ADD_BA_ENTRY;//// Multiple SSID structure//#define WLAN_MAX_NUM_OF_TIM ((MAX_LEN_OF_MAC_TABLE >> 3) + 1) /* /8 + 1 */#define WLAN_CT_TIM_BCMC_OFFSET 0 /* unit: 32B *//* clear bcmc TIM bit */#define WLAN_MR_TIM_BCMC_CLEAR(apidx) \ pAd->ApCfg.MBSSID[apidx].TimBitmaps[WLAN_CT_TIM_BCMC_OFFSET] &= ~BIT8[0];/* set bcmc TIM bit */#define WLAN_MR_TIM_BCMC_SET(apidx) \ pAd->ApCfg.MBSSID[apidx].TimBitmaps[WLAN_CT_TIM_BCMC_OFFSET] |= BIT8[0];/* clear a station PS TIM bit */#define WLAN_MR_TIM_BIT_CLEAR(ad_p, apidx, wcid) \ { UCHAR tim_offset = wcid >> 3; \ UCHAR bit_offset = wcid & 0x7; \ ad_p->ApCfg.MBSSID[apidx].TimBitmaps[tim_offset] &= (~BIT8[bit_offset]); }/* set a station PS TIM bit */#define WLAN_MR_TIM_BIT_SET(ad_p, apidx, wcid) \ { UCHAR tim_offset = wcid >> 3; \ UCHAR bit_offset = wcid & 0x7; \ ad_p->ApCfg.MBSSID[apidx].TimBitmaps[tim_offset] |= BIT8[bit_offset]; }#ifdef RT2870#define BEACON_BITMAP_MASK 0xfftypedef struct _BEACON_SYNC_STRUCT_{ UCHAR BeaconBuf[HW_BEACON_MAX_COUNT][HW_BEACON_OFFSET]; UCHAR BeaconTxWI[HW_BEACON_MAX_COUNT][TXWI_SIZE]; ULONG TimIELocationInBeacon[HW_BEACON_MAX_COUNT]; ULONG CapabilityInfoLocationInBeacon[HW_BEACON_MAX_COUNT]; BOOLEAN EnableBeacon; // trigger to enable beacon transmission. UCHAR BeaconBitMap; // NOTE: If the MAX_MBSSID_NUM is larger than 8, this parameter need to change. UCHAR DtimBitOn; // NOTE: If the MAX_MBSSID_NUM is larger than 8, this parameter need to change.}BEACON_SYNC_STRUCT;#endif // RT2870 //typedef struct _MULTISSID_STRUCT { UCHAR Bssid[MAC_ADDR_LEN]; UCHAR SsidLen; CHAR Ssid[MAX_LEN_OF_SSID]; USHORT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -