added files
[bcm963xx.git] / userapps / broadcom / cfm / html / scprttrg.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></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 TOTAL_ROW = 8;
21 var appName = '';
22 remain = <%ejGetJS(glbEntryCt)%>;
23 NO_SEL_MSG = 'There is no application is selected';
24 RE_ALL_MSG = 'Require BOTH Trigger/Open port range(Start/End values)';
25
26 function btnApply() {
27    var loc = 'scprttrg.cmd?action=add';
28    with ( document.forms[0] ) {
29       if (radiosrv[0].checked == true) {
30          if (appName == '') {
31             alert(NO_SEL_MSG);
32             return;
33          }
34          loc += '&appName=' + appName;
35       }
36       else {
37          if (encodeUrl(cusAppName.value) == '') {
38             alert('Require Custom application name.');
39             return;
40          }
41          loc += '&appName=' + encodeUrl(cusAppName.value);
42       }
43       for (i = 0; i < TOTAL_ROW; i++) {
44          if (tStart[i].value == "" && tEnd[i].value == "" && oStart[i].value == "" && oEnd[i].value == "")
45             break;
46          if (tStart[i].value == "" || tEnd[i].value == "" || oStart[i].value == "" || oEnd[i].value == "") {
47             alert(RE_ALL_MSG);
48             return;
49          }
50       }
51       if (i == 0) {
52          alert(RE_ALL_MSG);
53          return;
54       }
55       if (i > remain) {
56          remain = i - remain;
57          alert('Exceed the maximum allowable entry count by ' + remain);
58          remain = <%ejGetJS(glbEntryCt)%>;
59          return;
60       }
61       tProtoLoc = '&tProto=';
62       tStartLoc = '&tStart=';
63       tEndLoc = '&tEnd=';
64       oProtoLoc = '&oProto=';
65       oStartLoc = '&oStart=';
66       oEndLoc = '&oEnd=';
67       eCount = i;
68       for (i = 0; i < eCount; i++) {
69          if ( isValidPort(tStart[i].value) == false ) {
70             alert('Open port range (Start) "' + tStart[i].value + '" is invalid.');
71             return;
72          }
73          if ( isValidPort(tEnd[i].value) == false ) {
74             alert('Open port range (End) "' + tEnd[i].value + '" is invalid.');
75             return;
76          }
77          if ( isValidPort(oStart[i].value) == false ) {
78             alert('Triggering port range (Start) "' + oStart[i].value + '" is invalid.');
79             return;
80          }
81          if ( isValidPort(oEnd[i].value) == false ) {
82             alert('Triggering port range (End) "' + oEnd[i].value + '" is invalid.');
83             return;
84          }
85          tS = parseInt(tStart[i].value);
86          tE = parseInt(tEnd[i].value);
87          if (tS > tE) {
88             alert('Open port range [' + tS + '-' + tE + '] is invalid.');
89             return;
90          }
91          oS = parseInt(oStart[i].value);
92          oE = parseInt(oEnd[i].value);
93          if ( oS > oE ) {
94             alert('Triggering port range [' + oS + '-' + oE + '] is invalid.');
95             return;
96          }
97          tStartLoc = tStartLoc + tStart[i].value + ',';
98          tEndLoc = tEndLoc + tEnd[i].value + ',';
99          tProtoLoc = tProtoLoc + tProto[i].value + ',';
100          oStartLoc = oStartLoc + oStart[i].value + ',';
101          oEndLoc = oEndLoc + oEnd[i].value + ',';
102          oProtoLoc = oProtoLoc + oProto[i].value + ',';
103       }
104    }
105    loc = loc + tStartLoc + tEndLoc + tProtoLoc + oStartLoc + oEndLoc + oProtoLoc;
106    var code = 'location = "' + loc + '"';
107    eval(code);
108 }
109
110 function clearAll()
111 {
112    with (document.forms[0]) {
113       for (i = 0; i < TOTAL_ROW; i++) {
114          tStart[i].value = tEnd[i].value = oStart[i].value = oEnd[i].value = "";
115          tProto[i].value = oProto[i].value = 1;
116       }
117    }
118 }
119
120 function appSelect(v)
121 {
122    clearAll();
123    with (document.forms[0]) {
124       switch(v) {
125       case '0':
126          srvname.selectedIndex = 0;
127          srvname.options[0].value = "0";
128          appName = "";
129          break;                                  //trigger   open
130       case '1':   //  Aim Talk                   TCP 4099,  TCP 5191
131          appName = "Aim Talk";
132          tStart[0].value = tEnd[0].value = 4099;
133          oStart[0].value = oEnd[0].value = 5191;
134          break;
135       case '2':  // Asheron's Call                UDP 9000-9013, UDP 9000-9013
136          appName = "Asheron's Call";
137          tStart[0].value = oStart[0].value = 9000;
138          tEnd[0].value = oEnd[0].value = 9013;
139          tProto[0].value = oProto[0].value = 2;
140          break;
141       case '3':  //Calista IP Phone               TCP 5190, UDP 3000
142          appName = "Calista IP Phone";
143          tStart[0].value = tEnd[0].value = 5190;
144          oStart[0].value = oEnd[0].value = 3000;
145          oProto[0].value = 2;
146          break;
147       case '4':  //Delta Force (Client/Server)    UDP 3568, BOTH 3100-3999
148          appName = "Delta Force (Client/Server)";
149          tStart[0].value = tEnd[0].value = 3568;
150          tProto[0].value = 2;
151          oStart[0].value = 3100;
152          oEnd[0].value = 3999;
153          oProto[0].value = 0;
154          break;
155       case '5':  //ICQ                            UDP 4000, TCP 20000-20059
156          appName = "ICQ";
157          tStart[0].value = tEnd[0].value = 4000;
158          tProto[0].value = 2;
159          oStart[0].value = 20000;
160          oEnd[0].value = 20059;
161          break;
162       case '6':  //Napster                        TCP 6699, TCP 6699, 6697, 4444, 5555, 6666, 7777, 8888
163          appName = "Napster";
164          tStart[0].value = tEnd[0].value = tStart[1].value = tEnd[1].value = tStart[2].value = tEnd[2].value =
165          tStart[3].value = tEnd[3].value = tStart[4].value = tEnd[4].value = tStart[5].value = tEnd[5].value =
166          tStart[6].value = tEnd[6].value = 6699;
167          oStart[0].value = oEnd[0].value = 6699;
168          oStart[1].value = oEnd[1].value = 6697;
169          oStart[2].value = oEnd[2].value = 4444;
170          oStart[3].value = oEnd[3].value = 5555;
171          oStart[4].value = oEnd[4].value = 6666;
172          oStart[5].value = oEnd[5].value = 7777;
173          oStart[6].value = oEnd[6].value = 8888;
174          break;
175       case '7':   // Net2Phone                      UDP 6801, UDP 6801
176          appName = "Net2Phone";
177          tStart[0].value = tEnd[0].value = 6801;
178          tProto[0].value = 2;
179          oStart[0].value = oEnd[0].value = 6801;
180          oProto[0].value = 2;
181          break;
182       case '8':  //  QuickTime 4 Client             TCP 554, UDP 6970-32000 // 2). TCP 554, BOTH 6970-7000
183          appName = "QuickTime 4 Client";
184          tStart[0].value = tEnd[0].value = tStart[1].value = tEnd[1].value = 554;
185          oStart[0].value = oStart[1].value = 6970;
186          oEnd[0].value = 32000;
187          oEnd[1].value = 7000;
188          oProto[0].value = 2;
189          oProto[1].value = 0;
190          break;
191       case '9':   // Rainbow Six/Rogue Spear        TCP 2346, BOTH 2436-2438
192          appName = "Rainbow Six/Rogue Spea";
193          tStart[0].value = tEnd[0].value = 2346;
194          oStart[0].value = 2436;
195          oEnd[0].value = 2438;
196          oProto[0].value = 0;
197          break;
198       default:
199          alert('Not support selection');
200       }
201    }
202 }
203
204
205 function radioClick()
206 {
207    with (document.forms[0]) {
208       if (radiosrv[0].checked == true)
209          cusAppName.value = '';
210    }
211    appSelect("0");
212 }
213
214 // done hiding -->
215 </script>
216      </head>
217      <body onload="initMenu();">
218
219 <script type="text/javascript">
220         writeHeader("Add Port Trigger");
221 </script>
222
223            <form>
224 <h3>Port Triggering</h3>
225             <p>Some applications such as games, video conferencing, remote access applications
226             and others require that specific ports in the router&rsquo;s firewall have been opened for
227             access by the applications. You can configure the port settings from this
228             screen by selecting an existing application or creating your own (<b>Custom
229             application</b>) and press <b>Apply</b> to add it.</p>
230
231                                 <p><b>Remaining number of entries which can be added: <%ejGetHTML(glbEntryCt)%></b></p>
232
233             <table border="0" cellpadding="0" cellspacing="0">
234                <tr>
235                   <td colspan="2">Application Name:</td>
236                </tr>
237                <tr>
238                   <td><input type="radio" name="radiosrv" id="radiosrv1" onclick='radioClick()' checked> <label for="radiosrv1">Select an application:</label></td>
239                   <td><select name='srvname' id='srvname' onChange='appSelect(this.value)'>
240                                                                 <option value="0" selected>(select an application)</option>
241                                                                 <option value="1">Aim Talk</option>
242                                                                 <option value="2">Asheron's Call</option>
243                                                                 <option value="3">Calista IP Phone</option>
244                                                                 <option value="4">Delta Force (Client/Server)</option>
245                                                                 <option value="5">ICQ</option>
246                                                                 <option value="6">Napster</option>
247                                                                 <option value="7">Net2Phone</option>
248                                                                 <option value="8">QuickTime 4 Client</option></option>
249                                                                 <option value="9">Rainbow Six/Rogue Spea</option>
250                      </select></td>
251                </tr>
252                <tr>
253                   <td><input type="radio" name="radiosrv" id="radiosrv2" onclick='radioClick()'> <label for="radiosrv2">Custom application:</label></td>
254                   <td><input type='text' size="28" name="cusAppName" id="cusAppName"></td>
255                </tr>
256                <tr>
257                   <td colspan="1">&nbsp;</td>
258                </tr>
259             </table>
260 <!--        <center><input type='button' onClick='btnApply()' value='Apply'></center> -->
261
262             <table border='1' cellpadding='0' cellspacing='0'>
263                <tr>
264                   <th>Trigger Port Start </th>
265                   <th>Trigger Port End</th>
266                   <th>Trigger Protocol</th>
267                   <th>Open Port Start</th>
268                   <th>Open Port End</th>
269                   <th>Open Protocol</th>
270                </tr>
271                <tr>
272                   <td><input type='text' size="7" name="tStart" id="tStart"></td>
273                   <td><input type='text' size="7" name="tEnd" id="tEnd"></td>
274                   <td><select name='tProto' id='tProto'>
275                         <option value='0'>TCP/UDP</option>
276                         <option value='1' selected>TCP</option>
277                         <option value='2'>UDP</option>
278                      </select></td>
279                   <td><input type='text' size="7" name="oStart" id="oStart"></td>
280                   <td><input type='text' size="7" name="oEnd" id="oEnd"></td>
281                   <td><select name='oProto' id='oProto'>
282                         <option value='0'>TCP/UDP</option>
283                         <option value='1' selected>TCP</option>
284                         <option value='2'>UDP</option>
285                      </select></td>
286                 </tr>
287                <tr>
288                   <td><input type='text' size="7" name="tStart" id="tStart"></td>
289                   <td><input type='text' size="7" name="tEnd" id="tEnd"></td>
290                   <td><select name='tProto' id='tProto'>
291                         <option value='0'>TCP/UDP</option>
292                         <option value='1' selected>TCP</option>
293                         <option value='2'>UDP</option>
294                      </select></td>
295                   <td><input type='text' size="7" name="oStart" id="oStart"></td>
296                   <td><input type='text' size="7" name="oEnd" id="oEnd"></td>
297                   <td><select name='oProto' id='oProto'>
298                         <option value='0'>TCP/UDP</option>
299                         <option value='1' selected>TCP</option>
300                         <option value='2'>UDP</option>
301                      </select></td>
302                 </tr>
303                <tr>
304                   <td><input type='text' size="7" name="tStart" id="tStart"></td>
305                   <td><input type='text' size="7" name="tEnd" id="tEnd"></td>
306                   <td><select name='tProto' id='tProto'>
307                         <option value='0'>TCP/UDP</option>
308                         <option value='1' selected>TCP</option>
309                         <option value='2'>UDP</option>
310                      </select></td>
311                   <td><input type='text' size="7" name="oStart" id="oStart"></td>
312                   <td><input type='text' size="7" name="oEnd" id="oEnd"></td>
313                   <td><select name='oProto' id='oProto'>
314                         <option value='0'>TCP/UDP</option>
315                         <option value='1' selected>TCP</option>
316                         <option value='2'>UDP</option>
317                      </select></td>
318                 </tr>
319                <tr>
320                   <td><input type='text' size="7" name="tStart" id="tStart"></td>
321                   <td><input type='text' size="7" name="tEnd" id="tEnd"></td>
322                   <td><select name='tProto' id='tProto'>
323                         <option value='0'>TCP/UDP</option>
324                         <option value='1' selected>TCP</option>
325                         <option value='2'>UDP</option>
326                      </select></td>
327                   <td><input type='text' size="7" name="oStart" id="oStart"></td>
328                   <td><input type='text' size="7" name="oEnd" id="oEnd"></td>
329                   <td><select name='oProto' id='oProto'>
330                         <option value='0'>TCP/UDP</option>
331                         <option value='1' selected>TCP</option>
332                         <option value='2'>UDP</option>
333                      </select></td>
334                 </tr>
335                <tr>
336                   <td><input type='text' size="7" name="tStart" id="tStart"></td>
337                   <td><input type='text' size="7" name="tEnd" id="tEnd"></td>
338                   <td><select name='tProto' id='tProto'>
339                         <option value='0'>TCP/UDP</option>
340                         <option value='1' selected>TCP</option>
341                         <option value='2'>UDP</option>
342                      </select></td>
343                   <td><input type='text' size="7" name="oStart" id="oStart"></td>
344                   <td><input type='text' size="7" name="oEnd" id="oEnd"></td>
345                   <td><select name='oProto' id='oProto'>
346                         <option value='0'>TCP/UDP</option>
347                         <option value='1' selected>TCP</option>
348                         <option value='2'>UDP</option>
349                      </select></td>
350                 </tr>
351                <tr>
352                   <td><input type='text' size="7" name="tStart" id="tStart"></td>
353                   <td><input type='text' size="7" name="tEnd" id="tEnd"></td>
354                   <td><select name='tProto' id='tProto'>
355                         <option value='0'>TCP/UDP</option>
356                         <option value='1' selected>TCP</option>
357                         <option value='2'>UDP</option>
358                      </select></td>
359                   <td><input type='text' size="7" name="oStart" id="oStart"></td>
360                   <td><input type='text' size="7" name="oEnd" id="oEnd"></td>
361                   <td><select name='oProto' id='oProto'>
362                         <option value='0'>TCP/UDP</option>
363                         <option value='1' selected>TCP</option>
364                         <option value='2'>UDP</option>
365                      </select></td>
366                 </tr>
367                <tr>
368                   <td><input type='text' size="7" name="tStart" id="tStart"></td>
369                   <td><input type='text' size="7" name="tEnd" id="tEnd"></td>
370                   <td><select name='tProto' id='tProto'>
371                         <option value='0'>TCP/UDP</option>
372                         <option value='1' selected>TCP</option>
373                         <option value='2'>UDP</option>
374                      </select></td>
375                   <td><input type='text' size="7" name="oStart" id="oStart"></td>
376                   <td><input type='text' size="7" name="oEnd" id="oEnd"></td>
377                   <td><select name='oProto' id='oProto'>
378                         <option value='0'>TCP/UDP</option>
379                         <option value='1' selected>TCP</option>
380                         <option value='2'>UDP</option>
381                      </select></td>
382                 </tr>
383                <tr>
384                   <td><input type='text' size="7" name="tStart" id="tStart"></td>
385                   <td><input type='text' size="7" name="tEnd" id="tEnd"></td>
386                   <td><select name='tProto' id='tProto'>
387                         <option value='0'>TCP/UDP</option>
388                         <option value='1' selected>TCP</option>
389                         <option value='2'>UDP</option>
390                      </select></td>
391                   <td><input type='text' size="7" name="oStart" id="oStart"></td>
392                   <td><input type='text' size="7" name="oEnd" id="oEnd"></td>
393                   <td><select name='oProto' id='oProto'>
394                         <option value='0'>TCP/UDP</option>
395                         <option value='1' selected>TCP</option>
396                         <option value='2'>UDP</option>
397                      </select></td>
398                 </tr>
399    </table>
400         <p><input type='button' onClick='btnApply()' value='Apply'></p>
401 </form>
402
403 <script type="text/javascript">
404         writeFooter();
405 </script>
406
407 </body>
408 </html>