added files
[bcm963xx.git] / userapps / broadcom / cfm / html / wlcfgadv.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <!--
3     (c) 2005 U.S. Robotics Corporation
4 -->
5 <html>
6 <head>
7         <title>Wireless &raquo; Advanced Settings</title>
8
9         <link href="usr_main.css" rel="stylesheet" type="text/css">
10         <link href="usr_menus.css" rel="stylesheet" type="text/css"><script src="usr_menus.js" type="text/javascript"></script><script src="usr_menus_build.js" type="text/javascript"></script>
11         <script src="usr_common.js" type="text/javascript"></script>
12
13         <meta HTTP-EQUIV='Pragma' CONTENT='no-cache'>
14
15         <script type="text/javascript" src="util.js"></script>
16         <script type="text/javascript">
17 <!-- hide
18 setPageTitle("<%ejGetWlJS(wlInterface)%>");
19
20 var enbl = '<%ejGetWlJS(wlEnbl)%>';
21 var country = '<%ejGetWlJS(wlCountry)%>';
22 var channel = '<%ejGetWlJS(wlChannel)%>';
23 var rate = '<%ejGetWlJS(wlRate)%>';
24 var frg = '<%ejGetWlJS(wlFrgThrshld)%>';
25 var rts = '<%ejGetWlJS(wlRtsThrshld)%>';
26 var dtm = '<%ejGetWlJS(wlDtmIntvl)%>';
27 var bcn = '<%ejGetWlJS(wlBcnIntvl)%>';
28 var phy = '<%ejGetWlJS(wlPhyType)%>';
29 var brate = '<%ejGetWlJS(wlBasicRate)%>';
30 var fburst = '<%ejGetWlJS(wlFrameBurst)%>';
31 var gmode = '<%ejGetWlJS(wlgMode)%>';
32 var pro = '<%ejGetWlJS(wlProtection)%>';
33 var pre = '<%ejGetWlJS(wlPreambleType)%>';
34 var apisolation= '<%ejGetWlJS(wlAPIsolation)%>';
35 var band= '<%ejGetWlJS(wlBand)%>';
36 var mcastrate = '<%ejGetWlJS(wlMCastRate)%>';
37 var hasafterburner = '<%ejGetWlJS(wlHasAfterburner)%>';
38 var afterburneren = '<%ejGetWlJS(wlAfterBurnerEn)%>';
39 var bands = '<%ejGetWlJS(wlBands)%>';
40 var mode = '<%ejGetWlJS(wlMode)%>';
41 var wlRefresh = '<%ejGetWlJS(wlRefresh)%>';
42 var TxPwrPcnt = '<%ejGetWlJS(wlTxPwrPcnt)%>';
43 var reg_mode = '<%ejGetWlJS(wlRegMode)%>';
44 var dfs_preism = '<%ejGetWlJS(wlDfsPreIsm)%>';
45 var dfs_postism = '<%ejGetWlJS(wlDfsPostIsm)%>';
46 var tpcDb = '<%ejGetWlJS(wlTpcDb)%>';
47 var haswme = '<%ejGetWlJS(wlHasWme)%>';
48 var wme = '<%ejGetWlJS(wlWme)%>';
49 var wmeNoAck = '<%ejGetWlJS(wlWmeNoAck)%>';
50 var wlCurrentChannel = '<%ejGetWlJS(wlCurrentChannel)%>';
51
52 if ( wlRefresh == '1' ) {
53    var code = 'location = "wlcfgadvrefresh.wl?wlRefresh=0"';
54    eval(code);
55 }
56
57 function getGmodeIndex(mode) {
58    var ret = 0;
59    switch(mode) {
60    case '0':
61       ret = 3;
62       break;
63    case '4':
64       ret = 1;
65       break;
66    case '5':
67       ret = 2;
68       break;
69    default:
70       ret = 0;
71       break;
72    }
73    return ret;
74 }
75
76 function gModeChange()
77 {
78    with ( document.forms[0] ) {
79       setVisibility("preambleType", (band == "2") && (wlgMode.selectedIndex == 3));
80    }
81 }
82
83 function loadChannelList()
84 {
85    if (band == "2") {
86       <%ejGetWlStr(wlChannelList_b)%>
87    }
88    else  if (band == "1") {
89       <%ejGetWlStr(wlChannelList_a)%>
90    }
91    else {
92       document.forms[0].wlChannel[0] = new Option("Automatic", "0")
93    }
94
95    var found = false;
96    for (var i=0; i<document.forms[0].wlChannel.options.length; i++) {
97       if (document.forms[0].wlChannel.options[i].value == channel) {
98          document.forms[0].wlChannel.options[i].selected = true;
99          found = true;
100          break;
101       }
102    }
103
104    if (!found) {
105       document.forms[0].wlChannel.options[0].selected = true;
106    }
107 }
108
109 function loadRateList() {
110    if (band == "2") { // 2.4G
111       if (phy == "b") {
112 document.forms[0].wlRate[0] = new Option("Automatic", "0");
113 document.forms[0].wlRate[1] = new Option("1 Mbps", "1000000");
114 document.forms[0].wlRate[2] = new Option("2 Mbps", "2000000");
115 document.forms[0].wlRate[3] = new Option("5.5 Mbps", "5500000");
116 document.forms[0].wlRate[4] = new Option("11 Mbps", "11000000");
117       }
118       else {
119 document.forms[0].wlRate[0] = new Option("Automatic", "0");
120 document.forms[0].wlRate[1] = new Option("1 Mbps", "1000000");
121 document.forms[0].wlRate[2] = new Option("2 Mbps", "2000000");
122 document.forms[0].wlRate[3] = new Option("5.5 Mbps", "5500000");
123 document.forms[0].wlRate[4] = new Option("6 Mbps", "6000000");
124 document.forms[0].wlRate[5] = new Option("9 Mbps", "9000000");
125 document.forms[0].wlRate[6] = new Option("11 Mbps", "11000000");
126 document.forms[0].wlRate[7] = new Option("12 Mbps", "12000000");
127 document.forms[0].wlRate[8] = new Option("18 Mbps", "18000000");
128 document.forms[0].wlRate[9] = new Option("24 Mbps", "24000000");
129 document.forms[0].wlRate[10] = new Option("36 Mbps", "36000000");
130 document.forms[0].wlRate[11] = new Option("48 Mbps", "48000000");
131 document.forms[0].wlRate[12] = new Option("54 Mbps", "54000000");
132      }
133    }
134    else if (band == "1") { // 5G
135 document.forms[0].wlRate[0] = new Option("Automatic", "0");
136 document.forms[0].wlRate[1] = new Option("6 Mbps", "6000000");
137 document.forms[0].wlRate[2] = new Option("9 Mbps", "9000000");
138 document.forms[0].wlRate[3] = new Option("12 Mbps", "12000000");
139 document.forms[0].wlRate[4] = new Option("18 Mbps", "18000000");
140 document.forms[0].wlRate[5] = new Option("24 Mbps", "24000000");
141 document.forms[0].wlRate[6] = new Option("36 Mbps", "36000000");
142 document.forms[0].wlRate[7] = new Option("48 Mbps", "48000000");
143 document.forms[0].wlRate[8] = new Option("54 Mbps", "54000000");
144    }
145    else {
146 document.forms[0].wlRate[0] = new Option("Automatic", "0");
147    }
148 }
149
150
151 function loadMCastRateList() {
152    if (band == "2") { // 2.4G
153       if (phy == "b") {
154 document.forms[0].wlMCastRate[0] = new Option("Automatic", "0");
155 document.forms[0].wlMCastRate[1] = new Option("1 Mbps", "1000000");
156 document.forms[0].wlMCastRate[2] = new Option("2 Mbps", "2000000");
157 document.forms[0].wlMCastRate[3] = new Option("5.5 Mbps", "5500000");
158 document.forms[0].wlMCastRate[4] = new Option("11 Mbps", "11000000");
159       }
160       else {
161 document.forms[0].wlMCastRate[0] = new Option("Automatic", "0");
162 document.forms[0].wlMCastRate[1] = new Option("1 Mbps", "1000000");
163 document.forms[0].wlMCastRate[2] = new Option("2 Mbps", "2000000");
164 document.forms[0].wlMCastRate[3] = new Option("5.5 Mbps", "5500000");
165 document.forms[0].wlMCastRate[4] = new Option("6 Mbps", "6000000");
166 document.forms[0].wlMCastRate[5] = new Option("9 Mbps", "9000000");
167 document.forms[0].wlMCastRate[6] = new Option("11 Mbps", "11000000");
168 document.forms[0].wlMCastRate[7] = new Option("12 Mbps", "12000000");
169 document.forms[0].wlMCastRate[8] = new Option("18 Mbps", "18000000");
170 document.forms[0].wlMCastRate[9] = new Option("24 Mbps", "24000000");
171 document.forms[0].wlMCastRate[10] = new Option("36 Mbps", "36000000");
172 document.forms[0].wlMCastRate[11] = new Option("48 Mbps", "48000000");
173 document.forms[0].wlMCastRate[12] = new Option("54 Mbps", "54000000");
174      }
175    }
176    else if (band == "1") { // 5G
177 document.forms[0].wlMCastRate[0] = new Option("Automatic", "0");
178 document.forms[0].wlMCastRate[1] = new Option("6 Mbps", "6000000");
179 document.forms[0].wlMCastRate[2] = new Option("9 Mbps", "9000000");
180 document.forms[0].wlMCastRate[3] = new Option("12 Mbps", "12000000");
181 document.forms[0].wlMCastRate[4] = new Option("18 Mbps", "18000000");
182 document.forms[0].wlMCastRate[5] = new Option("24 Mbps", "24000000");
183 document.forms[0].wlMCastRate[6] = new Option("36 Mbps", "36000000");
184 document.forms[0].wlMCastRate[7] = new Option("48 Mbps", "48000000");
185 document.forms[0].wlMCastRate[8] = new Option("54 Mbps", "54000000");
186    }
187    else {
188 document.forms[0].wlMCastRate[0] = new Option("Automatic", "0");
189    }
190 }
191
192 function loadBasicRateList() {
193    if (band == "2") { // 2.4G
194 document.forms[0].wlBasicRate[0] = new Option("Default", "default");
195 document.forms[0].wlBasicRate[1] = new Option("All", "all");
196 document.forms[0].wlBasicRate[2] = new Option("1 & 2 Mbps", "12");
197       if (phy == "g") {
198          document.forms[0].wlBasicRate[3] = new Option("1 & 2 & 5.5 & 6 & 11 & 12 & 24 Mbps", "wifi2");
199       }
200
201    }
202    else if (band == "1") { // 5G
203 document.forms[0].wlBasicRate[0] = new Option("Default", "default");
204 document.forms[0].wlBasicRate[1] = new Option("All", "all");
205 document.forms[0].wlBasicRate[2] = new Option("6 & 12 Mbps", "12");
206 document.forms[0].wlBasicRate[3] = new Option("6 & 12 & 24 Mbps", "wifi2");
207    }
208    else {
209 document.forms[0].wlMCastRate[0] = new Option("Default", "0");
210    }
211 }
212
213 function onBandChange() {
214   band = document.forms[0].wlBand.value;
215   document.forms[0].wlChannel.length = 0;
216   loadChannelList();
217   document.forms[0].wlRate.length = 0;
218   loadRateList();
219   document.forms[0].wlMCastRate.length = 0;
220   loadMCastRateList();
221   document.forms[0].wlBasicRate.length = 0;
222   loadBasicRateList();
223
224   if (band == "2") {
225     if (phy == "b") { //11b
226       setVisibility("div_gMode", false);
227     }
228     else {
229       setVisibility("div_gMode", true);
230     }
231   }
232   else {
233     setVisibility("div_gMode", false);
234   }
235   gModeChange();
236 }
237
238 function getBasicRateIndex(br) {
239    var ret = 0;
240    if ( br == "12" ) {
241       ret = 2;
242    }
243    else if ( br == "all" ) {
244       ret = 1;
245    } else if ( br == "wifi2" ) {
246       ret = 3;
247    } else
248       ret = 0;
249    return ret;
250 }
251
252 function getRateIndex(r) {
253    var rateNum = parseInt(r);
254    var ret = 0;
255
256    if ( band == '2') {
257       if ( phy == "b" ) { //11b
258          switch ( rateNum ) {
259          case 1000000:
260             ret = 1;
261             break;
262          case 2000000:
263             ret = 2;
264             break;
265          case 5500000:
266             ret = 3;
267             break;
268          case 11000000:
269             ret = 4;
270             break;
271          default:
272             ret = 0;
273             break;
274          }
275       }
276       // physical type is 802.11g
277       else {
278          switch ( rateNum ) {
279          case 1000000:
280             ret = 1;
281             break;
282          case 2000000:
283             ret = 2;
284             break;
285          case 5500000:
286             ret = 3;
287             break;
288          case 6000000:
289             ret = 4;
290             break;
291          case 9000000:
292             ret = 5;
293             break;
294          case 11000000:
295             ret = 6;
296             break;
297          case 12000000:
298             ret = 7;
299             break;
300          case 18000000:
301             ret = 8;
302             break;
303          case 24000000:
304             ret = 9;
305             break;
306          case 36000000:
307             ret = 10;
308             break;
309          case 48000000:
310             ret = 11;
311             break;
312          case 54000000:
313             ret = 12;
314             break;
315          default:
316             ret = 0;
317             break;
318          }
319       }
320    }
321    // physical type is 802.11a
322    else if ( band == '1' ) { // 11a
323       switch ( rateNum ) {
324       case 6000000:
325          ret = 1;
326          break;
327       case 9000000:
328          ret = 2;
329          break;
330       case 12000000:
331          ret = 3;
332          break;
333       case 18000000:
334          ret = 4;
335          break;
336       case 24000000:
337          ret = 5;
338          break;
339       case 36000000:
340          ret = 6;
341          break;
342       case 48000000:
343          ret = 7;
344          break;
345       case 54000000:
346          ret = 8;
347          break;
348       default:
349          ret = 0;
350          break;
351       }
352    }
353    return ret;
354 }
355
356 function getFrameBurstIndex(frameburst) {
357    var ret;
358
359    if ( frameburst == "off" )
360       ret = 0;
361    else
362       ret = 1;
363    return ret;
364 }
365
366 function getAfterBurnerIndex(afterburner) {
367    var ret;
368
369    if ( afterburner == "auto" )
370       ret = 1;
371    else
372       ret = 0;
373    return ret;
374 }
375
376 function getGModeProtection(pro) {
377    var ret;
378
379    if ( pro == "auto" )
380       ret = 1;
381    else
382       ret = 0;
383    return ret;
384 }
385
386 function getTpcDbIndex(val) {
387    var ret;
388
389    if ( val == "0" )
390       ret = 0;
391    else if ( val == "2" )
392       ret = 1;
393    else if ( val == "3" )
394       ret = 2;
395    else if ( val == "4" )
396       ret = 3;
397    else ret = 0;
398    return ret;
399 }
400
401 function RegModeChange() {
402    with ( document.forms[0] )
403       if( wlRegMode.selectedIndex != 1 )
404          wlDfsPreIsm.disabled=wlDfsPostIsm.disabled=wlTpcDb.disabled=true;
405       else
406          wlDfsPreIsm.disabled=wlDfsPostIsm.disabled=wlTpcDb.disabled=false;
407 }
408
409
410 function getBandIndex(b) {
411    var ret;
412
413    if ( b == '1' )
414       ret = 1;
415    else
416       ret = 0;
417    return ret;
418 }
419
420 function wl_afterburner_options(OnPageLoad)
421 {
422         with (document.forms[0])
423         {
424                 // MAXg and WMM cannot both be enabled at the same time. MAXg requires Fragmentation to be set to 2346.
425                 // But no need to check these because the MAXg option is deleted if they're true.
426                 setVisibility("idFragNoMAXg", (parseInt(wlFrgThrshld.value) != 2346));
427                 if (parseInt(wlFrgThrshld.value) != 2346)
428                 {
429                         cbAcceleration.value = "xpress";
430                 }
431         }
432         return true;
433 }
434
435 function wl_recalc(OnPageLoad)
436 {
437         var retval=true;
438         with ( document.forms[0] )
439         {
440                 retval = wl_afterburner_options(OnPageLoad);
441         }
442         return retval;
443 }
444
445 function frmLoad() {
446   with ( document.forms[0] ) {
447       wlBand.selectedIndex = getBandIndex(band);
448       onBandChange();
449       wlRate.selectedIndex = getRateIndex(rate);
450       wlMCastRate.selectedIndex = getRateIndex(mcastrate);
451       wlBasicRate.selectedIndex = getBasicRateIndex(brate);
452
453                 if (afterburneren == "auto")
454                         cbAcceleration.value = "maxg";
455                 else if (fburst != "off")
456                         cbAcceleration.value = "xpress";
457                 else
458                         cbAcceleration.value = "none";
459
460       wlAPIsolation.selectedIndex = parseInt(apisolation);
461       wlFrgThrshld.value = frg;
462       wlRtsThrshld.value = rts;
463       wlDtmIntvl.value = dtm;
464       wlBcnIntvl.value = bcn;
465                 /*
466                         If WMM is enabled or the AP mode isn't set, cannot set acceleration to MAXg.
467                 */
468                 if (wme == "1")
469                 {
470                         // find the index of the MAXg option and delete it
471                         for (var ix = 0; ix < cbAcceleration.options.length; ++ix)
472                         {
473                                 if (cbAcceleration.options[ix].value == "maxg")
474                                 {
475                                         cbAcceleration.options[ix] = null;
476                                         break;
477                                 }
478                         }
479                 }
480                 setVisibility("idWMMnoMAXg", (wme == "1"));
481
482       if ( pre == 'short' )
483          wlPreambleType.selectedIndex = 1;
484       else
485          wlPreambleType.selectedIndex = 0;
486       // physical type is 802.11g
487       if ( phy == "g" ) {
488          switch(gmode) {
489          case '0':
490             wlgMode.selectedIndex = 3;
491             break;
492          case '4':
493             wlgMode.selectedIndex = 1;
494             break;
495          case '5':
496             wlgMode.selectedIndex = 2;
497             break;
498          default:
499             wlgMode.selectedIndex = 0;
500             break;
501          }
502          wlProtection.selectedIndex = getGModeProtection(pro);
503          gModeChange();
504       }
505
506       wlTxPower.selectedIndex = ((TxPwrPcnt/20) -1);
507       wlRegMode.selectedIndex = reg_mode;
508       wlDfsPreIsm.value = dfs_preism;
509       wlDfsPostIsm.value = dfs_postism;
510       wlTpcDb.selectedIndex = getTpcDbIndex(tpcDb);
511       RegModeChange();
512
513    }
514    wl_recalc(1);
515 }
516
517 function btnApply() {
518    var loc = 'wlcfgadv.wl?';
519    var idx, frgNum, rtsNum, dtmNum, bcnNum, frmburstNum;
520
521    if ( enbl == '0' ) {
522       alert('Cannot apply the change since wireless is currently disabled.');
523       return;
524    }
525
526    if (!wl_recalc(0))
527       return;
528
529    with ( document.forms[0] ) {
530       frgNum = parseInt(wlFrgThrshld.value);
531       if ( isNaN(frgNum) == true || frgNum < 256 || frgNum > 2346 ) {
532          alert('Fragmentation threshold "' + wlFrgThrshld.value + '" should be between 256 and 2346.');
533          return;
534       }
535
536       rtsNum = parseInt(wlRtsThrshld.value);
537       if ( isNaN(rtsNum) == true || rtsNum < 0 || rtsNum > 2347 ) {
538          alert('RTS threshold "' + wlRtsThrshld.value + '" should be between 0 and 2347.');
539          return;
540       }
541
542       dtmNum = parseInt(wlDtmIntvl.value);
543       if ( isNaN(dtmNum) == true || dtmNum < 1 || dtmNum > 255 ) {
544          alert('DTIM interval "' + wlDtmIntvl.value + '" should be between 1 and 255.');
545          return;
546       }
547
548       bcnNum = parseInt(wlBcnIntvl.value);
549       if ( isNaN(bcnNum) == true || bcnNum < 1 || bcnNum > 65535 ) {
550          alert('Beacon interval "' + wlBcnIntvl.value + '" should be between 1 and 65535.');
551          return;
552       }
553
554       idx = wlChannel.selectedIndex;
555       loc += 'wlChannel=' + wlChannel.options[idx].value;
556       idx = wlRate.selectedIndex;
557       loc += '&wlRate=' + wlRate.options[idx].value;
558       idx = wlBasicRate.selectedIndex;
559       loc += '&wlBasicRate=' + wlBasicRate.options[idx].value;
560       loc += '&wlFrgThrshld=' + wlFrgThrshld.value;
561       loc += '&wlRtsThrshld=' + wlRtsThrshld.value;
562       loc += '&wlDtmIntvl=' + wlDtmIntvl.value;
563       loc += '&wlBcnIntvl=' + wlBcnIntvl.value;
564
565                 if (cbAcceleration.value == "maxg")
566                 {
567                         loc += "&wlAfterBurnerEn=auto";
568                         loc += "&wlFrameBurst=on";
569                 }
570                 else if (cbAcceleration.value == "xpress")
571                 {
572                         loc += "&wlAfterBurnerEn=off";
573                         loc += "&wlFrameBurst=on";
574                 }
575                 else // if (cbAcceleration.value == "none")
576                 {
577                         loc += "&wlAfterBurnerEn=off";
578                         loc += "&wlFrameBurst=off";
579                 }
580
581       loc += '&wlAPIsolation=' + wlAPIsolation.value;
582       loc += '&wlBand=' + wlBand.value;
583       idx = wlMCastRate.selectedIndex;
584       loc += '&wlMCastRate=' + wlMCastRate.options[idx].value;
585
586       if ( band == '2') { // 2.4G
587          if ( phy == "g") { // 802.11g
588             idx = wlgMode.selectedIndex;
589             loc += '&wlgMode=' + wlgMode.options[idx].value;
590             idx = wlProtection.selectedIndex;
591             loc += '&wlProtection=' + wlProtection.options[idx].value;
592             if (wlgMode.selectedIndex == 3) {
593                idx = wlPreambleType.selectedIndex;
594                loc += '&wlPreambleType=' + wlPreambleType.options[idx].value;
595             }
596          } else { // 802.11b
597             idx = wlPreambleType.selectedIndex;
598             loc += '&wlPreambleType=' + wlPreambleType.options[idx].value;
599          }
600       }
601
602      idx = wlTxPower.selectedIndex;
603      loc += '&wlTxPwrPcnt=' + wlTxPower.options[idx].value;
604
605      idx = wlRegMode.selectedIndex;
606      loc += '&wlRegMode=' + wlRegMode.options[idx].value;
607      if(wlRegMode.selectedIndex == 1) {
608         DfsPreIsmNum = parseInt(wlDfsPreIsm.value);
609         if ( isNaN(DfsPreIsmNum) == true || DfsPreIsmNum < 0 || DfsPreIsmNum > 99 ) {
610            alert('Pre-Network Radar Check "' + wlDfsPreIsm.value + '" should be between 0 and 99.');
611            return;
612         }
613
614         DfsPostNum = parseInt(wlDfsPostIsm.value);
615         if ( isNaN(DfsPostNum) == true || DfsPostNum < 10 || DfsPostNum > 99 ) {
616            alert('In-Network Radar Check: "' + wlDfsPostIsm.value + '" should be between 10 and 99.');
617            return;
618         }
619
620         loc += '&wlDfsPreIsm=' + wlDfsPreIsm.value;
621         loc += '&wlDfsPostIsm=' + wlDfsPostIsm.value;
622         idx = wlTpcDb.selectedIndex;
623         loc += '&wlTpcDb=' + wlTpcDb.options[idx].value;
624      }
625    }
626
627    var code = 'location = "' + loc + '"';
628    eval(code);
629 }
630
631 // done hiding -->
632         </script>
633 </head>
634 <body onload="initMenu(); frmLoad();">
635
636 <script type="text/javascript">
637     writeHeader("Wireless");
638 </script>
639
640 <h3>Advanced Settings</h3>
641
642 <p>This page allows you to configure advanced features of the wireless LAN
643 interface. You can select a particular channel on which to operate, force the
644 transmission rate to a particular speed, set the fragmentation threshold, set
645 the RTS threshold, set the wakeup interval for clients in power-save mode, set
646 the beacon interval for the access point, set the acceleration mode and set whether
647 short or long preambles are used.</p>
648
649 <p>Press <b>Apply</b> when you&rsquo;re finished making changes.</p>
650
651 <form>
652    <table border="0" cellpadding="2" cellspacing="0">
653       <tr>
654           <td><label for="">AP isolation:</label></td>
655           <td><select name='wlAPIsolation' id='wlAPIsolation'>
656                  <option value='0'>Disabled</option>
657                  <option value='1'>Enabled</option>
658               </select></td>
659       </tr>
660       <tr>
661           <td><label for="">Band:</td>
662           <td><select name='wlBand' id='wlBand' onChange='onBandChange();'>
663 <script type="text/javascript">
664 <!-- hide
665 if ( bands == '3' ) { // dual band
666          document.writeln('      <option value=2>2.4GHz - 802.11g</option>');
667          document.writeln('      <option value=1>5GHz - 802.11a</option>');
668 }
669 else if (bands == '1') {
670          document.writeln('      <option value=1>5GHz - 802.11a</option>');
671 }
672 else {
673     if (phy == "g") {
674          document.writeln('      <option value=2>2.4GHz - 802.11g</option>');
675     }
676     else {
677          document.writeln('      <option value=2>2.4GHz - 802.11b</option>');
678     }
679 }
680 // done hiding -->
681 </script>
682           </select></td>
683       </tr>
684       <tr>
685           <td><label for="">Channel:</label></td>
686           <td><select name='wlChannel' id='wlChannel'>
687               </select></td>
688       </tr>
689       <tr>
690           <td><label for="">Rate:</label></td>
691           <td><select name='wlRate' id='wlRate'>
692               </select></td>
693       </tr>
694       <tr>
695           <td><label for="">Multicast rate:</label></td>
696           <td><select name='wlMCastRate' id='wlMCastRate'>
697               </select></td>
698       </tr>
699       <tr>
700           <td><label for="">Basic rate:</label></td>
701           <td><select name='wlBasicRate' id='wlBasicRate'>
702               </select></td>
703       </tr>
704       <tr>
705           <td><label for="wlFrgThrshld">Fragmentation threshold:</label></td>
706           <td><input type='text' name='wlFrgThrshld' id='wlFrgThrshld' size='10' onchange="wl_recalc(0);">
707           <span class="clsNote">(Note: <b>MAXg</b> acceleration requires a value of 2346.)</span></td>
708       </tr>
709       <tr>
710           <td><label for="wlRtsThrshld">RTS threshold:</label></td>
711           <td><input type='text' name='wlRtsThrshld' id='wlRtsThrshld' size='10'></td>
712       </tr>
713       <tr>
714           <td><label for="wlDtmIntvl">DTIM interval:</label></td>
715           <td><input type='text' name='wlDtmIntvl' id='wlDtmIntvl' size='10'></td>
716       </tr>
717       <tr>
718           <td><label for="wlBcnIntvl">Beacon interval:</label></td>
719           <td><input type='text' name='wlBcnIntvl' id='wlBcnIntvl' size='10'></td>
720       </tr>
721
722                 <tr>
723                         <td><label>Acceleration:</label></td>
724                         <td>
725                                 <select id="cbAcceleration" onchange="wl_recalc(0);">
726                                         <option value="maxg" selected>MAXg (125 Mbps)</option>
727                                         <option value="xpress">54g+ (XPress&trade;)</option>
728                                         <option value="none">None</option>
729                                 </select>
730                         </td>
731                 </tr>
732                 <tr id="idWMMnoMAXg">
733                         <td></td>
734                         <td>
735                                 WMM is enabled so <b>Acceleration</b> cannot be set to <b>MAXg</b>.
736                                 In order to set <b>Acceleration</b> to <b>MAXg</b>, please disable
737                                 <b>WMM</b> on the <a href="wlqos.html">Wireless Quality of Service</a> page.
738                         </td>
739                 </tr>
740                 <tr id="idFragNoMAXg">
741                         <td></td>
742                         <td>
743                                 In order to set <b>Acceleration</b> to <b>MAXg</b>,
744                                 the <b>Fragmentation threshold</b> must be set to <b>2346</b>.
745                         </td>
746                 </tr>
747
748       <tr id="div_gMode">
749           <td><label for="">54g&trade; mode:</label></td>
750           <td><select name="wlgMode" id="wlgMode" onChange="gModeChange()">
751                   <option value="1">Automatic</option>
752                   <option value="4">54g Performance</option>
753                   <option value="5">54g LRS</option>
754                   <option value="0">802.11b Only</option>
755               </select></td>
756       </tr>
757       <tr>
758           <td><label for="">54g protection:</label></td>
759           <td><select name="wlProtection" id="wlProtection">
760                   <option value="off">Disabled</option>
761                   <option value="auto">Automatic</option>
762               </select></td>
763       </tr>
764       <tr id="div_regMode">
765          <td><label for="">Regulatory mode:</label></td>
766          <td><select name="wlRegMode" id="wlRegMode" onChange='RegModeChange()'>
767                <option value="0">Disabled</option>
768                <option value="1">802.11h</option>
769                <option value="2">802.11d</option>
770              </select></td>
771       </tr>
772 <!-- Hide unsupported uptions.
773       <tr id="div_regMode1">
774          <td><label for="">Pre-network radar check:</label></td>
775          <td><input type='text' name='wlDfsPreIsm' id='wlDfsPreIsm'></td>
776       </tr>
777       <tr id="div_regMode2">
778          <td><label for="">In-network radar check:</label></td>
779          <td><input type='text' name='wlDfsPostIsm' id='wlDfsPostIsm'></td>
780       </tr>
781       <tr>
782          <td label for=""="180">TPC mitigation:</td>
783          <td><select name="wlTpcDb" id="wlTpcDb">
784                <option value="0">0 dB (off)</option>
785                <option value="2">2 dB</option>
786                <option value="3">3 dB</option>
787                <option value="4">4 dB</option>
788             </select></td>
789       </tr>
790 -->
791       <tr id="WLTXPOWER">
792          <td><label for="">Transmit power:</label></td>
793          <td><select name="wlTxPower" id="wlTxPower">
794                <option value="20">20%</option>
795                <option value="40">40%</option>
796                <option value="60">60%</option>
797                <option value="80">80%</option>
798                <option value="100">100%</option>
799              </select></td>
800       </tr>
801        <tr id="preambleType">
802            <td><label for="">Preamble type:</label></td>
803            <td><select name="wlPreambleType" id="wlPreambleType" size='1'>
804                   <option value="long">long</option>
805                   <option value="short">short</option>
806                </select></td>
807        </tr>
808    </table>
809
810    <p><input type='button' onClick='btnApply()' value='Apply'></p>
811 </form>
812
813
814 <script type="text/javascript">
815     writeFooter();
816 </script>
817
818 </body>
819 </html>