555 lines
17 KiB
HTML
555 lines
17 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 4.0//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>Outbound client</title>
|
|
<meta name="Copyright" content="Copyright (c) 2004 by IBM Corporation">
|
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
|
<!-- US Government Users Restricted Rights -->
|
|
<!-- Use, duplication or disclosure restricted by -->
|
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
|
|
|
<!--
|
|
----------------------------------------------------------------------------
|
|
START_DESCRIPTION
|
|
Page Function: Collect client name and definition to apply to this policy.
|
|
|
|
Stored Values:
|
|
[myClientName](parent.hidden.clientInfo[clientNum][0])[any set of alpha characters]
|
|
[theIP](parent.hidden.clientInfo[clientNum][1]) [any valid IP address]
|
|
|
|
|
|
Next and Back:
|
|
[Next]:rzalladvqos13.htm
|
|
[Back]:rzalladvqos2.htm
|
|
END_DESCRIPTION
|
|
----------------------------------------------------------------------------
|
|
-->
|
|
|
|
<LINK rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
|
<script language = "Javascript" src = "../rzahg/iccommon.js"></script>
|
|
<script language="Javascript" type="text/javascript">
|
|
|
|
|
|
//START NON-TRANSLATABLE
|
|
var subnettype
|
|
var myClientName
|
|
//END NON-TRANSLATABLE
|
|
|
|
|
|
|
|
var error1 = "Segment must be between 0 and 255"
|
|
var error2 = "The first segment of your IP address must be greater than 0"
|
|
var error3 = "You must enter a valid client name"
|
|
var error13 = "You entered a client name of "
|
|
var error14 = ", which has already been used."
|
|
var error5 = "Segements cannot be blank values and must be a positive Integer between 0 and 256"
|
|
var error6 = "The first segment must be larger than 1"
|
|
var error7 = "No segement can be greater than 255"
|
|
var error8 = "Each segment must be an integer."
|
|
var error9 = "Segements cannot be blank values and must be a positive Integer between 0 and 256"
|
|
var error10 = "The first segment of an IP address must be larger than 1"
|
|
var error11 = "No segement can be greater than 255"
|
|
var error12 = "Each segment must be an integer."
|
|
var message1 = "All IP addresses"; // 8/27 - LJW
|
|
|
|
|
|
//START NON-TRANSLATABLE
|
|
clientNum = parent.hidden.retClientNumber()
|
|
|
|
var client = true;
|
|
var ip = true;
|
|
var goodname = true;
|
|
|
|
function onBack() {
|
|
|
|
window.location = "rzalladvqos2.htm";
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function onNext(){
|
|
|
|
|
|
var theIP="";
|
|
if (checkip() && checkName()){ //check to make sure form is filled out
|
|
|
|
//else{
|
|
|
|
if ( document.allclients.radio1.checked == true ) {
|
|
theIP = message1;
|
|
}
|
|
//above if added 8/26 by LJW
|
|
|
|
else if ( document.clients.myradio.checked == true ) { //static ip address selected
|
|
if ( isNS && !isNS6 ) {
|
|
theIP = document.ipstatic.document.ipstaticForm.static1.value + "." + document.ipstatic.document.ipstaticForm.static2.value + "." + document.ipstatic.document.ipstaticForm.static3.value + "." + document.ipstatic.document.ipstaticForm.static4.value
|
|
}
|
|
else{theIP = document.ipstaticForm.static1.value + "." + document.ipstaticForm.static2.value + "." + document.ipstaticForm.static3.value + "." + document.ipstaticForm.static4.value
|
|
}
|
|
}
|
|
|
|
else{ //range of ips
|
|
if ( isNS && !isNS6 ) {
|
|
seg1 = document.iprange.document.iprangeForm.range1a.value + "." + document.iprange.document.iprangeForm.range1b.value + "." + document.iprange.document.iprangeForm.range1c.value + "." + document.iprange.document.iprangeForm.range1d.value
|
|
seg2 = document.iprange.document.iprangeForm.range2a.value + "." + document.iprange.document.iprangeForm.range2b.value + "." + document.iprange.document.iprangeForm.range2c.value + "." + document.iprange.document.iprangeForm.range2d.value
|
|
theIP = seg1 + "-" + seg2
|
|
}
|
|
else{
|
|
seg1 = document.iprangeForm.range1a.value + "." + document.iprangeForm.range1b.value + "." + document.iprangeForm.range1c.value + "." + document.iprangeForm.range1d.value
|
|
seg2 = document.iprangeForm.range2a.value + "." + document.iprangeForm.range2b.value + "." + document.iprangeForm.range2c.value + "." + document.iprangeForm.range2d.value
|
|
}
|
|
|
|
theIP = seg1 + "-" + seg2
|
|
|
|
}
|
|
|
|
parent.hidden.clientInfo[clientNum][0] = document.clientnameform.clientname.value //storing clientname
|
|
parent.hidden.clientInfo[clientNum][1] = theIP
|
|
|
|
|
|
//}
|
|
|
|
window.location = "rzalladvqos13.htm"; //change to the next panel
|
|
|
|
}
|
|
|
|
|
|
}
|
|
/* end of the onNext function */
|
|
|
|
|
|
function checkName(){
|
|
|
|
//locating for duplicate client names
|
|
clientLength = parent.hidden.retClientLength();
|
|
myClientName = document.clientnameform.clientname.value
|
|
|
|
for ( var i=0; i<clientLength; i++ ) {
|
|
|
|
scanApp = parent.hidden.clientInfo[i][0];
|
|
|
|
if ( (scanApp == myClientName) && (clientNum != i)) {
|
|
if ( myClientName != '' ) { //found a duplicate name that isnt blank
|
|
alert(error13 + myClientName + error14)
|
|
}
|
|
else if ( myClientName == '' ) {
|
|
alert(error3) //no client name
|
|
}
|
|
|
|
|
|
document.clientnameform.clientname.focus()
|
|
return false;
|
|
break;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/* if ( document.clientnameform.clientname.value == null || document.clientnameform.clientname.value == '' ) {//checking for a non-blank client name
|
|
alert(error3) //no client name
|
|
alert("gotcha");
|
|
document.clientnameform.clientname.focus()
|
|
return false;
|
|
} */
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function clearIt(whichForm) {
|
|
if ( whichForm == 1 ) {
|
|
for ( var i=4; i<12; i++ ) {
|
|
document.clients.elements[i].value = "";
|
|
}
|
|
|
|
}
|
|
else {
|
|
for ( var i=0; i<4; i++ ) {
|
|
document.clients.elements[i].value = "";
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
function hideIt() { //hides the iprange form; called onload
|
|
MM_showHideLayers('iprange','','hide');
|
|
MM_showHideLayers('ipstatic','','hide');
|
|
|
|
|
|
}
|
|
|
|
function changeLayer(layershow,layerhide) { //switches layers by hiding them
|
|
MM_showHideLayers(layershow,'','show');
|
|
MM_showHideLayers(layerhide,'','hide');
|
|
|
|
}
|
|
|
|
function checkip() { //syntax checking on IP address
|
|
|
|
if ( document.allclients.radio1.checked == true ) {return true;}//added ljw 8/26
|
|
|
|
if ( document.clients.myradio.checked == true ) { //checking single ip here
|
|
for ( var i=0; i<4; i++ ) {
|
|
|
|
if ( isNS && !isNS6 ) { //for netscrape
|
|
theSegment = document.ipstatic.document.ipstaticForm.elements[i].value
|
|
}
|
|
else{theSegment = document.ipstaticForm.elements[i].value}
|
|
|
|
// checking the segment for validity
|
|
if ( theSegment == '' || theSegment == null || isNaN(theSegment)) { //blank segments
|
|
alert(error5)
|
|
if ( isNS && !isNS6 ) {
|
|
document.ipstatic.document.ipstaticForm.elements[i].focus()
|
|
}
|
|
else {document.ipstaticForm.elements[i].focus()}
|
|
|
|
//var bad = false;
|
|
return false;
|
|
break;}
|
|
|
|
if ( i == 0 && theSegment <= 1 ) { //segment 1 is less than 0
|
|
alert(error6)
|
|
if ( isNS && !isNS6 ) {
|
|
document.ipstatic.document.ipstaticForm.elements[0].focus()
|
|
}
|
|
else{document.ipstaticForm.elements[0].focus()}
|
|
|
|
//var bad = false;
|
|
return false;
|
|
break;
|
|
|
|
}
|
|
|
|
if ( theSegment > 255 ) { //any segment is greater than 255
|
|
alert(error7)
|
|
if ( isNS && !isNS6 ) {
|
|
document.ipstatic.document.ipstaticForm.elements[i].focus()
|
|
}
|
|
else {document.ipstaticForm.elements[i].focus()}
|
|
|
|
//var bad = false;
|
|
return false;
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
positive = isPosInteger(theSegment)
|
|
if ( !positive ) {
|
|
alert(error8)
|
|
if ( isNS && !isNS6 ) {
|
|
document.ipstatic.document.ipstaticForm.elements[i].focus()
|
|
}
|
|
else {document.ipstaticForm.elements[i].focus()}
|
|
|
|
//var bad = false;
|
|
return false;
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
return true;
|
|
|
|
} // done checking single IP
|
|
|
|
/************************ Checking range ************************/
|
|
|
|
else{ //check IP range for validity
|
|
|
|
for ( var i=0; i<8; i++ ) {
|
|
if ( isNS && !isNS6 ) { //for netscrape
|
|
theSegment = document.iprange.document.iprangeForm.elements[i].value
|
|
}
|
|
else{theSegment = document.iprangeForm.elements[i].value}
|
|
|
|
|
|
if ( theSegment == '' || theSegment == null || isNaN(theSegment)) { //blank segments
|
|
alert(error9)
|
|
if ( isNS && !isNS6 ) {
|
|
document.iprange.document.iprangeForm.elements[i].focus()
|
|
}
|
|
else {document.iprangeForm.elements[i].focus()}
|
|
|
|
//var bad = false;
|
|
return false;
|
|
break;}
|
|
|
|
if ( (i == 0 && theSegment <= 1) || (i == 4 && theSegment <= 1) ) { //segment 1 is less than 0
|
|
alert(error10)
|
|
if ( isNS && !isNS6 ) {
|
|
document.iprange.document.iprangeForm.elements[i].focus()
|
|
}
|
|
else{document.iprangeForm.elements[i].focus()}
|
|
|
|
//var bad = false;
|
|
return false;
|
|
break;
|
|
|
|
}
|
|
|
|
if ( theSegment > 255 ) { //any segment is greater than 255
|
|
alert(error11)
|
|
if ( isNS && !isNS6 ) {
|
|
document.iprange.document.iprangeForm.elements[i].focus()
|
|
}
|
|
else {document.iprangeForm.elements[i].focus()}
|
|
|
|
//var bad = false;
|
|
return false;
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
positive = isPosInteger(theSegment) //checking for a positive integer
|
|
if ( !positive ) {
|
|
alert(error12)
|
|
if ( isNS && !isNS6 ) {
|
|
document.iprange.document.iprangeForm.elements[i].focus()
|
|
}
|
|
else {document.iprangeForm.elements[i].focus()}
|
|
|
|
//var bad = false;
|
|
return false;
|
|
break;
|
|
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
function isPosInteger(theSegment) { //checking for positive integer
|
|
|
|
theSegement = theSegment.toString(); //is there a reason that segment is spelled -segement- in this location.,..may this be the reason that the blank name field does not produce an error when the user selects NEXT?
|
|
|
|
for ( var i=0; i<theSegment.length; i++ ) {
|
|
var onechar = theSegment.charAt(i)
|
|
if ( onechar < "0" || onechar > "9" ) {
|
|
return false;
|
|
}
|
|
|
|
|
|
}
|
|
return true;
|
|
}
|
|
|
|
//Obtain name of HTML file in parent frame.
|
|
var parentDir = parent.window.location.href.substring(0,location.href.lastIndexOf('/')+1);
|
|
var parentUrl = parent.window.location.href.substring(parentDir.length,parent.window.location.href.length+1);
|
|
if (parentUrl.indexOf("#") >= 0) { parentUrl = parentUrl.substring(0,parentUrl.indexOf("#"));}
|
|
|
|
function restoreValues() {
|
|
//Is the hidden frame already loaded with the correct html?
|
|
if (parentUrl != "rzalladvqoswelcome.htm") {
|
|
window.location = "rzalladvqoswelcome.htm"; //load advisor frameset
|
|
return;
|
|
} else {
|
|
//Obtain name of HTML file in hidden frame.
|
|
var hiddenDir = parent.hidden.window.location.href.substring(0,location.href.lastIndexOf('/')+1);
|
|
var hiddenUrl = parent.hidden.window.location.href.substring(hiddenDir.length,parent.hidden.window.location.href.length+1);
|
|
if (hiddenUrl.indexOf("#") >= 0) { hiddenUrl = hiddenUrl.substring(0,hiddenUrl.indexOf("#"));}
|
|
if (hiddenUrl != "rzalladvqoshidden.htm") {
|
|
//Correct HTML not loaded, load it
|
|
parent.hidden.window.location = "rzalladvqoshidden.htm";
|
|
} else { //already loaded
|
|
restoreValues2();
|
|
}
|
|
}
|
|
}
|
|
|
|
function restoreValues2() {
|
|
|
|
clearIPFields();
|
|
var segmentNum = 0
|
|
var segment = ''
|
|
prevClientName = parent.hidden.clientInfo[clientNum][0] //restoring clientname if it exists
|
|
if ( prevClientName != '' ) {
|
|
document.clientnameform.clientname.value = prevClientName
|
|
}
|
|
|
|
|
|
prevIP = parent.hidden.clientInfo[clientNum][1]
|
|
|
|
if ( prevIP != '' ) {
|
|
//staticIP = isStatic(prevIP) //does the IP address have a '-' in it?
|
|
|
|
kindIP = iptype(prevIP) //ljw 8/26
|
|
if ( kindIP == "all" ) { //ljw 8/26
|
|
document.allclients.radio1.checked = true;//ljw 8/26
|
|
|
|
}
|
|
|
|
else if ( kindIP == "static" ) { //dealing with a static ip here
|
|
var count = 0;
|
|
changeLayer('ipstatic','iprange');document.clients.myradio.checked = true;document.clients2.radio2.checked = false;document.allclients.radio1.checked = false;//added ljw 8/26
|
|
|
|
while ( count != prevIP.length ) {
|
|
var onechar = prevIP.charAt(count)
|
|
if ( onechar != '.' ) {
|
|
if ( isNS && !isNS6 ) {
|
|
document.ipstatic.document.ipstaticForm.elements[segmentNum].value = document.ipstatic.document.ipstaticForm.elements[segmentNum].value + onechar
|
|
}
|
|
else{document.ipstaticForm.elements[segmentNum].value = document.ipstaticForm.elements[segmentNum].value + onechar}
|
|
}
|
|
else {segmentNum++}
|
|
count++;
|
|
}
|
|
}
|
|
|
|
|
|
else { //dealing with an ip range here
|
|
|
|
var count = 0;
|
|
changeLayer('iprange','ipstatic');document.clients.myradio.checked = false;document.clients2.radio2.checked = true;document.allclients.radio1.checked = false;//edited by ljw 8/26
|
|
|
|
while ( count != prevIP.length ) {
|
|
var onechar = prevIP.charAt(count)
|
|
if ( onechar != '.' && onechar != '-' ) {
|
|
if ( isNS && !isNS6 ) {
|
|
document.iprange.document.iprangeForm.elements[segmentNum].value = document.iprange.document.iprangeForm.elements[segmentNum].value + onechar
|
|
}
|
|
else{document.iprangeForm.elements[segmentNum].value = document.iprangeForm.elements[segmentNum].value + onechar}
|
|
}
|
|
else {segmentNum++}
|
|
count++;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
function isStatic(prevIP) {
|
|
|
|
dash = prevIP.indexOf('-')
|
|
if ( dash >= 0 ) {
|
|
return false;
|
|
}
|
|
else {return true;}
|
|
|
|
}
|
|
|
|
function iptype(prevIP) {//added ljw 8/26
|
|
dash = prevIP.indexOf('-')
|
|
if ( dash >= 0 ) {
|
|
return "range";
|
|
}
|
|
else if ( prevIP.indexOf('.') >= 0 ) {
|
|
return "static";
|
|
}
|
|
else {return "all";}
|
|
|
|
}
|
|
|
|
function clearIPFields() {
|
|
|
|
//clear static fields
|
|
for ( var i=0; i<4; i++ ) {
|
|
if ( isNS && !isNS6 ) {
|
|
document.ipstatic.document.ipstaticForm.elements[i].value = ''
|
|
}
|
|
else{document.ipstaticForm.elements[i].value = ''
|
|
}
|
|
}
|
|
|
|
|
|
//clear range fields
|
|
|
|
for ( var i=0; i<8; i++ ) {
|
|
if ( isNS && !isNS6 ) {
|
|
document.iprange.document.iprangeForm.elements[i].value = ''
|
|
}
|
|
else{document.iprangeForm.elements[i].value = ''}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
//END NON-TRANSLATABLE
|
|
|
|
|
|
</script>
|
|
|
|
</head>
|
|
|
|
|
|
<BODY onload="hideIt();restoreValues()">
|
|
<h2>QoS planning advisor: Clients </h2>
|
|
<P>You need to determine what group of users is experiencing network problems, or what group of users is generating excessive network traffic. For example, assume that administration reported network problems. Clients are receiving unpredictable delivery of critical data. In this first policy, you could define the group of users that are generating excessive traffic. Then you could create this policy to limit their applications. As a result, the network would have more space for other mission-critical applications.</P>
|
|
<p>Policies are not just created to control client traffic; they can also be created to control applications. If you are using this approach, you need to decide what users will be using the applications you want to enhance or limit. The wizard allows you to define a client in multiple ways. If you do not want to specify a client, you should select Any IP address. </p>
|
|
<p>Specify the group's IP address information. Each segment of a valid IP address must be an integer between 0 and 255. </p>
|
|
|
|
<form name="allclients">
|
|
<input type="radio" name="radio1" id="myradio1" onClick="document.clients2.radio2.checked = false;document.clients.myradio.checked = false;hideIt();" checked>
|
|
<b><label for="myradio1">Any IP address</label></b><br>
|
|
</form>
|
|
|
|
<form name="clients">
|
|
<input type="radio" name="myradio" id="myradio1" onClick="changeLayer('ipstatic','iprange');document.clients2.radio2.checked = false;document.allclients.radio1.checked = false;">
|
|
<b><label for="myradio1">IP address</label></b><br>
|
|
</form>
|
|
|
|
<div id="ipstatic" style="position:relative;" >
|
|
<form name="ipstaticForm">
|
|
|
|
<input type="text" name="static1" id="myradio1" size="3" maxlength="3">
|
|
.
|
|
<INPUT TYPE="text" SIZE=3 MAXLENGTH=3 NAME="static2" id="myradio1">
|
|
. <INPUT TYPE="text" SIZE=3 MAXLENGTH=3 NAME="static3" id="myradio1">
|
|
. <INPUT TYPE="text" SIZE=3 MAXLENGTH=3 NAME="static4" id="myradio1">
|
|
</form>
|
|
<p>
|
|
</div>
|
|
<form name="clients2">
|
|
<input type="radio" name="radio2" id="myradio2" value="range" onClick="changeLayer('iprange','ipstatic');document.clients.myradio.checked = false;document.allclients.radio1.checked = false;">
|
|
<b><label for="myradio2">IP address range</label></b>
|
|
<p>
|
|
</form>
|
|
<div id="iprange" style="position: relative;">
|
|
<form name="iprangeForm">
|
|
|
|
|
|
<INPUT TYPE="text" SIZE=3 MAXLENGTH=3 NAME="range1a" id="myradio2">
|
|
. <INPUT TYPE="text" SIZE=3 MAXLENGTH=3 NAME="range1b" id="myradio2">
|
|
. <INPUT TYPE="text" SIZE=3 MAXLENGTH=3 NAME="range1c" id="myradio2">
|
|
. <INPUT TYPE="text" SIZE=3 MAXLENGTH=3 NAME="range1d" id="myradio2">
|
|
|
|
-
|
|
|
|
<INPUT TYPE="text" SIZE=3 MAXLENGTH=3 NAME="range2a" id="myradio2">
|
|
. <INPUT TYPE="text" SIZE=3 MAXLENGTH=3 NAME="range2b" id="myradio2">
|
|
. <INPUT TYPE="text" SIZE=3 MAXLENGTH=3 NAME="range2c" id="myradio2">
|
|
. <INPUT TYPE="text" SIZE=3 MAXLENGTH=3 NAME="range2d" id="myradio2">
|
|
</form>
|
|
</div>
|
|
|
|
<P><label for="clientname1">Enter an identifying name for the above address group, such as <tt>Development</tt>.</label></p>
|
|
<form name="clientnameform">
|
|
<INPUT TYPE="text" SIZE=15 MAXLENGTH=25 NAME="clientname" id="clientname1"><p></p>
|
|
|
|
<center>
|
|
<input name=submit type="button" value="<< Back " onClick="onBack()">
|
|
<input name=submit type="button" value=" Next >>" onClick="onNext(this.form)">
|
|
</center>
|
|
</form>
|
|
|
|
|
|
</BODY>
|
|
|
|
</html>
|
|
|