Properly add the GPL license
[acx-mac80211.git] / README.unknowncommands
blob208ea0d011aaeb4238d72efed80dcb932319f070
1 This file records the command that were snooped upon (or whatever) on chipsets
2 that were unknown by the orignal authors.
4 They were originally in acx_struct.h but have been moved to this README since
5 all are under #if 0 anyway.
7 Behold the macro :p
9 #define DEF_IE(name, val, len) enum { ACX##name=val, ACX##name##_LEN=len }
10 #if 0
11 /* Experimentally obtained on acx100, fw 1.9.8.b
12 ** -1 means that fw returned 'invalid IE'
13 ** 0200 FC00 nnnn... are test read contents: u16 type, u16 len, data
14 ** (AA are poison bytes marking bytes not written by fw)
16 ** Looks like acx100 fw does not update len field (thus len=256-4=FC here)
17 ** A number of IEs seem to trash type,len fields
18 ** IEs marked 'huge' return gobs of data (no poison bytes remain)
20 DEF_IE(100_IE_INVAL_00,                 0x0000, -1);
21 DEF_IE(100_IE_INVAL_01,                 0x0001, -1);    /* IE_ACX_TIMER, len=16 on older fw */
22 DEF_IE(100_IE_POWER_MGMT,               0x0002, 4);     /* 0200FC00 00040000 AAAAAAAA */
23 DEF_IE(100_IE_QUEUE_CONFIG,             0x0003, 28);    /* 0300FC00 48060000 9CAD0000 0101AAAA DCB00000 E4B00000 9CAA0000 00AAAAAA */
24 DEF_IE(100_IE_BLOCK_SIZE,               0x0004, 2);     /* 0400FC00 0001AAAA AAAAAAAA AAAAAAAA */
25 /* write only: */
26 DEF_IE(100_IE_MEMORY_CONFIG_OPTIONS,    0x0005, 20);
27 DEF_IE(100_IE_RATE_FALLBACK,            0x0006, 1);     /* 0600FC00 00AAAAAA AAAAAAAA AAAAAAAA */
28 /* write only: */
29 DEF_IE(100_IE_WEP_OPTIONS,              0x0007, 3);
30 DEF_IE(100_IE_MEMORY_MAP,               0x0008, 40);    /* huge: 0800FC00 30000000 6CA20000 70A20000... */
31 /* gives INVAL on read: */
32 DEF_IE(100_IE_SCAN_STATUS,              0x0009, -1);
33 DEF_IE(100_IE_ASSOC_ID,                 0x000a, 2);     /* huge: 0A00FC00 00000000 01040800 00000000... */
34 DEF_IE(100_IE_INVAL_0B,                 0x000b, -1);
35 /* 'command rejected': */
36 DEF_IE(100_IE_CONFIG_OPTIONS,           0x000c, -3);
37 DEF_IE(100_IE_FWREV,                    0x000d, 24);    /* 0D00FC00 52657620 312E392E 382E6200 AAAAAAAA AAAAAAAA 05050201 AAAAAAAA */
38 DEF_IE(100_IE_FCS_ERROR_COUNT,          0x000e, 4);
39 DEF_IE(100_IE_MEDIUM_USAGE,             0x000f, 8);     /* E41F0000 2D780300 FCC91300 AAAAAAAA */
40 DEF_IE(100_IE_RXCONFIG,                 0x0010, 4);     /* 1000FC00 00280000 AAAAAAAA AAAAAAAA */
41 DEF_IE(100_IE_QUEUE_THRESH,             0x0011, 12);    /* 1100FC00 AAAAAAAA 00000000 00000000 */
42 DEF_IE(100_IE_BSS_POWER_SAVE,           0x0012, 1);     /* 1200FC00 00AAAAAA AAAAAAAA AAAAAAAA */
43 /* read only, variable len */
44 DEF_IE(100_IE_FIRMWARE_STATISTICS,      0x0013, 256); /* 0000AC00 00000000 ... */
45 DEF_IE(100_IE_INT_CONFIG,               0x0014, 20);    /* 00000000 00000000 00000000 00000000 5D74D105 00000000 AAAAAAAA AAAAAAAA */
46 DEF_IE(100_IE_FEATURE_CONFIG,           0x0015, 8);     /* 1500FC00 16000000 AAAAAAAA AAAAAAAA */
47 /* returns 'invalid MAC': */
48 DEF_IE(100_IE_KEY_CHOOSE,               0x0016, -4);
49 DEF_IE(100_IE_INVAL_17,                 0x0017, -1);
50 DEF_IE(100_IE_UNKNOWN_18,               0x0018, 0);     /* null len?! 1800FC00 AAAAAAAA AAAAAAAA AAAAAAAA */
51 DEF_IE(100_IE_UNKNOWN_19,               0x0019, 256);   /* huge: 1900FC00 9C1F00EA FEFFFFEA FEFFFFEA... */
52 DEF_IE(100_IE_INVAL_1A,                 0x001A, -1);
54 DEF_IE(100_IE_DOT11_INVAL_1000,                 0x1000, -1);
55 DEF_IE(100_IE_DOT11_STATION_ID,                 0x1001, 6);     /* huge: 0110FC00 58B10E2F 03000000 00000000... */
56 DEF_IE(100_IE_DOT11_INVAL_1002,                 0x1002, -1);
57 DEF_IE(100_IE_DOT11_INVAL_1003,                 0x1003, -1);
58 DEF_IE(100_IE_DOT11_INVAL_1004,                 0x1004, -1);
59 DEF_IE(100_IE_DOT11_SHORT_RETRY_LIMIT,          0x1005, 1);
60 DEF_IE(100_IE_DOT11_LONG_RETRY_LIMIT,           0x1006, 1);
61 /* write only: */
62 DEF_IE(100_IE_DOT11_WEP_DEFAULT_KEY_WRITE,      0x1007, 32);
63 DEF_IE(100_IE_DOT11_MAX_XMIT_MSDU_LIFETIME,     0x1008, 4);     /* huge: 0810FC00 00020000 F4010000 00000000... */
64 /* undoc but returns something */
65 DEF_IE(100_IE_DOT11_GROUP_ADDR,                 0x1009, 12);    /* huge: 0910FC00 00000000 00000000 00000000... */
66 DEF_IE(100_IE_DOT11_CURRENT_REG_DOMAIN,         0x100a, 1);     /* 0A10FC00 30AAAAAA AAAAAAAA AAAAAAAA */
67 DEF_IE(100_IE_DOT11_CURRENT_ANTENNA,            0x100b, 1);     /* 0B10FC00 8FAAAAAA AAAAAAAA AAAAAAAA */
68 DEF_IE(100_IE_DOT11_INVAL_100C,                 0x100c, -1);
69 DEF_IE(100_IE_DOT11_TX_POWER_LEVEL,             0x100d, 2);     /* 00000000 0100AAAA AAAAAAAA AAAAAAAA */
70 DEF_IE(100_IE_DOT11_CURRENT_CCA_MODE,           0x100e, 1);     /* 0E10FC00 0DAAAAAA AAAAAAAA AAAAAAAA */
71 DEF_IE(100_IE_DOT11_ED_THRESHOLD,               0x100f, 4);     /* 0F10FC00 70000000 AAAAAAAA AAAAAAAA */
72 /* set default key ID  */
73 DEF_IE(100_IE_DOT11_WEP_DEFAULT_KEY_SET,        0x1010, 1);     /* 1010FC00 00AAAAAA AAAAAAAA AAAAAAAA */
74 DEF_IE(100_IE_DOT11_INVAL_1011,                 0x1011, -1);
75 DEF_IE(100_IE_DOT11_INVAL_1012,                 0x1012, -1);
76 DEF_IE(100_IE_DOT11_INVAL_1013,                 0x1013, -1);
77 DEF_IE(100_IE_DOT11_UNKNOWN_1014,               0x1014, 256);   /* huge */
78 DEF_IE(100_IE_DOT11_UNKNOWN_1015,               0x1015, 256);   /* huge */
79 DEF_IE(100_IE_DOT11_UNKNOWN_1016,               0x1016, 256);   /* huge */
80 DEF_IE(100_IE_DOT11_UNKNOWN_1017,               0x1017, 256);   /* huge */
81 DEF_IE(100_IE_DOT11_UNKNOWN_1018,               0x1018, 256);   /* huge */
82 DEF_IE(100_IE_DOT11_UNKNOWN_1019,               0x1019, 256);   /* huge */
83 #endif
85 #if 0
86 /* Experimentally obtained on PCI acx111 Xterasys XN-2522g, fw 1.2.1.34
87 ** -1 means that fw returned 'invalid IE'
88 ** 0400 0800 nnnn... are test read contents: u16 type, u16 len, data
89 ** (AA are poison bytes marking bytes not written by fw)
91 ** Looks like acx111 fw reports real len!
93 DEF_IE(111_IE_INVAL_00,                 0x0000, -1);
94 DEF_IE(111_IE_INVAL_01,                 0x0001, -1);
95 DEF_IE(111_IE_POWER_MGMT,               0x0002, 12);
96 /* write only, variable len: 12 + rxqueue_cnt*8 + txqueue_cnt*4: */
97 DEF_IE(111_IE_MEMORY_CONFIG,            0x0003, 24);
98 DEF_IE(111_IE_BLOCK_SIZE,               0x0004, 8); /* 04000800 AA00AAAA AAAAAAAA */
99 /* variable len: 8 + rxqueue_cnt*8 + txqueue_cnt*8: */
100 DEF_IE(111_IE_QUEUE_HEAD,               0x0005, 24);
101 DEF_IE(111_IE_RATE_FALLBACK,            0x0006, 1);
102 /* acx100 name:WEP_OPTIONS */
103 /* said to have len:1 (not true, actually returns 12 bytes): */
104 DEF_IE(111_IE_RADIO_BAND,               0x0007, 12); /* 07000C00 AAAA1F00 FF03AAAA AAAAAAAA */
105 DEF_IE(111_IE_MEMORY_MAP,               0x0008, 48);
106 /* said to have len:4, but gives INVAL on read: */
107 DEF_IE(111_IE_SCAN_STATUS,              0x0009, -1);
108 DEF_IE(111_IE_ASSOC_ID,                 0x000a, 2);
109 /* write only, len is not known: */
110 DEF_IE(111_IE_UNKNOWN_0B,               0x000b, 0);
111 /* read only, variable len. I see 67 byte reads: */
112 DEF_IE(111_IE_CONFIG_OPTIONS,           0x000c, 67); /* 0C004300 01160500 ... */
113 DEF_IE(111_IE_FWREV,                    0x000d, 24);
114 DEF_IE(111_IE_FCS_ERROR_COUNT,          0x000e, 4);
115 DEF_IE(111_IE_MEDIUM_USAGE,             0x000f, 8);
116 DEF_IE(111_IE_RXCONFIG,                 0x0010, 4);
117 DEF_IE(111_IE_QUEUE_THRESH,             0x0011, 12);
118 DEF_IE(111_IE_BSS_POWER_SAVE,           0x0012, 1);
119 /* read only, variable len. I see 240 byte reads: */
120 DEF_IE(111_IE_FIRMWARE_STATISTICS,      0x0013, 240); /* 1300F000 00000000 ... */
121 /* said to have len=17. looks like fw pads it to 20: */
122 DEF_IE(111_IE_INT_CONFIG,               0x0014, 20); /* 14001400 00000000 00000000 00000000 00000000 00000000 */
123 DEF_IE(111_IE_FEATURE_CONFIG,           0x0015, 8);
124 /* said to be name:KEY_INDICATOR, len:4, but gives INVAL on read: */
125 DEF_IE(111_IE_KEY_CHOOSE,               0x0016, -1);
126 /* said to have len:4, but in fact returns 8: */
127 DEF_IE(111_IE_MAX_USB_XFR,              0x0017, 8); /* 17000800 00014000 00000000 */
128 DEF_IE(111_IE_INVAL_18,                 0x0018, -1);
129 DEF_IE(111_IE_INVAL_19,                 0x0019, -1);
130 /* undoc but returns something: */
131 /* huh, fw indicates len=20 but uses 4 more bytes in buffer??? */
132 DEF_IE(111_IE_UNKNOWN_1A,               0x001A, 20); /* 1A001400 AA00AAAA 0000020F FF030000 00020000 00000007 04000000 */
134 DEF_IE(111_IE_DOT11_INVAL_1000,                 0x1000, -1);
135 DEF_IE(111_IE_DOT11_STATION_ID,                 0x1001, 6);
136 DEF_IE(111_IE_DOT11_FRAG_THRESH,                0x1002, 2);
137 /* acx100 only? gives INVAL on read: */
138 DEF_IE(111_IE_DOT11_BEACON_PERIOD,              0x1003, -1);
139 /* said to be MAX_RECV_MSDU_LIFETIME: */
140 DEF_IE(111_IE_DOT11_DTIM_PERIOD,                0x1004, 4);
141 DEF_IE(111_IE_DOT11_SHORT_RETRY_LIMIT,          0x1005, 1);
142 DEF_IE(111_IE_DOT11_LONG_RETRY_LIMIT,           0x1006, 1);
143 /* acx100 only? gives INVAL on read: */
144 DEF_IE(111_IE_DOT11_WEP_DEFAULT_KEY_WRITE,      0x1007, -1);
145 DEF_IE(111_IE_DOT11_MAX_XMIT_MSDU_LIFETIME,     0x1008, 4);
146 /* undoc but returns something. maybe it's 2 multicast MACs to listen to? */
147 DEF_IE(111_IE_DOT11_GROUP_ADDR,                 0x1009, 12); /* 09100C00 00000000 00000000 00000000 */
148 DEF_IE(111_IE_DOT11_CURRENT_REG_DOMAIN,         0x100a, 1);
149 DEF_IE(111_IE_DOT11_CURRENT_ANTENNA,            0x100b, 2);
150 DEF_IE(111_IE_DOT11_INVAL_100C,                 0x100c, -1);
151 DEF_IE(111_IE_DOT11_TX_POWER_LEVEL,             0x100d, 1);
152 /* said to have len=1 but gives INVAL on read: */
153 DEF_IE(111_IE_DOT11_CURRENT_CCA_MODE,           0x100e, -1);
154 /* said to have len=4 but gives INVAL on read: */
155 DEF_IE(111_IE_DOT11_ED_THRESHOLD,               0x100f, -1);
156 /* set default key ID. write only: */
157 DEF_IE(111_IE_DOT11_WEP_DEFAULT_KEY_SET,        0x1010, 1);
158 /* undoc but returns something: */
159 DEF_IE(111_IE_DOT11_UNKNOWN_1011,               0x1011, 1); /* 11100100 20 */
160 DEF_IE(111_IE_DOT11_INVAL_1012,                 0x1012, -1);
161 DEF_IE(111_IE_DOT11_INVAL_1013,                 0x1013, -1);
162 #endif