2005-04-17 02:20:36 +04:00
# ifndef RAYLINK_H
typedef unsigned char UCHAR ;
/****** IEEE 802.11 constants ************************************************/
# define ADDRLEN 6
/* Frame control 1 bit fields */
# define PROTOCOL_VER 0x00
# define DATA_TYPE 0x08
# define ASSOC_REQ_TYPE 0x00
# define ASSOC_RESP_TYPE 0x10
# define REASSOC_REQ_TYPE 0x20
# define REASSOC_RESP_TYPE 0x30
# define NULL_MSG_TYPE 0x48
# define BEACON_TYPE 0x80
# define DISASSOC_TYPE 0xA0
# define PSPOLL_TYPE 0xA4
# define AUTHENTIC_TYPE 0xB0
# define DEAUTHENTIC_TYPE 0xC0
/* Frame control 2 bit fields */
# define FC2_TO_DS 0x01
# define FC2_FROM_DS 0x02
# define FC2_MORE_FRAG 0x04
# define FC2_RETRY 0x08
# define FC2_PSM 0x10
# define FC2_MORE_DATA 0x20
# define FC2_WEP 0x40
# define FC2_ORDER 0x80
/*****************************************************************************/
/* 802.11 element ID's and lengths */
# define C_BP_CAPABILITY_ESS 0x01
# define C_BP_CAPABILITY_IBSS 0x02
# define C_BP_CAPABILITY_CF_POLLABLE 0x04
# define C_BP_CAPABILITY_CF_POLL_REQUEST 0x08
# define C_BP_CAPABILITY_PRIVACY 0x10
# define C_ESSID_ELEMENT_ID 0
# define C_ESSID_ELEMENT_MAX_LENGTH 32
# define C_SUPPORTED_RATES_ELEMENT_ID 1
# define C_SUPPORTED_RATES_ELEMENT_LENGTH 2
# define C_FH_PARAM_SET_ELEMENT_ID 2
# define C_FH_PARAM_SET_ELEMENT_LNGTH 5
# define C_CF_PARAM_SET_ELEMENT_ID 4
# define C_CF_PARAM_SET_ELEMENT_LNGTH 6
# define C_TIM_ELEMENT_ID 5
# define C_TIM_BITMAP_LENGTH 251
# define C_TIM_BMCAST_BIT 0x01
# define C_IBSS_ELEMENT_ID 6
# define C_IBSS_ELEMENT_LENGTH 2
# define C_JAPAN_CALL_SIGN_ELEMENT_ID 51
# define C_JAPAN_CALL_SIGN_ELEMENT_LNGTH 12
# define C_DISASSOC_REASON_CODE_LEN 2
# define C_DISASSOC_REASON_CODE_DEFAULT 8
# define C_CRC_LEN 4
# define C_NUM_SUPPORTED_RATES 8
/****** IEEE 802.11 mac header for type data packets *************************/
struct mac_header {
UCHAR frame_ctl_1 ;
UCHAR frame_ctl_2 ;
UCHAR duration_lsb ;
UCHAR duration_msb ;
UCHAR addr_1 [ ADDRLEN ] ;
UCHAR addr_2 [ ADDRLEN ] ;
UCHAR addr_3 [ ADDRLEN ] ;
UCHAR seq_frag_num [ 2 ] ;
/* UCHAR addr_4[ADDRLEN]; */ /* only present for AP to AP (TO DS and FROM DS */
} ;
/****** IEEE 802.11 frame element structures *********************************/
struct essid_element
{
UCHAR id ;
UCHAR length ;
UCHAR text [ C_ESSID_ELEMENT_MAX_LENGTH ] ;
} ;
struct rates_element
{
UCHAR id ;
UCHAR length ;
UCHAR value [ 8 ] ;
} ;
struct freq_hop_element
{
UCHAR id ;
UCHAR length ;
UCHAR dwell_time [ 2 ] ;
UCHAR hop_set ;
UCHAR hop_pattern ;
UCHAR hop_index ;
} ;
struct tim_element
{
UCHAR id ;
UCHAR length ;
UCHAR dtim_count ;
UCHAR dtim_period ;
UCHAR bitmap_control ;
UCHAR tim [ C_TIM_BITMAP_LENGTH ] ;
} ;
struct ibss_element
{
UCHAR id ;
UCHAR length ;
UCHAR atim_window [ 2 ] ;
} ;
struct japan_call_sign_element
{
UCHAR id ;
UCHAR length ;
UCHAR call_sign [ 12 ] ;
} ;
/****** Beacon message structures ********************************************/
/* .elements is a large lump of max size because elements are variable size */
struct infra_beacon
{
UCHAR timestamp [ 8 ] ;
UCHAR beacon_intvl [ 2 ] ;
UCHAR capability [ 2 ] ;
UCHAR elements [ sizeof ( struct essid_element )
+ sizeof ( struct rates_element )
+ sizeof ( struct freq_hop_element )
+ sizeof ( struct japan_call_sign_element )
+ sizeof ( struct tim_element ) ] ;
} ;
struct adhoc_beacon
{
UCHAR timestamp [ 8 ] ;
UCHAR beacon_intvl [ 2 ] ;
UCHAR capability [ 2 ] ;
UCHAR elements [ sizeof ( struct essid_element )
+ sizeof ( struct rates_element )
+ sizeof ( struct freq_hop_element )
+ sizeof ( struct japan_call_sign_element )
+ sizeof ( struct ibss_element ) ] ;
} ;
/*****************************************************************************/
/*****************************************************************************/
/* #define C_MAC_HDR_2_WEP 0x40 */
/* TX/RX CCS constants */
# define TX_HEADER_LENGTH 0x1C
# define RX_MAC_HEADER_LENGTH 0x18
# define TX_AUTHENTICATE_LENGTH (TX_HEADER_LENGTH + 6)
# define TX_AUTHENTICATE_LENGTH_MSB (TX_AUTHENTICATE_LENGTH >> 8)
# define TX_AUTHENTICATE_LENGTH_LSB (TX_AUTHENTICATE_LENGTH & 0xff)
# define TX_DEAUTHENTICATE_LENGTH (TX_HEADER_LENGTH + 2)
# define TX_DEAUTHENTICATE_LENGTH_MSB (TX_AUTHENTICATE_LENGTH >> 8)
# define TX_DEAUTHENTICATE_LENGTH_LSB (TX_AUTHENTICATE_LENGTH & 0xff)
# define FCS_LEN 4
# define ADHOC 0
# define INFRA 1
# define TYPE_STA 0
# define TYPE_AP 1
# define PASSIVE_SCAN 1
# define ACTIVE_SCAN 1
# define PSM_CAM 0
/* Country codes */
# define USA 1
# define EUROPE 2
# define JAPAN 3
# define KOREA 4
# define SPAIN 5
# define FRANCE 6
# define ISRAEL 7
# define AUSTRALIA 8
# define JAPAN_TEST 9
/* Hop pattern lengths */
# define USA_HOP_MOD 79
# define EUROPE_HOP_MOD 79
# define JAPAN_HOP_MOD 23
# define KOREA_HOP_MOD 23
# define SPAIN_HOP_MOD 27
# define FRANCE_HOP_MOD 35
# define ISRAEL_HOP_MOD 35
# define AUSTRALIA_HOP_MOD 47
# define JAPAN_TEST_HOP_MOD 23
# define ESSID_SIZE 32
/**********************************************************************/
/* CIS Register Constants */
# define CIS_OFFSET 0x0f00
/* Configuration Option Register (0x0F00) */
# define COR_OFFSET 0x00
# define COR_SOFT_RESET 0x80
# define COR_LEVEL_IRQ 0x40
# define COR_CONFIG_NUM 0x01
# define COR_DEFAULT (COR_LEVEL_IRQ | COR_CONFIG_NUM)
/* Card Configuration and Status Register (0x0F01) */
# define CCSR_OFFSET 0x01
# define CCSR_HOST_INTR_PENDING 0x01
# define CCSR_POWER_DOWN 0x04
/* HCS Interrupt Register (0x0F05) */
# define HCS_INTR_OFFSET 0x05
/* #define HCS_INTR_OFFSET 0x0A */
# define HCS_INTR_CLEAR 0x00
/* ECF Interrupt Register (0x0F06) */
# define ECF_INTR_OFFSET 0x06
/* #define ECF_INTR_OFFSET 0x0C */
# define ECF_INTR_SET 0x01
/* Authorization Register 0 (0x0F08) */
# define AUTH_0_ON 0x57
/* Authorization Register 1 (0x0F09) */
# define AUTH_1_ON 0x82
/* Program Mode Register (0x0F0A) */
# define PC2PM 0x02
# define PC2CAL 0x10
# define PC2MLSE 0x20
/* PC Test Mode Register (0x0F0B) */
# define PC_TEST_MODE 0x08
/* Frequency Control Word (0x0F10) */
/* Range 0x02 - 0xA6 */
/* Test Mode Control 1-4 (0x0F14 - 0x0F17) */
/**********************************************************************/
/* Shared RAM Area */
# define SCB_BASE 0x0000
# define STATUS_BASE 0x0100
# define HOST_TO_ECF_BASE 0x0200
# define ECF_TO_HOST_BASE 0x0300
# define CCS_BASE 0x0400
# define RCS_BASE 0x0800
# define INFRA_TIM_BASE 0x0C00
# define SSID_LIST_BASE 0x0D00
# define TX_BUF_BASE 0x1000
# define RX_BUF_BASE 0x8000
# define NUMBER_OF_CCS 64
# define NUMBER_OF_RCS 64
/*#define NUMBER_OF_TX_CCS 14 */
# define NUMBER_OF_TX_CCS 14
# define TX_BUF_SIZE (2048 - sizeof(struct tx_msg))
# define RX_BUFF_END 0x3FFF
/* Values for buffer_status */
# define CCS_BUFFER_FREE 0
# define CCS_BUFFER_BUSY 1
# define CCS_COMMAND_COMPLETE 2
# define CCS_COMMAND_FAILED 3
/* Values for cmd */
# define CCS_DOWNLOAD_STARTUP_PARAMS 1
# define CCS_UPDATE_PARAMS 2
# define CCS_REPORT_PARAMS 3
# define CCS_UPDATE_MULTICAST_LIST 4
# define CCS_UPDATE_POWER_SAVINGS_MODE 5
# define CCS_START_NETWORK 6
# define CCS_JOIN_NETWORK 7
# define CCS_START_ASSOCIATION 8
# define CCS_TX_REQUEST 9
# define CCS_TEST_MEMORY 0xa
# define CCS_SHUTDOWN 0xb
# define CCS_DUMP_MEMORY 0xc
# define CCS_START_TIMER 0xe
# define CCS_LAST_CMD CCS_START_TIMER
/* Values for link field */
# define CCS_END_LIST 0xff
/* values for buffer_status field */
# define RCS_BUFFER_FREE 0
# define RCS_BUFFER_BUSY 1
# define RCS_COMPLETE 2
# define RCS_FAILED 3
# define RCS_BUFFER_RELEASE 0xFF
/* values for interrupt_id field */
# define PROCESS_RX_PACKET 0x80 /* */
# define REJOIN_NET_COMPLETE 0x81 /* RCS ID: Rejoin Net Complete */
# define ROAMING_INITIATED 0x82 /* RCS ID: Roaming Initiated */
# define JAPAN_CALL_SIGN_RXD 0x83 /* RCS ID: New Japan Call Sign */
/*****************************************************************************/
/* Memory types for dump memory command */
# define C_MEM_PROG 0
# define C_MEM_XDATA 1
# define C_MEM_SFR 2
# define C_MEM_IDATA 3
/*** Return values for hw_xmit **********/
# define XMIT_OK (0)
# define XMIT_MSG_BAD (-1)
# define XMIT_NO_CCS (-2)
# define XMIT_NO_INTR (-3)
# define XMIT_NEED_AUTH (-4)
/*** Values for card status */
# define CARD_INSERTED (0)
# define CARD_AWAITING_PARAM (1)
# define CARD_INIT_ERROR (11)
# define CARD_DL_PARAM (2)
# define CARD_DL_PARAM_ERROR (12)
# define CARD_DOING_ACQ (3)
# define CARD_ACQ_COMPLETE (4)
# define CARD_ACQ_FAILED (14)
# define CARD_AUTH_COMPLETE (5)
# define CARD_AUTH_REFUSED (15)
# define CARD_ASSOC_COMPLETE (6)
# define CARD_ASSOC_FAILED (16)
/*** Values for authentication_state ***********************************/
# define UNAUTHENTICATED (0)
# define AWAITING_RESPONSE (1)
# define AUTHENTICATED (2)
# define NEED_TO_AUTH (3)
/*** Values for authentication type ************************************/
# define OPEN_AUTH_REQUEST (1)
# define OPEN_AUTH_RESPONSE (2)
# define BROADCAST_DEAUTH (0xc0)
/*** Values for timer functions ****************************************/
# define TODO_NOTHING (0)
# define TODO_VERIFY_DL_START (-1)
# define TODO_START_NET (-2)
# define TODO_JOIN_NET (-3)
# define TODO_AUTHENTICATE_TIMEOUT (-4)
# define TODO_SEND_CCS (-5)
/***********************************************************************/
/* Parameter passing structure for update/report parameter CCS's */
struct object_id {
void * object_addr ;
unsigned char object_length ;
} ;
# define OBJID_network_type 0
# define OBJID_acting_as_ap_status 1
# define OBJID_current_ess_id 2
# define OBJID_scanning_mode 3
# define OBJID_power_mgt_state 4
# define OBJID_mac_address 5
# define OBJID_frag_threshold 6
# define OBJID_hop_time 7
# define OBJID_beacon_period 8
# define OBJID_dtim_period 9
# define OBJID_retry_max 10
# define OBJID_ack_timeout 11
# define OBJID_sifs 12
# define OBJID_difs 13
# define OBJID_pifs 14
# define OBJID_rts_threshold 15
# define OBJID_scan_dwell_time 16
# define OBJID_max_scan_dwell_time 17
# define OBJID_assoc_resp_timeout 18
# define OBJID_adhoc_scan_cycle_max 19
# define OBJID_infra_scan_cycle_max 20
# define OBJID_infra_super_cycle_max 21
# define OBJID_promiscuous_mode 22
# define OBJID_unique_word 23
# define OBJID_slot_time 24
# define OBJID_roaming_low_snr 25
# define OBJID_low_snr_count_thresh 26
# define OBJID_infra_missed_bcn 27
# define OBJID_adhoc_missed_bcn 28
# define OBJID_curr_country_code 29
# define OBJID_hop_pattern 30
# define OBJID_reserved 31
# define OBJID_cw_max_msb 32
# define OBJID_cw_min_msb 33
# define OBJID_noise_filter_gain 34
# define OBJID_noise_limit_offset 35
# define OBJID_det_rssi_thresh_offset 36
# define OBJID_med_busy_thresh_offset 37
# define OBJID_det_sync_thresh 38
# define OBJID_test_mode 39
# define OBJID_test_min_chan_num 40
# define OBJID_test_max_chan_num 41
# define OBJID_allow_bcast_ID_prbrsp 42
# define OBJID_privacy_must_start 43
# define OBJID_privacy_can_join 44
# define OBJID_basic_rate_set 45
/**** Configuration/Status/Control Area ***************************/
/* System Control Block (SCB) Area
* Located at Shared RAM offset 0
*/
struct scb {
UCHAR ccs_index ;
UCHAR rcs_index ;
} ;
/****** Status area at Shared RAM offset 0x0100 ******************************/
struct status {
UCHAR mrx_overflow_for_host ; /* 0=ECF may write, 1=host may write*/
UCHAR mrx_checksum_error_for_host ; /* 0=ECF may write, 1=host may write*/
UCHAR rx_hec_error_for_host ; /* 0=ECF may write, 1=host may write*/
UCHAR reserved1 ;
short mrx_overflow ; /* ECF increments on rx overflow */
short mrx_checksum_error ; /* ECF increments on rx CRC error */
short rx_hec_error ; /* ECF incs on mac header CRC error */
UCHAR rxnoise ; /* Average RSL measurement */
} ;
/****** Host-to-ECF Data Area at Shared RAM offset 0x200 *********************/
struct host_to_ecf_area {
} ;
/****** ECF-to-Host Data Area at Shared RAM offset 0x0300 ********************/
struct startup_res_518 {
UCHAR startup_word ;
UCHAR station_addr [ ADDRLEN ] ;
UCHAR calc_prog_chksum ;
UCHAR calc_cis_chksum ;
UCHAR ecf_spare [ 7 ] ;
UCHAR japan_call_sign [ 12 ] ;
} ;
struct startup_res_6 {
UCHAR startup_word ;
UCHAR station_addr [ ADDRLEN ] ;
UCHAR reserved ;
UCHAR supp_rates [ 8 ] ;
UCHAR japan_call_sign [ 12 ] ;
UCHAR calc_prog_chksum ;
UCHAR calc_cis_chksum ;
UCHAR firmware_version [ 3 ] ;
UCHAR asic_version ;
UCHAR tib_length ;
} ;
struct start_join_net_params {
UCHAR net_type ;
UCHAR ssid [ ESSID_SIZE ] ;
UCHAR reserved ;
UCHAR privacy_can_join ;
} ;
/****** Command Control Structure area at Shared ram offset 0x0400 ***********/
/* Structures for command specific parameters (ccs.var) */
struct update_param_cmd {
UCHAR object_id ;
UCHAR number_objects ;
UCHAR failure_cause ;
} ;
struct report_param_cmd {
UCHAR object_id ;
UCHAR number_objects ;
UCHAR failure_cause ;
UCHAR length ;
} ;
struct start_network_cmd {
UCHAR update_param ;
UCHAR bssid [ ADDRLEN ] ;
UCHAR net_initiated ;
UCHAR net_default_tx_rate ;
UCHAR encryption ;
} ;
struct join_network_cmd {
UCHAR update_param ;
UCHAR bssid [ ADDRLEN ] ;
UCHAR net_initiated ;
UCHAR net_default_tx_rate ;
UCHAR encryption ;
} ;
struct tx_requested_cmd {
UCHAR tx_data_ptr [ 2 ] ;
UCHAR tx_data_length [ 2 ] ;
UCHAR host_reserved [ 2 ] ;
UCHAR reserved [ 3 ] ;
UCHAR tx_rate ;
UCHAR pow_sav_mode ;
UCHAR retries ;
UCHAR antenna ;
} ;
struct tx_requested_cmd_4 {
UCHAR tx_data_ptr [ 2 ] ;
UCHAR tx_data_length [ 2 ] ;
UCHAR dest_addr [ ADDRLEN ] ;
UCHAR pow_sav_mode ;
UCHAR retries ;
UCHAR station_id ;
} ;
struct memory_dump_cmd {
UCHAR memory_type ;
UCHAR memory_ptr [ 2 ] ;
UCHAR length ;
} ;
struct update_association_cmd {
UCHAR status ;
UCHAR aid [ 2 ] ;
} ;
struct start_timer_cmd {
UCHAR duration [ 2 ] ;
} ;
struct ccs {
UCHAR buffer_status ; /* 0 = buffer free, 1 = buffer busy */
/* 2 = command complete, 3 = failed */
UCHAR cmd ; /* command to ECF */
UCHAR link ; /* link to next CCS, FF=end of list */
/* command specific parameters */
union {
char reserved [ 13 ] ;
struct update_param_cmd update_param ;
struct report_param_cmd report_param ;
UCHAR nummulticast ;
UCHAR mode ;
struct start_network_cmd start_network ;
struct join_network_cmd join_network ;
struct tx_requested_cmd tx_request ;
struct memory_dump_cmd memory_dump ;
struct update_association_cmd update_assoc ;
struct start_timer_cmd start_timer ;
} var ;
} ;
/*****************************************************************************/
/* Transmit buffer structures */
struct tib_structure {
UCHAR ccs_index ;
UCHAR psm ;
UCHAR pass_fail ;
UCHAR retry_count ;
UCHAR max_retries ;
UCHAR frags_remaining ;
UCHAR no_rb ;
UCHAR rts_reqd ;
UCHAR csma_tx_cntrl_2 ;
UCHAR sifs_tx_cntrl_2 ;
UCHAR tx_dma_addr_1 [ 2 ] ;
UCHAR tx_dma_addr_2 [ 2 ] ;
UCHAR var_dur_2mhz [ 2 ] ;
UCHAR var_dur_1mhz [ 2 ] ;
UCHAR max_dur_2mhz [ 2 ] ;
UCHAR max_dur_1mhz [ 2 ] ;
UCHAR hdr_len ;
UCHAR max_frag_len [ 2 ] ;
UCHAR var_len [ 2 ] ;
UCHAR phy_hdr_4 ;
UCHAR mac_hdr_1 ;
UCHAR mac_hdr_2 ;
UCHAR sid [ 2 ] ;
} ;
struct phy_header {
UCHAR sfd [ 2 ] ;
UCHAR hdr_3 ;
UCHAR hdr_4 ;
} ;
2011-11-27 00:41:29 +04:00
struct ray_rx_msg {
2005-04-17 02:20:36 +04:00
struct mac_header mac ;
2011-11-27 00:41:29 +04:00
UCHAR var [ 0 ] ;
2005-04-17 02:20:36 +04:00
} ;
struct tx_msg {
struct tib_structure tib ;
struct phy_header phy ;
struct mac_header mac ;
UCHAR var [ 1 ] ;
} ;
2011-03-31 05:57:33 +04:00
/****** ECF Receive Control Structure (RCS) Area at Shared RAM offset 0x0800 */
2005-04-17 02:20:36 +04:00
/* Structures for command specific parameters (rcs.var) */
struct rx_packet_cmd {
UCHAR rx_data_ptr [ 2 ] ;
UCHAR rx_data_length [ 2 ] ;
UCHAR rx_sig_lev ;
UCHAR next_frag_rcs_index ;
UCHAR totalpacketlength [ 2 ] ;
} ;
struct rejoin_net_cmplt_cmd {
UCHAR reserved ;
UCHAR bssid [ ADDRLEN ] ;
} ;
struct japan_call_sign_rxd {
UCHAR rxd_call_sign [ 8 ] ;
UCHAR reserved [ 5 ] ;
} ;
struct rcs {
UCHAR buffer_status ;
UCHAR interrupt_id ;
UCHAR link_field ;
/* command specific parameters */
union {
UCHAR reserved [ 13 ] ;
struct rx_packet_cmd rx_packet ;
struct rejoin_net_cmplt_cmd rejoin_net_complete ;
struct japan_call_sign_rxd japan_call_sign ;
} var ;
} ;
/****** Startup parameter structures for both versions of firmware ***********/
struct b4_startup_params {
UCHAR a_network_type ; /* C_ADHOC, C_INFRA */
UCHAR a_acting_as_ap_status ; /* C_TYPE_STA, C_TYPE_AP */
UCHAR a_current_ess_id [ ESSID_SIZE ] ; /* Null terminated unless 32 long */
UCHAR a_scanning_mode ; /* passive 0, active 1 */
UCHAR a_power_mgt_state ; /* CAM 0, */
UCHAR a_mac_addr [ ADDRLEN ] ; /* */
UCHAR a_frag_threshold [ 2 ] ; /* 512 */
UCHAR a_hop_time [ 2 ] ; /* 16k * 2**n, n=0-4 in Kus */
UCHAR a_beacon_period [ 2 ] ; /* n * a_hop_time in Kus */
UCHAR a_dtim_period ; /* in beacons */
UCHAR a_retry_max ; /* */
UCHAR a_ack_timeout ; /* */
UCHAR a_sifs ; /* */
UCHAR a_difs ; /* */
UCHAR a_pifs ; /* */
UCHAR a_rts_threshold [ 2 ] ; /* */
UCHAR a_scan_dwell_time [ 2 ] ; /* */
UCHAR a_max_scan_dwell_time [ 2 ] ; /* */
UCHAR a_assoc_resp_timeout_thresh ; /* */
UCHAR a_adhoc_scan_cycle_max ; /* */
UCHAR a_infra_scan_cycle_max ; /* */
UCHAR a_infra_super_scan_cycle_max ; /* */
UCHAR a_promiscuous_mode ; /* */
UCHAR a_unique_word [ 2 ] ; /* */
UCHAR a_slot_time ; /* */
UCHAR a_roaming_low_snr_thresh ; /* */
UCHAR a_low_snr_count_thresh ; /* */
UCHAR a_infra_missed_bcn_thresh ; /* */
UCHAR a_adhoc_missed_bcn_thresh ; /* */
UCHAR a_curr_country_code ; /* C_USA */
UCHAR a_hop_pattern ; /* */
UCHAR a_hop_pattern_length ; /* */
/* b4 - b5 differences start here */
UCHAR a_cw_max ; /* */
UCHAR a_cw_min ; /* */
UCHAR a_noise_filter_gain ; /* */
UCHAR a_noise_limit_offset ; /* */
UCHAR a_det_rssi_thresh_offset ; /* */
UCHAR a_med_busy_thresh_offset ; /* */
UCHAR a_det_sync_thresh ; /* */
UCHAR a_test_mode ; /* */
UCHAR a_test_min_chan_num ; /* */
UCHAR a_test_max_chan_num ; /* */
UCHAR a_rx_tx_delay ; /* */
UCHAR a_current_bss_id [ ADDRLEN ] ; /* */
UCHAR a_hop_set ; /* */
} ;
struct b5_startup_params {
UCHAR a_network_type ; /* C_ADHOC, C_INFRA */
UCHAR a_acting_as_ap_status ; /* C_TYPE_STA, C_TYPE_AP */
UCHAR a_current_ess_id [ ESSID_SIZE ] ; /* Null terminated unless 32 long */
UCHAR a_scanning_mode ; /* passive 0, active 1 */
UCHAR a_power_mgt_state ; /* CAM 0, */
UCHAR a_mac_addr [ ADDRLEN ] ; /* */
UCHAR a_frag_threshold [ 2 ] ; /* 512 */
UCHAR a_hop_time [ 2 ] ; /* 16k * 2**n, n=0-4 in Kus */
UCHAR a_beacon_period [ 2 ] ; /* n * a_hop_time in Kus */
UCHAR a_dtim_period ; /* in beacons */
UCHAR a_retry_max ; /* 4 */
UCHAR a_ack_timeout ; /* */
UCHAR a_sifs ; /* */
UCHAR a_difs ; /* */
UCHAR a_pifs ; /* */
UCHAR a_rts_threshold [ 2 ] ; /* */
UCHAR a_scan_dwell_time [ 2 ] ; /* */
UCHAR a_max_scan_dwell_time [ 2 ] ; /* */
UCHAR a_assoc_resp_timeout_thresh ; /* */
UCHAR a_adhoc_scan_cycle_max ; /* */
UCHAR a_infra_scan_cycle_max ; /* */
UCHAR a_infra_super_scan_cycle_max ; /* */
UCHAR a_promiscuous_mode ; /* */
UCHAR a_unique_word [ 2 ] ; /* */
UCHAR a_slot_time ; /* */
UCHAR a_roaming_low_snr_thresh ; /* */
UCHAR a_low_snr_count_thresh ; /* */
UCHAR a_infra_missed_bcn_thresh ; /* */
UCHAR a_adhoc_missed_bcn_thresh ; /* */
UCHAR a_curr_country_code ; /* C_USA */
UCHAR a_hop_pattern ; /* */
UCHAR a_hop_pattern_length ; /* */
/* b4 - b5 differences start here */
UCHAR a_cw_max [ 2 ] ; /* */
UCHAR a_cw_min [ 2 ] ; /* */
UCHAR a_noise_filter_gain ; /* */
UCHAR a_noise_limit_offset ; /* */
UCHAR a_det_rssi_thresh_offset ; /* */
UCHAR a_med_busy_thresh_offset ; /* */
UCHAR a_det_sync_thresh ; /* */
UCHAR a_test_mode ; /* */
UCHAR a_test_min_chan_num ; /* */
UCHAR a_test_max_chan_num ; /* */
UCHAR a_allow_bcast_SSID_probe_rsp ;
UCHAR a_privacy_must_start ;
UCHAR a_privacy_can_join ;
UCHAR a_basic_rate_set [ 8 ] ;
} ;
/*****************************************************************************/
# define RAY_IOCG_PARMS (SIOCDEVPRIVATE)
# define RAY_IOCS_PARMS (SIOCDEVPRIVATE + 1)
# define RAY_DO_CMD (SIOCDEVPRIVATE + 2)
/****** ethernet <-> 802.11 translation **************************************/
typedef struct snaphdr_t
{
UCHAR dsap ;
UCHAR ssap ;
UCHAR ctrl ;
UCHAR org [ 3 ] ;
UCHAR ethertype [ 2 ] ;
} snaphdr_t ;
# define BRIDGE_ENCAP 0xf80000
# define RFC1042_ENCAP 0
# define SNAP_ID 0x0003aaaa
# define RAY_IPX_TYPE 0x8137
# define APPLEARP_TYPE 0x80f3
/*****************************************************************************/
# endif /* #ifndef RAYLINK_H */