📄 rtmp.h
字号:
USHORT Psm; // power management mode (PWR_ACTIVE|PWR_SAVE) USHORT DisassocReason; UCHAR DisassocSta[MAC_ADDR_LEN]; USHORT DeauthReason; UCHAR DeauthSta[MAC_ADDR_LEN]; USHORT AuthFailReason; UCHAR AuthFailSta[MAC_ADDR_LEN]; NDIS_802_11_AUTHENTICATION_MODE AuthMode; // This should match to whatever microsoft defined NDIS_802_11_WEP_STATUS WepStatus; NDIS_802_11_WEP_STATUS OrigWepStatus; // Original wep status set from OID#ifdef NATIVE_WPA_SUPPLICANT_SUPPORT int wx_auth_alg; // OPEN, SHARED, LEAP int wx_key_mgmt; // WPA-PSK, WPA-EAP, IEEE8021X, NONE int wx_wpa_version; // WPA(IEEE802.11i/D3), RSN(WPA2/IEEE802.11i) int wx_pairwise; // CCMP, TKIP, NONE; int wx_groupCipher; // CCMP, TKIP, WEP104, WEP40// UCHAR wx_RSN_IE[MAX_WPA_IE_LEN];// UCHAR wx_RSNIE_Len; // Used to save WPA/RSN IE temporary.// UCHAR wx_psk[65]; // WPA pre-shared key.(64 hex-digitial or 8~63 ascii)// int wx_eapol_flags; // bit(0): require dynamically generated unicast WEP key // bit(1):require dynamically generated broadcast WEP key // bit(2): Require both. BOOLEAN wx_need_sync; //Notify that need to sync the wpa_supplicant configuration with our driver. BOOLEAN bNativeWpa; // add by johnli, enable/disable native wpa supplicant#endif // Add to support different cipher suite for WPA2/WPA mode NDIS_802_11_ENCRYPTION_STATUS GroupCipher; // Multicast cipher suite NDIS_802_11_ENCRYPTION_STATUS PairCipher; // Unicast cipher suite BOOLEAN bMixCipher; // Indicate current Pair & Group use different cipher suites USHORT RsnCapability; // MIB:ieee802dot11.dot11smt(1).dot11WEPDefaultKeysTable(3) CIPHER_KEY PskKey; // WPA PSK mode PMK UCHAR PTK[64]; // WPA PSK mode PTK BSSID_INFO SavedPMK[PMKID_NO]; ULONG SavedPMKNum; // Saved PMKID number // WPA 802.1x port control, WPA_802_1X_PORT_SECURED, WPA_802_1X_PORT_NOT_SECURED UCHAR PortSecured; UCHAR RSN_IE[44]; UCHAR RSN_IELen;//#ifdef RALINK_WPA_SUPPLICANT_SUPPORT BOOLEAN IEEE8021X; // Enable or disable IEEE 802.1x CIPHER_KEY DesireSharedKey[4]; // Record user desired WEP keys BOOLEAN IEEE8021x_required_keys; // Enable or disable dynamic wep key updating BOOLEAN WPA_Supplicant; // Enable or disable WPA_SUPPLICANT //#endif // For WPA countermeasures ULONG LastMicErrorTime; // record last MIC error time ULONG MicErrCnt; // Should be 0, 1, 2, then reset to zero (after disassoiciation). BOOLEAN bBlockAssoc; // Block associate attempt for 60 seconds after counter measure occurred. // For WPA-PSK supplicant state WPA_STATE WpaState; // Default is SS_NOTUSE and handled by microsoft 802.1x UCHAR ReplayCounter[8]; UCHAR ANonce[32]; // ANonce for WPA-PSK from aurhenticator UCHAR SNonce[32]; // SNonce for WPA-PSK // MIB:ieee802dot11.dot11smt(1).dot11PrivacyTable(5) UCHAR DefaultKeyId; NDIS_802_11_PRIVACY_FILTER PrivacyFilter; // PrivacyFilter enum for 802.1X // MIB:ieee802dot11.dot11mac(2).dot11OperationTable(1) USHORT RtsThreshold; // in unit of BYTE USHORT FragmentThreshold; // in unit of BYTE BOOLEAN bFragmentZeroDisable; // Microsoft use 0 as disable // MIB:ieee802dot11.dot11phy(4).dot11PhyTxPowerTable(3) UCHAR TxPower; // in unit of mW ULONG TxPowerPercentage; // 0~100 % ULONG TxPowerDefault; // keep for TxPowerPercentage // MIB:ieee802dot11.dot11phy(4).dot11PhyDSSSTable(5) UCHAR Channel; // current (I)BSS channel used in the station UCHAR AdhocChannel; // current (I)BSS channel used in the station UCHAR CountryRegion; // Enum of country region, 0:FCC, 1:IC, 2:ETSI, 3:SPAIN, 4:France, 5:MKK, 6:MKK1, 7:Israel UCHAR CountryRegionForABand; // Enum of country region for A band // Copy supported rate from desired AP's beacon. We are trying to match // AP's supported and extended rate settings. UCHAR SupRate[MAX_LEN_OF_SUPPORTED_RATES]; UCHAR SupRateLen; UCHAR ExtRate[MAX_LEN_OF_SUPPORTED_RATES]; UCHAR ExtRateLen; UCHAR ExpectedACKRate[MAX_LEN_OF_SUPPORTED_RATES]; ULONG BasicRateBitmap; // backup basic ratebitmap // // other parameters not defined in standard MIB // UCHAR DesireRate[MAX_LEN_OF_SUPPORTED_RATES]; // OID_802_11_DESIRED_RATES UCHAR MaxDesiredRate; UCHAR DefaultMaxDesiredRate; UCHAR BasicMlmeRate; // Default Rate for sending MLME frames UCHAR MlmeRate; UCHAR RtsRate; // RATE_xxx UCHAR TxRate; // RATE_1, RATE_2, RATE_5_5, RATE_11, ... UCHAR MaxTxRate; // RATE_1, RATE_2, RATE_5_5, RATE_11 UCHAR Bssid[MAC_ADDR_LEN]; USHORT BeaconPeriod; //2007/12/27:KH add one to the length of SSID to fix the bug of the maximum SSIDLen of SSID CHAR Ssid[MAX_LEN_OF_SSID+1]; // NOT NULL-terminated UCHAR SsidLen; // the actual ssid length in used UCHAR LastSsidLen; // the actual ssid length in used //2007/12/27:KH add one to the length of SSID to fix the bug of the maximum SSIDLen of SSID CHAR LastSsid[MAX_LEN_OF_SSID+1]; // NOT NULL-terminated UCHAR LastBssid[MAC_ADDR_LEN]; UCHAR BssType; // BSS_INFRA or BSS_ADHOC USHORT AtimWin; // used when starting a new IBSS UCHAR RssiTrigger; UCHAR RssiTriggerMode; // RSSI_TRIGGERED_UPON_BELOW_THRESHOLD or RSSI_TRIGGERED_UPON_EXCCEED_THRESHOLD USHORT DefaultListenCount; // default listen count; ULONG WindowsPowerMode; // Power mode for AC power ULONG WindowsBatteryPowerMode; // Power mode for battery if exists BOOLEAN bWindowsACCAMEnable; // Enable CAM power mode when AC on BOOLEAN bAutoReconnect; // Set to TRUE when setting OID_802_11_SSID with no matching BSSID UCHAR LastRssi; // last received BEACON's RSSI UCHAR LastRssi2; // last received BEACON's RSSI for smart antenna USHORT AvgRssi; // last 8 BEACON's average RSSI USHORT AvgRssiX8; // sum of last 8 BEACON's RSSI ULONG NumOfAvgRssiSample; ULONG LastBeaconRxTime; // OS's timestamp of the last BEACON RX time ULONG Last11bBeaconRxTime; // OS's timestamp of the last 11B BEACON RX time ULONG LastScanTime; // Record last scan time for issue BSSID_SCAN_LIST ULONG ScanCnt; // Scan counts since most recent SSID, BSSID, SCAN OID request BOOLEAN bSwRadio; // Software controlled Radio On/Off, TRUE: On BOOLEAN bHwRadio; // Hardware controlled Radio On/Off, TRUE: On BOOLEAN bRadio; // Radio state, And of Sw & Hw radio state BOOLEAN bHardwareRadio; // Hardware controlled Radio enabled BOOLEAN bShowHiddenSSID; // Show all known SSID in SSID list get operation // PHY specification UCHAR PhyMode; // PHY_11A, PHY_11B, PHY_11BG_MIXED, PHY_ABG_MIXED USHORT Dsifs; // in units of usec USHORT TxPreamble; // Rt802_11PreambleLong, Rt802_11PreambleShort, Rt802_11PreambleAuto // New for WPA, windows want us to to keep association information and // Fixed IEs from last association response NDIS_802_11_ASSOCIATION_INFORMATION AssocInfo; UCHAR ReqVarIELen; // Length of next VIE include EID & Length UCHAR ReqVarIEs[MAX_VIE_LEN]; UCHAR ResVarIELen; // Length of next VIE include EID & Length UCHAR ResVarIEs[MAX_VIE_LEN]; ULONG EnableTurboRate; // 1: enable 72/100 Mbps whenever applicable, 0: never use 72/100 Mbps ULONG UseBGProtection; // 0:AUTO, 1-always ON,2-always OFF ULONG UseShortSlotTime; // 0: disable, 1 - use short slot (9us) // EDCA Qos BOOLEAN bWmmCapable; // 0:disable WMM, 1:enable WMM QOS_CAPABILITY_PARM APQosCapability; // QOS capability of the current associated AP EDCA_PARM APEdcaParm; // EDCA parameters of the current associated AP QBSS_LOAD_PARM APQbssLoad; // QBSS load of the current associated AP BOOLEAN bEnableTxBurst; // 0: disable, 1: enable TX PACKET BURST BOOLEAN bAggregationCapable; // 1: enable TX aggregation when the peer supports it BOOLEAN bUseZeroToDisableFragment; // Microsoft use 0 as disable BOOLEAN bIEEE80211H; // 1: enable IEEE802.11h spec. // a bitmap of BOOLEAN flags. each bit represent an operation status of a particular // BOOLEAN control, either ON or OFF. These flags should always be accessed via // OPSTATUS_TEST_FLAG(), OPSTATUS_SET_FLAG(), OP_STATUS_CLEAR_FLAG() macros. // see fOP_STATUS_xxx in RTMP_DEF.C for detail bit definition ULONG OpStatusFlags; UCHAR AckPolicy[4]; // ACK policy of the specified AC. see ACK_xxx ABGBAND_STATE BandState; // For setting BBP used on B/G or A mode ULONG AdhocMode; // 0:WIFI mode (11b rates only), 1: b/g mixed, 2: 11g only, 3: 11a only, 4: 11abg mixed RALINK_TIMER_STRUCT QuickResponeForRateUpTimer; BOOLEAN QuickResponeForRateUpTimerRunning; RALINK_TIMER_STRUCT WpaDisassocAndBlockAssocTimer; //BensonLiu 07-11-22 add for countermeasure // Fast Roaming BOOLEAN bFastRoaming; // 0:disable fast roaming, 1:enable fast roaming ULONG dBmToRoam; // the condition to roam when receiving Rssi less than this value. It's negative value. RADAR_DETECT_STRUCT RadarDetect; BOOLEAN bGetAPConfig;} PORT_CONFIG, *PPORT_CONFIG;// This data structure keep the current active BSS/IBSS's configuration that this STA// had agreed upon joining the network. Which means these parameters are usually decided// by the BSS/IBSS creator instead of user configuration. Data in this data structurre // is valid only when either ADHOC_ON(pAd) or INFRA_ON(pAd) is TRUE.// Normally, after SCAN or failed roaming attempts, we need to recover back to// the current active settings.typedef struct _ACTIVE_CONFIG { USHORT Aid; USHORT AtimWin; // in kusec; IBSS parameter set element USHORT CapabilityInfo; USHORT CfpMaxDuration; USHORT CfpPeriod; // Copy supported rate from desired AP's beacon. We are trying to match // AP's supported and extended rate settings. UCHAR SupRate[MAX_LEN_OF_SUPPORTED_RATES]; UCHAR ExtRate[MAX_LEN_OF_SUPPORTED_RATES]; UCHAR SupRateLen; UCHAR ExtRateLen;} ACTIVE_CONFIG, *PACTIVE_CONFIG;#ifdef BLOCK_NET_IFtypedef struct _BLOCK_QUEUE_ENTRY{ BOOLEAN SwTxQueueBlockFlag; LIST_HEADER NetIfList;} BLOCK_QUEUE_ENTRY, *PBLOCK_QUEUE_ENTRY;#endif // BLOCK_NET_IF ////// The miniport adapter structure//typedef struct _RTMP_ADAPTER{ //---------------------------- // Linux specific //---------------------------- CHAR nickn[IW_ESSID_MAX_SIZE+1]; // nickname, only used in the iwconfig i/f struct usb_device *pUsb_Dev; struct net_device *net_dev; struct tasklet_struct rx_bh; struct usb_config_descriptor *config; devctrlrequest *devreq; /* The device we're working with * It's important to note: * (o) you must hold dev_semaphore to change pUsb_Dev */ struct semaphore usbdev_semaphore; /* protect usb */ // Thread struct semaphore mlme_semaphore; /* to sleep thread on */ struct semaphore RTUSBCmd_semaphore; /* to sleep thread on */ //2008/01/07:KH add to solve the racing condition of Mac Registers struct semaphore MaCRegWrite_semaphore; struct completion MlmeThreadNotify; /* thread begin/end */ struct completion CmdThreadNotify; /* thread begin/end */ pid_t MLMEThr_pid; pid_t RTUSBCmdThr_pid; wait_queue_head_t *wait; #if WIRELESS_EXT >= 12 struct iw_statistics iw_stats;#endif struct net_device_stats stats; ULONG VendorDesc; // VID/PID INT ioctl_if_type; // resource for software backlog queues QUEUE_HEADER TxSwQueue[NUM_OF_TX_RING]; // 4 AC + 1 HCCA MGMT_STRUC MgmtRing[MGMT_RING_SIZE]; ULONG MaxTxQueueSize; // outgoing BEACON frame buffer and corresponding TXD TXD_STRUC BeaconTxD; UCHAR BeaconBuf[256]; // NOTE: BeaconBuf should be 4-byte aligned // pre-build PS-POLL and NULL frame upon link up. for efficiency purpose. PSPOLL_FRAME PsPollFrame; HEADER_802_11 NullFrame; // configuration: read from Registry & E2PROM BOOLEAN bLocalAdminMAC; // Use user changed MAC UCHAR PermanentAddress[MAC_ADDR_LEN]; // Factory default MAC address UCHAR CurrentAddress[MAC_ADDR_LEN]; // User changed MAC address MLME_STRUCT Mlme; // --------------------------- // STA specific configuration // --------------------------- PORT_CONFIG PortCfg; // user desired settings ACTIVE_CONFIG ActiveCfg; // valid only when ADHOC_ON(pAd) || INFRA_ON(pAd) MLME_AUX MlmeAux; // temporary settings used during MLME state machine BSS_TABLE ScanTab; // store the latest SCAN result // encryption/decryption KEY tables CIPHER_KEY SharedKey[4];// CIPHER_KEY PairwiseKey[64]; // for AP only // Boolean control for packet filter BOOLEAN bAcceptDirect; BOOLEAN bAcceptMulticast; BOOLEAN bAcceptBroadcast; BOOLEAN bAcceptAllMulticast; // 802.3 multicast support ULONG NumberOfMcastAddresses; // Number of mcast entry exists UCHAR McastTable[MAX_MCAST_LIST_SIZE][MAC_ADDR_LEN]; // Mcast list // RX Tuple chahe for duplicate frame check TUPLE_CACHE TupleCache[MAX_CLIENT]; // Maximum number of tuple caches, only useful in Ad-Hoc UCHAR TupleCacheLastUpdateIndex; // 0..MAX_CLIENT-1 // RX re-assembly buffer for fragmentation FRAGMENT_FRAME FragFrame; // Frame storage for fragment frame // various Counters COUNTER_802_3 Counters8023; // 802.3 counters COUNTER_802_11 WlanCounters; // 802.11 MIB counters COUNTER_RALINK RalinkCounters; // Ralink propriety counters COUNTER_DRS DrsCounters; // counters for Dynamic TX Rate Switching PRIVATE_STRUC PrivateInfo; // Private information & counters // Counters for 802.3 & generic. // Add 802.11 specific counters later COUNTER_802_3 Counters; // 802.3 counters COUNTER_QA QACounters; // Ralink propriety counters // flags, see fRTMP_ADAPTER_xxx flags ULONG Flags; // Represent current device status // current TX sequence # USHORT Sequence; // Control disconnect / connect event generation ULONG LinkDownTime; ULONG LastRxRate; BOOLEAN bConfigChanged; // Config Change flag for the same SSID setting ULONG ExtraInfo; // Extra information for displaying status ULONG SystemErrorBitmap; // b0: E2PROM version error // --------------------------- // E2PROM // --------------------------- ULONG EepromVersion; // byte 0: version, byte 1: revision, byte 2~3: unused UCHAR EEPROMAddressNum; // 93c46=6 93c66=8 USHORT EEPROMDefaultValue[NUM_EEPROM_BBP_PARMS]; ULONG FirmwareVersion; // byte 0: Minor version, byte 1: Major version, otherwise unused. // --------------------------- // BBP Control // --------------------------- UCHAR BbpWriteLatch[110]; // record last BBP register value written via BBP_IO_WRITE/BBP_IO_WRITE_VY_REG_ID UCHAR BbpRssiToDbmDelta; BBP_R17_TUNING BbpTuning; // ---------------------------- // RFIC control // ---------------------------- UCHAR RfIcType; // RFIC_xxx ULONG RfFreqOffset; // Frequency offset for channel switching BOOLEAN bAutoTxAgc; // Enable driver auto Tx Agc control RTMP_RF_REGS LatchRfRegs; // latch th latest RF programming value since RF IC doesn't support READ// CCK_TX_POWER_CALIBRATE CckTxPowerCalibrate; // 2004-05-25 add CCK TX power caliberation based on E2PROM settings UCHAR RFProgSeq; EEPROM_ANTENNA_STRUC Antenna; // Since ANtenna definition is different for a & g. We need to save it for future reference. EEPROM_NIC_CONFIG2_STRUC NicConfig2; CHANNEL_TX_POWER TxPower[MAX_NUM_OF_CHANNELS]; // Store Tx power value for all channels. CHANNEL_TX_POWER ChannelList[MAX_NUM_OF_CHANNELS]; // list all supported channels for site survey UCHAR ChannelListNum; // number of channel in ChannelList[] EEPROM_TXPOWER_DELTA_STRUC TxPowerDeltaConfig; // Compensate the Tx power BBP94 with this configurate value UCHAR Bbp94; BOOLEAN BbpForCCK;// UCHAR ChannelTssiRef[MAX_NUM_OF_CHANNELS]; // Store Tssi Reference value for all channels.// UCHAR ChannelTssiDelta; // Store Tx TSSI delta increment / decrement value // This soft Rx Antenna Diversity mechanism is used only when user set // RX Antenna = DIVERSITY ON SOFT_RX_ANT_DIVERSITY RxAnt; BOOLEAN bAutoTxAgcA; // Enable driver auto Tx Agc control UCHAR TssiRefA; // Store Tssi reference value as 25 tempature. UCHAR TssiPlusBoundaryA[5]; // Tssi boundary for increase Tx power to compensate. UCHAR TssiMinusBoundaryA[5]; // Tssi boundary for decrease Tx power to compensate. UCHAR TxAgcStepA; // Store Tx TSSI delta increment / decrement value CHAR TxAgcCompensateA; // Store the compensation (TxAgcStep * (idx-1)) BOOLEAN bAutoTxAgcG; // Enable driver auto Tx Agc control UCHAR TssiRefG; // Store Tssi reference value as 25 tempature. UCHAR TssiPlusBoundaryG[5]; // Tssi boundary for increase Tx power to compensate. UCHAR TssiMinusBoundaryG[5]; // Tssi boundary for decrease Tx power to compensate. UCHAR TxAgcStepG; // Store Tx TSSI delta increment / decrement value CHAR TxAgcCompensateG; // Store the compensation (TxAgcStep * (idx-1)) CHAR BGRssiOffset1; // Store B/G RSSI#1 Offset value on EEPROM 0x9Ah CHAR BGRssiOffset2; // Store B/G RSSI#2 Offset value CHAR ARssiOffset1; // Store A RSSI#1 Offset value on EEPROM 0x9Ch CHAR ARssiOffset2; // ---------------------------- // LED control // ---------------------------- MCU_LEDCS_STRUC LedCntl; USHORT LedIndicatorStrength; // ---------------------------- // DEBUG paramerts // ----------------------------// ULONG DebugSetting[4];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -