rapi_reserve - Make, modify, or delete a Resource ReSerVation
Protocol (RSVP) session reservation
#include <rapi.h>
int rapi_reserve(
rapi_sid_t Sid,
unsigned int flags,
rapi_addr_t *Rhost,
rapi_styleid_t StyleId,
rapi_stylex_t *Style_Ext,
rapi_policy_t *Rcvr_Policy,
int FilterSpecNo,
rapi_filter_t *FilterSpec_List,
int FlowspecNo,
rapi_flowspec_t *Flowspec_List );
RAPI Library (librsvp.so, librsvp.a)
Specifies the session handle that was returned by a successful
call to the rapi_session() routine. Specifies one
of the following flags: Requests confirmation of the
reservation by means of a confirmation upcall
(RAPI_RESV_CONFIRM). Specifies the interface address on
which to receive data for multicast flows. This is an
optional parameter, and is useful for a multi-homed host.
If this parameter is omitted or if the host address is
INADDR_ANY, the API assumes the default interface. Specifies
one of the following reservation style identifiers:
Specifies a Wildcard Filter (WF). For this style, the
Flowspec_List parameter is either NULL (to delete the
reservation) or points to a single flow specification. The
FilterSpec_List parameter is either empty or points to a
single filter specification that contains the appropriate
wildcard or wildcards. Specifies a Fixed Filter (FF). For
this style, the FilterSpecNo and FlowspecNo parameters
must be equal. Entries in the Flowspec_List and FilterSpec_List
parameters correspond in pairs. Specifies a
Shared Explicit (SE). For this style, the Flowspec_List
parameter points to a single flow specification. The FilterSpec_List
parameter points to a list of any length.
Points to a style-dependent extension to the parameter
list, or is NULL. This is an optional parameter. Points
to a policy data structure, or is NULL. This is an
optional parameter. Specifies the number of objects in a
sequential vector of RAPI filter specification objects
that is pointed to by the FilterSpec_List parameter. If
this parameter is zero (0), FilterSpec_List is ignored.
Points to an area that contains a sequential vector of
RAPI filter specification objects. If the FilterSpecNo
parameter is zero (0), this parameter is ignored. Specifies
the number of objects in a sequential vector of RAPI
flow specification objects that is pointed to by the
Flowspec_List parameter.
If this parameter is zero (0), the rapi_reserve()
routine removes the current reservation or reservations
for the specified session and ignores the
FilterSpec_List and Flowspec_List parameters.
Points to an area that contains a sequential vector
of RAPI flow specification objects. If the
FlowspecNo parameter is zero (0), this parameter is
ignored.
The rapi_reserve() routine makes, modifies, or deletes a
resource reservation for an RSVP session. Applications can
call this routine in repeatedly, with different parameters,
to modify or remove reservations. The last call
takes precedence over previous calls.
If the call to rapi_reserve() succeeds, the application
might receive upcalls of type RAPI_RESV_ERROR or
RAPI_RESV_CONFIRM.
Depending on the parameters specified, each call to the
rapi_reserve() routine might result in new admission control
calls, which could fail asynchronously.
If your application uses the RAPI_REQ_CONFIRM option, the
application typically receives a positive acknowledgement
that the QoS request succeeded. If your application does
not use this option, the application will not receive positive
acknowledgement, and will need to determine success
in another manner (for example, by errors returned).
If an admission control call fails (for example, refusal
of the QoS (Quality of Service) request), the application
receives a RAPI_RESV_ERROR type upcall. An RSVP
NO_PATH_STATE error code indicates that the RSVP state
from one or more of the senders specified in the filter
list has not propagated all the way to the receiver. The
error code can also indicate that one or more of the specified
senders has closed its API and that its RSVP state
has been deleted from the routers.
Upon successful completion, the rapi_reserve() routine
returns zero (0). If there is a synchronous error, the
routine returns a RAPI error code.
Functions: rapi_dispatch(3), rapi_event_rtn_t(3),
rapi_getfd(3), rapi_release(3), rapi_sender(3), rapi_session(3), rapi_strerror(3), rapi_version(3).
Network: RSVP(7).
Network Programmer's Guide
rapi_reserve(3)
[ Back ] |