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