www.usr.com/support/gpl/USR9113_release1.0.tar.gz
[bcm963xx.git] / userapps / broadcom / cfm / html / ipsconfig.html
index feef0af..2c0310f 100755 (executable)
@@ -1,21 +1,28 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <!--
-       (c) 2006 U.S. Robotics Corporation
+       (c) 2005-2006 U.S. Robotics Corporation
 -->
 <html>
 <head>
-       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <meta http-equiv="Pragma" content="no-cache">
-  <title>Internet &raquo; VPN IPSec Settings</title>
-       <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>
-       <link href="usr_main.css" rel="stylesheet" type="text/css">
-       <script src="usr_common.js" type="text/javascript"></script>
-   <script type="text/javascript" src="util.js"></script>
-   <script type="text/javascript">
-
-<!-- hide
+        <title>VPN IPSec Settings &laquo; Internet</title>
+        <link href="usr_layout.css" type="text/css" rel="stylesheet" />
+        <script src="usr_layout.js" type="text/javascript"></script>
+                                                                                
+        <link href="usr_device.css" type="text/css" rel="stylesheet" />
+        <script src="usr_device.js" type="text/javascript"></script>
+                                                                                
+        <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>
+                                                                                
+        <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>
+        <script type="text/javascript" src="util.js"></script>
+                                                                                
+        <meta http-equiv="Pragma" content="no-cache">
+
+<script type="text/javascript">
 
 var ipsTableIndex = '<%ejGetJS(ipsTableIndex)%>';
 var ipsConnName = '<%ejGetJS(ipsConnName)%>';
@@ -25,6 +32,7 @@ var ipsLocalIP = '<%ejGetJS(ipsLocalIP)%>';
 var ipsLocalMask = '<%ejGetJS(ipsLocalMask)%>';
 var ipsLocalRangeLo = '<%ejGetJS(ipsLocalRangeLo)%>';
 var ipsLocalRangeHi = '<%ejGetJS(ipsLocalRangeHi)%>';
+var ipsLocalMac = "<%ejGetJS(ipsLocalMac)%>";
 var ipsRemoteIPMode = '<%ejGetJS(ipsRemoteIPMode)%>';
 var ipsRemoteIP = '<%ejGetJS(ipsRemoteIP)%>';
 var ipsRemoteMask = '<%ejGetJS(ipsRemoteMask)%>';
