rapi_reserve(3)rapi_reserve(3)NAMErapi_reserve - Make, modify, or delete a Resource ReSerVation Protocol
(RSVP) session reservation
SYNOPSIS
#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 );
LIBRARY
RAPI Library (librsvp.so, librsvp.a)
PARAMETERS
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 Fil‐
terSpecNo 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 param‐
eter. 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), Filter‐
Spec_List is ignored. Points to an area that contains a sequential
vector of RAPI filter specification objects. If the FilterSpecNo param‐
eter 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 speci‐
fied 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.
DESCRIPTION
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 reserva‐
tions. 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.
NOTES
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 suc‐
ceeded. 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.
RETURN VALUES
Upon successful completion, the rapi_reserve() routine returns zero
(0). If there is a synchronous error, the routine returns a RAPI error
code.
SEE ALSO
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)