|
rapi_event_rtn_t(3)
Contents
|
rapi_event_rtn_t - Execute an Resource ReSerVation Protocol
(RSVP) API upcall routine
#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 );
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 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 reservations 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 FilterSpec_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 FilterSpec_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 FilterSpec_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 confirmation 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 interface. 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 template objects. If the FilterSpecNo
parameter is zero (0), this parameter is
NULL. Specifies the number of objects in a sequential
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
specification 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().
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.
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.
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)
[ Back ] |