| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef _RAYCTL_H_ |
| #define _RAYCTL_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; |
| }; |
| struct ray_rx_msg { |
| struct mac_header mac; |
| UCHAR var[0]; |
| }; |
| |
| struct tx_msg { |
| struct tib_structure tib; |
| struct phy_header phy; |
| struct mac_header mac; |
| UCHAR var[1]; |
| }; |
| |
| /****** ECF Receive Control Structure (RCS) Area at Shared RAM offset 0x0800 */ |
| /* 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 /* _RAYCTL_H_ */ |