OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [drivers/] [net/] [wireless/] [rayctl.h] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
#ifndef RAYLINK_H
2
 
3
typedef 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 *************************/
65
struct 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 *********************************/
77
struct essid_element
78
{
79
  UCHAR id;
80
  UCHAR length;
81
  UCHAR text[C_ESSID_ELEMENT_MAX_LENGTH];
82
};
83
struct rates_element
84
{
85
  UCHAR id;
86
  UCHAR length;
87
  UCHAR value[8];
88
};
89
struct 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
};
98
struct 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
};
107
struct ibss_element
108
{
109
  UCHAR id;
110
  UCHAR length;
111
  UCHAR atim_window[2];
112
};
113
struct 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  */
121
struct 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
};
132
struct 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 */
347
struct 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
 */
403
struct scb {
404
    UCHAR ccs_index;
405
    UCHAR rcs_index;
406
};
407
 
408
/****** Status area at Shared RAM offset 0x0100 ******************************/
409
struct 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 *********************/
421
struct host_to_ecf_area {
422
 
423
};
424
 
425
/****** ECF-to-Host Data Area at Shared RAM offset 0x0300 ********************/
426
struct 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
 
435
struct 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
 
448
struct 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) */
457
struct update_param_cmd {
458
    UCHAR object_id;
459
    UCHAR number_objects;
460
    UCHAR failure_cause;
461
};
462
struct report_param_cmd {
463
    UCHAR object_id;
464
    UCHAR number_objects;
465
    UCHAR failure_cause;
466
    UCHAR length;
467
};
468
struct 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
};
475
struct 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
};
482
struct 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
};
493
struct 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
};
502
struct memory_dump_cmd {
503
    UCHAR memory_type;
504
    UCHAR memory_ptr[2];
505
    UCHAR length;
506
};
507
struct update_association_cmd {
508
    UCHAR status;
509
    UCHAR aid[2];
510
};
511
struct start_timer_cmd {
512
    UCHAR duration[2];
513
};
514
 
515
struct 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 */
538
struct 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
 
564
struct phy_header {
565
    UCHAR sfd[2];
566
    UCHAR hdr_3;
567
    UCHAR hdr_4;
568
};
569
struct rx_msg {
570
    struct mac_header mac;
571
    UCHAR  var[1];
572
};
573
 
574
struct 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 Stucture (RCS) Area at Shared RAM offset 0x0800  */
582
/* Structures for command specific parameters (rcs.var) */
583
struct 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
};
590
struct rejoin_net_cmplt_cmd {
591
    UCHAR reserved;
592
    UCHAR bssid[ADDRLEN];
593
};
594
struct japan_call_sign_rxd {
595
    UCHAR rxd_call_sign[8];
596
    UCHAR reserved[5];
597
};
598
 
599
struct 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 ***********/
613
struct 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
};
661
struct 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 **************************************/
717
typedef 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 */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.