diff options
| author | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
| commit | 1ac731c529cd4d6adbce134754b51ff7d822b145 (patch) | |
| tree | 143ab3f35ca5f3b69f583c84e6964b17139c2ec1 /drivers/net/wireless/legacy/rayctl.h | |
| parent | 07b4c950f27bef0362dc6ad7ee713aab61d58149 (diff) | |
| parent | 54116d442e001e1b6bd482122043b1870998a1f3 (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.6 merge window.
Diffstat (limited to 'drivers/net/wireless/legacy/rayctl.h')
| -rw-r--r-- | drivers/net/wireless/legacy/rayctl.h | 734 | 
1 files changed, 734 insertions, 0 deletions
diff --git a/drivers/net/wireless/legacy/rayctl.h b/drivers/net/wireless/legacy/rayctl.h new file mode 100644 index 000000000000..2b0f332043d7 --- /dev/null +++ b/drivers/net/wireless/legacy/rayctl.h @@ -0,0 +1,734 @@ +/* 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[]; +}; + +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_ */  |