1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3 (c) 2005 U.S. Robotics Corporation
7 <title>ATM PVC Configuration</title>
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>
13 <meta http-equiv="Pragma" content="no-cache">
16 <script type="text/javascript" src="util.js"></script>
17 <script type="text/javascript">
21 var upRate = parseInt('<%ejGetOther(lineRate, 0, 0)%>');
22 var pcrMax = 255000; // Assuming nitro: 255000 * 49 * 8 = 100Mbps // SASHA: VDSL
23 // var pcrMax = 1887; // 1887 * 53 * 8 = 800000
24 var serviceCat = '<%ejGetJS(atmServiceCategory)%>';
25 var qos = '<%ejGetJS(enblQos)%>';
27 var serviceId = '<%ejGetJS(serviceId)%>';
28 var numQueue = parseInt('<%ejGetOther(memInfo, queueNum)%>');
31 var enetWan = parseInt('<%ejGetJS(enblEnetWan)%>');
32 var vpi = '<%ejGetJS(atmVpi)%>';
33 var vci = '<%ejGetJS(atmVci)%>';
35 if ( isNaN(upRate) == false )
36 pcrMax = Math.ceil((upRate * 1000) / (49 * 8)); // SASHA new value for VDSL
37 // pcrMax = Math.ceil((upRate * 1000) / (53 * 8));
40 var chipId = <%ejGetOther(sysInfo, chipId)%>;
42 if (( chipId == 0x6348 ) || ( chipId == 0x6358 ))
45 var numEnet = parseInt('<%ejGetJS(numEnet)%>');
46 var numPvc = parseInt('<%ejGetJS(numPvc)%>');
48 function disableQos() {
49 with ( document.forms[0] ) {
50 enblQos.checked = false;
55 function enableQos() {
56 with ( document.forms[0] ) {
58 enblQos.checked = true;
60 enblQos.checked = false;
65 function hideQosInfo(hide) {
66 var status = 'visible';
74 if (document.getElementById) // DOM3 = IE5, NS6
75 document.getElementById('qosInfo').style.visibility = status;
77 if (document.layers == false) // IE4
78 document.all.qosInfo.style.visibility = status;
82 function hideInfo(hide) {
84 with (document.forms[0]) {
85 if (hide == 3) // hide all 3
87 if (document.getElementById) { // DOM3 = IE5, NS6
88 document.getElementById('first1').style.visibility = 'hidden';
89 document.getElementById('2and3').style.visibility = 'hidden';
94 else if (hide == 2) // hide 2 and 3
96 if (document.getElementById) { // DOM3 = IE5, NS6
97 document.getElementById('2and3').style.visibility = 'hidden';
98 document.getElementById('first1').style.visibility = 'visible';
103 else if (hide == 0) // hide none
105 if (document.getElementById) { // DOM3 = IE5, NS6
106 document.getElementById('first1').style.visibility = 'visible';
107 document.getElementById('2and3').style.visibility = 'visible';
115 function shouldQosBeHidden() {
118 // only allow QoS enabled for ubr, ubrwpcr, ntr_vbr
119 if ( serviceCat == 'UBR' ||
120 serviceCat == 'UBRwPCR' ||
121 serviceCat == 'NRT_VBR' ) {
122 // if PVC is not QoS enabled
125 if ( serviceId == '0' ) {
126 if ( numQueue > 5 ) // 5 = 8 - 3
128 } else { // if edit existed PVC
129 if ( numQueue > 6 ) // 6 = 8 - 3 + 1
139 function hideVccInfo(hide) {
140 var status = 'visible';
150 if (document.getElementById) { // DOM3 = IE5, NS6
151 document.getElementById('vccInfo').style.visibility = status;
153 if (document.layers) { // Netscape 4
154 with ( document.forms[0] ) {
164 document.all.vccInfo.style.visibility = status;
168 function ethWanCfgCbClick(cb) {
169 if ( cb.checked == true )
177 hideQos = shouldQosBeHidden();
179 if ( enetWan == 1 ) {
181 } else if ( hideQos == true )
186 with ( document.forms[0] ) {
187 atmVpi.value = '<%ejGetJS(atmVpi)%>';
188 atmVci.value = '<%ejGetJS(atmVci)%>';
189 peakCell.value = '<%ejGetJS(atmPeakCellRate)%>';
190 sustainableCell.value = '<%ejGetJS(atmSustainedCellRate)%>';
191 maximumBurst.value = '<%ejGetJS(atmMaxBurstSize)%>'
194 if (serviceCat == 'UBR') {
195 document.forms[0].serviceCategory[0].selected = true;
198 else if (serviceCat == 'UBRwPCR') {
199 document.forms[0].serviceCategory[1].selected = true;
202 else if (serviceCat == 'CBR') {
203 document.forms[0].serviceCategory[2].selected = true;
206 else if (serviceCat == 'NRT_VBR') {
207 document.forms[0].serviceCategory[3].selected = true;
210 else if (serviceCat == 'RT_VBR') {
211 document.forms[0].serviceCategory[4].selected = true;
216 if ( serviceId == '0' ) {
217 // if it is 6348 or 6358 chip
218 if (( chipId == 0x6348 ) || ( chipId == 0x6358 )) {
219 // if PVC is available but queue is not then
220 // only allow to add UBR PVC
221 if ( numPvc < numPvcMax && numQueue >= numQueueMax ) {
222 for ( i = 4; i > 0; i-- )
223 document.forms[0].serviceCategory.options[i] = null;
231 var code = 'location="' + 'wancfg.cmd'+ '"';
237 var loc = 'ntwkprtcl.cgi?';
239 with ( document.forms[0] ) {
240 if ( isNaN(parseInt(atmVpi.value)) == true ) {
241 alert('VPI "' + atmVpi.value + '" is invalid.');
244 if ( isNaN(parseInt(atmVci.value)) == true ) {
245 alert('VCI "' + atmVci.value + '" is invalid.');
248 vpi = parseInt(atmVpi.value);
249 if ( vpi < 0 || vpi > 255 ) {
250 alert('VPI "' + atmVpi.value + '" is out of range [0-255].');
253 vci = parseInt(atmVci.value);
254 if ( vci < 32 || vci > 65535 ) {
255 alert('VCI "' + atmVci.value + '" is out of range [32-65535].');
258 loc += 'atmVpi=' + atmVpi.value;
259 loc += '&atmVci=' + atmVci.value;
260 loc += '&atmServiceCategory=' + serviceCategory.value;
261 if (serviceCategory.value != 'UBR') {
262 if ( isNaN(parseInt(peakCell.value)) == true) {
263 alert('Peak Cell Rate "' + peakCell.value + '" is invalid.');
266 peak = parseInt(peakCell.value);
267 if ( peak <= 0 || peak > pcrMax ) {
268 alert('Peak Cell Rate "' + peakCell.value + '" is out of range [1-' + pcrMax + '].');
271 loc += '&atmPeakCellRate=' + peakCell.value;
273 loc += '&atmPeakCellRate=0';
274 if (serviceCategory.value == 'NRT_VBR' || serviceCategory.value == 'RT_VBR') {
275 if ( isNaN(parseInt(sustainableCell.value)) == true) {
276 alert('Sustainable Cell Rate "' + sustainableCell.value + '" is invalid.');
279 sustainable = parseInt(sustainableCell.value);
280 if ( sustainable <= 0 || sustainable > pcrMax ) {
281 alert('Sustainable Cell Rate "' + sustainableCell.value + '" is out of range [1-' + pcrMax + '].');
284 if ( sustainable >= peak) {
285 alert('Sustainable Cell Rate "' + sustainableCell.value + '" has to be smaller than Peak Cell Rate');
288 if ( isNaN(parseInt(maximumBurst.value)) == true) {
289 alert('Maximum Burst Size "' + maximumBurst.value + '" is invalid.');
292 maximum = parseInt(maximumBurst.value);
293 if ( maximum <= 0 || maximum > 1000000 ) {
294 alert('Maximum Burst Size "' + maximumBurst.value + '" is out of range [1-1000000].');
297 loc += '&atmSustainedCellRate=' + sustainableCell.value;
298 loc += '&atmMaxBurstSize=' + maximumBurst.value;
300 loc += '&atmSustainedCellRate=0';
301 loc += '&atmMaxBurstSize=0';
303 if ( enblQos.checked == true )
304 loc += '&enblQos=on';
308 loc += '&quickSetup=' + 0;
310 var code = 'location="' + loc + '"';
315 function cbClick(obj) {
316 var idx = obj.selectedIndex;
317 var val = obj.options[idx].value;
320 else if (val == "UBRwPCR" || val == "CBR")
324 if (val == 'CBR' || val == 'RT_VBR')
327 if ( hideQos == false )
335 <body onload="initMenu(); frmLoad();">
337 <script type="text/javascript">
338 writeHeader("ATM PVC Configuration");
343 <table cellSpacing="4" cellPadding="0" border="0">
345 <td><label for="atmVpi">VPI:</label></td>
346 <td><input type="text" size="4" name="atmVpi" id="atmVpi"> (0-255)</td>
349 <td><label for="atmVci">VCI:</label></td>
350 <td><input type="text" size="4" name="atmVci" id="atmVci"> (32-65535)</td>
354 <table border="0" cellpadding="0" cellspacing="0">
356 <td><label for="">Service category:</label></td>
357 <td><select name="serviceCategory" id="serviceCategory" onchange='cbClick(this)'>
358 <option value="UBR" selected>
360 <option value="UBRwPCR">
364 <option value="NRT_VBR">
366 <option value="RT_VBR">
367 Realtime VBR</option>
373 <table border="0" cellpadding="0" cellspacing="0">
375 <td><label for="peakCell">Peak cell rate:</label></td>
376 <td><input type="text" size="6" name="peakCell" id="peakCell"> (cells/s)</td>
382 <table border="0" cellpadding="0" cellspacing="0">
384 <td><label for="sustainableCell">Sustainable cell rate:</label></td>
385 <td><input type="text" size="6" name="sustainableCell" id="sustainableCell"> (cells/s)</td>
388 <td><label for="maximumBurst">Maximum burst size:</label></td>
389 <td><input type="text" size="6" name="maximumBurst" id="maximumBurst"> (cells)</td>
394 <h3>Quality Of Service</h3>
396 Enabling packet level QoS for a PVC improves performance for selected classes
397 of applications. QoS cannot be set for CBR and Realtime VBR.
398 QoS consumes system resources; therefore the number of PVCs
399 will be reduced. Use <b>LAN/Quality of Service</b> to
400 assign priorities for the applications.<br>
402 <p><input type='checkbox' name='enblQos' id=enblQos> <label for="enblQos">Quality of service</label></p>
405 <p><input type='button' onClick='btnBack()' value='Back'> <input type='button' onClick='btnNext()' value='Next'></p>
408 <script type="text/javascript">