www.usr.com/support/gpl/USR9113_release1.0.tar.gz
[bcm963xx.git] / userapps / broadcom / cfm / html / wancfg.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>WAN IP Settings</title>
8
9         <link href="usr_layout.css" type="text/css" rel="stylesheet" /><script src="usr_layout.js" type="text/javascript"></script>
10         <link href="usr_menus_dropdown.css" rel="stylesheet" type="text/css"><script src="usr_menus_dropdown.js" type="text/javascript"></script><script src="usr_menus_build.js" type="text/javascript"></script>
11         <link href="usr_device.css" type="text/css" rel="stylesheet" /><script src="usr_device.js" type="text/javascript"></script><link href="usr_91xx.css" type="text/css" rel="stylesheet" /><script src="usr_91xx.js" type="text/javascript"></script><script src="usr_resources.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
19
20 var dhcpClnt = '<%ejGetJS(enblDhcpClnt)%>';
21 var addr = '<%ejGetJS(wanIpAddress)%>';
22 var mask = '<%ejGetJS(wanSubnetMask)%>';
23 var enblAuto = '<%ejGetJS(enblAuto)%>';
24 var gtwyIfc = '<%ejGetOther(sysInfo, dfltGwIfc)%>';
25 if ( gtwyIfc == '&nbsp;' ) gtwyIfc = '';
26 var gtwy = '<%ejGetOther(sysInfo, dfltGw)%>';
27 if ( gtwy == '&nbsp;' ) gtwy = '';
28 var dnsAuto = '<%ejGetOther(sysInfo,dnsAuto)%>';
29 var dns1Mem = '<%ejGetJS(dnsPrimary)%>';
30 var dns1 = '<%ejGetOther(sysInfo, dns)%>';
31 if ( dns1 == '&nbsp;' )
32    dns1 = '';
33 var dns2Mem = '<%ejGetJS(dnsSecondary)%>';
34 var dns2 = '<%ejGetOther(sysInfo, dns2)%>';
35 if ( dns2 == '&nbsp;' )
36    dns2 = '';
37 var qs = '<%ejGetJS(quickSetup)%>';
38 var srvId = parseInt('<%ejGetJS(serviceId)%>');
39
40 function disableDnsInfo() {
41    with ( document.forms[0] ) {
42       dnsPrimary.disabled = 1;
43       dnsPrimary.value = '';
44       dnsSecondary.disabled = 1;
45       dnsSecondary.value = '';
46    }
47 }
48
49 function enableDnsInfo() {
50    with ( document.forms[0] ) {
51       dnsPrimary.disabled = 0;
52       dnsPrimary.value = dns1;
53       dnsSecondary.disabled = 0;
54       dnsSecondary.value = dns2;
55    }
56 }
57
58 function dnsClick() {
59    with ( document.forms[0] ) {
60       if ( dns[0].checked == true )
61          disableDnsInfo();
62       else
63          enableDnsInfo();
64    }
65 }
66
67 function disableGwInfo() {
68    with ( document.forms[0] ) {
69       gwAddr.disabled = 1;
70       gwAddr.checked = false;
71       defaultGateway.disabled = 1;
72       defaultGateway.value = '';
73       gwIfc.disabled = 1;
74       gwIfc.checked = false;
75       wanIf.disabled = 1;
76    }
77 }
78
79 function enableGwInfo() {
80    with ( document.forms[0] ) {
81       gw[1].checked = true;
82       gwAddr.disabled = 0;
83       if ( isValidIpAddress(gtwy) == true ) {
84          gwAddr.checked = true;
85          defaultGateway.value = gtwy;
86       } else {
87          gwAddr.checked = false;
88          defaultGateway.value = '';
89       }
90       defaultGateway.disabled = 0;
91       gwIfc.disabled = 0;
92       if ( gtwyIfc != '' )
93          gwIfc.checked = true;
94       else
95          gwIfc.checked = false;
96       wanIf.disabled = 0;
97    }
98 }
99
100 function gwClick() {
101    with ( document.forms[0] ) {
102       if ( gw[0].checked == true )
103          disableGwInfo();
104       else
105          enableGwInfo();
106    }
107 }
108
109 function disableWanInfo() {
110    with ( document.forms[0] ) {
111       wanIpAddress.disabled = 1;
112       wanIpAddress.value = '';
113       wanSubnetMask.disabled = 1;
114       wanSubnetMask.value = '';
115    }
116 }
117
118 function enableWanInfo() {
119    with ( document.forms[0] ) {
120       wanIpAddress.disabled = 0;
121       wanIpAddress.value = addr;
122       wanSubnetMask.disabled = 0;
123       wanSubnetMask.value = mask;
124    }
125 }
126
127 function wanClick() {
128    with ( document.forms[0] ) {
129       if ( wan[0].checked == true )
130          disableWanInfo();
131       else
132          enableWanInfo();
133    }
134 }
135
136 function frmLoad() {
137    with ( document.forms[0] ) {
138       if ( dhcpClnt == '1' ) {
139          wan[0].checked = true;
140          disableWanInfo();
141       } else {
142          wan[1].checked = true;
143          enableWanInfo();
144       }
145       if ( enblAuto == '1' ) {
146          gw[0].checked = true;
147          disableGwInfo();
148       } else {
149          gw[1].checked = true;
150          enableGwInfo();
151       }
152       if (dnsAuto == '1') {
153          dns[0].checked = true;
154          disableDnsInfo();
155       } else {
156          dns[1].checked = true;
157          enableDnsInfo();
158       }
159    }
160 }
161
162 function btnNext() {
163    var loc = 'natcfg2.cgi?';
164
165    with ( document.forms[0] ) {
166       dns1 = dnsPrimary.value;
167       dns2 = dnsSecondary.value;
168       // wan IP address
169       if ( wan[0].checked == true )
170          loc += 'enblDhcpClnt=1';   // auto WAN address
171       else {
172          loc += 'enblDhcpClnt=0';   // static WAN address
173          if ( isValidIpAddress(wanIpAddress.value) == false ) {
174             alert('WAN IP address "' + wanIpAddress.value + '" is an invalid IP address.');
175             return;
176          }
177          loc += '&wanIpAddress=' + wanIpAddress.value;
178          if ( isValidIpAddress(wanSubnetMask.value) == false ) {
179             alert('WAN subnet mask "' + wanSubnetMask.value + '" is an invalid IP address.');
180             return;
181          }
182          loc += '&wanSubnetMask=' + wanSubnetMask.value;
183       }
184       // default gateway
185       if ( gw[0].checked == false ) {
186          if ( gwAddr.checked == false && gwIfc.checked == false ) {
187             alert('There is no selection for default gateway.');
188             return;
189          }
190          if ( gwAddr.checked == true ) {
191             if ( isValidIpAddress(defaultGateway.value) == false ) {
192                alert('Remote WAN IP address "' + defaultGateway.value + '" is an invalid IP address.');
193                return;
194             }
195             loc += '&defaultGateway=' + defaultGateway.value;
196          } else
197             loc += '&defaultGateway=0.0.0.0';
198          if ( gwIfc.checked == true ) {
199             var idx = wanIf.selectedIndex;
200             var ifc = wanIf.options[idx].value;
201             // if chosen interface is MER but does not specify static IP address then display error
202             if ( ifc.indexOf('nas_') != -1 && gwAddr.checked == false ) {
203                alert('Default gateway IP address should be specified since MER interface is selected.');
204                return;
205             }
206             loc += '&wanIfName=' + ifc;
207          } else
208             loc += '&wanIfName=';
209          // use static default gateway
210          loc += '&enblAuto=0';
211       } else {
212          loc += '&defaultGateway=0.0.0.0';
213          loc += '&wanIfName=';
214          loc += '&enblAuto=1';
215       }
216       if ( dns[0].checked == false ) {
217          // primary DNS
218          if ( isValidIpAddress(dns1) == false ) {
219             alert('Primary DNS server "' + dnsPrimary.value + '" is an invalid IP address.');
220             return;
221          }
222          loc += '&dnsPrimary=' + dns1;
223          // secondary DNS
224          if ( dns2 != '' && dns2 != '0.0.0.0' ) {
225             if ( isValidIpAddress(dns2) == false ) {
226                alert('Secondary DNS server "' + dns2 + '" is an invalid IP address.');
227                return;
228             }
229          }
230          loc += '&dnsSecondary=' + dns2;
231          loc += '&dnsDynamic=0';
232       } else {
233          loc += '&dnsPrimary=0.0.0.0';
234          loc += '&dnsSecondary=0.0.0.0';
235          loc += '&dnsDynamic=1';
236       }
237    }
238
239    var code = 'location = "' + loc + '"';
240    eval(code);
241 }
242
243 function btnBack() {
244    var loc = 'ntwkprtcl.html';
245
246    var code = 'location = "' + loc + '"';
247    eval(code);
248 }
249
250 // done hiding -->
251 </script>
252 </head>
253
254 <body onload="initMenu(); frmLoad();">
255
256 <script type="text/javascript">
257         writeHeader("WAN IP Settings");
258 </script>
259
260 <form>
261     <p>Enter information provided to you by your ISP to configure the WAN IP settings.</p>
262     <p><b>Note:</b> DHCP can be enabled for PVC in MER mode
263     if "Obtain an IP address automatically" is chosen.
264     Changing the default gateway or the DNS affects the entire network.
265     Configuring them with static values will disable the 
266     automatic assignment from DHCP or another WAN connection.</p>
267     <p>If you configure a static default gateway over this PVC in MER mode, you must enter
268     the IP address of the remote gateway in the "Use IP address."
269     The "Use WAN interface" is optional.</p>
270
271         <p>
272                 <input type="radio" name="wan" id="wan1" onClick='wanClick()'> <label for="wan1">Obtain an IP address automatically</label><br/>
273                 <input type="radio" name="wan" id="wan2" onClick='wanClick()'> <label for="wan2">Use the following IP address:</label>
274         </p>
275         <table border="0">
276                 <tr>
277                         <td><label for="wanIpAddress">WAN IP address:</label></td>
278                         <td><input type='text' name='wanIpAddress' id='wanIpAddress'></td>
279                 </tr>
280                 <tr>
281                         <td><label for="wanSubnetMask">WAN subnet mask:</label></td>
282                         <td><input type='text' name='wanSubnetMask' id='wanSubnetMask'></td>
283                 </tr>
284         </table>
285
286         <p>
287                 <input type="radio" name="gw" id="gw1" onClick='gwClick()'> <label for="gw1">Obtain default gateway automatically</label><br/>
288                 <input type="radio" name="gw" id="gw2" onClick='gwClick()'> <label for="gw2">Use the following default gateway:</label>
289         </p>
290         <table border="0">
291                 <tr>
292                         <td><input type="checkbox" name='gwAddr' id='gwAddr'> <label for="gwAddr">Use IP address:</label></td>
293                         <td><input type='text' name='defaultGateway' id='defaultGateway'></td>
294                 </tr>
295                 <tr>
296                         <td><input type="checkbox" name='gwIfc' id='gwIfc'> <label for="gwIfc">Use WAN interface:</label></td>
297                         <td><select name='wanIf' id='wanIf'>
298 <script type="text/javascript">
299 <!-- hide
300 {
301    var i = 0;
302    var defaultInterface = '<%ejGetOther(wanInterfaceInfo, default)%>';
303    var interfaceInfo = '<%ejGetOther(wanInterfaceInfo, route)%>';
304    var interfaces = interfaceInfo.split('|');
305    
306    if ( srvId == 0 || qs == '1' ) {
307       var defaultNames = defaultInterface.split('/');
308       document.write("  <option value='" + defaultNames[1] + "' selected>");
309       document.writeln(defaultInterface);
310       for ( i = 0; i < interfaces.length; i++ ) {
311          var names = interfaces[i].split('/');
312          document.write("  <option value='" + names[1] + "'>");
313          document.writeln(interfaces[i]);
314       }
315    } else {
316       for ( i = 0; i < interfaces.length; i++ ) {
317          var names = interfaces[i].split('/');
318          if ( names[1] == gtwyIfc )
319             document.write("  <option value='" + names[1] + "' selected>");
320          else
321             document.write("  <option value='" + names[1] + "'>");
322          document.writeln(interfaces[i]);
323       }
324    }
325 }
326 // done hiding -->
327 </script>
328                         </select></td>
329                </tr>
330             </table>
331
332             <p>
333                   <input type="radio" name="dns" id="dnsP" onClick='dnsClick()'><label for="dnsP">Obtain DNS server addresses automatically</label><br>
334                   <input type="radio" name="dns" id="dnsS" onClick='dnsClick()'><label for="dnsS">Use the following DNS server addresses:</label>
335             </p>
336             <table border="0">
337                <tr>
338                   <td width="20">&nbsp;</td>
339                   <td><label for="dnsPrimary">Primary DNS server:</label></td>
340                   <td><input type='text' name='dnsPrimary' id='dnsPrimary'></td>
341                </tr>
342                <tr>
343                   <td>&nbsp;</td>
344                   <td><label for="dnsSecondary">Secondary DNS server:</label></td>
345                   <td><input type='text' name='dnsSecondary' id='dnsSecondary'></td>
346                </tr>
347             </table><br>
348             <p><input type='button' onClick='btnBack()' value='Back'> <input type='button' onClick='btnNext()' value='Next'></p>
349          </form>
350
351 <script type="text/javascript">
352         writeFooter();
353 </script>
354
355 </body>
356 </html>