rapi_event_rtn_t(3)rapi_event_rtn_t(3)NAMErapi_event_rtn_t - Execute an Resource ReSerVation Protocol (RSVP) API
upcall routine
SYNOPSIS
#include <rapi.h>
void rapi_event_rtn_t(
rapi_sid_t Sid,
rapi_eventinfo_t EventType,
rapi_styleid_t Style,
int ErrorCode,
int ErrorValue,
rapi_addr_t *ErrorNode,
unsigned int ErrorFlags,
int FilterSpecNo,
rapi_filter_t *FilterSpec_list,
int FlowSpecNo,
rapi_flowspec_t *FlowSpec_list,
int AdspecNo,
rapi_adspec_t *Adspec_list,
void *Event_arg );
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 upcall
event types: Indicates that the RSVP sender state, or path, from a
remote node has arrived or has changed at the local node. Whenever the
path state changes, a RAPI_PATH_EVENT upcall that contains the complete
current list of senders (or no senders after a path teardown) in the
path state for the specified session is triggered.
The FilterSpec_list, Flowspec_list, and Adspec_list are equal in
length, and contain sender templates, sender Tspecs, and
Adspecs, respectively, for all senders known at this node. A
missing object is indicated by an empty RAPI object.
RAPI_PATH_EVENT upcalls are enabled by the initial call to the
rapi_session() routine. Indicates that the reservation state
has arrived or has changed at the node. This implies that reser‐
vations have been established or deleted along the entire data
path to one or more receivers. A change in the reservation state
triggers a RAPI_RESV_EVENT upcall that contains the current
reservation state for the API session.
The Flowspec_list parameter either contains one flowspec object
or is empty (if the state has been torn down); the Filter‐
Spec_list parameter contains zero or more filter spec objects;
and the Adspec_list parameter is empty.
RAPI_RESV_EVENT upcalls are enabled by a call to the
rapi_sender() routine. The sender template from the most recent
call matches the filter spec returned in a reservation event
upcall. Indicates that an asynchronous error has been found in
the sender information specified in a rapi_sender() call. The
ErrorCode and ErrorValue parameters specify the error. The Fil‐
terSpec_list and Flowspec_list parameters each contain one
object, the sender template and corresponding sender Tspec (if
any) in error; and the Adspec_list parameter is empty. If there
is no sender Tspec, the object in the Flowspec_list is an empty
RAPI object; Adspec_list is also empty.
RAPI_PATH_ERROR upcalls are enabled by a call to the
rapi_sender() routine, and the sender Tspec in that call matches
the sender Tspec returned in a subsequent path error upcall.
Indicates that an asynchronous reservation error has occurred.
The ErrorCode and ErrorValue parameters specify the error. The
Flowspec_list parameter either contains one flowspec; the Fil‐
terSpec_list parameter contains zero or more filter spec
objects; and the Adspec_list parameter is empty. Indicates a
reservation has been made at least to an intermediate merge
point and possible all the way to at least one sender. A confir‐
mation upcall is enabled by a call to the rapi_reserve() routine
with the RAPI_REQ_CONFIRM option set. Only one confirmation
upcall results from each such call.
The parameters of a confirmation upcall are the same as those
for a reservation event upcall (RAPI_RESV_EVENT). Specifies the
style of the reservation. Its value is non-zero only for
RAPI_RESV_EVENT and RAPI_RESV_ERROR upcalls. Specifies,
together with ErrorValue, the error cause. This code is set for
RAPI_PATH_ERROR and RAPI_RESV_ERROR events only. The ErrorCode
values and text strings are defined in <rapi_lib.h> and
<rapi_err.h>, respectively. Specifies, together with ErrorCode,
the error cause. This code is set for RAPI_PATH_ERROR and
RAPI_RESV_ERROR events only. Specifies the IP address of the
node that detected the error. This code is set for
RAPI_PATH_ERROR and RAPI_RESV_ERROR events only. Specifies one
of the following options for RAPI_PATH_ERROR and RAPI_RESV_ERROR
events only: Indicates that the reservation failed, but another
reservation (maybe smaller) is still in place on the same inter‐
face. Indicates that the reservation failed, but the request
from this client was merged with a larger reservation upstream.
This client's reservation might not be the cause of the failure.
Specifies the number of objects in a sequential vector of RAPI
filter specification or sender template objects that is pointed
to by the FilterSpec_List parameter. If this parameter is zero
(0), FilterSpec_List is NULL. Points to an area that contains a
sequential vector of RAPI filter specification or sender tem‐
plate objects. If the FilterSpecNo parameter is zero (0), this
parameter is NULL. Specifies the number of objects in a sequen‐
tial vector of RAPI flow specification or Tspec objects that is
pointed to by the Flowspec_list parameter. If this parameter is
zero (0), the Flowspec_list parameter is NULL. Points to an
area that contains a sequential vector of RAPI flow specifica‐
tion or Tspec objects. If the FlowSpecNo parameter is zero (0),
this parameter is NULL. Specifies the number of objects in a
sequential vector of RAPI objects. If this parameter is zero
(0), the Adspec_list parameter is NULL. Points to an area that
contains a sequential vector of RAPI objects. If this parameter
is zero, the Adspec_list parameter is NULL. Specifies a value
supplied in a call to rapi_session().
DESCRIPTION
An event upcall is invoked by a call to the rapi_dispatch() routine.
The upcall executes the procedure whose address was specified by the
Event_rtn parameter in the rapi_session() routine.
RETURN VALUES
When the application's upcall returns, the RSVP API (RAPI) frees any
area pointed to by the Flowspec_list and Filterspec_list parameters.
The application must copy any values it wants to save.
SEE ALSO
Functions: rapi_dispatch(3), rapi_getfd(3), rapi_release(3),
rapi_reserve(3), rapi_sender(3), rapi_session(3), rapi_version(3).
Network: RSVP(7).
Network Programmer's Guide
rapi_event_rtn_t(3)