// vim:tw=110:ts=4: #ifndef MDD_H #define MDD_H 1 /************************************************************************************************************* * * FILE : mdd.h * * DATE : $Date: 2004/08/05 11:47:10 $ $Revision: 1.6 $ * Original : 2004/05/25 05:59:37 Revision: 1.57 Tag: hcf7_t20040602_01 * Original : 2004/05/13 15:31:45 Revision: 1.54 Tag: hcf7_t7_20040513_01 * Original : 2004/04/15 09:24:41 Revision: 1.47 Tag: hcf7_t7_20040415_01 * Original : 2004/04/13 14:22:45 Revision: 1.46 Tag: t7_20040413_01 * Original : 2004/04/01 15:32:55 Revision: 1.42 Tag: t7_20040401_01 * Original : 2004/03/10 15:39:28 Revision: 1.38 Tag: t20040310_01 * Original : 2004/03/04 11:03:37 Revision: 1.36 Tag: t20040304_01 * Original : 2004/03/02 09:27:11 Revision: 1.34 Tag: t20040302_03 * Original : 2004/02/24 13:00:27 Revision: 1.29 Tag: t20040224_01 * Original : 2004/02/18 17:13:57 Revision: 1.26 Tag: t20040219_01 * * AUTHOR : Nico Valster * * DESC : Definitions and Prototypes for HCF, DHF, MMD and MSF * *************************************************************************************************************** * * * SOFTWARE LICENSE * * This software is provided subject to the following terms and conditions, * which you should read carefully before using the software. Using this * software indicates your acceptance of these terms and conditions. If you do * not agree with these terms and conditions, do not use the software. * * COPYRIGHT © 1994 - 1995 by AT&T. All Rights Reserved * COPYRIGHT © 1996 - 2000 by Lucent Technologies. All Rights Reserved * COPYRIGHT © 2001 - 2004 by Agere Systems Inc. All Rights Reserved * All rights reserved. * * Redistribution and use in source or binary forms, with or without * modifications, are permitted provided that the following conditions are met: * * . Redistributions of source code must retain the above copyright notice, this * list of conditions and the following Disclaimer as comments in the code as * well as in the documentation and/or other materials provided with the * distribution. * * . Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following Disclaimer in the documentation * and/or other materials provided with the distribution. * * . Neither the name of Agere Systems Inc. nor the names of the contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * Disclaimer * * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. * * ************************************************************************************************************/ /************************************************************************************************************ * * The macros Xn(...) and XXn(...) are used to define the LTV's (short for Length Type Value[ ]) , * aka RIDs, processed by the Hermes. * The n in Xn and XXn reflects the number of "Value" fields in these RIDs. * * Xn(...) : Macros used for RIDs which use only type hcf_16 for the "V" fields of the LTV. * Xn takes as parameters a RID name and "n" name(s), one for each of the "V" fields of the LTV. * * XXn(...) : Macros used for RIDs which use at least one other type then hcf_16 for a "V" field * of the LTV. * XXn(..) takes as parameters a RID name and "n" pair(s) of type and name, one for each "V" field * of the LTV ****************************************** e x a m p l e s *********************************************** * X1(RID_NAME, parameters...) : expands to : * typedef struct RID_NAME_STRCT { * hcf_16 len; * hcf_16 typ; * hcf_16 par1; * } RID_NAME_STRCT; * X2(RID_NAME, parameters...) : expands to : * typedef struct RID_NAME_STRCT { * hcf_16 len; * hcf_16 typ; * hcf_16 par1; * hcf_16 par2; * } RID_NAME_STRCT; * XX1(RID_NAME, par1type, par1name, ...) : expands to : * typedef struct RID_NAME_STRCT { * hcf_16 len; * hcf_16 typ; * par1type par1name; * } RID_NAME_STRCT; ************************************************************************************************************/ /******************************* XX Sub-macro definitions **************************************************/ #define XX1( name, type1, par1 ) \ typedef struct { \ hcf_16 len; \ hcf_16 typ; \ type1 par1; \ } name##_STRCT; #define XX2( name, type1, par1, type2, par2 ) \ typedef struct { \ hcf_16 len; \ hcf_16 typ; \ type1 par1; \ type2 par2; \ } name##_STRCT; #define XX3( name, type1, par1, type2, par2, type3, par3 ) \ typedef struct name##_STRCT { \ hcf_16 len; \ hcf_16 typ; \ type1 par1; \ type2 par2; \ type3 par3; \ } name##_STRCT; #define XX4( name, type1, par1, type2, par2, type3, par3, type4, par4 ) \ typedef struct { \ hcf_16 len; \ hcf_16 typ; \ type1 par1; \ type2 par2; \ type3 par3; \ type4 par4; \ } name##_STRCT; #define X1( name, par1 ) \ typedef struct name##_STRCT { \ hcf_16 len; \ hcf_16 typ; \ hcf_16 par1; \ } name##_STRCT; #define X2( name, par1, par2 ) \ typedef struct { \ hcf_16 len; \ hcf_16 typ; \ hcf_16 par1; \ hcf_16 par2; \ } name##_STRCT; #define X3( name, par1, par2, par3 ) \ typedef struct { \ hcf_16 len; \ hcf_16 typ; \ hcf_16 par1; \ hcf_16 par2; \ hcf_16 par3; \ } name##_STRCT; #define X4( name, par1, par2, par3, par4 ) \ typedef struct { \ hcf_16 len; \ hcf_16 typ; \ hcf_16 par1; \ hcf_16 par2; \ hcf_16 par3; \ hcf_16 par4; \ } name##_STRCT; #define X5( name, par1, par2, par3, par4, par5 ) \ typedef struct { \ hcf_16 len; \ hcf_16 typ; \ hcf_16 par1; \ hcf_16 par2; \ hcf_16 par3; \ hcf_16 par4; \ hcf_16 par5; \ } name##_STRCT; #define X6( name, par1, par2, par3, par4, par5, par6 ) \ typedef struct { \ hcf_16 len; \ hcf_16 typ; \ hcf_16 par1; \ hcf_16 par2; \ hcf_16 par3; \ hcf_16 par4; \ hcf_16 par5; \ hcf_16 par6; \ } name##_STRCT; #define X8( name, par1, par2, par3, par4, par5, par6, par7, par8 ) \ typedef struct { \ hcf_16 len; \ hcf_16 typ; \ hcf_16 par1; \ hcf_16 par2; \ hcf_16 par3; \ hcf_16 par4; \ hcf_16 par5; \ hcf_16 par6; \ hcf_16 par7; \ hcf_16 par8; \ } name##_STRCT; #define X11( name, par1, par2, par3, par4, par5, par6, par7, par8, par9, par10, par11 ) \ typedef struct { \ hcf_16 len; \ hcf_16 typ; \ hcf_16 par1; \ hcf_16 par2; \ hcf_16 par3; \ hcf_16 par4; \ hcf_16 par5; \ hcf_16 par6; \ hcf_16 par7; \ hcf_16 par8; \ hcf_16 par9; \ hcf_16 par10; \ hcf_16 par11; \ } name##_STRCT; /******************************* Substructure definitions **************************************************/ //apparently not needed (CFG_CNF_COUNTRY) typedef struct CHANNEL_SET { //channel set structure used in the CFG_CNF_COUNTRY LTV hcf_16 first_channel; hcf_16 number_of_channels; hcf_16 max_tx_output_level; } CHANNEL_SET; typedef struct KEY_STRCT { // key structure used in the CFG_DEFAULT_KEYS LTV hcf_16 len; //length of key hcf_8 key[14]; //encryption key } KEY_STRCT; typedef struct SCAN_RS_STRCT { // Scan Result structure used in the CFG_SCAN LTV hcf_16 channel_id; hcf_16 noise_level; hcf_16 signal_level; hcf_8 bssid[6]; hcf_16 beacon_interval_time; hcf_16 capability; hcf_16 ssid_len; hcf_8 ssid_val[32]; } SCAN_RS_STRCT; typedef struct CFG_RANGE_SPEC_STRCT { // range specification structure used in CFG_RANGES, CFG_RANGE1 etc hcf_16 variant; hcf_16 bottom; hcf_16 top; } CFG_RANGE_SPEC_STRCT; typedef struct CFG_RANGE_SPEC_BYTE_STRCT { // byte oriented range specification structure used in CFG_RANGE_B LTV hcf_8 variant[2]; hcf_8 bottom[2]; hcf_8 top[2]; } CFG_RANGE_SPEC_BYTE_STRCT; //used to set up "T" functionality for Info frames, i.e. log info frames in MSF supplied buffer and MailBox XX1( RID_LOG, unsigned short FAR*, bufp ) typedef RID_LOG_STRCT FAR *RID_LOGP; XX1( CFG_RID_LOG, RID_LOGP, recordp ) X1( LTV, val[1] ) /*minimum LTV proto typ */ X1( LTV_MAX, val[HCF_MAX_LTV] ) /*maximum LTV proto typ */ XX2( CFG_REG_MB, hcf_16* , mb_addr, hcf_16, mb_size ) typedef struct CFG_MB_INFO_FRAG { // specification of buffer fragment unsigned short FAR* frag_addr; hcf_16 frag_len; } CFG_MB_INFO_FRAG; /* Mail Box Info Block structures, * the base form: CFG_MB_INFO_STRCT * and the derived forms: CFG_MB_INFO_RANGE_STRCT with n is 1, 2, 3 or 20 * predefined for a payload of 1, and up to 2, 3 and 20 CFG_MB_INFO_FRAG elements */ XX3( CFG_MB_INFO, hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 1] ) XX3( CFG_MB_INFO_RANGE1, hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 1] ) XX3( CFG_MB_INFO_RANGE2, hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 2] ) XX3( CFG_MB_INFO_RANGE3, hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 3] ) XX3( CFG_MB_INFO_RANGE20, hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[20] ) XX3( CFG_MB_ASSERT, hcf_16, line, hcf_16, trace, hcf_32, qualifier ) /*MBInfoBlock for asserts */ #if (HCF_ASSERT) & ( HCF_ASSERT_LNK_MSF_RTN | HCF_ASSERT_RT_MSF_RTN ) typedef void (MSF_ASSERT_RTN)( unsigned int , hcf_16, hcf_32 ); typedef MSF_ASSERT_RTN /*can't link FAR*/ * MSF_ASSERT_RTNP; /* CFG_REG_ASSERT_RTNP (0x0832) (de-)register MSF Callback routines * lvl: Assert level filtering (not yet implemented) * rtnp: address of MSF_ASSERT_RTN (native Endian format) */ XX2( CFG_REG_ASSERT_RTNP, hcf_16, lvl, MSF_ASSERT_RTNP, rtnp ) #endif // HCF_ASSERT_LNK_MSF_RTN / HCF_ASSERT_RT_MSF_RTN X1( CFG_HCF_OPT, val[20] ) /*(Compile time) options */ X3( CFG_CMD_HCF, cmd, mode, add_info ) /*HCF Engineering command */ typedef struct { hcf_16 len; hcf_16 typ; hcf_16 mode; // PROG_STOP/VOLATILE [FLASH/SEEPROM/SEEPROM_READBACK] hcf_16 segment_size; // size of the segment in bytes hcf_32 nic_addr; // destination address (in NIC memory) hcf_16 flags; // 0x0001 : CRC Yes/No // hcf_32 flags; // 0x0001 : CRC Yes/No /* ;? still not the whole story * flags is extended from 16 to 32 bits to force that compiling FW.C produces the same structures * in memory as FUPU4 BIN files. * Note that the problem arises from the violation of the constraint to use packing at byte boundaries * as was stipulated in the WCI-specification * The Pack pragma can't resolve this issue, because that impacts all members of the structure with * disregard of their actual size, so aligning host_addr under MSVC 1.5 at 4 bytes, also aligns * len, typ etc on 4 bytes * */ // hcf_16 pad; //!! be careful alignment problems for Bin download versus C download hcf_8 FAR *host_addr; // source address (in Host memory) } CFG_PROG_STRCT; // segment_descp; // a structure used for transporting debug-related information from firmware // via the HCF, into the MSF typedef struct { hcf_16 len; hcf_16 typ; hcf_16 msg_id, msg_par, msg_tstamp; } CFG_FW_PRINTF_STRCT; // a structure used to define the location and size of a certain debug-related // buffer in nic-ram. typedef struct { hcf_16 len; hcf_16 typ; hcf_32 DbMsgCount, // ds (nicram) address of a counter DbMsgBuffer, // ds (nicram) address of the buffer DbMsgSize, // number of entries (each 3 word in size) in this buffer DbMsgIntrvl; // ds (nicram) address of interval for generating InfDrop event } CFG_FW_PRINTF_BUFFER_LOCATION_STRCT; XX3( CFG_RANGES, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 1] ) /*Actor/Supplier range (1 variant)*/ XX3( CFG_RANGE1, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 1] ) /*Actor/Supplier range (1 variant)*/ XX3( CFG_RANGE2, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 2] ) /*Actor range ( 2 variants) */ XX3( CFG_RANGE3, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 3] ) /*Actor range ( 3 variants) */ XX3( CFG_RANGE4, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 4] ) /*Actor range ( 4 variants) */ XX3( CFG_RANGE5, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 5] ) /*Actor range ( 5 variants) */ XX3( CFG_RANGE6, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 6] ) /*Actor range ( 6 variants) */ XX3( CFG_RANGE7, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 7] ) /*Actor range ( 7 variants) */ XX3( CFG_RANGE20, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[20] ) /*Actor range (20 variants) */ /*Frames */ X3( CFG_ASSOC_STAT, assoc_stat, station_addr[3], val[46] ) /*Association status, basic */ X2( CFG_ASSOC_STAT3, assoc_stat, station_addr[3] ) /*assoc_stat:3 */ X3( CFG_ASSOC_STAT1, assoc_stat, station_addr[3], frame_body[43] ) /*assoc_stat:1 */ X4( CFG_ASSOC_STAT2, assoc_stat, station_addr[3], old_ap_addr[3], frame_body[43] ) /*assoc_stat:2 */ /*Static Configurations */ X1( CFG_CNF_PORT_TYPE, port_type ) /*[STA] Connection control characteristics */ X1( CFG_MAC_ADDR, mac_addr[3] ) /*general: FC01,FC08,FC11,FC12,FC13,FC14,FC15,FC16 */ X1( CFG_CNF_OWN_MAC_ADDR, mac_addr[3] ) X1( CFG_ID, ssid[17] ) /*0xFC02, 0xFC04, 0xFC0E */ /* X1( CFG_DESIRED_SSID, ssid[17] ) see Dynamic Configurations */ X1( CFG_CNF_OWN_CHANNEL, channel ) /*Communication channel for BSS creation */ X1( CFG_CNF_OWN_SSID, ssid[17] ) X1( CFG_CNF_OWN_ATIM_WINDOW, atim_window ) X1( CFG_CNF_SYSTEM_SCALE, system_scale ) X1( CFG_CNF_MAX_DATA_LEN, max_data_len ) X1( CFG_CNF_WDS_ADDR, mac_addr[3] ) /*[STA] MAC Address of corresponding WDS Link node */ X1( CFG_CNF_PM_ENABLED, pm_enabled ) /*[STA] Switch for ESS Power Management (PM) On/Off */ X1( CFG_CNF_PM_EPS, pm_eps ) /*[STA] Switch for ESS PM EPS/PS Mode */ X1( CFG_CNF_MCAST_RX, mcast_rx ) /*[STA] Switch for ESS PM Multicast reception On/Off */ X1( CFG_CNF_MAX_SLEEP_DURATION, duration ) /*[STA] Maximum sleep time for ESS PM */ X1( CFG_CNF_PM_HOLDOVER_DURATION, duration ) /*[STA] Holdover time for ESS PM */ X1( CFG_CNF_OWN_NAME, ssid[17] ) /*Identification text for diagnostic purposes */ X1( CFG_CNF_OWN_DTIM_PERIOD, period ) /*[AP] Beacon intervals between successive DTIMs */ X1( CFG_CNF_WDS_ADDR1, mac_addr[3] ) /*[AP] Port 1 MAC Adrs of corresponding WDS Link node */ X1( CFG_CNF_WDS_ADDR2, mac_addr[3] ) /*[AP] Port 2 MAC Adrs of corresponding WDS Link node */ X1( CFG_CNF_WDS_ADDR3, mac_addr[3] ) /*[AP] Port 3 MAC Adrs of corresponding WDS Link node */ X1( CFG_CNF_WDS_ADDR4, mac_addr[3] ) /*[AP] Port 4 MAC Adrs of corresponding WDS Link node */ X1( CFG_CNF_WDS_ADDR5, mac_addr[3] ) /*[AP] Port 5 MAC Adrs of corresponding WDS Link node */ X1( CFG_CNF_WDS_ADDR6, mac_addr[3] ) /*[AP] Port 6 MAC Adrs of corresponding WDS Link node */ X1( CFG_CNF_MCAST_PM_BUF, mcast_pm_buf ) /*[AP] Switch for PM buffering of Multicast Messages */ X1( CFG_CNF_REJECT_ANY, reject_any ) /*[AP] Switch for PM buffering of Multicast Messages */ //X1( CFG_CNF_ENCRYPTION_ENABLED, encryption ) /*specify encryption type of Tx/Rx messages */ X1( CFG_CNF_ENCRYPTION, encryption ) /*specify encryption type of Tx/Rx messages */ X1( CFG_CNF_AUTHENTICATION, authentication ) /*selects Authentication algorithm */ X1( CFG_CNF_EXCL_UNENCRYPTED, exclude_unencrypted ) /*[AP] Switch for 'clear-text' rx message acceptance */ X1( CFG_CNF_MCAST_RATE, mcast_rate ) /*Transmit Data rate for Multicast frames */ X1( CFG_CNF_INTRA_BSS_RELAY, intra_bss_relay ) /*[AP] Switch for IntraBBS relay */ X1( CFG_CNF_MICRO_WAVE, micro_wave ) /*MicroWave (Robustness) */ X1( CFG_CNF_LOAD_BALANCING, load_balancing ) /*Load Balancing (Boolean, 0=OFF, 1=ON, default=1) */ X1( CFG_CNF_MEDIUM_DISTRIBUTION, medium_distribution ) /*Medium Distribution (Boolean, 0=OFF, 1=ON, default=1) */ X1( CFG_CNF_GROUP_ADDR_FILTER, group_addr_filter ) /*Group Address Filter */ X1( CFG_CNF_TX_POW_LVL, tx_pow_lvl ) /*Tx Power Level */ XX4( CFG_CNF_COUNTRY_INFO, \ hcf_16, n_channel_sets, hcf_16, country_code[2], \ hcf_16, environment, CHANNEL_SET, channel_set[1] ) /*Current Country Info */ XX4( CFG_CNF_COUNTRY_INFO_MAX, \ hcf_16, n_channel_sets, hcf_16, country_code[2], \ hcf_16, environment, CHANNEL_SET, channel_set[14]) /*Current Country Info */ /*Dynamic Configurations */ X1( CFG_DESIRED_SSID, ssid[17] ) /*[STA] Service Set identification for connection */ #define GROUP_ADDR_SIZE (32 * 6) //32 6-byte MAC-addresses X1( CFG_GROUP_ADDR, mac_addr[GROUP_ADDR_SIZE/2] ) /*[STA] Multicast MAC Addresses for Rx-message */ X1( CFG_CREATE_IBSS, create_ibss ) /*[STA] Switch for IBSS creation On/Off */ X1( CFG_RTS_THRH, rts_thrh ) /*[STA] Frame length used for RTS/CTS handshake */ X1( CFG_TX_RATE_CNTL, tx_rate_cntl ) /*[STA] Data rate control for message transmission */ X1( CFG_PROMISCUOUS_MODE, promiscuous_mode ) /*[STA] Switch for Promiscuous mode reception On/Of */ X1( CFG_WOL, wake_on_lan ) /*[STA] Switch for Wake-On-LAN mode */ X1( CFG_RTS_THRH0, rts_thrh ) /*[AP] Port 0 frame length for RTS/CTS handshake */ X1( CFG_RTS_THRH1, rts_thrh ) /*[AP] Port 1 frame length for RTS/CTS handshake */ X1( CFG_RTS_THRH2, rts_thrh ) /*[AP] Port 2 frame length for RTS/CTS handshake */ X1( CFG_RTS_THRH3, rts_thrh ) /*[AP] Port 3 frame length for RTS/CTS handshake */ X1( CFG_RTS_THRH4, rts_thrh ) /*[AP] Port 4 frame length for RTS/CTS handshake */ X1( CFG_RTS_THRH5, rts_thrh ) /*[AP] Port 5 frame length for RTS/CTS handshake */ X1( CFG_RTS_THRH6, rts_thrh ) /*[AP] Port 6 frame length for RTS/CTS handshake */ X1( CFG_TX_RATE_CNTL0, rate_cntl ) /*[AP] Port 0 data rate control for transmission */ X1( CFG_TX_RATE_CNTL1, rate_cntl ) /*[AP] Port 1 data rate control for transmission */ X1( CFG_TX_RATE_CNTL2, rate_cntl ) /*[AP] Port 2 data rate control for transmission */ X1( CFG_TX_RATE_CNTL3, rate_cntl ) /*[AP] Port 3 data rate control for transmission */ X1( CFG_TX_RATE_CNTL4, rate_cntl ) /*[AP] Port 4 data rate control for transmission */ X1( CFG_TX_RATE_CNTL5, rate_cntl ) /*[AP] Port 5 data rate control for transmission */ X1( CFG_TX_RATE_CNTL6, rate_cntl ) /*[AP] Port 6 data rate control for transmission */ XX1( CFG_DEFAULT_KEYS, KEY_STRCT, key[4] ) /*defines set of encryption keys */ X1( CFG_TX_KEY_ID, tx_key_id ) /*select key for encryption of Tx messages */ X1( CFG_SCAN_SSID, ssid[17] ) /*identification for connection */ X5( CFG_ADD_TKIP_DEFAULT_KEY, \ tkip_key_id_info, tkip_key_iv_info[4], tkip_key[8], \ tx_mic_key[4], rx_mic_key[4] ) /* */ X6( CFG_ADD_TKIP_MAPPED_KEY, bssid[3], tkip_key[8], \ tsc[4], rsc[4], tx_mic_key[4], rx_mic_key[4] ) /* */ X1( CFG_SET_WPA_AUTHENTICATION_SUITE, \ ssn_authentication_suite ) /* */ X1( CFG_REMOVE_TKIP_DEFAULT_KEY,tkip_key_id ) /* */ X1( CFG_TICK_TIME, tick_time ) /*Auxiliary Timer tick interval */ X1( CFG_DDS_TICK_TIME, tick_time ) /*Disconnected DeepSleep Timer tick interval */ /********************************************************************** * Added for Pattern-matching WakeOnLan. (See firmware design note WMDN281C) **********************************************************************/ #define WOL_PATTERNS 5 // maximum of 5 patterns in firmware #define WOL_PATTERN_LEN 124 // maximum 124 bytes pattern length per pattern in firmware #define WOL_MASK_LEN 30 // maximum 30 bytes mask length per pattern in firmware #define WOL_BUF_SIZE (WOL_PATTERNS * (WOL_PATTERN_LEN + WOL_MASK_LEN + 6) / 2) X2( CFG_WOL_PATTERNS, nPatterns, buffer[WOL_BUF_SIZE] ) /*[STA] WakeOnLan pattern match, room for 5 patterns*/ X5( CFG_SUP_RANGE, role, id, variant, bottom, top ) /*[PRI] Primary Supplier compatibility range */ /* NIC Information */ X4( CFG_IDENTITY, comp_id, variant, version_major, version_minor ) /*identification Prototype */ #define CFG_DRV_IDENTITY_STRCT CFG_IDENTITY_STRCT #define CFG_PRI_IDENTITY_STRCT CFG_IDENTITY_STRCT #define CFG_NIC_IDENTITY_STRCT CFG_IDENTITY_STRCT #define CFG_FW_IDENTITY_STRCT CFG_IDENTITY_STRCT X1( CFG_RID_INF_MIN, y ) /*lowest value representing an Information RID */ X1( CFG_MAX_LOAD_TIME, max_load_time ) /*[PRI] Max response time of the Download command */ X3( CFG_DL_BUF, buf_page, buf_offset, buf_len ) /*[PRI] Download buffer location and size */ // X5( CFG_PRI_SUP_RANGE, role, id, variant, bottom, top ) /*[PRI] Primary Supplier compatibility range */ X5( CFG_CFI_ACT_RANGES_PRI,role, id, variant, bottom, top ) /*[PRI] Controller Actor compatibility ranges */ // X5( CFG_NIC_HSI_SUP_RANGE, role, id, variant, bottom, top ) /*H/W - S/W I/F supplier range */ X1( CFG_NIC_SERIAL_NUMBER, serial_number[17] ) /*[PRI] Network I/F Card serial number */ X5( CFG_NIC_MFI_SUP_RANGE, role, id, variant, bottom, top ) /*[PRI] Modem I/F Supplier compatibility range */ X5( CFG_NIC_CFI_SUP_RANGE, role, id, variant, bottom, top ) /*[PRI] Controller I/F Supplier compatibility range*/ //H-I X1( CFG_CHANNEL_LIST, channel_list ) /*Allowed communication channels */ //H-I XX2( CFG_REG_DOMAINS, hcf_16, num_domain, hcf_8, reg_domains[10] ) /*List of intended regulatory domains */ X1( CFG_NIC_TEMP_TYPE, temp_type ) /*Hardware temperature range code */ //H-I X1( CFG_CIS, cis[240] ) /*PC Card Standard Card Information Structure */ X5( CFG_NIC_PROFILE, \ profile_code, capability_options, allowed_data_rates, val4, val5 ) /*Card Profile */ // X5( CFG_FW_SUP_RANGE, role, id, variant, bottom, top ) /*[STA] Station I/F Supplier compatibility range */ X5( CFG_MFI_ACT_RANGES, role, id, variant, bottom, top ) /*[STA] Modem I/F Actor compatibility ranges */ X5( CFG_CFI_ACT_RANGES_STA,role, id, variant, bottom, top ) /*[STA] Controller I/F Actor compatibility ranges */ X5( CFG_MFI_ACT_RANGES_STA,role, id, variant, bottom, top ) /*[STA] Controller I/F Actor compatibility ranges */ X1( CFG_NIC_BUS_TYPE, nic_bus_type ) /*NIC bustype derived from BUSSEL host I/F signals */ /* MAC INFORMATION */ X1( CFG_PORT_STAT, port_stat ) /*[STA] Actual MAC Port connection control status */ X1( CFG_CUR_SSID, ssid[17] ) /*[STA] Identification of the actually connected SS */ X1( CFG_CUR_BSSID, mac_addr[3] ) /*[STA] Identification of the actually connected BSS */ X3( CFG_COMMS_QUALITY, coms_qual, signal_lvl, noise_lvl ) /*[STA] Quality of the Basic Service Set connection */ X1( CFG_CUR_TX_RATE, rate ) /*[STA] Actual transmit data rate */ X1( CFG_CUR_BEACON_INTERVAL, interval ) /*Beacon transmit interval time for BSS creation */ #if (HCF_TYPE) & HCF_TYPE_WARP X11( CFG_CUR_SCALE_THRH, \ carrier_detect_thrh_cck, carrier_detect_thrh_ofdm, defer_thrh, \ energy_detect_thrh, rssi_on_thrh_deviation, \ rssi_off_thrh_deviation, cck_drop_thrh, ofdm_drop_thrh, \ cell_search_thrh, out_of_range_thrh, delta_snr ) #else X6( CFG_CUR_SCALE_THRH, \ energy_detect_thrh, carrier_detect_thrh, defer_thrh, \ cell_search_thrh, out_of_range_thrh, delta_snr ) /*Actual System Scale thresholds settings */ #endif // HCF_TYPE_WARP X1( CFG_PROTOCOL_RSP_TIME, time ) /*Max time to await a response to a request message */ X1( CFG_CUR_SHORT_RETRY_LIMIT, limit ) /*Max number of transmit attempts for short frames */ X1( CFG_CUR_LONG_RETRY_LIMIT, limit ) /*Max number of transmit attempts for long frames */ X1( CFG_MAX_TX_LIFETIME, time ) /*Max transmit frame handling duration */ X1( CFG_MAX_RX_LIFETIME, time ) /*Max received frame handling duration */ X1( CFG_CF_POLLABLE, cf_pollable ) /*[STA] Contention Free pollable capability indication */ X2( CFG_AUTHENTICATION_ALGORITHMS,authentication_type, type_enabled ) /*Authentication Algorithm */ X1( CFG_PRIVACY_OPT_IMPLEMENTED,privacy_opt_implemented ) /*WEP Option availability indication */ X1( CFG_CUR_REMOTE_RATES, rates ) /*CurrentRemoteRates */ X1( CFG_CUR_USED_RATES, rates ) /*CurrentUsedRates */ X1( CFG_CUR_SYSTEM_SCALE, current_system_scale ) /*CurrentUsedRates */ X1( CFG_CUR_TX_RATE1, rate ) /*[AP] Actual Port 1 transmit data rate */ X1( CFG_CUR_TX_RATE2, rate ) /*[AP] Actual Port 2 transmit data rate */ X1( CFG_CUR_TX_RATE3, rate ) /*[AP] Actual Port 3 transmit data rate */ X1( CFG_CUR_TX_RATE4, rate ) /*[AP] Actual Port 4 transmit data rate */ X1( CFG_CUR_TX_RATE5, rate ) /*[AP] Actual Port 5 transmit data rate */ X1( CFG_CUR_TX_RATE6, rate ) /*[AP] Actual Port 6 transmit data rate */ X1( CFG_OWN_MAC_ADDR, mac_addr[3] ) /*[AP] Unique local node MAC Address */ X3( CFG_PCF_INFO, medium_occupancy_limit, \ cfp_period, cfp_max_duration ) /*[AP] Point Coordination Function capability info */ X1( CFG_CUR_WPA_INFO_ELEMENT, ssn_info_element[1] ) /* */ X4( CFG_CUR_TKIP_IV_INFO, \ tkip_seq_cnt0[4], tkip_seq_cnt1[4], \ tkip_seq_cnt2[4], tkip_seq_cnt3[4] ) /* */ X2( CFG_CUR_ASSOC_REQ_INFO, frame_type, frame_body[1] ) /* 0xFD8C */ X2( CFG_CUR_ASSOC_RESP_INFO, frame_type, frame_body[1] ) /* 0xFD8D */ /* Modem INFORMATION */ X1( CFG_PHY_TYPE, phy_type ) /*Physical layer type indication */ X1( CFG_CUR_CHANNEL, current_channel ) /*Actual frequency channel used for transmission */ X1( CFG_CUR_POWER_STATE, current_power_state ) /*Actual power consumption status */ X1( CFG_CCAMODE, cca_mode ) /*Clear channel assessment mode indication */ X1( CFG_SUPPORTED_DATA_RATES, rates[5] ) /*Data rates capability information */ /* FRAMES */ XX1( CFG_SCAN, SCAN_RS_STRCT, scan_result[32] ) /*Scan results */ //-------------------------------------------------------------------------------------- // UIL management function to be passed to WaveLAN/IEEE Drivers in DUI_STRCT field fun //-------------------------------------------------------------------------------------- // HCF and UIL Common #define MDD_ACT_SCAN 0x06 // Hermes Inquire Scan (F101) command #define MDD_ACT_PRS_SCAN 0x07 // Hermes Probe Response Scan (F102) command // UIL Specific #define UIL_FUN_CONNECT 0x00 // Perform connect command #define UIL_FUN_DISCONNECT 0x01 // Perform disconnect command #define UIL_FUN_ACTION 0x02 // Perform UIL Action command. #define UIL_FUN_SEND_DIAG_MSG 0x03 // Send a diagnostic message. #define UIL_FUN_GET_INFO 0x04 // Retrieve information from NIC. #define UIL_FUN_PUT_INFO 0x05 // Put information on NIC. /* UIL_ACT_TALLIES 0x05 * this should not be exported to the USF * it is solely intended as a strategic choice for the MSF to either * - use HCF_ACT_TALLIES and direct IFB access * - use CFG_TALLIES */ #define UIL_ACT_SCAN MDD_ACT_SCAN #define UIL_ACT_PRS_SCAN MDD_ACT_PRS_SCAN #define UIL_ACT_BLOCK 0x0B #define UIL_ACT_UNBLOCK 0x0C #define UIL_ACT_RESET 0x80 #define UIL_ACT_REBIND 0x81 #define UIL_ACT_APPLY 0x82 #define UIL_ACT_DISCONNECT 0x83 //;?040108 possibly obsolete //Special for WINCE // HCF Specific /* Note that UIL_ACT-codes must match HCF_ACT-codes across a run-time bound I/F * The initial matching is achieved by "#define HCF_ACT_xxx HCF_UIL_ACT_xxx" where appropriate * In other words, these codes should never, ever change to minimize migration problems between * combinations of old drivers and new utilities and vice versa */ #define HCF_DISCONNECT 0x01 //disconnect request for hcf_connect (invalid as IO Address) #define HCF_ACT_TALLIES 0x05 // ! UIL_ACT_TALLIES does not exist ! Hermes Inquire Tallies (F100) cmd #if ( (HCF_TYPE) & HCF_TYPE_WARP ) == 0 #define HCF_ACT_SCAN MDD_ACT_SCAN #endif // HCF_TYPE_WARP #define HCF_ACT_PRS_SCAN MDD_ACT_PRS_SCAN #if HCF_INT_ON #define HCF_ACT_INT_OFF 0x0D // Disable Interrupt generation #define HCF_ACT_INT_ON 0x0E // Enable Interrupt generation #define HCF_ACT_INT_FORCE_ON 0x0F // Enforce Enable Interrupt generation #endif // HCF_INT_ON #define HCF_ACT_RX_ACK 0x15 // Receiever ACK (optimization) #if (HCF_TYPE) & HCF_TYPE_CCX #define HCF_ACT_CCX_ON 0x1A // enable CKIP #define HCF_ACT_CCX_OFF 0x1B // disable CKIP #endif // HCF_TYPE_CCX #if (HCF_SLEEP) & HCF_DDS #define HCF_ACT_SLEEP 0x1C // DDS Sleep request //#define HCF_ACT_WAKEUP 0x1D // DDS Wakeup request #endif // HCF_DDS /* HCF_ACT_MAX // xxxx: start value for UIL-range, NOT to be passed to HCF * Too bad, there was originally no spare room created to use * HCF_ACT_MAX as an equivalent of HCF_ERR_MAX. Since creating * this room in retrospect would create a backward incompatibility * we will just have to live with the haphazard sequence of * UIL- and HCF specific codes. Theoretically this could be * corrected when and if there will ever be an overall * incompatibility introduced for another reason */ /*============================================================= HERMES RECORDS ============================*/ #define CFG_RID_FW_MIN 0xFA00 //lowest value representing a Hermes-II based RID // #define CFG_PDA_BEGIN 0xFA // // #define CFG_PDA_END 0xFA // // #define CFG_PDA_NIC_TOP_LVL_ASSEMBLY_NUMBER 0xFA // // #define CFG_PDA_PCB_TRACER_NUMBER 0xFA // // #define CFG_PDA_RMM_TRACER_NUMBER 0xFA // // #define CFG_PDA_RMM_COMP_ID 0xFA // // #define CFG_PDA_ 0xFA // /*============================================================= CONFIGURATION RECORDS =====================*/ /*============================================================= mask 0xFCxx =====================*/ #define CFG_RID_CFG_MIN 0xFC00 //lowest value representing a Hermes configuration RID // NETWORK PARAMETERS, STATIC CONFIGURATION ENTITIES //FC05, FC0B, FC0C, FC0D: SEE W2DN149 #define CFG_CNF_PORT_TYPE 0xFC00 //[STA] Connection control characteristics #define CFG_CNF_OWN_MAC_ADDR 0xFC01 //[STA] MAC Address of this node // 0xFC02 see DYNAMIC CONFIGURATION ENTITIES #define CFG_CNF_OWN_CHANNEL 0xFC03 //Communication channel for BSS creation #define CFG_CNF_OWN_SSID 0xFC04 //IBSS creation (STA) or ESS (AP) Service Set Ident #define CFG_CNF_OWN_ATIM_WINDOW 0xFC05 //[STA] ATIM Window time for IBSS creation #define CFG_CNF_SYSTEM_SCALE 0xFC06 //System Scale that specifies the AP density #define CFG_CNF_MAX_DATA_LEN 0xFC07 //Maximum length of MAC Frame Body data #define CFG_CNF_PM_ENABLED 0xFC09 //[STA] Switch for ESS Power Management (PM) #define CFG_CNF_MCAST_RX 0xFC0B //[STA] Switch for ESS PM Multicast reception On/Off #define CFG_CNF_MAX_SLEEP_DURATION 0xFC0C //[STA] Maximum sleep time for ESS PM #define CFG_CNF_HOLDOVER_DURATION 0xFC0D //[STA] Holdover time for ESS PM #define CFG_CNF_OWN_NAME 0xFC0E //Identification text for diagnostic purposes #define CFG_CNF_OWN_DTIM_PERIOD 0xFC10 //[AP] Beacon intervals between successive DTIMs #define CFG_CNF_WDS_ADDR1 0xFC11 //[AP] Port 1 MAC Adrs of corresponding WDS Link node #define CFG_CNF_WDS_ADDR2 0xFC12 //[AP] Port 2 MAC Adrs of corresponding WDS Link node #define CFG_CNF_WDS_ADDR3 0xFC13 //[AP] Port 3 MAC Adrs of corresponding WDS Link node #define CFG_CNF_WDS_ADDR4 0xFC14 //[AP] Port 4 MAC Adrs of corresponding WDS Link node #define CFG_CNF_WDS_ADDR5 0xFC15 //[AP] Port 5 MAC Adrs of corresponding WDS Link node #define CFG_CNF_WDS_ADDR6 0xFC16 //[AP] Port 6 MAC Adrs of corresponding WDS Link node #define CFG_CNF_PM_MCAST_BUF 0xFC17 //[AP] Switch for PM buffereing of Multicast Messages #define CFG_CNF_MCAST_PM_BUF CFG_CNF_PM_MCAST_BUF //name does not match H-II spec #define CFG_CNF_REJECT_ANY 0xFC18 //[AP] Switch for PM buffereing of Multicast Messages #define CFG_CNF_ENCRYPTION 0xFC20 //select en/de-cryption of Tx/Rx messages #define CFG_CNF_AUTHENTICATION 0xFC21 //[STA] selects Authentication algorithm #define CFG_CNF_EXCL_UNENCRYPTED 0xFC22 //[AP] Switch for 'clear-text' rx message acceptance #define CFG_CNF_MCAST_RATE 0xFC23 //Transmit Data rate for Multicast frames #define CFG_CNF_INTRA_BSS_RELAY 0xFC24 //[AP] Switch for IntraBBS relay #define CFG_CNF_MICRO_WAVE 0xFC25 //MicroWave (Robustness) #define CFG_CNF_LOAD_BALANCING 0xFC26 //Load Balancing (Boolean, 0=OFF, 1=ON, default=1) #define CFG_CNF_MEDIUM_DISTRIBUTION 0xFC27 //Medium Distribution (Boolean, 0=OFF, 1=ON, default=1) #define CFG_CNF_RX_ALL_GROUP_ADDR 0xFC28 //[STA] Group Address Filter #define CFG_CNF_COUNTRY_INFO 0xFC29 //Country Info #if (HCF_TYPE) & HCF_TYPE_WARP #define CFG_CNF_TX_POW_LVL 0xFC2A //TxPower Level #define CFG_CNF_CONNECTION_CNTL 0xFC30 //[STA] Connection Control #define CFG_CNF_OWN_BEACON_INTERVAL 0xFC31 //[AP] #define CFG_CNF_SHORT_RETRY_LIMIT 0xFC32 // #define CFG_CNF_LONG_RETRY_LIMIT 0xFC33 // #define CFG_CNF_TX_EVENT_MODE 0xFC34 // #define CFG_CNF_WIFI_COMPATIBLE 0xFC35 //[STA] Wifi compatible #endif // HCF_TYPE_WARP #if (HCF_TYPE) & HCF_TYPE_BEAGLE_HII5 #define CFG_VOICE_RETRY_LIMIT 0xFC36 /* Voice frame retry limit. Range: 1-15, default: 4 */ #define CFG_VOICE_CONTENTION_WINDOW 0xFC37 /* Contention window for voice frames. */ #endif // BEAGLE_HII5 // NETWORK PARAMETERS, DYNAMIC CONFIGURATION ENTITIES #define CFG_DESIRED_SSID 0xFC02 //[STA] Service Set identification for connection and scan #define CFG_GROUP_ADDR 0xFC80 //[STA] Multicast MAC Addresses for Rx-message #define CFG_CREATE_IBSS 0xFC81 //[STA] Switch for IBSS creation On/Off #define CFG_RTS_THRH 0xFC83 //Frame length used for RTS/CTS handshake #define CFG_TX_RATE_CNTL 0xFC84 //[STA] Data rate control for message transmission #define CFG_PROMISCUOUS_MODE 0xFC85 //[STA] Switch for Promiscuous mode reception On/Off #define CFG_WOL 0xFC86 //[STA] Switch for Wake-On-LAN mode #define CFG_WOL_PATTERNS 0xFC87 //[STA] Patterns for Wake-On-LAN #define CFG_SUPPORTED_RATE_SET_CNTL 0xFC88 // #define CFG_BASIC_RATE_SET_CNTL 0xFC89 // #define CFG_SOFTWARE_ACK_MODE 0xFC90 // #define CFG_RTS_THRH0 0xFC97 //[AP] Port 0 frame length for RTS/CTS handshake #define CFG_RTS_THRH1 0xFC98 //[AP] Port 1 frame length for RTS/CTS handshake #define CFG_RTS_THRH2 0xFC99 //[AP] Port 2 frame length for RTS/CTS handshake #define CFG_RTS_THRH3 0xFC9A //[AP] Port 3 frame length for RTS/CTS handshake #define CFG_RTS_THRH4 0xFC9B //[AP] Port 4 frame length for RTS/CTS handshake #define CFG_RTS_THRH5 0xFC9C //[AP] Port 5 frame length for RTS/CTS handshake #define CFG_RTS_THRH6 0xFC9D //[AP] Port 6 frame length for RTS/CTS handshake #define CFG_TX_RATE_CNTL0 0xFC9E //[AP] Port 0 data rate control for transmission #define CFG_TX_RATE_CNTL1 0xFC9F //[AP] Port 1 data rate control for transmission #define CFG_TX_RATE_CNTL2 0xFCA0 //[AP] Port 2 data rate control for transmission #define CFG_TX_RATE_CNTL3 0xFCA1 //[AP] Port 3 data rate control for transmission #define CFG_TX_RATE_CNTL4 0xFCA2 //[AP] Port 4 data rate control for transmission #define CFG_TX_RATE_CNTL5 0xFCA3 //[AP] Port 5 data rate control for transmission #define CFG_TX_RATE_CNTL6 0xFCA4 //[AP] Port 6 data rate control for transmission #define CFG_DEFAULT_KEYS 0xFCB0 //defines set of encryption keys #define CFG_TX_KEY_ID 0xFCB1 //select key for encryption of Tx messages #define CFG_SCAN_SSID 0xFCB2 //Scan SSID #define CFG_ADD_TKIP_DEFAULT_KEY 0xFCB4 //set KeyID and TxKey indication #define KEY_ID 0x0003 //KeyID mask for tkip_key_id_info field #define TX_KEY 0x8000 //Default Tx Key flag of tkip_key_id_info field #define CFG_SET_WPA_AUTH_KEY_MGMT_SUITE 0xFCB5 //Authenticated Key Management Suite #define CFG_REMOVE_TKIP_DEFAULT_KEY 0xFCB6 //invalidate KeyID and TxKey indication #define CFG_ADD_TKIP_MAPPED_KEY 0xFCB7 //set MAC address pairwise station #define CFG_REMOVE_TKIP_MAPPED_KEY 0xFCB8 //invalidate MAC address pairwise station #define CFG_SET_WPA_CAPABILITIES_INFO 0xFCB9 //WPA Capabilities #define CFG_CACHED_PMK_ADDR 0xFCBA //set MAC address of pre-authenticated AP #define CFG_REMOVE_CACHED_PMK_ADDR 0xFCBB //invalidate MAC address of pre-authenticated AP #define CFG_FCBC 0xFCBC //FW codes ahead of available documentation, so ??????? #define CFG_FCBD 0xFCBD //FW codes ahead of available documentation, so ??????? #define CFG_FCBE 0xFCBE //FW codes ahead of available documentation, so ??????? #define CFG_FCBF 0xFCBF //FW codes ahead of available documentation, so ??????? #define CFG_HANDOVER_ADDR 0xFCC0 //[AP] Station MAC Address re-associated with other AP #define CFG_SCAN_CHANNEL 0xFCC2 //Channel set for host requested scan //;?#define CFG_SCAN_CHANNEL_MASK 0xFCC2 // contains #define CFG_DISASSOCIATE_ADDR 0xFCC4 //[AP] Station MAC Address to be disassociated #define CFG_PROBE_DATA_RATE 0xFCC5 //WARP connection control #define CFG_FRAME_BURST_LIMIT 0xFCC6 // #define CFG_COEXISTENSE_BEHAVIOUR 0xFCC7 //[AP] #define CFG_DEAUTHENTICATE_ADDR 0xFCC8 //MAC address of Station to be deauthenticated // BEHAVIOR PARAMETERS #define CFG_TICK_TIME 0xFCE0 //Auxiliary Timer tick interval #define CFG_DDS_TICK_TIME 0xFCE1 //Disconnected DeepSleep Timer tick interval //#define CFG_CNF_COUNTRY 0xFCFE apparently not needed ;? #define CFG_RID_CFG_MAX 0xFCFF //highest value representing an Configuration RID /*============================================================= INFORMATION RECORDS =====================*/ /*============================================================= mask 0xFDxx =====================*/ // NIC INFORMATION #define CFG_RID_INF_MIN 0xFD00 //lowest value representing an Information RID #define CFG_MAX_LOAD_TIME 0xFD00 //[INT] Maximum response time of the Download command. #define CFG_DL_BUF 0xFD01 //[INT] Download buffer location and size. #define CFG_PRI_IDENTITY 0xFD02 //[PRI] Primary Functions firmware identification. #define CFG_PRI_SUP_RANGE 0xFD03 //[PRI] Primary Functions I/F Supplier compatibility range. #define CFG_NIC_HSI_SUP_RANGE 0xFD09 //H/W - S/W I/F supplier range #define CFG_NIC_SERIAL_NUMBER 0xFD0A //[PRI] Network Interface Card serial number. #define CFG_NIC_IDENTITY 0xFD0B //[PRI] Network Interface Card identification. #define CFG_NIC_MFI_SUP_RANGE 0xFD0C //[PRI] Modem I/F Supplier compatibility range. #define CFG_NIC_CFI_SUP_RANGE 0xFD0D //[PRI] Controller I/F Supplier compatibility range. #define CFG_CHANNEL_LIST 0xFD10 //Allowed communication channels. #define CFG_NIC_TEMP_TYPE 0xFD12 //Hardware temperature range code. #define CFG_CIS 0xFD13 //PC Card Standard Card Information Structure #define CFG_NIC_PROFILE 0xFD14 //Card Profile #define CFG_FW_IDENTITY 0xFD20 //firmware identification. #define CFG_FW_SUP_RANGE 0xFD21 //firmware Supplier compatibility range. #define CFG_MFI_ACT_RANGES_STA 0xFD22 //[STA] Modem I/F Actor compatibility ranges. #define CFG_CFI_ACT_RANGES_STA 0xFD23 //[STA] Controller I/F Actor compatibility ranges. #define CFG_NIC_BUS_TYPE 0xFD24 //Card Bustype #define CFG_NIC_BUS_TYPE_PCCARD_CF 0x0000 //16 bit PC Card or Compact Flash #define CFG_NIC_BUS_TYPE_USB 0x0001 //USB #define CFG_NIC_BUS_TYPE_CARDBUS 0x0002 //CardBus #define CFG_NIC_BUS_TYPE_PCI 0x0003 //(mini)PCI #define CFG_DOMAIN_CODE 0xFD25 // MAC INFORMATION #define CFG_PORT_STAT 0xFD40 //Actual MAC Port connection control status #define CFG_CUR_SSID 0xFD41 //[STA] Identification of the actually connected SS #define CFG_CUR_BSSID 0xFD42 //[STA] Identification of the actually connected BSS #define CFG_COMMS_QUALITY 0xFD43 //[STA] Quality of the Basic Service Set connection #define CFG_CUR_TX_RATE 0xFD44 //[STA] Actual transmit data rate #define CFG_CUR_BEACON_INTERVAL 0xFD45 //Beacon transmit interval time for BSS creation #define CFG_CUR_SCALE_THRH 0xFD46 //Actual System Scale thresholds settings #define CFG_PROTOCOL_RSP_TIME 0xFD47 //Max time to await a response to a request message #define CFG_CUR_SHORT_RETRY_LIMIT 0xFD48 //Max number of transmit attempts for short frames #define CFG_CUR_LONG_RETRY_LIMIT 0xFD49 //Max number of transmit attempts for long frames #define CFG_MAX_TX_LIFETIME 0xFD4A //Max transmit frame handling duration #define CFG_MAX_RX_LIFETIME 0xFD4B //Max received frame handling duration #define CFG_CF_POLLABLE 0xFD4C //[STA] Contention Free pollable capability indication #define CFG_AUTHENTICATION_ALGORITHMS 0xFD4D //Available Authentication Algorithms indication #define CFG_PRIVACY_OPT_IMPLEMENTED 0xFD4F //WEP Option availability indication #define CFG_CUR_REMOTE_RATES 0xFD50 //[STA] CurrentRemoteRates #define CFG_CUR_USED_RATES 0xFD51 //[STA] CurrentUsedRates #define CFG_CUR_SYSTEM_SCALE 0xFD52 //[STA] CurrentSystemScale #define CFG_CUR_TX_RATE1 0xFD80 //[AP] Actual Port 1 transmit data rate #define CFG_CUR_TX_RATE2 0xFD81 //[AP] Actual Port 2 transmit data rate #define CFG_CUR_TX_RATE3 0xFD82 //[AP] Actual Port 3 transmit data rate #define CFG_CUR_TX_RATE4 0xFD83 //[AP] Actual Port 4 transmit data rate #define CFG_CUR_TX_RATE5 0xFD84 //[AP] Actual Port 5 transmit data rate #define CFG_CUR_TX_RATE6 0xFD85 //[AP] Actual Port 6 transmit data rate #define CFG_NIC_MAC_ADDR 0xFD86 //Unique local node MAC Address #define CFG_PCF_INFO 0xFD87 //[AP] Point Coordination Function capability info //*RESERVED* #define CFG_HIGHEST_BASIC_RATE 0xFD88 // #define CFG_CUR_COUNTRY_INFO 0xFD89 // #define CFG_CUR_WPA_INFO_ELEMENT 0xFD8A // #define CFG_CUR_TKIP_IV_INFO 0xFD8B // #define CFG_CUR_ASSOC_REQ_INFO 0xFD8C // #define CFG_CUR_ASSOC_RESP_INFO 0xFD8D // #define CFG_CUR_LOAD 0xFD8E //[AP] current load on AP's channel #define CFG_SECURITY_CAPABILITIES 0xFD90 //Combined capabilities information // MODEM INFORMATION #define CFG_PHY_TYPE 0xFDC0 //Physical layer type indication #define CFG_CUR_CHANNEL 0xFDC1 //Actual frequency channel used for transmission #define CFG_CUR_POWER_STATE 0xFDC2 //Actual power consumption status #define CFG_CCA_MODE 0xFDC3 //Clear channel assessment mode indication #define CFG_SUPPORTED_DATA_RATES 0xFDC6 //Data rates capability information #define CFG_RID_INF_MAX 0xFDFF //highest value representing an Information RID // ENGINEERING INFORMATION #define CFG_RID_ENG_MIN 0xFFE0 //lowest value representing a Hermes engineering RID /****************************** General define *************************************************************/ //IFB field related // IFB_CardStat #define CARD_STAT_INCOMP_PRI 0x2000U // no compatible HSI / primary F/W #define CARD_STAT_INCOMP_FW 0x1000U // no compatible station / tertiary F/W #define CARD_STAT_DEFUNCT 0x0100U // HCF is in Defunct mode // IFB_RxStat #define RX_STAT_PRIO 0x00E0U //Priority subfield #define RX_STAT_ERR 0x000FU //Error mask #define RX_STAT_UNDECR 0x0002U //Non-decryptable encrypted message #define RX_STAT_FCS_ERR 0x0001U //FCS error // SNAP header for E-II Encapsulation #define ENC_NONE 0xFF #define ENC_1042 0x00 #define ENC_TUNNEL 0xF8 /****************************** Xxxxxxxx *******************************************************************/ #define HCF_SUCCESS 0x00 // OK #define HCF_ERR_TIME_OUT 0x04 // Expected Hermes event did not occure in expected time #define HCF_ERR_NO_NIC 0x05 /* card not found (usually yanked away during hcfio_in_string * Also: card is either absent or disabled while it should be neither */ #define HCF_ERR_LEN 0x08 /* buffer size insufficient * - IFB_ConfigTable too small * - hcf_get_info buffer has a size of 0 or 1 or less than needed * to accomodate all data * - hcf_put_info: CFG_DLNV_DATA exceeds intermediate * buffer size */ #define HCF_ERR_INCOMP_PRI 0x09 // primary functions are not compatible #define HCF_ERR_INCOMP_FW 0x0A // station functions are compatible #define HCF_ERR_MIC 0x0D // MIC check fails #define HCF_ERR_SLEEP 0x0E // NIC in sleep mode #define HCF_ERR_MAX 0x3F /* end of HCF range *** ** *** ****** *** *************** */ #define HCF_ERR_DEFUNCT 0x80 // BIT, reflecting that the HCF is in defunct mode (bits 0x7F reflect cause) #define HCF_ERR_DEFUNCT_AUX 0x82 // Timeout on acknowledgement on en/disabling AUX registers #define HCF_ERR_DEFUNCT_TIMER 0x83 // Timeout on timer calibration during initialization process #define HCF_ERR_DEFUNCT_TIME_OUT 0x84 // Timeout on Busy bit drop during BAP setup #define HCF_ERR_DEFUNCT_CMD_SEQ 0x86 // Hermes and HCF are out of sync in issuing/processing commands #define HCF_INT_PENDING 0x01 // return status of hcf_act( HCF_ACT_INT_OFF ) #define HCF_PORT_0 0x0000 // Station supports only single MAC Port #define HCF_PORT_1 0x0100 // HCF_PORT_1 through HCF_PORT_6 are only supported by AP F/W #define HCF_PORT_2 0x0200 #define HCF_PORT_3 0x0300 #define HCF_PORT_4 0x0400 #define HCF_PORT_5 0x0500 #define HCF_PORT_6 0x0600 #define HCF_CNTL_ENABLE 0x01 #define HCF_CNTL_DISABLE 0x02 #define HCF_CNTL_CONNECT 0x03 #define HCF_CNTL_DISCONNECT 0x05 #define HCF_CNTL_CONTINUE 0x07 #define USE_DMA 0x0001 #define USE_16BIT 0x0002 #define DMA_ENABLED 0x8000 //weak name, it really means: F/W enabled and DMA selected //#define HCF_DMA_FD_CNT (2*29) //size in bytes of one Tx/RxFS minus DA/SA //;?the MSF ( H2PCI.C uses the next 2 mnemonics ) #define HCF_DMA_RX_BUF1_SIZE (HFS_ADDR_DEST + 8) //extra bytes for LEN/SNAP if decapsulation #define HCF_DMA_TX_BUF1_SIZE (HFS_ADDR_DEST + 2*6 + 8) //extra bytes for DA/SA/LEN/SNAP if encapsulation //HFS_TX_CNTL /* Note that the HCF_.... System Constants influence the HFS_.... values below * H-I H-I | H-II H-II H-II.5 * WPA | WPA * HFS_TX_CNTL_TX_OK 0002 0002 | 0002 0002 N/A <<<<<<<