360 lines
18 KiB
HTML
360 lines
18 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>Quality of service planning worksheet</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: Displays the recommendations and notes to the customer. Gives the customer
|
|
instructions to go to the wizard for configuration.
|
|
|
|
Stored Values:
|
|
No stored values, uses previously stored values to create the planning table
|
|
|
|
Next and Back:
|
|
[Next]: no Next
|
|
[Back]: rzalladvqos70.htm
|
|
END_DESCRIPTION
|
|
----------------------------------------------------------------------------
|
|
-->
|
|
|
|
<LINK rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
|
</head>
|
|
<body>
|
|
|
|
|
|
|
|
|
|
<h2>Quality of service advisor: Planning worksheet</h2>
|
|
<!--<P><I>Uncomment directions for end use</I><P>-->
|
|
<p> Congratulations, you have completed the advisor. Use this worksheet to assist you through the quality of service wizards. The wizards will create the policies on your server. This worksheet gives you a general idea of what information you will need, based on your responses. Use the information below to create quality of service policies. While completing the wizard, you are asked for more information than is covered below; however, this advisor will cover most of the basic information needed. Navigate to the wizards through iSeries Navigator.</p>
|
|
<p><ol><li>In iSeries Navigator, expand <strong>My Connections</strong>.</li><li>Expand the iSeries server that you are using as your central system.<li>Expand <strong>Network</strong>.<li>Double-click <strong>IP Policies</strong>.<li>Right-click <strong>Quality of Service</strong>.<li>Select <strong>Configuration</strong>.</li> The Initial Configuration wizard will appear the first time you set up QoS policies on your system or the first time you set up policies after upgrading to a new release.<li>Complete the Initial Configuration wizard.</li> <li>On the QoS interface, right-click the type of policy you want to create: <strong>DiffServ</strong>, <strong>IntServ</strong>, or <strong>Inbound admission</strong>. See the data below to determine which policy type to create. <li>Select <strong>New Policy</strong>.</ol></p>
|
|
|
|
<script language="Javascript" type="text/javascript">
|
|
//START NON-TRANSLATABLE
|
|
//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("#"));}
|
|
|
|
//Is the hidden frame already loaded with the correct html?
|
|
if (parentUrl != "rzalladvqoswelcome.htm") {
|
|
window.location = "rzalladvqoswelcome.htm"; //load advisor frameset
|
|
} 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 != "rzalradvvpnhidden.htm") {
|
|
//Correct HTML not loaded, load it
|
|
parent.hidden.window.location = "rzalladvqoshidden.htm";
|
|
}
|
|
}
|
|
|
|
clientLength = parent.hidden.retClientLength()
|
|
var hasOutDiff = false;
|
|
var hasOutInt = false;
|
|
var hasInURI = false;
|
|
var hasInConnection = false;
|
|
//END NON-TRANSLATABLE
|
|
</script>
|
|
|
|
|
|
|
|
<script language="Javascript" type="text/javascript">
|
|
var folder = "<tr><td width='35%' headers='need'>iSeries Navigator folder and policy type:<\/td><td headers='possible'>"
|
|
var type = "<strong>Outbound bandwidth policies --> DiffServ <\/strong><\/td>"
|
|
var type2 = "<strong>Outbound bandwidth policies --> IntServ <\/strong><\/td>"
|
|
var type3 = "<strong>Inbound admission policies<\/strong><\/td>"
|
|
var wizard = "<tr><td headers='need'>Corresponding wizard in iSeries Navigator:<\/td><td headers='possible'>"
|
|
var name = "New DiffServ policy wizard <\/td>"
|
|
var name2 = "New IntServ policy wizard <\/td>"
|
|
var name3 = "New Inbound admission policy wizard <\/td>"
|
|
var sla2 = "You have a service-level agreement (SLA) with your ISP to ensure that the policies receive the requested priority. The QoS policy you create on the iSeries server enables traffic to receive priority throughout the network. It does not guarantee it and is dependent on your SLA. See <a href='../rzak8/rzak8sla.htm' TARGET='_blank'>service-level agreements<\/a> for more information. <\/td>"
|
|
var text1 = "<tr><td width='35%' headers='need'>Prerequisite:<\/td><td headers='possible'>"
|
|
var text2 = "See <a href='../rzak8/rzak8equipment.htm' TARGET='_blank'>network hardware and software<\/a> considerations for differentiated service policies. <\/td>"
|
|
var text3 = "<\/td><\/tr>"
|
|
var pname = "<tr><td class='tablesubheaderbar' headers='need'>New policy name:<\/td><td class='tablesubheaderbar' headers='possible'>"
|
|
var ptext = "Create a new policy. Assign a name to help you remember the purpose of the policy and enter the following information."
|
|
var text4 = "<tr><td headers='need'>Client name:<\/td><td headers='possible'>"
|
|
var text5 = "<tr><td headers='need'>Client definition:<p><strong>Note:<\/strong> In the wizard, you can define a client by all IP addresses, multiple client address ranges or address and subnet mask.<\/p><\/td><td headers='possible'>"
|
|
var text6 = "<tr><td headers='need'> DiffServ applications: <\/td><td headers='possible'>"
|
|
var text7 = "<tr><td headers='need'> DiffServ enabled routers:<\/td><td headers='possible'>"
|
|
var cos = "<tr><td headers='need'> Class of service:<\/td><td headers='possible'>"
|
|
var costext = "Select New to start the Class of Service wizard and enter the information below. The rate limits are just a few of the values used to create a class of service. Use the help associated to the wizard panels when needed."
|
|
var text8 = "<tr><td headers='need'> Per-hop behavior marking:<\/td><td headers='possible'>"
|
|
var text9 = "<tr><td headers='need'>Average rate limit:<\/td><td headers='possible'>"
|
|
var finish = "<p><strong>Note:<\/strong> Complete the class of service wizard and select Finish.<\/p>"
|
|
var avgDataRate = "Not applicable <\/td>"
|
|
var perflimit = "<tr><td headers='need'>Performance limit:<\/td><td headers='possible'>"
|
|
var yperf = "Select Yes. Besides average rate limit, there are several performance limits to enter."
|
|
var nperf = "Select No."
|
|
var diffrouters ="No diffserv routers - this is just a note. Your data traffic will still be sent, but it might not receive the expected priority. Most routers have basic class of service, but only newer routers will support expedited forwarding and assured forwarding per-hop behaviors.<\/td>"
|
|
var diffrouters2 ="Since you have diffserv routers, the data traffic should receive the expected priority.<\/td>"
|
|
var serveraddress = "<tr><td headers='need'> Local IP address:<\/td><td headers='possible'>"
|
|
var schedule = "<tr><td headers='need'> Schedule:<\/td><td headers='possible'>"
|
|
var stext = "Finally, you will be asked to enter the times and days that this policy should be active. Click Finish and update the server to make your policy active."
|
|
|
|
var tableopen = "<table width='650' border='0' cellspacing='0' cellpadding='2'>"
|
|
var tableopen2 = "<tr><th width='35%' CLASS='tablemainheaderbar' id='need'><strong>Information needed:<\/strong><\/th><th CLASS='tablemainheaderbar' id='possible'><strong>Possible response:<\/strong><\/th><\/tr>"
|
|
var tableclose = "<\/table>"
|
|
var tableopen3 = "<table width='650' cellspacing='0' cellpadding='2' border='1' frame='box' rules='all'>"
|
|
var tableclose2 = "<\/table>"
|
|
|
|
var port = "<p><strong>Note:<\/strong>One port or port range is allowed per policy. If you want to use multiple port ranges or a group of nonsequential ports, you must define them in seperate policies. <\/p>"
|
|
//START NON-TRANSLATABLE
|
|
var has
|
|
|
|
|
|
/* Dump all Outbound Diffserv policies */
|
|
for ( var i=0; i<clientLength; i++ ) {
|
|
direction = parent.hidden.clientInfo[i][11]
|
|
policyType = parent.hidden.clientInfo[i][14]
|
|
|
|
|
|
|
|
if ( direction == "outbound" && policyType == "differentiated" ) { //found an outbound diff serv client
|
|
|
|
if ( !hasOutDiff ) {
|
|
document.write(tableopen + tableopen2 + tableclose + tableopen3)
|
|
document.write(folder + type + text3);
|
|
document.write(wizard + name + text3);
|
|
document.write(text1 + sla2 + text3);
|
|
document.write(text1 + text2 + text3);
|
|
|
|
}
|
|
hasOutDiff = true;
|
|
|
|
document.write(pname + ptext +text3); //write policy name reminder
|
|
document.write(text4 + parent.hidden.clientInfo[i][0] + text3); //write client name
|
|
document.write(text5 + parent.hidden.clientInfo[i][1] + text3); //client definition or IP
|
|
|
|
for ( var j=0; j<parent.hidden.clientapps[i].length; j++ ) {//looking for applications
|
|
if ( parent.hidden.clientapps[i][j][0] != "" ) {
|
|
|
|
|
|
document.write(text6 + parent.hidden.clientapps[i][j][0] + ":" + parent.hidden.clientapps[i][j][1] + port + text3); //printing apps
|
|
}
|
|
else { break;}
|
|
}
|
|
|
|
|
|
document.write(serveraddress + parent.hidden.clientInfo[i][15] + text3); //write server address
|
|
|
|
|
|
if ( parent.hidden.clientInfo[i][5] == "no" ) {document.write(text7 + diffrouters + text3);} // write DIFFSERV router capable
|
|
else {document.write(text7 + diffrouters2 + text3);}
|
|
|
|
|
|
document.write(cos + costext + text3); //Warns that COS wizard starts
|
|
document.write(text8 + parent.hidden.clientInfo[i][9] + text3); //write PHB marking
|
|
|
|
|
|
if ( parent.hidden.clientInfo[i][8] == "" ) {
|
|
document.write(perflimit + nperf + text3);
|
|
document.write(text9 + avgDataRate + text3);
|
|
}
|
|
else {document.write(perflimit + yperf + text3);
|
|
document.write(text9 + parent.hidden.clientInfo[i][8] + finish + text3);}//write average data rate
|
|
|
|
document.write(schedule + stext + text3);//note about schedule
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
document.write(tableclose2);
|
|
|
|
//END NON-TRANSLATABLE
|
|
|
|
</script>
|
|
|
|
|
|
<P><br></p>
|
|
|
|
<script language="Javascript" type="text/javascript">
|
|
/* Dump all Outbound Intserv policies */
|
|
|
|
var text11 = "All the applications used in an integrated service policy will need to be enabled using the RAPI APIs or the QoS socket APIs. See <a href='../rzak8/rzak8rsvp.htm' TARGET='_blank'>QoS APIs<\/a> for a description and link to these APIs.<\/td>"
|
|
var text12 = "<tr><td width='35%' headers='need'>IntServ applications: <\/td><td headers='possible'>"
|
|
var text13 = "<tr><td headers='need'>RSVP enabled routers:<\/td><td headers='possible'>"
|
|
var text14 = "<tr><td headers='need'>Environment:<\/td><td headers='possible'>"
|
|
var textrsvp = "<strong>Note:<\/strong> In an integrated environment, you must have RSVP enabled routers to ensure that the reservation is successful.<\/td>"
|
|
var texthybrid = "<strong>Note:<\/strong> In a hybrid environment, the per-hop behavior marking will give the traffic some priority when it reaches routers or switches that cannot guarantee an RSVP connection.<\/td>"
|
|
var inttype = "<tr><td headers='need'>Integrated service type:<\/td><td headers='possible'>"
|
|
var tolerance = "View the application in the previous row 'IntServ application'. The policy you create for this application can apply to all protocols or a specific protocol. If your policy specifically supports the TCP protocol, use the following integrated service type when asked: <strong>Controlled load<\/strong>. If the protocol is not specifically TCP, this value will not be used.<\/td>"
|
|
var tolerance2 = "View the application in the previous row 'IntServ application'. The policy you create for this application can apply to all protocols or a specific protocol. If your policy specifically supports the TCP protocol, use the following integrated service type when asked: <strong>Guaranteed<\/strong>. If the protocol is not specifically TCP, this value will not be used.<\/td>"
|
|
|
|
|
|
//START NON-TRANSLATABLE
|
|
|
|
|
|
for ( var i=0; i<clientLength; i++ ) {
|
|
direction = parent.hidden.clientInfo[i][11]
|
|
policyType = parent.hidden.clientInfo[i][14]
|
|
|
|
if ( direction == "outbound" && policyType == "integrated" ) {
|
|
|
|
document.write(tableopen + tableopen2 + tableclose + tableopen3)
|
|
document.write(folder + type2 + text3);
|
|
document.write(wizard + name2 + text3);
|
|
document.write(text1 + sla2 + text3);
|
|
document.write(text1 + text11 + text3);
|
|
document.write(text1 + text2 + text3);
|
|
document.write(pname + ptext +text3); //write policy name reminder
|
|
document.write(text4 + parent.hidden.clientInfo[i][0] + text3);
|
|
document.write(text5 + parent.hidden.clientInfo[i][1] + text3);
|
|
|
|
|
|
for ( var j=0; j<parent.hidden.clientapps[i].length; j++ ) {
|
|
if ( parent.hidden.clientapps[i][j][0] != "" ) { //looking for applications
|
|
document.write(text12 + parent.hidden.clientapps[i][j][0] + ":" + parent.hidden.clientapps[i][j][1] + port + text3);
|
|
if ( parent.hidden.clientapps[i][j][3] == "T" ) {document.write(inttype + tolerance + text3);} //controlled
|
|
else {document.write(inttype + tolerance2 + text3);}//gaurenteed
|
|
|
|
}
|
|
else { break;}
|
|
}
|
|
|
|
document.write(serveraddress + parent.hidden.clientInfo[i][15] + text3);
|
|
|
|
|
|
if (parent.hidden.clientInfo[i][10] == "Integrated") {document.write(text13 + textrsvp + text3);}
|
|
else {document.write(text13 + texthybrid + text3);}
|
|
|
|
document.write(text14 + parent.hidden.clientInfo[i][10] + text3);
|
|
|
|
|
|
|
|
/* if ( parent.hidden.clientapps[i][j][3] == "T" ) {document.write(inttype + tolerance + text3);} //controlled
|
|
else {document.write(inttype + tolerance2 + text3);}//gaurenteed */
|
|
|
|
if ( parent.hidden.clientInfo[i][7] == "" ) {document.write(text8 + avgDataRate + text3);}
|
|
else {document.write(text8 + parent.hidden.clientInfo[i][7] + text3);}
|
|
|
|
if ( parent.hidden.clientInfo[i][8] == "" ) {document.write(text9 + avgDataRate + text3);}
|
|
else {document.write(text9 + parent.hidden.clientInfo[i][8] + text3);}
|
|
document.write(schedule + stext + text3);//note about schedule
|
|
hasOutInt = true;
|
|
}
|
|
|
|
}
|
|
|
|
document.write(tableclose2);
|
|
|
|
//END NON-TRANSLATABLE
|
|
|
|
</script>
|
|
<P><br></p>
|
|
|
|
<script language="Javascript" type="text/javascript">
|
|
/* Dump all Inbound policies by URI*/
|
|
|
|
var text16 = "<tr><td width='35%' headers='need'>URI name:<\/td><td headers='possible'>"
|
|
var text17 = "<tr><td headers='need'>URI definition:<\/td><td headers='possible'>"
|
|
var text18 = "<tr><td headers='need'>Applications: <\/td><td headers='possible'>"
|
|
var text19 = "<tr><td headers='need'>Average connection request rate:<\/td><td headers='possible'>"
|
|
var text20 = "<tr><td headers='need'>Request burst limit:<\/td><td headers='possible'>"
|
|
var text21 = "<tr><td headers='need'>Priority:<\/td><td headers='possible'>"
|
|
var note4 = "You have a configured HTTP server (powered by Apache) running on your iSeries.<\/td>"
|
|
var note3 = "You must enable the listen directive for FRCA in the Apache Web server configuration. The listen directive, which acts as a port, must be the same port as the application port defined in this URI policy. For more information, see <strong>New Inbound admission wizard<\/strong> within <a href='../rzak8/rzak8wizards.htm' TARGET='_blank'>Configure QoS with wizards.<\/a><\/td>"
|
|
var http = "HTTP: 80"
|
|
|
|
//START NON-TRANSLATABLE
|
|
|
|
|
|
|
|
|
|
for ( var i=0; i<clientLength; i++ ) {
|
|
direction = parent.hidden.clientInfo[i][11]
|
|
policyType = parent.hidden.clientInfo[i][12]
|
|
if ( direction == "inbound" && policyType == "uri" ) {
|
|
document.write(tableopen + tableopen2 + tableclose + tableopen3)
|
|
document.write(folder + type3 + text3);
|
|
document.write(wizard + name3 + text3);
|
|
document.write(text1 + note4 + text3);
|
|
document.write(text1 + note3 + text3);
|
|
document.write(pname + ptext +text3); //write policy name reminder
|
|
document.write(text4 + parent.hidden.clientInfo[i][0] + text3);
|
|
document.write(text5 + parent.hidden.clientInfo[i][1] + text3);
|
|
document.write(text16 + parent.hidden.clientInfo[i][16] + text3);
|
|
document.write(text17 + parent.hidden.clientInfo[i][2] + text3);
|
|
document.write(text18 + http);
|
|
//deleted due to panel addition number 21
|
|
/*for ( var j=0; j<parent.hidden.inboundapps[i].length; j++ ) {
|
|
if ( parent.hidden.inboundapps[i][j][0] != "" ) {document.write(text18 + http); }
|
|
else {break;}
|
|
}*/
|
|
|
|
document.write(serveraddress + parent.hidden.clientInfo[i][15] + text3);
|
|
document.write(cos + costext + text3); //Warns that COS wizard starts
|
|
document.write(text19 + parent.hidden.clientInfo[i][4] + text3);
|
|
document.write(text20 + parent.hidden.clientInfo[i][6] + text3);
|
|
document.write(text21 + parent.hidden.clientInfo[i][13] + finish + text3);
|
|
document.write(schedule + stext + text3);//note about schedule
|
|
hasInURI = true;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
document.write(tableclose2);
|
|
//END NON-TRANSLATABLE
|
|
</script>
|
|
|
|
<P><br></p>
|
|
<script language="Javascript" type="text/javascript">
|
|
/* Dump all Inbound policies by IP address */
|
|
|
|
//START NON-TRANSLATABLE
|
|
|
|
for ( var i=0; i<clientLength; i++ ) {
|
|
direction = parent.hidden.clientInfo[i][11]
|
|
policyType = parent.hidden.clientInfo[i][12]
|
|
|
|
if ( direction == "inbound" && policyType == "ipaddress" ) {
|
|
document.write(tableopen + tableopen2 + tableclose + tableopen3)
|
|
document.write(folder + type3 + text3);
|
|
document.write(wizard + name3 + text3);
|
|
document.write(pname + ptext +text3); //write policy name reminder
|
|
document.write(text4 + parent.hidden.clientInfo[i][0] + text3);
|
|
document.write(text5 + parent.hidden.clientInfo[i][1] + text3);
|
|
|
|
for ( var j=0; j<parent.hidden.inboundapps[i].length; j++ ) {
|
|
if ( parent.hidden.inboundapps[i][j][0] != "" ) {document.write(text18 + parent.hidden.inboundapps[i][j][0] + ":" +
|
|
parent.hidden.inboundapps[i][j][1] + port + text3); }
|
|
else {break;}
|
|
}
|
|
document.write(serveraddress + parent.hidden.clientInfo[i][15] + text3);
|
|
document.write(cos + costext + text3); //Warns that COS wizard starts
|
|
document.write(text19 + parent.hidden.clientInfo[i][4] + text3);
|
|
document.write(text20 + parent.hidden.clientInfo[i][6] + text3);
|
|
document.write(text21 + parent.hidden.clientInfo[i][13] + finish + text3);
|
|
document.write(schedule + stext + text3);//note about schedule
|
|
hasInConnection = true;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
document.write(tableclose2);
|
|
//END NON-TRANSLATABLE
|
|
</script>
|
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
</HTML>
|