113 lines
8.0 KiB
HTML
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> |