Index Index for
Section 3
Index Alphabetical
listing for R
Bottom of page Bottom of
page

rapi_event_rtn_t(3)

NAME

rapi_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

Sid Specifies the session handle that was returned by a successful call to the rapi_session() routine. EventType Specifies one of the following upcall event types: RAPI_PATH_EVENT 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. RAPI_RESV_EVENT 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. RAPI_PATH_ERROR 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. RAPI_RESV_ERROR 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. RAPI_RESV_CONFIRM 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). Style Specifies the style of the reservation. Its value is non-zero only for RAPI_RESV_EVENT and RAPI_RESV_ERROR upcalls. ErrorCode 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. ErrorValue Specifies, together with ErrorCode, the error cause. This code is set for RAPI_PATH_ERROR and RAPI_RESV_ERROR events only. ErrorNode 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. ErrorFlags Specifies one of the following options for RAPI_PATH_ERROR and RAPI_RESV_ERROR events only: RAPI_ERRF_InPlace (0x01) Indicates that the reservation failed, but another reservation (maybe smaller) is still in place on the same interface. RAPI_ERRF_NotGuilty (0x02) 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. FilterSpecNo 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. FilterSpec_list 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. FlowSpecNo 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. FlowSpec_list 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. AdspecNo Specifies the number of objects in a sequential vector of RAPI objects. If this parameter is zero (0), the Adspec_list parameter is NULL. Adspec_list Points to an area that contains a sequential vector of RAPI objects. If this parameter is zero, the Adspec_list parameter is NULL. Event_arg 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

Index Index for
Section 3
Index Alphabetical
listing for R
Top of page Top of
page