@@ -98,12 +106,20 @@ function localIPModeChange() {
       var mode = localIPMode[localIPMode.selectedIndex].value;
       switch ( mode ) {
       case "subnet":
-        showhide("IP11", 1);
-        showhide("IP12", 1);
+        setVisibility("IP11", true);
+        setVisibility("IP12", true);
+        setVisibility("IP13", false);
+        localIP.value = ipsLocalIP; 
+        setVisibility("noteIP", false);
         break;
       case "single":
-        showhide("IP11", 1);
-        showhide("IP12", 0);
+        setVisibility("IP11", true);
+        setVisibility("IP12", false);
+        setVisibility("IP13", true);
+        if (localIP.value == "0.0.0.0" ) {
+           localIP.value = "<%ejGetOther(memInfo,localHostIP)%>"; 
+           setVisibility("noteIP", true);
+        }
         break;
       default:
     }
@@ -115,12 +131,12 @@ function remoteIPModeChange() {
       var mode = remoteIPMode[remoteIPMode.selectedIndex].value;
       switch ( mode ) {
       case "subnet":
-        showhide("IP21", 1);
-        showhide("IP22", 1);
+        setVisibility("IP21", true);
+        setVisibility("IP22", true);
         break;
       case "single":
-        showhide("IP21", 1);
-        showhide("IP22", 0);
+        setVisibility("IP21", true);
+        setVisibility("IP22", false);
         break;
       default:
     }
@@ -134,25 +150,25 @@ function keyauthChange() {
       var authmode = authM[authM.selectedIndex].value;
       switch (keymode) {
       case "auto":
-        showhide("AutoKeyEx", 1);
-        showhide("ManualKey", 0);
+        setVisibility("AutoKeyEx", true);
+        setVisibility("ManualKey", false);
         switch (authmode) {
         case "pre_shared_key":
-          showhide("PSK", 1);
-          showhide("Certificate", 0);
+          setVisibility("PSK", true);
+          setVisibility("Certificate", false);
           break;
         case "certificate":
-          showhide("PSK", 0);
-          showhide("Certificate", 1);
+          setVisibility("PSK", false);
+          setVisibility("Certificate", true);
           break;
         default:
         }
         break;
       case "manual":
-        showhide("AutoKeyEx", 0);
-        showhide("ManualKey", 1);
-        showhide("PSK", 0);
-        showhide("Certificate", 0);
+        setVisibility("AutoKeyEx", false);
+        setVisibility("ManualKey", true);
+        setVisibility("PSK", false);
+        setVisibility("Certificate", false);
                showAdv = false;
                showhideAdv(showAdv);
         break;
@@ -170,7 +186,7 @@ function showhideAdv(show)
 {
        with (document.forms[0])
        {
-               showhide("adv", show);
+               setVisibility("adv", show);
                if (show)
                        advSWButton.value = "Hide Advanced IKE Settings";
                else
@@ -190,6 +206,7 @@ function formLoad()
                setSelect(localIPMode, ipsLocalIPMode);
                localIP.value = ipsLocalIP;
                localMask.value = ipsLocalMask;
+               localMac.value = ipsLocalMac; 
                setSelect(remoteIPMode, ipsRemoteIPMode);
                remoteIP.value = ipsRemoteIP;
                remoteMask.value = ipsRemoteMask;
@@ -197,10 +214,10 @@ function formLoad()
                setSelect(authM, ipsAuthM);
                psk.value = ipsPSK;
                setSelect(certificateName, ipsCertificateName);
-               perfectFSEn.value = ipsPerfectFSEn;
+               perfectFSEn.checked = (ipsPerfectFSEn == "enable");
                setSelect(manualEncryptionAlgo, ipsManualEncryptionAlgo);
                manualEncryptionKey.value = ipsManualEncryptionKey;
-               setSelect(manualAuthAlgo, ipsManualAuthAlgo)
+               setSelect(manualAuthAlgo, ipsManualAuthAlgo);
                manualAuthKey.value = ipsManualAuthKey;
                spi.value = ipsSPI;
                setSelect(ph1Mode, ipsPh1Mode);
@@ -237,6 +254,10 @@ function applyClick() {
                        alert('Local Subnet Mask "' + localMask.value + '" is invalid.');
                        return;
                }
+               if ( getSelect(localIPMode) == "single" && isValidMacAddress(localMac.value) == false ) {
+                       alert('Local MAC address "' + localMac.value + '" is invalid.');
+                       return;
+               }
                if ( isValidIpAddress(remoteIP.value) == false ) {
                        alert('Remote IP Address "' + remoteIP.value + '" is invalid.');
                        return;
@@ -303,6 +324,7 @@ function applyClick() {
                loc += submitSelect(localIPMode, 'ipsLocalIPMode');
                loc += submitText(localIP, 'ipsLocalIP');
                loc += submitText(localMask, 'ipsLocalMask');
+               loc += submitText(localMac, 'ipsLocalMac');
                loc += submitSelect(remoteIPMode, 'ipsRemoteIPMode');
                loc += submitText(remoteIP, 'ipsRemoteIP');
                loc += submitText(remoteMask, 'ipsRemoteMask');
@@ -310,7 +332,11 @@ function applyClick() {
                loc += submitSelect(authM, 'ipsAuthM');
                loc += submitText(psk, 'ipsPSK');
                loc += submitSelect(certificateName, 'ipsCertificateName');
-               loc += submitSelect(perfectFSEn, 'ipsPerfectFSEn');
+
+               var val = perfectFSEn.checked ? "enable":"disable";
+               loc += '&ipsPerfectFSEn=' + (perfectFSEn.checked ? 
+                        "enable":"disable");
+
                loc += submitSelect(manualEncryptionAlgo, 'ipsManualEncryptionAlgo');
                loc += submitText(manualEncryptionKey, 'ipsManualEncryptionKey');
                loc += submitSelect(manualAuthAlgo, 'ipsManualAuthAlgo');
@@ -327,19 +353,18 @@ function applyClick() {
                loc += submitText(ph2KeyTime, 'ipsPh2KeyTime');
 
        }
-       var code = 'location = "' + loc + '"';
-       eval(code);
+
+       location = loc;
+//     var code = 'location = "' + loc + '"';
+//     eval(code);
 }
 
-// done hiding -->
 </script>
-
 </head>
 
 <body onload="initMenu(); formLoad();">
 
 <script type="text/javascript">
-        setPageTitle("<%ejGetWlJS(wlInterface)%>");
        writeHeader("Internet");
 </script>
 
@@ -360,7 +385,7 @@ function applyClick() {
        </tr>
 </table>
 
-<p><label>Tunnel access from local IP addresses:</label>
+<p><label>Allow tunnel access from these local IP addresses:</label>
        <select name="localIPMode" onchange="localIPModeChange();">
                <option value="subnet">Subnet</option>
                <option value="single">Single address</option>
@@ -376,9 +401,20 @@ function applyClick() {
                <td><label for="localMask">&nbsp;&nbsp;IP subnet mask:</label></td>
                <td><input name="localMask" type="text"></td>
        </tr>
+
+       <tr id="IP13">
+               <td><label for="localMac">&nbsp;&nbsp;MAC address for VPN:</label></td>
+               <td><input name="localMac" type="text"></td>
+       </tr>\r
+       <tr id="noteIP"> <td></td>\r
+               <td>\r
+                       <span class="clsNote">(Note: To give VPN access to another device, override the current client addresses.)\r
+                       </span>\r
+               </td>\r
+       </tr>
 </table>
 
-<p><label>Tunnel access from remote IP addresses:</label>
+<p><label>Allow tunnel access from these remote IP addresses:</label>
        <select name="remoteIPMode" onchange="remoteIPModeChange();">
                <option value="subnet" selected>Subnet</option>
                <option value="single">Single Address</option>
@@ -386,7 +422,7 @@ function applyClick() {
 </p>
 <table border="0">
        <tr id="IP21">
-               <td><label for="remoteIP">&nbsp;&nbsp;IP Address for VPN:</label></td>
+               <td><label for="remoteIP">&nbsp;&nbsp;IP address for VPN:</label></td>
                <td><input name="remoteIP" type="text"></td>
        </tr>
 
@@ -424,16 +460,6 @@ function applyClick() {
                        <td><label>Certificates:</label></td>
                        <td><select name="certificateName" /></td>
                </tr>
-
-               <tr>
-                       <td><label>Perfect forward secrecy:</label></td>
-                       <td>
-                               <select name="perfectFSEn">
-                                       <option value="enable">Enable</option>
-                                       <option value="disable">Disable</option>
-                               </select>
-                       </td>
-               </tr>
        </table>
 
        <p><input name="advSWButton" type="button" value="Show Advanced IKE Settings" onclick="switchAdv();"></p>
@@ -492,7 +518,6 @@ function applyClick() {
                <td><label>Encryption algorithm:</label></td>
                <td>
                        <select name="ph1EncryptionAlgo">
-                               <option value="des">DES-CBC</option>
                                <option value="3des" selected>3DES-CBC</option>
                                <option value="aes128">AES-128-CBC</option>
                                <option value="aes192">AES-192-CBC</option>
@@ -531,6 +556,10 @@ function applyClick() {
        <tr>
                <td colspan="2"><h4>Phase 2</h4></td>
        </tr>
+       <tr>\r
+               <td colspan="2"><input type='checkbox' name='perfectFSEn' id='perfectFSEn' value="ON"> \r
+               <label for="perfectFSEn">Allow perfect forward secrecy (PFS)</label></td>\r
+       </tr>\r
        <tr>
                <td><label>Encryption algorithm:</label></td>
                <td>