📄 rtmp.h
字号:
UCHAR channel; ULONG wait_time; UCHAR delta_delay_range; UCHAR delta_delay_step; UCHAR EL_range; UCHAR EL_step; UCHAR EH_range; UCHAR EH_step; UCHAR WL_range; UCHAR WL_step; UCHAR WH_range; UCHAR WH_step; ULONG T_expected; ULONG T_margin; UCHAR start; ULONG count; ULONG idx;}NewDFSDebug, *pNewDFSDebug;#define NEW_DFS_FCC_5_ENT_NUM 5typedef struct _NewDFSFcc5Debug{ ULONG counter; ULONG timestamp; USHORT width;}NewDFSFcc5Debug, *pNewDFSFcc5Debug;#endif // NEW_DFS //typedef enum _ABGBAND_STATE_ { UNKNOWN_BAND, BG_BAND, A_BAND,} ABGBAND_STATE;/*************************************************************************** * structure for MLME state machine **************************************************************************/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_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];#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 // // common WPA state machine STATE_MACHINE WpaMachine; STATE_MACHINE_FUNC WpaFunc[WPA_FUNC_SIZE]; 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 RTMP_MAC_USB RALINK_TIMER_STRUCT AutoWakeupTimer; BOOLEAN AutoWakeupTimerRunning;#endif // RTMP_MAC_USB //} MLME_STRUCT, *PMLME_STRUCT;#ifdef DOT11_N_SUPPORT/*************************************************************************** * 802.11 N related data structures **************************************************************************/struct reordering_mpdu{ struct reordering_mpdu *next; PNDIS_PACKET pPacket; /* coverted to 802.3 frame */ int Sequence; /* sequence number of MPDU */ BOOLEAN bAMSDU;};struct reordering_list{ struct reordering_mpdu *next; int qlen;};struct reordering_mpdu_pool{ PVOID mem; NDIS_SPIN_LOCK lock; struct reordering_list freelist;};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;typedef 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[] ULONG numDoneOriginator; // count Done Originator sessions 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;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;#ifdef DOT11N_DRAFT3typedef enum _BSS2040COEXIST_FLAG{ BSS_2040_COEXIST_DISABLE = 0, BSS_2040_COEXIST_TIMER_FIRED = 1, BSS_2040_COEXIST_INFO_SYNC = 2, BSS_2040_COEXIST_INFO_NOTIFY = 4,}BSS2040COEXIST_FLAG;#endif // DOT11N_DRAFT3 //#define IS_HT_STA(_pMacEntry) \ (_pMacEntry->MaxHTPhyMode.field.MODE >= MODE_HTMIX)#define IS_HT_RATE(_pMacEntry) \ (_pMacEntry->HTPhyMode.field.MODE >= MODE_HTMIX)#define PEER_IS_HT_RATE(_pMacEntry) \ (_pMacEntry->HTPhyMode.field.MODE >= MODE_HTMIX)#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;#ifdef RTMP_MAC_USB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -