1#ifndef RAYLINK_H 2 3typedef unsigned char UCHAR; 4 5/****** IEEE 802.11 constants ************************************************/ 6#define ADDRLEN 6 7/* Frame control 1 bit fields */ 8#define PROTOCOL_VER 0x00 9#define DATA_TYPE 0x08 10#define ASSOC_REQ_TYPE 0x00 11#define ASSOC_RESP_TYPE 0x10 12#define REASSOC_REQ_TYPE 0x20 13#define REASSOC_RESP_TYPE 0x30 14#define NULL_MSG_TYPE 0x48 15#define BEACON_TYPE 0x80 16#define DISASSOC_TYPE 0xA0 17#define PSPOLL_TYPE 0xA4 18#define AUTHENTIC_TYPE 0xB0 19#define DEAUTHENTIC_TYPE 0xC0 20/* Frame control 2 bit fields */ 21#define FC2_TO_DS 0x01 22#define FC2_FROM_DS 0x02 23#define FC2_MORE_FRAG 0x04 24#define FC2_RETRY 0x08 25#define FC2_PSM 0x10 26#define FC2_MORE_DATA 0x20 27#define FC2_WEP 0x40 28#define FC2_ORDER 0x80 29/*****************************************************************************/ 30/* 802.11 element ID's and lengths */ 31#define C_BP_CAPABILITY_ESS 0x01 32#define C_BP_CAPABILITY_IBSS 0x02 33#define C_BP_CAPABILITY_CF_POLLABLE 0x04 34#define C_BP_CAPABILITY_CF_POLL_REQUEST 0x08 35#define C_BP_CAPABILITY_PRIVACY 0x10 36 37#define C_ESSID_ELEMENT_ID 0 38#define C_ESSID_ELEMENT_MAX_LENGTH 32 39 40#define C_SUPPORTED_RATES_ELEMENT_ID 1 41#define C_SUPPORTED_RATES_ELEMENT_LENGTH 2 42 43#define C_FH_PARAM_SET_ELEMENT_ID 2 44#define C_FH_PARAM_SET_ELEMENT_LNGTH 5 45 46#define C_CF_PARAM_SET_ELEMENT_ID 4 47#define C_CF_PARAM_SET_ELEMENT_LNGTH 6 48 49#define C_TIM_ELEMENT_ID 5 50#define C_TIM_BITMAP_LENGTH 251 51#define C_TIM_BMCAST_BIT 0x01 52 53#define C_IBSS_ELEMENT_ID 6 54#define C_IBSS_ELEMENT_LENGTH 2 55 56#define C_JAPAN_CALL_SIGN_ELEMENT_ID 51 57#define C_JAPAN_CALL_SIGN_ELEMENT_LNGTH 12 58 59#define C_DISASSOC_REASON_CODE_LEN 2 60#define C_DISASSOC_REASON_CODE_DEFAULT 8 61 62#define C_CRC_LEN 4 63#define C_NUM_SUPPORTED_RATES 8 64/****** IEEE 802.11 mac header for type data packets *************************/ 65struct mac_header { 66 UCHAR frame_ctl_1; 67 UCHAR frame_ctl_2; 68 UCHAR duration_lsb; 69 UCHAR duration_msb; 70 UCHAR addr_1[ADDRLEN]; 71 UCHAR addr_2[ADDRLEN]; 72 UCHAR addr_3[ADDRLEN]; 73 UCHAR seq_frag_num[2]; 74/* UCHAR addr_4[ADDRLEN]; *//* only present for AP to AP (TO DS and FROM DS */ 75}; 76/****** IEEE 802.11 frame element structures *********************************/ 77struct essid_element 78{ 79 UCHAR id; 80 UCHAR length; 81 UCHAR text[C_ESSID_ELEMENT_MAX_LENGTH]; 82}; 83struct rates_element 84{ 85 UCHAR id; 86 UCHAR length; 87 UCHAR value[8]; 88}; 89struct freq_hop_element 90{ 91 UCHAR id; 92 UCHAR length; 93 UCHAR dwell_time[2]; 94 UCHAR hop_set; 95 UCHAR hop_pattern; 96 UCHAR hop_index; 97}; 98struct tim_element 99{ 100 UCHAR id; 101 UCHAR length; 102 UCHAR dtim_count; 103 UCHAR dtim_period; 104 UCHAR bitmap_control; 105 UCHAR tim[C_TIM_BITMAP_LENGTH]; 106}; 107struct ibss_element 108{ 109 UCHAR id; 110 UCHAR length; 111 UCHAR atim_window[2]; 112}; 113struct japan_call_sign_element 114{ 115 UCHAR id; 116 UCHAR length; 117 UCHAR call_sign[12]; 118}; 119/****** Beacon message structures ********************************************/ 120/* .elements is a large lump of max size because elements are variable size */ 121struct infra_beacon 122{ 123 UCHAR timestamp[8]; 124 UCHAR beacon_intvl[2]; 125 UCHAR capability[2]; 126 UCHAR elements[sizeof(struct essid_element) 127 + sizeof(struct rates_element) 128 + sizeof(struct freq_hop_element) 129 + sizeof(struct japan_call_sign_element) 130 + sizeof(struct tim_element)]; 131}; 132struct adhoc_beacon 133{ 134 UCHAR timestamp[8]; 135 UCHAR beacon_intvl[2]; 136 UCHAR capability[2]; 137 UCHAR elements[sizeof(struct essid_element) 138 + sizeof(struct rates_element) 139 + sizeof(struct freq_hop_element) 140 + sizeof(struct japan_call_sign_element) 141 + sizeof(struct ibss_element)]; 142}; 143/*****************************************************************************/ 144/*****************************************************************************/ 145/* #define C_MAC_HDR_2_WEP 0x40 */ 146/* TX/RX CCS constants */ 147#define TX_HEADER_LENGTH 0x1C 148#define RX_MAC_HEADER_LENGTH 0x18 149#define TX_AUTHENTICATE_LENGTH (TX_HEADER_LENGTH + 6) 150#define TX_AUTHENTICATE_LENGTH_MSB (TX_AUTHENTICATE_LENGTH >> 8) 151#define TX_AUTHENTICATE_LENGTH_LSB (TX_AUTHENTICATE_LENGTH & 0xff) 152#define TX_DEAUTHENTICATE_LENGTH (TX_HEADER_LENGTH + 2) 153#define TX_DEAUTHENTICATE_LENGTH_MSB (TX_AUTHENTICATE_LENGTH >> 8) 154#define TX_DEAUTHENTICATE_LENGTH_LSB (TX_AUTHENTICATE_LENGTH & 0xff) 155#define FCS_LEN 4 156 157#define ADHOC 0 158#define INFRA 1 159 160#define TYPE_STA 0 161#define TYPE_AP 1 162 163#define PASSIVE_SCAN 1 164#define ACTIVE_SCAN 1 165 166#define PSM_CAM 0 167 168/* Country codes */ 169#define USA 1 170#define EUROPE 2 171#define JAPAN 3 172#define KOREA 4 173#define SPAIN 5 174#define FRANCE 6 175#define ISRAEL 7 176#define AUSTRALIA 8 177#define JAPAN_TEST 9 178 179/* Hop pattern lengths */ 180#define USA_HOP_MOD 79 181#define EUROPE_HOP_MOD 79 182#define JAPAN_HOP_MOD 23 183#define KOREA_HOP_MOD 23 184#define SPAIN_HOP_MOD 27 185#define FRANCE_HOP_MOD 35 186#define ISRAEL_HOP_MOD 35 187#define AUSTRALIA_HOP_MOD 47 188#define JAPAN_TEST_HOP_MOD 23 189 190#define ESSID_SIZE 32 191/**********************************************************************/ 192/* CIS Register Constants */ 193#define CIS_OFFSET 0x0f00 194/* Configuration Option Register (0x0F00) */ 195#define COR_OFFSET 0x00 196#define COR_SOFT_RESET 0x80 197#define COR_LEVEL_IRQ 0x40 198#define COR_CONFIG_NUM 0x01 199#define COR_DEFAULT (COR_LEVEL_IRQ | COR_CONFIG_NUM) 200 201/* Card Configuration and Status Register (0x0F01) */ 202#define CCSR_OFFSET 0x01 203#define CCSR_HOST_INTR_PENDING 0x01 204#define CCSR_POWER_DOWN 0x04 205 206/* HCS Interrupt Register (0x0F05) */ 207#define HCS_INTR_OFFSET 0x05 208/* #define HCS_INTR_OFFSET 0x0A */ 209#define HCS_INTR_CLEAR 0x00 210 211/* ECF Interrupt Register (0x0F06) */ 212#define ECF_INTR_OFFSET 0x06 213/* #define ECF_INTR_OFFSET 0x0C */ 214#define ECF_INTR_SET 0x01 215 216/* Authorization Register 0 (0x0F08) */ 217#define AUTH_0_ON 0x57 218 219/* Authorization Register 1 (0x0F09) */ 220#define AUTH_1_ON 0x82 221 222/* Program Mode Register (0x0F0A) */ 223#define PC2PM 0x02 224#define PC2CAL 0x10 225#define PC2MLSE 0x20 226 227/* PC Test Mode Register (0x0F0B) */ 228#define PC_TEST_MODE 0x08 229 230/* Frequency Control Word (0x0F10) */ 231/* Range 0x02 - 0xA6 */ 232 233/* Test Mode Control 1-4 (0x0F14 - 0x0F17) */ 234 235/**********************************************************************/ 236 237/* Shared RAM Area */ 238#define SCB_BASE 0x0000 239#define STATUS_BASE 0x0100 240#define HOST_TO_ECF_BASE 0x0200 241#define ECF_TO_HOST_BASE 0x0300 242#define CCS_BASE 0x0400 243#define RCS_BASE 0x0800 244#define INFRA_TIM_BASE 0x0C00 245#define SSID_LIST_BASE 0x0D00 246#define TX_BUF_BASE 0x1000 247#define RX_BUF_BASE 0x8000 248 249#define NUMBER_OF_CCS 64 250#define NUMBER_OF_RCS 64 251/*#define NUMBER_OF_TX_CCS 14 */ 252#define NUMBER_OF_TX_CCS 14 253 254#define TX_BUF_SIZE (2048 - sizeof(struct tx_msg)) 255#define RX_BUFF_END 0x3FFF 256/* Values for buffer_status */ 257#define CCS_BUFFER_FREE 0 258#define CCS_BUFFER_BUSY 1 259#define CCS_COMMAND_COMPLETE 2 260#define CCS_COMMAND_FAILED 3 261 262/* Values for cmd */ 263#define CCS_DOWNLOAD_STARTUP_PARAMS 1 264#define CCS_UPDATE_PARAMS 2 265#define CCS_REPORT_PARAMS 3 266#define CCS_UPDATE_MULTICAST_LIST 4 267#define CCS_UPDATE_POWER_SAVINGS_MODE 5 268#define CCS_START_NETWORK 6 269#define CCS_JOIN_NETWORK 7 270#define CCS_START_ASSOCIATION 8 271#define CCS_TX_REQUEST 9 272#define CCS_TEST_MEMORY 0xa 273#define CCS_SHUTDOWN 0xb 274#define CCS_DUMP_MEMORY 0xc 275#define CCS_START_TIMER 0xe 276#define CCS_LAST_CMD CCS_START_TIMER 277 278/* Values for link field */ 279#define CCS_END_LIST 0xff 280 281/* values for buffer_status field */ 282#define RCS_BUFFER_FREE 0 283#define RCS_BUFFER_BUSY 1 284#define RCS_COMPLETE 2 285#define RCS_FAILED 3 286#define RCS_BUFFER_RELEASE 0xFF 287 288/* values for interrupt_id field */ 289#define PROCESS_RX_PACKET 0x80 /* */ 290#define REJOIN_NET_COMPLETE 0x81 /* RCS ID: Rejoin Net Complete */ 291#define ROAMING_INITIATED 0x82 /* RCS ID: Roaming Initiated */ 292#define JAPAN_CALL_SIGN_RXD 0x83 /* RCS ID: New Japan Call Sign */ 293 294/*****************************************************************************/ 295/* Memory types for dump memory command */ 296#define C_MEM_PROG 0 297#define C_MEM_XDATA 1 298#define C_MEM_SFR 2 299#define C_MEM_IDATA 3 300 301/*** Return values for hw_xmit **********/ 302#define XMIT_OK (0) 303#define XMIT_MSG_BAD (-1) 304#define XMIT_NO_CCS (-2) 305#define XMIT_NO_INTR (-3) 306#define XMIT_NEED_AUTH (-4) 307 308/*** Values for card status */ 309#define CARD_INSERTED (0) 310 311#define CARD_AWAITING_PARAM (1) 312#define CARD_INIT_ERROR (11) 313 314#define CARD_DL_PARAM (2) 315#define CARD_DL_PARAM_ERROR (12) 316 317#define CARD_DOING_ACQ (3) 318 319#define CARD_ACQ_COMPLETE (4) 320#define CARD_ACQ_FAILED (14) 321 322#define CARD_AUTH_COMPLETE (5) 323#define CARD_AUTH_REFUSED (15) 324 325#define CARD_ASSOC_COMPLETE (6) 326#define CARD_ASSOC_FAILED (16) 327 328/*** Values for authentication_state ***********************************/ 329#define UNAUTHENTICATED (0) 330#define AWAITING_RESPONSE (1) 331#define AUTHENTICATED (2) 332#define NEED_TO_AUTH (3) 333 334/*** Values for authentication type ************************************/ 335#define OPEN_AUTH_REQUEST (1) 336#define OPEN_AUTH_RESPONSE (2) 337#define BROADCAST_DEAUTH (0xc0) 338/*** Values for timer functions ****************************************/ 339#define TODO_NOTHING (0) 340#define TODO_VERIFY_DL_START (-1) 341#define TODO_START_NET (-2) 342#define TODO_JOIN_NET (-3) 343#define TODO_AUTHENTICATE_TIMEOUT (-4) 344#define TODO_SEND_CCS (-5) 345/***********************************************************************/ 346/* Parameter passing structure for update/report parameter CCS's */ 347struct object_id { 348 void *object_addr; 349 unsigned char object_length; 350}; 351 352#define OBJID_network_type 0 353#define OBJID_acting_as_ap_status 1 354#define OBJID_current_ess_id 2 355#define OBJID_scanning_mode 3 356#define OBJID_power_mgt_state 4 357#define OBJID_mac_address 5 358#define OBJID_frag_threshold 6 359#define OBJID_hop_time 7 360#define OBJID_beacon_period 8 361#define OBJID_dtim_period 9 362#define OBJID_retry_max 10 363#define OBJID_ack_timeout 11 364#define OBJID_sifs 12 365#define OBJID_difs 13 366#define OBJID_pifs 14 367#define OBJID_rts_threshold 15 368#define OBJID_scan_dwell_time 16 369#define OBJID_max_scan_dwell_time 17 370#define OBJID_assoc_resp_timeout 18 371#define OBJID_adhoc_scan_cycle_max 19 372#define OBJID_infra_scan_cycle_max 20 373#define OBJID_infra_super_cycle_max 21 374#define OBJID_promiscuous_mode 22 375#define OBJID_unique_word 23 376#define OBJID_slot_time 24 377#define OBJID_roaming_low_snr 25 378#define OBJID_low_snr_count_thresh 26 379#define OBJID_infra_missed_bcn 27 380#define OBJID_adhoc_missed_bcn 28 381#define OBJID_curr_country_code 29 382#define OBJID_hop_pattern 30 383#define OBJID_reserved 31 384#define OBJID_cw_max_msb 32 385#define OBJID_cw_min_msb 33 386#define OBJID_noise_filter_gain 34 387#define OBJID_noise_limit_offset 35 388#define OBJID_det_rssi_thresh_offset 36 389#define OBJID_med_busy_thresh_offset 37 390#define OBJID_det_sync_thresh 38 391#define OBJID_test_mode 39 392#define OBJID_test_min_chan_num 40 393#define OBJID_test_max_chan_num 41 394#define OBJID_allow_bcast_ID_prbrsp 42 395#define OBJID_privacy_must_start 43 396#define OBJID_privacy_can_join 44 397#define OBJID_basic_rate_set 45 398 399/**** Configuration/Status/Control Area ***************************/ 400/* System Control Block (SCB) Area 401 * Located at Shared RAM offset 0 402 */ 403struct scb { 404 UCHAR ccs_index; 405 UCHAR rcs_index; 406}; 407 408/****** Status area at Shared RAM offset 0x0100 ******************************/ 409struct status { 410 UCHAR mrx_overflow_for_host; /* 0=ECF may write, 1=host may write*/ 411 UCHAR mrx_checksum_error_for_host; /* 0=ECF may write, 1=host may write*/ 412 UCHAR rx_hec_error_for_host; /* 0=ECF may write, 1=host may write*/ 413 UCHAR reserved1; 414 short mrx_overflow; /* ECF increments on rx overflow */ 415 short mrx_checksum_error; /* ECF increments on rx CRC error */ 416 short rx_hec_error; /* ECF incs on mac header CRC error */ 417 UCHAR rxnoise; /* Average RSL measurement */ 418}; 419 420/****** Host-to-ECF Data Area at Shared RAM offset 0x200 *********************/ 421struct host_to_ecf_area { 422 423}; 424 425/****** ECF-to-Host Data Area at Shared RAM offset 0x0300 ********************/ 426struct startup_res_518 { 427 UCHAR startup_word; 428 UCHAR station_addr[ADDRLEN]; 429 UCHAR calc_prog_chksum; 430 UCHAR calc_cis_chksum; 431 UCHAR ecf_spare[7]; 432 UCHAR japan_call_sign[12]; 433}; 434 435struct startup_res_6 { 436 UCHAR startup_word; 437 UCHAR station_addr[ADDRLEN]; 438 UCHAR reserved; 439 UCHAR supp_rates[8]; 440 UCHAR japan_call_sign[12]; 441 UCHAR calc_prog_chksum; 442 UCHAR calc_cis_chksum; 443 UCHAR firmware_version[3]; 444 UCHAR asic_version; 445 UCHAR tib_length; 446}; 447 448struct start_join_net_params { 449 UCHAR net_type; 450 UCHAR ssid[ESSID_SIZE]; 451 UCHAR reserved; 452 UCHAR privacy_can_join; 453}; 454 455/****** Command Control Structure area at Shared ram offset 0x0400 ***********/ 456/* Structures for command specific parameters (ccs.var) */ 457struct update_param_cmd { 458 UCHAR object_id; 459 UCHAR number_objects; 460 UCHAR failure_cause; 461}; 462struct report_param_cmd { 463 UCHAR object_id; 464 UCHAR number_objects; 465 UCHAR failure_cause; 466 UCHAR length; 467}; 468struct start_network_cmd { 469 UCHAR update_param; 470 UCHAR bssid[ADDRLEN]; 471 UCHAR net_initiated; 472 UCHAR net_default_tx_rate; 473 UCHAR encryption; 474}; 475struct join_network_cmd { 476 UCHAR update_param; 477 UCHAR bssid[ADDRLEN]; 478 UCHAR net_initiated; 479 UCHAR net_default_tx_rate; 480 UCHAR encryption; 481}; 482struct tx_requested_cmd { 483 484 UCHAR tx_data_ptr[2]; 485 UCHAR tx_data_length[2]; 486 UCHAR host_reserved[2]; 487 UCHAR reserved[3]; 488 UCHAR tx_rate; 489 UCHAR pow_sav_mode; 490 UCHAR retries; 491 UCHAR antenna; 492}; 493struct tx_requested_cmd_4 { 494 495 UCHAR tx_data_ptr[2]; 496 UCHAR tx_data_length[2]; 497 UCHAR dest_addr[ADDRLEN]; 498 UCHAR pow_sav_mode; 499 UCHAR retries; 500 UCHAR station_id; 501}; 502struct memory_dump_cmd { 503 UCHAR memory_type; 504 UCHAR memory_ptr[2]; 505 UCHAR length; 506}; 507struct update_association_cmd { 508 UCHAR status; 509 UCHAR aid[2]; 510}; 511struct start_timer_cmd { 512 UCHAR duration[2]; 513}; 514 515struct ccs { 516 UCHAR buffer_status; /* 0 = buffer free, 1 = buffer busy */ 517 /* 2 = command complete, 3 = failed */ 518 UCHAR cmd; /* command to ECF */ 519 UCHAR link; /* link to next CCS, FF=end of list */ 520 /* command specific parameters */ 521 union { 522 char reserved[13]; 523 struct update_param_cmd update_param; 524 struct report_param_cmd report_param; 525 UCHAR nummulticast; 526 UCHAR mode; 527 struct start_network_cmd start_network; 528 struct join_network_cmd join_network; 529 struct tx_requested_cmd tx_request; 530 struct memory_dump_cmd memory_dump; 531 struct update_association_cmd update_assoc; 532 struct start_timer_cmd start_timer; 533 } var; 534}; 535 536/*****************************************************************************/ 537/* Transmit buffer structures */ 538struct tib_structure { 539 UCHAR ccs_index; 540 UCHAR psm; 541 UCHAR pass_fail; 542 UCHAR retry_count; 543 UCHAR max_retries; 544 UCHAR frags_remaining; 545 UCHAR no_rb; 546 UCHAR rts_reqd; 547 UCHAR csma_tx_cntrl_2; 548 UCHAR sifs_tx_cntrl_2; 549 UCHAR tx_dma_addr_1[2]; 550 UCHAR tx_dma_addr_2[2]; 551 UCHAR var_dur_2mhz[2]; 552 UCHAR var_dur_1mhz[2]; 553 UCHAR max_dur_2mhz[2]; 554 UCHAR max_dur_1mhz[2]; 555 UCHAR hdr_len; 556 UCHAR max_frag_len[2]; 557 UCHAR var_len[2]; 558 UCHAR phy_hdr_4; 559 UCHAR mac_hdr_1; 560 UCHAR mac_hdr_2; 561 UCHAR sid[2]; 562}; 563 564struct phy_header { 565 UCHAR sfd[2]; 566 UCHAR hdr_3; 567 UCHAR hdr_4; 568}; 569struct ray_rx_msg { 570 struct mac_header mac; 571 UCHAR var[0]; 572}; 573 574struct tx_msg { 575 struct tib_structure tib; 576 struct phy_header phy; 577 struct mac_header mac; 578 UCHAR var[1]; 579}; 580 581/****** ECF Receive Control Structure (RCS) Area at Shared RAM offset 0x0800 */ 582/* Structures for command specific parameters (rcs.var) */ 583struct rx_packet_cmd { 584 UCHAR rx_data_ptr[2]; 585 UCHAR rx_data_length[2]; 586 UCHAR rx_sig_lev; 587 UCHAR next_frag_rcs_index; 588 UCHAR totalpacketlength[2]; 589}; 590struct rejoin_net_cmplt_cmd { 591 UCHAR reserved; 592 UCHAR bssid[ADDRLEN]; 593}; 594struct japan_call_sign_rxd { 595 UCHAR rxd_call_sign[8]; 596 UCHAR reserved[5]; 597}; 598 599struct rcs { 600 UCHAR buffer_status; 601 UCHAR interrupt_id; 602 UCHAR link_field; 603 /* command specific parameters */ 604 union { 605 UCHAR reserved[13]; 606 struct rx_packet_cmd rx_packet; 607 struct rejoin_net_cmplt_cmd rejoin_net_complete; 608 struct japan_call_sign_rxd japan_call_sign; 609 } var; 610}; 611 612/****** Startup parameter structures for both versions of firmware ***********/ 613struct b4_startup_params { 614 UCHAR a_network_type; /* C_ADHOC, C_INFRA */ 615 UCHAR a_acting_as_ap_status; /* C_TYPE_STA, C_TYPE_AP */ 616 UCHAR a_current_ess_id[ESSID_SIZE]; /* Null terminated unless 32 long */ 617 UCHAR a_scanning_mode; /* passive 0, active 1 */ 618 UCHAR a_power_mgt_state; /* CAM 0, */ 619 UCHAR a_mac_addr[ADDRLEN]; /* */ 620 UCHAR a_frag_threshold[2]; /* 512 */ 621 UCHAR a_hop_time[2]; /* 16k * 2**n, n=0-4 in Kus */ 622 UCHAR a_beacon_period[2]; /* n * a_hop_time in Kus */ 623 UCHAR a_dtim_period; /* in beacons */ 624 UCHAR a_retry_max; /* */ 625 UCHAR a_ack_timeout; /* */ 626 UCHAR a_sifs; /* */ 627 UCHAR a_difs; /* */ 628 UCHAR a_pifs; /* */ 629 UCHAR a_rts_threshold[2]; /* */ 630 UCHAR a_scan_dwell_time[2]; /* */ 631 UCHAR a_max_scan_dwell_time[2]; /* */ 632 UCHAR a_assoc_resp_timeout_thresh; /* */ 633 UCHAR a_adhoc_scan_cycle_max; /* */ 634 UCHAR a_infra_scan_cycle_max; /* */ 635 UCHAR a_infra_super_scan_cycle_max; /* */ 636 UCHAR a_promiscuous_mode; /* */ 637 UCHAR a_unique_word[2]; /* */ 638 UCHAR a_slot_time; /* */ 639 UCHAR a_roaming_low_snr_thresh; /* */ 640 UCHAR a_low_snr_count_thresh; /* */ 641 UCHAR a_infra_missed_bcn_thresh; /* */ 642 UCHAR a_adhoc_missed_bcn_thresh; /* */ 643 UCHAR a_curr_country_code; /* C_USA */ 644 UCHAR a_hop_pattern; /* */ 645 UCHAR a_hop_pattern_length; /* */ 646/* b4 - b5 differences start here */ 647 UCHAR a_cw_max; /* */ 648 UCHAR a_cw_min; /* */ 649 UCHAR a_noise_filter_gain; /* */ 650 UCHAR a_noise_limit_offset; /* */ 651 UCHAR a_det_rssi_thresh_offset; /* */ 652 UCHAR a_med_busy_thresh_offset; /* */ 653 UCHAR a_det_sync_thresh; /* */ 654 UCHAR a_test_mode; /* */ 655 UCHAR a_test_min_chan_num; /* */ 656 UCHAR a_test_max_chan_num; /* */ 657 UCHAR a_rx_tx_delay; /* */ 658 UCHAR a_current_bss_id[ADDRLEN]; /* */ 659 UCHAR a_hop_set; /* */ 660}; 661struct b5_startup_params { 662 UCHAR a_network_type; /* C_ADHOC, C_INFRA */ 663 UCHAR a_acting_as_ap_status; /* C_TYPE_STA, C_TYPE_AP */ 664 UCHAR a_current_ess_id[ESSID_SIZE]; /* Null terminated unless 32 long */ 665 UCHAR a_scanning_mode; /* passive 0, active 1 */ 666 UCHAR a_power_mgt_state; /* CAM 0, */ 667 UCHAR a_mac_addr[ADDRLEN]; /* */ 668 UCHAR a_frag_threshold[2]; /* 512 */ 669 UCHAR a_hop_time[2]; /* 16k * 2**n, n=0-4 in Kus */ 670 UCHAR a_beacon_period[2]; /* n * a_hop_time in Kus */ 671 UCHAR a_dtim_period; /* in beacons */ 672 UCHAR a_retry_max; /* 4 */ 673 UCHAR a_ack_timeout; /* */ 674 UCHAR a_sifs; /* */ 675 UCHAR a_difs; /* */ 676 UCHAR a_pifs; /* */ 677 UCHAR a_rts_threshold[2]; /* */ 678 UCHAR a_scan_dwell_time[2]; /* */ 679 UCHAR a_max_scan_dwell_time[2]; /* */ 680 UCHAR a_assoc_resp_timeout_thresh; /* */ 681 UCHAR a_adhoc_scan_cycle_max; /* */ 682 UCHAR a_infra_scan_cycle_max; /* */ 683 UCHAR a_infra_super_scan_cycle_max; /* */ 684 UCHAR a_promiscuous_mode; /* */ 685 UCHAR a_unique_word[2]; /* */ 686 UCHAR a_slot_time; /* */ 687 UCHAR a_roaming_low_snr_thresh; /* */ 688 UCHAR a_low_snr_count_thresh; /* */ 689 UCHAR a_infra_missed_bcn_thresh; /* */ 690 UCHAR a_adhoc_missed_bcn_thresh; /* */ 691 UCHAR a_curr_country_code; /* C_USA */ 692 UCHAR a_hop_pattern; /* */ 693 UCHAR a_hop_pattern_length; /* */ 694/* b4 - b5 differences start here */ 695 UCHAR a_cw_max[2]; /* */ 696 UCHAR a_cw_min[2]; /* */ 697 UCHAR a_noise_filter_gain; /* */ 698 UCHAR a_noise_limit_offset; /* */ 699 UCHAR a_det_rssi_thresh_offset; /* */ 700 UCHAR a_med_busy_thresh_offset; /* */ 701 UCHAR a_det_sync_thresh; /* */ 702 UCHAR a_test_mode; /* */ 703 UCHAR a_test_min_chan_num; /* */ 704 UCHAR a_test_max_chan_num; /* */ 705 UCHAR a_allow_bcast_SSID_probe_rsp; 706 UCHAR a_privacy_must_start; 707 UCHAR a_privacy_can_join; 708 UCHAR a_basic_rate_set[8]; 709}; 710 711/*****************************************************************************/ 712#define RAY_IOCG_PARMS (SIOCDEVPRIVATE) 713#define RAY_IOCS_PARMS (SIOCDEVPRIVATE + 1) 714#define RAY_DO_CMD (SIOCDEVPRIVATE + 2) 715 716/****** ethernet <-> 802.11 translation **************************************/ 717typedef struct snaphdr_t 718{ 719 UCHAR dsap; 720 UCHAR ssap; 721 UCHAR ctrl; 722 UCHAR org[3]; 723 UCHAR ethertype[2]; 724} snaphdr_t; 725 726#define BRIDGE_ENCAP 0xf80000 727#define RFC1042_ENCAP 0 728#define SNAP_ID 0x0003aaaa 729#define RAY_IPX_TYPE 0x8137 730#define APPLEARP_TYPE 0x80f3 731/*****************************************************************************/ 732#endif /* #ifndef RAYLINK_H */ 733