ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzak8_5.4.0.1/rzak8qtoq_connectionless.htm

113 lines
8.0 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 API connectionless functional flow" />
<meta name="abstract" content="The server and client examples in this topic illustrate qtoq quality of service (QoS) socket APIs written for a connectionless flow." />
<meta name="description" content="The server and client examples in this topic illustrate qtoq quality of service (QoS) socket APIs written for a connectionless flow." />
<meta name="DC.Relation" scheme="URI" content="rzak8rsvp.htm" />
<meta name="DC.Relation" scheme="URI" content="../apis/qtoq_close.htm" />
<meta name="DC.Relation" scheme="URI" content="../apis/rapi_session.htm" />
<meta name="DC.Relation" scheme="URI" content="../apis/rapi_sender.htm" />
<meta name="DC.Relation" scheme="URI" content="../apis/rapi_getfd.htm" />
<meta name="DC.Relation" scheme="URI" content="../apis/rapi_getfd.htm" />
<meta name="DC.Relation" scheme="URI" content="../apis/qtoq_ioctl.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="rzak8qtoq_connectionless" />
<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 API connectionless functional flow</title>
</head>
<body id="rzak8qtoq_connectionless"><a name="rzak8qtoq_connectionless"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">QoS API connectionless functional flow</h1>
<div><p>The server and client examples in this topic illustrate qtoq quality
of service (QoS) socket APIs written for a connectionless flow.</p>
<p>When the QoS-enabled API functions are called for a connectionless flow
requesting that ReSerVation Protocol (RSVP) be initiated, additional functions
are initiated. These functions cause the QoS agents on the client and server
to set up the RSVP protocol for data flow between the client and server.</p>
<br /><img src="rzak8509.gif" alt="Client/server relationship" /><br /><p><strong>qtoq flow of events</strong>: The following sequence of socket calls provide
a description of the figure. It also describes the relationship between the
server and client application in a connectionless design. These are modifications
of the basic socket APIs.</p>
<div class="section" xml:lang="en-us" id="rzak8qtoq_connectionless__connectionlessserverside"><a name="rzak8qtoq_connectionless__connectionlessserverside"><!-- --></a><h4 class="sectiontitle">Server side</h4></div>
<div class="section" xml:lang="en-us" id="rzak8qtoq_connectionless__qtoq_ioctlforarulemarkednosignaling"><a name="rzak8qtoq_connectionless__qtoq_ioctlforarulemarkednosignaling"><!-- --></a><h4 class="sectiontitle">qtoq_ioctl()
API for a rule marked with no signaling</h4><ol><li>qtoq_ioctl() API sends a message to the QoS server, asking it to perform
admission control on the requested rule.</li>
<li>If the rule is acceptable, it calls a function that sends a message to
the QoS server requesting that the rule be loaded.</li>
<li>The QoS server then returns status to the caller indicating success or
failure of the request.</li>
<li>When the application has completed using the connection, it calls the
qtoq_close() function to close the connection.</li>
<li>The QoS server will delete the rule from the QoS manager, delete the QoS
session and perform whatever other action is needed.</li>
</ol>
</div>
<div class="section" xml:lang="en-us" id="rzak8qtoq_connectionless__qtoq_ioctlwithnormalrsvpsignaling"><a name="rzak8qtoq_connectionless__qtoq_ioctlwithnormalrsvpsignaling"><!-- --></a><h4 class="sectiontitle">qtoq_ioctl()
API with normal RSVP signaling</h4><ol><li>qtoq_ioctl() API sends message to the QoS server, requesting admission
control for the requested connection.</li>
<li>The QoS server calls rapi_session() to request a session be set up for
the rule and get the QoS session ID to be returned to the caller.</li>
<li>It calls rapi_sender() to initiate a PATH message back to the client.</li>
<li>It then calls rapi_getfd() to get file descriptor in order to wait for
QoS events.</li>
<li>The QoS server returns descriptor select(), QoS session ID and status
to the caller.</li>
<li>QoS server loads rule when the RESV message is received.</li>
<li>Application issues a qtoq_close() when the connection is completed.</li>
<li>The QoS server will delete the rule from the QoS manager, delete the QoS
session, and perform whatever other action is needed.</li>
</ol>
</div>
<div class="section" xml:lang="en-us" id="rzak8qtoq_connectionless__connectionlessclientside"><a name="rzak8qtoq_connectionless__connectionlessclientside"><!-- --></a><h4 class="sectiontitle">Client side</h4></div>
<div class="section" xml:lang="en-us" id="rzak8qtoq_connectionless__qtoq_ioctlnormalrsvpsignaling"><a name="rzak8qtoq_connectionless__qtoq_ioctlnormalrsvpsignaling"><!-- --></a><h4 class="sectiontitle">qtoq_ioctl()
API with normal RSVP signaling</h4><ol><li>qtoq_ioctl() API calls rapi_session() to request a session be set up for
the connection. The rapi_session() function requests admission control for
the connection. The connection will only be rejected on the client side if
there is a configured rule for the client and it is not active at this time.
This function returns the QoS session ID that is passed back to the application.</li>
<li>It calls rapi_getfd() to get file descriptor in order to wait for QoS
events.</li>
<li>The qtoq_ioctl() returns back to the caller with the wait on descriptor
and session ID.</li>
<li>The QoS server waits for the PATH message to be received. When the path
message is received, it responds with the RESV message and then signal the
application that the event has occurred through the session descriptor.</li>
<li>The QoS server continues to provide refreshes for the established session.</li>
<li>The client code calls qtoq_close() when the connection is completed.</li>
</ol>
</div>
<div class="section" xml:lang="en-us" id="rzak8qtoq_connectionless__qtoq_ioctlrulemarkednosignaling"><a name="rzak8qtoq_connectionless__qtoq_ioctlrulemarkednosignaling"><!-- --></a><h4 class="sectiontitle">qtoq_ioctl()
API for a rule marked no-signaling</h4><p>This request is not valid for
the client side because no response is required from the client in this case.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzak8rsvp.htm" title="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.">QoS APIs</a></div>
</div>
<div class="relref"><strong>Related reference</strong><br />
<div><a href="../apis/qtoq_close.htm">qtoq_close() API</a></div>
<div><a href="../apis/rapi_session.htm">rapi_session() API</a></div>
<div><a href="../apis/rapi_sender.htm">rapi_sender() API</a></div>
<div><a href="../apis/rapi_getfd.htm">rapi_getfd() API</a></div>
<div><a href="../apis/qtoq_ioctl.htm">qtoq_ioctl() API</a></div>
</div>
</div>
</body>
</html>