176 lines
12 KiB
HTML
176 lines
12 KiB
HTML
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
<!DOCTYPE html
|
||
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
|
<html lang="en-us" xml:lang="en-us">
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
|
<meta name="security" content="public" />
|
||
|
<meta name="Robots" content="index,follow" />
|
||
|
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
|
||
|
<meta name="DC.Type" content="concept" />
|
||
|
<meta name="DC.Title" content="QoS APIs" />
|
||
|
<meta name="abstract" content="You can read this topic to learn about protocols, APIs, and requirements for a router that is enabled for the ReSerVation Protocol (RSVP). The current quality of service (QoS) APIs include the RAPI API, the qtoq socket API, the sendmsg() API, and the monitor APIs." />
|
||
|
<meta name="description" content="You can read this topic to learn about protocols, APIs, and requirements for a router that is enabled for the ReSerVation Protocol (RSVP). The current quality of service (QoS) APIs include the RAPI API, the qtoq socket API, the sendmsg() API, and the monitor APIs." />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzak8what_is.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzak8qtoq.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzak8qtoq_connectionless.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzak8apis.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzak8intserv.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzak8traffic_control.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="../apis/unix15.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzak8example_3.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzak8equipment.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzak8wizards.htm" />
|
||
|
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
|
||
|
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
|
||
|
<meta name="DC.Format" content="XHTML" />
|
||
|
<meta name="DC.Identifier" content="rzak8rsvp" />
|
||
|
<meta name="DC.Language" content="en-us" />
|
||
|
<!-- 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. -->
|
||
|
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
|
||
|
<link rel="stylesheet" type="text/css" href="./ic.css" />
|
||
|
<title>QoS APIs</title>
|
||
|
</head>
|
||
|
<body id="rzak8rsvp"><a name="rzak8rsvp"><!-- --></a>
|
||
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
||
|
<h1 class="topictitle1">QoS APIs</h1>
|
||
|
<div><p>You can read this topic to learn about protocols, APIs, and requirements
|
||
|
for a router that is enabled for the ReSerVation Protocol (RSVP). The current
|
||
|
quality of service (QoS) APIs include the RAPI API, the qtoq
|
||
|
socket API, the sendmsg() API, and the monitor APIs.</p>
|
||
|
<p>Most QoS policies require the use of an API. The following APIs might be
|
||
|
used in conjunction with either a differentiated service or integrated service
|
||
|
policies. There are also a number of APIs to use with the QoS monitor.</p>
|
||
|
<ul><li><a href="#rzak8rsvp__rzak8intapi">Integrated service APIs</a></li>
|
||
|
<li><a href="#rzak8rsvp__rzak8diffapi">Differentiated service APIs</a></li>
|
||
|
<li><a href="#rzak8rsvp__rzak8monitorapi">Monitor APIs</a></li>
|
||
|
</ul>
|
||
|
<div class="section" id="rzak8rsvp__rzak8intapi"><a name="rzak8rsvp__rzak8intapi"><!-- --></a><h4 class="sectiontitle">Integrated service APIs</h4><p>The RSVP,
|
||
|
along with the RAPI APIs or qtoq QoS sockets APIs, performs your integrated
|
||
|
service reservation. Every node that your traffic travels through must have
|
||
|
the ability to use RSVP. The ability to carry out integrated services policies
|
||
|
is often referred to as <em>RSVP-enabled</em>. The traffic control functions
|
||
|
can be used to determine which router functions are needed to use RSVP.</p>
|
||
|
<p>RSVP
|
||
|
is used to create an RSVP reservation in all the network nodes along your
|
||
|
traffic's pathway. It maintains this reservation long enough to provide your
|
||
|
policies requested services. The reservation defines the handling and bandwidth
|
||
|
that the data in this conversation will require. The network nodes each agree
|
||
|
to provide the data handling defined in the reservation.</p>
|
||
|
<p>RSVP is a simple
|
||
|
protocol in that reservations are only made in one direction (from the receiver).
|
||
|
For more complex connections, such as audio and video conferences, each sender
|
||
|
is also a receiver. In this case, you must set up two RSVP sessions for each
|
||
|
side.</p>
|
||
|
<p>In addition to RSVP-enabled routers, you need to have RSVP-enabled
|
||
|
applications to use integrated services. Because the iSeries™ server does not have any RSVP-enabled
|
||
|
applications at this time, you will need to write the applications using the
|
||
|
RAPI API or the qtoq QoS socket APIs. This will enable the applications to
|
||
|
use the RSVP protocol. If you want an in-depth explanation, there are many
|
||
|
sources that explain these models, their operation, and message handling.
|
||
|
You need a thorough understanding of the RSVP protocol and the contents of
|
||
|
Internet RFC 2205.</p>
|
||
|
<p><strong>qtoq socket APIs</strong></p>
|
||
|
<p>You can use the qtoq
|
||
|
QoS socket APIs to simplify the work required to use the RSVP protocol on
|
||
|
the iSeries system.
|
||
|
The qtoq socket APIs call the RAPI APIs and perform some of the more complex
|
||
|
tasks. The qtoq socket APIs are not as flexible as the RAPI APIs, but they
|
||
|
provide the same functions with less effort. The no-signal versions of the
|
||
|
APIs allow you to write the following applications:</p>
|
||
|
<ul><li>An application that will load an RSVP rule on the server.</li>
|
||
|
<li>An application that only requires the server-side application (of the
|
||
|
TCP/IP conversation) to be RSVP-enabled.</li>
|
||
|
</ul>
|
||
|
<p>The RSVP signaling is done automatically on behalf of the client side.</p>
|
||
|
<p>See
|
||
|
the QoS API Connection oriented functional flow page, or the QoS API Connectionless
|
||
|
functional flow page for typical QoS API flow for an application/protocol
|
||
|
using connection oriented or connectionless qtoq QoS sockets.</p>
|
||
|
</div>
|
||
|
<div class="section" id="rzak8rsvp__rzak8diffapi"><a name="rzak8rsvp__rzak8diffapi"><!-- --></a><h4 class="sectiontitle">Differentiated service APIs</h4><div class="note"><span class="notetitle">Note:</span> The
|
||
|
sendmsg() API is used for certain differentiated service policies that define
|
||
|
a specific application token. When you create a differentiated service spolicy,
|
||
|
you can (optionally) provide application characteristics (token and priority).
|
||
|
This is an advanced policy definition, and if not used, this API can be ignored.
|
||
|
However, remember that routers and other servers along the network still need
|
||
|
to be aware of differentiated service.</div>
|
||
|
<p>If you decide to use an application
|
||
|
token in a differentiated service policy, the application providing this information
|
||
|
must be specifically coded to use the sendmsg() API. This is done by the application
|
||
|
programmer. The application's documentation must provide valid values (token
|
||
|
and priority), which the QoS administrator will use in the differentiated
|
||
|
service policy. The differentiated service policy then applies its own priority
|
||
|
and classification to traffic which matches the token set in the policy. If
|
||
|
the application does not have values which match the values set in the policy,
|
||
|
either the application must be changed, or you need to use different application
|
||
|
data parameters for the differentiated service policy.</p>
|
||
|
<p>The following
|
||
|
information briefly describes the server data parameters: application token
|
||
|
and application priority.</p>
|
||
|
<p><strong>What is an application token?</strong> </p>
|
||
|
<p>An <dfn class="term">application
|
||
|
token</dfn> is a Uniform Resource Identifier (URI) that represents a defined
|
||
|
resource. The token you specify in the QoS policy is matched against the token
|
||
|
provided by the outbound application. The application provides the token value
|
||
|
by using the sendmsg() API. If the tokens match, the application traffic is
|
||
|
included in the differentiated service policy.</p>
|
||
|
<p><strong>What is an application
|
||
|
priority?</strong></p>
|
||
|
<p> The application priority you specify is matched against
|
||
|
the application priority provided by the outbound application. The application
|
||
|
provides the priority value by using the sendmsg() API. If the priorities
|
||
|
match, the application traffic is included in the differentiated service policy.
|
||
|
All traffic defined in the differentiated service policy will still receive
|
||
|
the priority given to the entire policy.</p>
|
||
|
<p>For more information about
|
||
|
the DiffServ policy type, see <a href="rzak8diffserv.htm">Differentiated service</a>.</p>
|
||
|
</div>
|
||
|
<div class="section" id="rzak8rsvp__rzak8monitorapi"><a name="rzak8rsvp__rzak8monitorapi"><!-- --></a><h4 class="sectiontitle">Monitor APIs</h4><p>The Resource Reservation
|
||
|
Setup Protocol APIs include the monitor APIs. The APIs that apply to the monitor
|
||
|
will have the word <dfn class="term">monitor</dfn> in the title. For example, <em>QgyOpenListQoSMonitorData</em>.
|
||
|
The following list briefly describes each monitor API:</p>
|
||
|
<ul><li>QgyOpenListQoSMonitorData (Open List of QoS Monitor Data) gathers information
|
||
|
related to QoS services.</li>
|
||
|
<li>QtoqDeleteQoSMonitorData (Delete QoS Monitor Data) deletes one or more
|
||
|
sets of collected QoS monitor data.</li>
|
||
|
<li>QtoqEndQoSMonitor (End QoS Monitor) stops gathering information related
|
||
|
to QoS services.</li>
|
||
|
<li>QtoqListSavedQoSMonitorData (List Saved QoS Monitor Data) returns a list
|
||
|
of all collected monitor data that was saved previously.</li>
|
||
|
<li>QtoqSaveQoSMonitorData (Save QoS Monitor Data) saves a copy of the collected
|
||
|
QoS monitor data for future use.</li>
|
||
|
<li>QtoqStartQoSMonitor (Start QoS Monitor) gathers information related to
|
||
|
QoS services.</li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div>
|
||
|
<ul class="ullinks">
|
||
|
<li class="ulchildlink"><strong><a href="rzak8qtoq.htm">QoS API connection-oriented functional flow</a></strong><br />
|
||
|
The server and client examples in this topic illustrate qtoq quality of service (QoS) socket APIs written for a connection-oriented functional flow.</li>
|
||
|
<li class="ulchildlink"><strong><a href="rzak8qtoq_connectionless.htm">QoS API connectionless functional flow</a></strong><br />
|
||
|
The server and client examples in this topic illustrate qtoq quality of service (QoS) socket APIs written for a connectionless flow.</li>
|
||
|
<li class="ulchildlink"><strong><a href="rzak8apis.htm">QoS sendmsg() API extensions</a></strong><br />
|
||
|
The sendmsg() function is used to send data, ancillary data, or a combination of these through a connected or unconnected socket.</li>
|
||
|
</ul>
|
||
|
|
||
|
<div class="familylinks">
|
||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzak8what_is.htm" title="If you are new to quality of service (QoS), you can read some basic QoS concepts. This will give you an overview of how QoS works and how QoS functions work together.">Concepts</a></div>
|
||
|
</div>
|
||
|
<div class="relconcepts"><strong>Related concepts</strong><br />
|
||
|
<div><a href="rzak8intserv.htm" title="The second type of outbound bandwidth policy you can create is an integrated service policy. Integrated service provides the capability for IP applications to request and reserve bandwidth using the ReSerVation Protocol (RSVP) and quality of service (QoS) APIs.">Integrated service</a></div>
|
||
|
<div><a href="rzak8traffic_control.htm" title="Traffic control functions only apply to integrated service and are not specific to iSeries.">Traffic control functions</a></div>
|
||
|
<div><a href="rzak8example_3.htm" title="If you need predictable delivery and still need to request a reservation, you also use an integrated service policy. This example uses a controlled load service.">Scenario: Predictable B2B traffic</a></div>
|
||
|
<div><a href="rzak8equipment.htm" title="The capabilities of your internal equipment and other equipment outside your network have enormous effects on quality of service (QoS) results.">Network hardware and software</a></div>
|
||
|
</div>
|
||
|
<div class="relref"><strong>Related reference</strong><br />
|
||
|
<div><a href="../apis/unix15.htm">RAPI API</a></div>
|
||
|
<div><a href="rzak8wizards.htm" title="To configure quality of service (QoS) policies, you must use the QoS wizards located in iSeries Navigator.">Configure QoS with wizards</a></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|