-->
<html>
<head>
- <title>Quality of Service</title>
+ <title>Add Network Traffic Class</title>
- <link href="usr_main.css" rel="stylesheet" type="text/css">
- <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>
- <script src="usr_common.js" type="text/javascript"></script>
+ <link href="usr_layout.css" type="text/css" rel="stylesheet" /><script src="usr_layout.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_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>
<script src="portName.js" type="text/javascript"></script>
<meta HTTP-EQUIV='Pragma' CONTENT='no-cache'>
<script type="text/javascript">
<!-- hide
-setPageTitle("<%ejGetWlJS(wlInterface)%>");
+var glbDisplayPhysicalPort = false;
+
+/*if (document.getElementById) onload = function () {
+ var i, a;
+ for(i=0; (a = document.getElementsByTagName('tr')[i]); i++) {
+ if ((/SrcMacAddr/i.test(a.id)) ||
+ (/SrcMacMask/i.test(a.id)) ||
+ (/DstMacAddr/i.test(a.id)) ||
+ (/DstMacMask/i.test(a.id)) ||
+ (/DscpMark/i.test(a.id)))
+ {
+ a.style.display = "none";
+ }
+ else
+ a.style.display = "";
+ }
+}
+*/
+function diffServCfgCb (cb) {
+ var i, a;
+ if (cb.checked == true) {
+ for(i=0; (a = document.getElementsByTagName('tr')[i]); i++) {
+ if ((/IpPre/i.test(a.id)) ||
+ (/IpTos/i.test(a.id)))
+ {
+ a.style.display = "none";
+ }
+ if ((/SrcMacAddr/i.test(a.id)) ||
+ (/SrcMacMask/i.test(a.id)) ||
+ (/DstMacAddr/i.test(a.id)) ||
+ (/DstMacMask/i.test(a.id)) ||
+ (/DscpMark/i.test(a.id)))
+ {
+ a.style.display = "";
+ }
+ }
+ } else {
+ for(i=0; (a = document.getElementsByTagName('tr')[i]); i++) {
+ if ((/SrcMacAddr/i.test(a.id)) ||
+ (/SrcMacMask/i.test(a.id)) ||
+ (/DstMacAddr/i.test(a.id)) ||
+ (/DstMacMask/i.test(a.id)) ||
+ (/DscpMark/i.test(a.id)))
+ {
+ a.style.display = "none";
+ }
+ else
+ a.style.display = "";
+ }
+ }
+}
function btnApply() {
var loc = 'qoscls.cmd?action=add';
return;
}
+ if ( srcmacaddr.value != "" && isValidMacAddress(srcmacaddr.value) == false ) {
+ alert('Source MAC address "' + srcmacaddr.value + '" is invalid MAC address.');
+ return;
+ }
+
+ if ( srcmacaddr.value == "" && srcmacmask.value != "" ) {
+ alert('Cannot have source MAC mask without source MAC address.');
+ return;
+ }
+
+ if ( dstmacaddr.value != "" && isValidMacAddress(dstmacaddr.value) == false ) {
+ alert('Destination MAC address "' + dstmacaddr.value + '" is invalid MAC address.');
+ return;
+ }
+
+ if ( dstmacaddr.value == "" && dstmacmask.value != "" ) {
+ alert('Cannot have destination MAC mask without destination MAC address.');
+ return;
+ }
+
if ( (srcport.value != "" || dstport.value != "") &&
(protocol.selectedIndex > 2) )
{
loc += '&vlan8021p=' + val;
}
+ // Check if the DiffServ configuration is enabled
+ if (enblDiffServCb.checked == false) {
+ // IP precedence bits
+ idx = precedence.selectedIndex;
+ val = precedence.options[idx].value;
+ loc += '&precedence=' + val;
+
+ // IP type of service bits
+ idx = tos.selectedIndex;
+ val = tos.options[idx].value;
+ loc += '&tos=' + val;
+ } else {
+ idx = dscp.selectedIndex;
+ if ( idx > 0 ) {
+ loc += '&dscpMark=' + dscp.options[idx].value;
+ }
+ }
+
+ // physical lan port ifc name
+ if (glbDisplayPhysicalPort)
+ loc += '&lanIfcName=' + lanIfcName.options[lanIfcName.selectedIndex].value;
+ // protocol
+ idx = protocol.selectedIndex;
+ val = protocol.options[idx].value;
+ loc += '&protocol=' + val;
+
// source address
if ( srcaddr.value != "" )
loc += '&srcAddr=' + srcaddr.value;
if ( dstport.value != "" )
loc += '&dstPort=' + dstport.value;
- // WAN 802.1p priority
+ // DiffServ configuration
+ if ( enblDiffServCb.checked == true ) {
+ loc += '&diffServCfg=' + 3;
+ } else {
+ loc += '&diffServCfg=' + 0;
+ }
+
+ // source MAC address
+ if ( srcmacaddr.value != "" )
+ loc += '&srcMacAddr=' + srcmacaddr.value;
+
+ // destination MAC address
+ if ( dstmacaddr.value != "" )
+ loc += '&dstMacAddr=' + dstmacaddr.value;
+
+ // source MAC mask
+ if ( srcmacmask.value != "" )
+ loc += '&srcMacMask=' + srcmacmask.value;
+
+ // destination MAC mask
+ if ( dstmacmask.value != "" )
+ loc += '&dstMacMask=' + dstmacmask.value;
+
+ // Check if DiffServ configuration is enabled
+ //if (enblDiffServCb.checked == false) {
+ // VLAN 802.1p priority
+ idx = vlan8021p.selectedIndex;
+ val = vlan8021p.options[idx].value;
+ loc += '&vlan8021p=' + val;
+
+ // WAN 802.1p priority
idx = wanVlan8021p.selectedIndex;
val = wanVlan8021p.options[idx].value;
- loc += '&wanVlan8021p=' + val;
+ loc += '&wanVlan8021p=' + val;
+ //}
}
-
- var code = 'location = "' + loc + '"';
+ var code = 'location="' + loc + '"';
eval(code);
}
<input type='text' size="20" name="txtclsname" id="txtclsname"></p>
<h4>Class Priority, IP Precedence, and Type of Service</h4>
- <p>If a non-zero value is selected for <b>IP Precedence</b> or
- a value other than "Normal" for <b>IP Type of Service</b>,
+ <p>
+ <input type="checkbox" name="enblDiffServCb" id="enblDiffServCb" onClick="diffServCfgCb(this)">
+ <label for="enblDiffServCb">Enable differentiated service configuration</label>
+ </p>
+ <p>If a non-zero value is selected for <b>IP precedence</b> or
+ a value other than "Normal" for <b>IP type of service</b>,
the corresponding TOS byte in the IP header of the upstream packet will be
overwritten by the selected value.</p>
- <table border="0">
- <tr>
+ <p><b>Note:</b> If <b>Differentiated service configuration</b> checkbox is selected,
+ you will only need to assign <b>ATM transmit priority</b>. <b>IP Precedence</b> will not
+ be used for classification. IP TOS byte will be used for DSCP mark.</p>
+<table id="qosCls" border="0">
+ <tr id="tblItmAtmPrio">
<td><label>ATM transmit priority:</label></td>
<td><select name='priority' id='priority'>
- <option value="1">Low</option>
- <option value="2">Medium</option>
- <option value="3">High</option>
+ <option value="1">Low</option>
+ <option value="2">Medium</option>
+ <option value="3">High</option>
</select></td>
</tr>
- <tr>
+ <tr id="tblItmDscpMark" style="display: none">
+ <td><label>Differentiated services code point (DSCP):</label></td>
+ <td><select name="dscp" id="dscp">
+ <option value="0" selected>None</option>
+ <option value="0">default(000000)</option>
+ <option value="56">AF13(001110)</option>
+ <option value="48">AF12(001010)</option>
+ <option value="40">AF11(001001)</option>
+ <option value="32">CS1(001000)</option>
+ <option value="88">AF23(010110)</option>
+ <option value="80">AF22(010010)</option>
+ <option value="72">AF21(010001)</option>
+ <option value="64">CS2(010000)</option>
+ <option value="120">AF33(011110)</option>
+ <option value="112">AF32(011010)</option>
+ <option value="104">AF31(011001)</option>
+ <option value="96">CS3(011000)</option>
+ <option value="152">AF43(100110)</option>
+ <option value="144">AF42(100010)</option>
+ <option value="136">AF41(100001)</option>
+ <option value="128">CS4(100000)</option>
+ <option value="184">EF(101110)</option>
+ <option value="160">CS5(101000)</option>
+ <option value="192">CS6(110000)</option>
+ <option value="224">CS7(111000)</option>
+ </select></td>
+ </tr>
+ <tr id="tblItmIpPre">
<td><label>IP precedence:</label></td>
<td><select name='precedence' id='precedence'>
- <option value="-1" selected>(None)</option>
- <option value="0">0</option>
- <option value="1">1</option>
- <option value="2">2</option>
- <option value="3">3</option>
- <option value="4">4</option>
- <option value="5">5</option>
- <option value="6">6</option>
- <option value="7">7</option>
+ <option value="-1" selected>None</option>
+ <option value="0">0</option>
+ <option value="1">1</option>
+ <option value="2">2</option>
+ <option value="3">3</option>
+ <option value="4">4</option>
+ <option value="5">5</option>
+ <option value="6">6</option>
+ <option value="7">7</option>
</select></td>
</tr>
- <tr>
+ <tr id="tblItmIpTos">
<td><label>IP type of service:</label></td>
<td><select name='tos' id='tos'>
- <option value="-1" selected>(None)</option>
- <option value="0">Normal service</option>
- <option value="2">Minimize cost</option>
- <option value="4">Maximize reliability</option>
- <option value="8">Maximize throughput</option>
- <option value="16">Minimize delay</option>
+ <option value="-1" selected>None</option>
+ <option value="0">Normal service</option>
+ <option value="2">Minimize cost</option>
+ <option value="4">Maximize reliability</option>
+ <option value="8">Maximize throughput</option>
+ <option value="16">Minimize delay</option>
</select></td>
</tr>
- <tr>
+ <tr id="tblItmDot1p">
<td><label>802.1p (if 802.1q is enabled on WAN):</label></td>
<td><select name="wanVlan8021p" id="wanVlan8021p">
- <option value="-1" selected>(None)</option>
- <option value="0">0</option>
- <option value="1">1</option>
- <option value="2">2</option>
- <option value="3">3</option>
- <option value="4">4</option>
- <option value="5">5</option>
- <option value="6">6</option>
- <option value="7">7</option>
+ <option value="-1" selected>None</option>
+ <option value="0">0</option>
+ <option value="1">1</option>
+ <option value="2">2</option>
+ <option value="3">3</option>
+ <option value="4">4</option>
+ <option value="5">5</option>
+ <option value="6">6</option>
+ <option value="7">7</option>
</select></td>
</tr>
</table>
<tr>
<td><label>Physical LAN port:</label></td>
<td><select name="lanIfcName" id="lanIfcName">
- <option value="" selected>(None)</option>
+ <option value="" selected>None</option>
<script type="text/javascript">
<!-- hide
{
interfaceInfo = '<%ejGetOther(bridgeInterfaceInfo, all)%>';
var interfaces = interfaceInfo.split('|');
interfaces.sort();
+ glbDisplayPhysicalPort = true;
for ( i = 0; i < interfaces.length; i++ ) {
dispName = getUNameByLName(brdId + '|' + interfaces[i]);
if (dispName.indexOf('nas_') != -1)
<td><label for="srcmask">Subnet mask:</label></td>
<td><input type='text' size="20" name="srcmask" id="srcmask"></td>
</tr>
+ <tr id="tblItmSrcMacAddr" style="display: none">
+ <td><label>Source MAC address:</label></td>
+ <td><input type="text" size="20" name="srcmacaddr" id="srcmacaddr" maxlength="17"></td>
+ </tr>
+ <tr id="tblItmSrcMacMask" style="display: none">
+ <td><label>Source MAC mask:</label></td>
+ <td><input type="text" size="20" name="srcmacmask" id="srcmacmask" maxlength="17"></td>
+ </tr>
<tr><th align="left" colspan="2">Destination</th></tr>
<tr>
<td><label for="dstmask">Subnet mask:</label></td>
<td><input type='text' size="20" name="dstmask" id="dstmask"></td>
</tr>
+ <tr id="tblItmDstMacAddr" style="display: none">
+ <td><label>Destination MAC address:</label></td>
+ <td><input type="text" size="20" name="dstmacaddr" id="dstmacaddr" maxlength="17"></td>
+ </tr>
+ <tr id="tblItmDstMacMask" style="display: none">
+ <td><label>Destination MAC mask:</label></td>
+ <td><input type="text" size="20" name="dstmacmask" id="dstmacmask" maxlength="17"></td>
+ </tr>
</table>
<p id="id8021p"><label>802.1p priority:</label>
</body>
</html>
+