Previous section.

Resource ReSerVation Protocol API (RAPI)
Copyright © 1998 The Open Group

Header File

Integer and Floating Point Types

Types uint8_t, uint16_t and uint32_t which appear in the <rapi.h> header file are unsigned integer types of length 8, 16 and 32 bits, respectively. They may be made available by inclusion of <inttypes.h> (see the referenced XSH specification).

Type float32_t is a floating-point type of length 32 bits. It is defined by including the <rapi.h> header file.

The <rapi.h> Header

This header file contains the definitions of the RSVP API (RAPI) library calls.

Inclusion of this header may make available other symbols in addition to those specified in this section.

General Definitions

When header <rapi.h> is included:

  1. Macro RAPI_VERSION is defined with value 100 * major + minor, where major is the major version number and minor is the minor version number. The value of RAPI_VERSION is returned by rapi_version().

  2. Type rapi_addr_t is defined for protocol addresses. Implementations of RAPI that are intended to be used in conjunction with the sockets interface defined in the referenced XNS specification must define rapi_addr_t to be struct sockaddr. Implementations that are intended to be used in conjunction with other networking APIs may define rapi_addr_t differently.
    Note:
    If they do so, they will need to add further members to the rapi_format_t enumeration, and to the filt_u union in the rapi_filter_t structure, and possibly to make further additions.

  3. Enumeration rapi_qos_service_t is defined by typedef and has at least the following members.

    
    

    Member Meaning
    RAPI_QOS_TSPEC Generic Tspec
    RAPI_QOS_CNTR_LOAD Controlled-load service
    RAPI_QOS_GUARANTEED Guaranteed service

    
    

  4. Enumeration rapi_format_t is defined by typedef and has at least the following members.

    
    

    Member Meaning
    RAPI_EMPTY_OTYPE Empty object
    RAPI_FLOWSTYPE_Intserv Int-Serv format flowspec
    RAPI_FLOWSTYPE_Simplified Simplified format flowspec
    RAPI_TSPECTYPE_Intserv Int-Serv format (sndr)Tspec
    RAPI_TSPECTYPE_Simplified Simplified format (sndr)Tspec
    RAPI_ADSTYPE_Intserv Int-Serv format Adspec
    RAPI_ADSTYPE_Simplified Simplified format Adspec
    RAPI_FILTERFORM_BASE Simple V4: Only sockaddr
    RAPI_FILTERFORM_GPI IPV4 GPI filter format
    RAPI_FILTERFORM_BASE6 Simple V6: Only sockaddr
    RAPI_FILTERFORM_GPI6 IPV6 GPI filter format

    
    

  5. Type rapi_hdr_t is defined by typedef as a structure to represent a generic RAPI object header. It has the following members, followed by type-specific contents.

    
    

    Member Type Usage
    len unsigned int Actual length in bytes
    form rapi_format_t Format

    
    

  6. The following macros are defined with the values given below.

    
    

    Macro Value
    RAPIObj_Size(p) (((rapi_hdr_t *)(p))->len)
    RAPIObj_data(p) ((rapi_hdr_t *)(p)+1)
    After_RAPIObj(p) ((char *)(p) + RAPIObj_Size(p))

    
    

Tspec Definitions

When header <rapi.h> is included:

  1. Type rapi_qos_Tspec_body is defined by typedef as a structure with at least the following members.

    
    

    Member Type Usage
    spec_Tspec_b float32_t Token bucket depth in bytes
    spec_Tspec_r float32_t Token bucket average rate in bytes per second
    spec_Tspec_p float32_t Peak data rate in bytes per second
    spec_Tspec_m uint32_t Minimum policed unit in bytes
    spec_Tspec_M uint32_t Maximum packet size in bytes

    
    

  2. Type rapi_qos_tspecx_t is defined by typedef as a structure that contains the generic Tspec parameters, and has at least the following members.

    
    

    Member Type Usage
    spec_type rapi_qos_service_t QoS_service_type
    xtspec_Tspec rapi_qos_Tspec_body Tspec

    
    

  3. The following macros are defined with the values given below.

    
    

    Macro Value
    xtspec_r xtspec_Tspec.spec_Tspec_r
    xtspec_b xtspec_Tspec.spec_Tspec_b
    xtspec_p xtspec_Tspec.spec_Tspec_p
    xtspec_m xtspec_Tspec.spec_Tspec_m
    xtspec_M xtspec_Tspec.spec_Tspec_M

    
    

  4. Type rapi_tspec_t is defined by typedef as a structure to represent a Tspec descriptor, and has at least the following members.

    
    

    Member Type Member Type Usage
    len unsigned int     Actual length in bytes
    form rapi_format_t     tspec format
    tspecbody_u union      
        qosxt rapi_qos_tspecx_t Simplified format Tspec
        ISt IS_tspbody_t Int-serv format Tspec

    
    

  5. The following macros are defined with the values given below.

    
    

    Macro Value
    tspecbody_qosx tspecbody_u.qosxt
    tspecbody_IS tspecbody_u.ISt

    
    

Flowspec Definitions

When header <rapi.h> is included:

  1. Type rapi_qos_flowspecx_t is defined by typedef as a structure that contains the union of the parameters for controlled-load service and guaranteed service models, and has at least the following members.

    
    

    Member Type Usage
    spec_type rapi_qos_service_t QoS_service_type
    xspec_Tspec rapi_qos_Tspec_body Tspec
    xspec_R float32_t Rate in bytes per second
    xspec_S uint32_t Slack term in microseconds

    
    

  2. The following macros are defined with the values given below.

    
    

    Macro Value
    xspec_r xspec_Tspec.spec_Tspec_r
    xspec_b xspec_Tspec.spec_Tspec_b
    xspec_p xspec_Tspec.spec_Tspec_p
    xspec_m xspec_Tspec.spec_Tspec_m
    xspec_M xspec_Tspec.spec_Tspec_M

    
    

  3. Type rapi_flowspec_t is defined by typedef as a structure to represent a Flowspec descriptor, and has at least the following members.

    Member Type Member Type Usage
    len unsigned int     Actual length in bytes
    form rapi_format_t     flowspec format
    specbody_u union      
        qosx rapi_qos_flowspecx_t Simplified format flowspec
        IS IS_specbody_t Int-serv format flowspec

  4. The following macros are defined with the values given below.

    
    

    Macro Value
    specbody_qosx specbody_u.qosx
    specbody_IS specbody_u.IS

    
    

Adspec Definitions

When header <rapi.h> is included:

  1. Type rapi_qos_adspecx_t is defined by typedef as a structure that contains the union of all adspec parameters for controlled-load service and guaranteed service models, and has at least the following members.

    Member Type Usage
        General path characterization parameters
    xaspec_flags uint8_t flags(1)
    xaspec_hopcnt uint16_t  
    xaspec_path_bw float32_t  
    xaspec_min_latency uint32_t  
    xaspec_composed_MTU uint32_t  
        Controlled-load service Adspec parameters
    xClaspec_flags uint8_t Flags
    xClaspec_override uint8_t See note(2)
    xClaspec_hopcnt uint16_t  
    xClaspec_path_bw float32_t  
    xClaspec_min_latency uint32_t  
    xClaspec_composed_MTU uint32_t  
        Guaranteed service Adspec parameters
    xGaspec_flags uint8_t Flags
    xGaspec_Ctot uint32_t  
    xGaspec_Dtot uint32_t  
    xGaspec_Csum uint32_t  
    xGaspec_Dsum uint32_t  
    xGaspec_override uint8_t See note(2)
    xGaspec_hopcnt uint16_t  
    xGaspec_path_bw float32_t  
    xGaspec_min_latency uint32_t  
    xGaspec_composed_MTU uint32_t  

    Notes:

    (1)
    FLG_IGN is not allowed; FLG_PARM is assumed.

    (2)
    A value of 1 means "override all generic parameters".

  2. The following macros are defined with bitwise-distinct integral values for use in the xaspec_flags, xClaspec_flags, and xGaspec_flags fields.

    
    

    Macro Meaning
    RAPI_XASPEC_FLG_BRK Break bit: service unsupported in some node
    RAPI_XASPEC_FLG_IGN Ignore flag: do not include this service
    RAPI_XASPEC_FLG_PARM Parms-present flag: include service parameters

    
    

  3. Type rapi_adspec_t is defined by typedef as a structure to represent an Adspec descriptor, and has at least the following members.

    
    

    Member Type Member Type Usage
    len unsigned int     Actual length in bytes
    form rapi_format_t     adspec format
    adsbody_u union      
        adsx rapi_qos_adspecx_t Simplified format adspec
        ISa IS_adsbody_t Int-serv format adspec

    
    

  4. The following macros are defined with the values given below.

    
    

    Macro Value
    adspecbody_qosx adsbody_u.adsx
    adspecbody_IS adsbody_u.ISa

    
    

Filter Spec Definitions

When header <rapi.h> is included:

  1. Type rapi_filter_base_t is defined by typedef as a structure that contains at least the following member:

    
    

    Member Type
    sender struct sockaddr_in

    
    

  2. Type rapi_filter_gpi_t is defined by typedef as a structure that contains at least the following members.

    
    

    Member Type
    sender struct in_addr
    gpi uint32_t

    
    

  3. Type rapi_filter_base6_t is defined by typedef as a structure that contains at least the following member.

    
    

    Member Type
    sender struct sockaddr_in6

    
    

  4. Type rapi_filter_gpi6_t is defined by typedef as a structure that contains at least the following members.

    
    

    Member Type
    sender struct in6_addr
    gpi uint32_t

    
    

  5. Type rapi_filter_t is defined by typedef as a structure that contains at least the following members.

    Member Type Member Type Usage
    len unsigned int     Actual length in bytes
    form rapi_format_t     filterspec format
    filt_u union(1)      
        base rapi_filter_base_t  
        gpi rapi_filter_gpi_t  
        base6 rapi_filter_base6_t  
        gpi6 rapi_filter_gpi6_t  

    Note:

    (1)
    variable length

  6. The following macros are defined with the values given below.

    
    

    Macro Value
    rapi_filt4 filt_u.base.sender
    rapi_filtbase4_addr rapi_filt4.sin_addr
    rapi_filtbase4_port rapi_filt4.sin_port
    rapi_filtgpi4 filt_u.gpi
    rapi_filtgpi4_addr rapi_filtgpi4.sender
    rapi_filtgpi4_gpi rapi_filtgpi4.gpi
    rapi_filt6 filt_u.base6.sender
    rapi_filtbase6_addr rapi_filt6.sin6_addr
    rapi_filtbase6_port rapi_filt6.sin6_port
    rapi_filtgpi6 filt_u.gpi6
    rapi_filtgpi6_addr rapi_filtgpi6.sender
    rapi_filtgpi6_gpi rapi_filtgpi6.gpi

    
    

Policy Definitions

When header <rapi.h> is included, type rapi_policy_t is defined by typedef as a structure that contains at least the following members:


Member Type
len unsigned int
form rapi_format_t
pol_u union


Reservation Style Definitions

When header <rapi.h> is included:

  1. Enumeration rapi_styleid_t is defined by typedef for reservation style identifiers, and has at least the following members.

    Member Meaning
    RAPI_RSTYLE_WILDCARD Reservation will be shared among a wildcard selection of senders
    RAPI_RSTYLE_FIXED Reservation will not be shared and will be dedicated to a particular sender
    RAPI_RSTYLE_SE Reservation will be shared among an explicit list of senders

  2. Type rapi_stylex_t is defined by typedef as void.

    Note:
    It is intended that this identifier be used in future for a reservation style extension structure that will allow passing of style-specific parameters for possible new styles.

Function Interface Definitions

When header <rapi.h> is included:

  1. Macro RAPI_NULL_SID is defined for error returns from rapi_session().

  2. The following macros are defined and evaluate to bitwise-distinct integral values.

    
    

    Constant Meaning
    RAPI_USE_INTSERV Use Int-Serv fmt in upcalls
    RAPI_GPI_SESSION Use GPI session format
    RAPI_REQ_CONFIRM Request confirmation

    
    

    Enumeration rapi_eventinfo_t is defined by typedef for RAPI event types, and has at least the following members.

    
    

    Member
    RAPI_PATH_EVENT
    RAPI_RESV_EVENT
    RAPI_PATH_ERROR
    RAPI_RESV_ERROR
    RAPI_RESV_CONFIRM

    
    

    Identifiers RAPI_PATH_STATUS and RAPI_RESV_STATUS are reserved for use by the implementation.

  3. The following macros are defined and evaluate to distinct integral values.

    
    

    Constant Meaning
    RAPI_ERRF_InPlace Left reservation in place
    RAPI_ERRF_NotGuilty This receiver not guilty

    
    

  4. Type rapi_event_rtn_t is defined by typedef as a function that conforms to the prototype defined in the reference manual page definition for event upcall (see Event Upcall ).

  5. Prototypes for each function defined in this specification must be provided in <rapi.h>.

  6. The following macros are defined and evaluate to distinct integral values for use as RAPI error codes. Macro RAPI_ERR_OK (which indicates that there is no error) evaluates to zero. The meanings of these error codes are described in RAPI Error Codes .

    RAPI_ERR_OK RAPI_ERR_INVAL RAPI_ERR_MAXSESS RAPI_ERR_BADSID RAPI_ERR_N_FFS RAPI_ERR_BADSTYLE RAPI_ERR_SYSCALL RAPI_ERR_OVERFLOW RAPI_ERR_MEMFULL RAPI_ERR_NORSVP RAPI_ERR_OBJTYPE RAPI_ERR_OBJLEN RAPI_ERR_NOTSPEC RAPI_ERR_INTSERV RAPI_ERR_GPI_CONFLICT RAPI_ERR_BADPROTO RAPI_ERR_BADVDPORT RAPI_ERR_GPISESS

    RAPI_ERR_BADSEND RAPI_ERR_BADRECV RAPI_ERR_BADSPORT

    RAPI_ERR_UNSUPPORTED RAPI_ERR_UNKNOWN


  7. The following macros are defined and evaluate to the RSVP error code values as defined in RSVP Error Codes .

    RSVP_Err_NONE RSVP_Err_ADMISSION RSVP_Err_POLICY RSVP_Err_NO_PATH RSVP_Err_NO_SENDER RSVP_Err_BAD_STYLE RSVP_Err_UNKNOWN_STYLE RSVP_Err_BAD_DSTPORT RSVP_Err_BAD_SNDPORT RSVP_Err_PREEMPTED RSVP_Err_UNKN_OBJ_CLASS RSVP_Err_UNKNOWN_CTYPE RSVP_Err_API_ERROR RSVP_Err_TC_ERROR RSVP_Err_TC_SYS_ERROR RSVP_Err_RSVP_SYS_ERROR

Integrated Services Data Structures and Macros

Note:
This section defines the integrated services (see reference RFC 2210) data formats. The designers of the RAPI interface wanted to allow an application to specify either the int-serv format of a flowspec, Tspec, or adspec, or a "simplified" version of each. It would certainly be simpler if RAPI supported only one of these formats, but this was not felt to be safe in the long run.

The simplified versions allow almost any int-serv version to be generated, but there may be circumstances in which this is not adequate. For example, more general forms of flowspec, containing more than one service, may be defined in future (so that in case the Resv message reaches a node which does not implement service A, it can drop back to service B). Allowing an application to specify the body of an arbitrary int-serv data object allows for such contingencies.

Nevertheless, the result is not entirely satisfactory, and future versions of this specification may change the definitions in this section. Application writers are therefore advised not to use these definitions except where absolutely necessary.

These Integrated Services data structures and macros are made available when header <rapi.h> is included.

Note that the values in the data structures defined in this section are in host byte order.

Inclusion of this header may make available other symbols in addition to those specified in this section.

General Definitions

When header <rapi.h> is included:

  1. The following macro is defined with the value given below.

    
    

    Macro Value Usage
    wordsof(x) (((x)+3)/4) Number of 32-bit words

    
    

  2. The following macros are defined with the following integer values for service numbers.

    Note:
    The values are protocol values defined in referenced documents RFC 2211, RFC 2212, and RFC 2215.
    
    

    Macro Value
    GENERAL_INFO 1
    GUARANTEED_SERV 2
    CONTROLLED_LOAD_SERV 5

    
    

  3. Enumeration int_serv_wkp is defined for well-known parameter identities and has at least the following members with the following integer values.
    Note:
    The values are protocol values defined in reference RFC 2215.

    Member Value Meaning
    IS_WKP_HOP_CNT 4 Number of network nodes supporting Integrated Services along the flow path
    IS_WKP_PATH_BW 6 Available bandwidth in bytes per second throughout the flow path
    IS_WKP_MIN_LATENCY 8 Minimum end-to-end latency in microseconds
    IS_WKP_COMPOSED_MTU 10 Maximum transmission unit without causing IP fragmentation along the flow path
    IS_WKP_TB_TSPEC 127 Token bucket TSPEC parameter

  4. The following macros are defined with the values given below.

    
    

    Macro Value
    INTSERV_VERS_MASK 0xf0
    INTSERV_VERSION0 0
    Intserv_Version(x) (((x)&INTSERV_VERS_MASK)>>4)
    Intserv_Version_OK(x) (((x)->ismh_version&INTSERV_VERS_MASK)== \
      INTSERV_VERSION0)

    
    

  5. Type IS_main_hdr_t is defined by typedef as a structure to represent an Integrated Services main header, and has at least the following members.

    
    

    Member Type Usage
    ismh_version uint8_t Version
    ismh_unused uint8_t  
    ismh_len32b uint16_t Number of 32-bit words excluding this header

    
    

  6. Type IS_serv_hdr_t is defined by typedef as a structure to represent an Integrated Services service element header, and has at least the following members.

    
    

    Member Type Usage
    issh_service uint8_t Service number
    issh_flags uint8_t Flag byte
    issh_len32b uint16_t Number of 32-bit words excluding this header

    
    

  7. The following macro is defined with the value given below to indicate the break bit in the IS_serv_hdr_t flag byte.

    
    

    Macro Value
    ISSH_BREAK_BIT 0x80

    
    

  8. Type IS_parm_hdr_t is defined by typedef as a structure to represent an Integrated Services parameter element header, and has at least the following members.

    
    

    Member Type Usage
    isph_parm_num uint8_t Parameter number
    isph_flags uint8_t Flags
    isph_len32b uint16_t Number of 32-bit words excluding this header

    
    

  9. The following macro is defined with the value given below to indicate the invalid bit in the IS_parm_hdr_t flag byte.

    
    

    Macro Value
    ISPH_FLG_INV 0x80

    
    

  10. The following macros are defined with the values given below.

    
    

    Macro Value
    Set_Main_Hdr(p, len) {(p)->ismh_version = INTSERV_VERSION0; \
      (p)->ismh_unused = 0; \
      (p)->ismh_len32b = wordsof(len); }
    Set_Serv_Hdr(p, s, len) {(p)->issh_service = (s); \
      (p)->issh_flags = 0; \
      (p)->issh_len32b = wordsof(len); }
    Set_Parm_Hdr(p, id, len) {(p)->isph_parm_num = (id); \
      (p)->isph_flags = 0; \
      (p)->isph_len32b = wordsof(len); }
    Set_Break_Bit(p) (((IS_serv_hdr_t *)p)->issh_flags|=ISSH_BREAK_BIT)
    Next_Main_Hdr(p) (IS_main_hdr_t *)((uint32_t *)(p)+1+(p)->ismh_len32b)
    Next_Serv_Hdr(p) (IS_serv_hdr_t *)((uint32_t *)(p)+1+(p)->issh_len32b)
    Next_Parm_Hdr(p) (IS_parm_hdr_t *)((uint32_t *)(p)+1+(p)->isph_len32b)
    Non_Is_Hop(p) (((IS_serv_hdr_t *)p)->issh_flags & ISSH_BREAK_BIT)

    
    

Generic Tspec format

When header <rapi.h> is included:

  1. The following macros define constraints on the token bucket parameters for both the Controlled-Load and Guaranteed service. These constraints are imposed by the respective service specifications and are not an indication of what minimum or maximum values a RAPI implementation will accept.

    The following macros are defined with values of type float32_t.

    
    

    Macro Usage Value
    TB_MIN_RATE Minimum token bucket rate 1 byte per second
    TB_MAX_RATE Maximum token bucket rate 40 terabytes per second
    TB_MIN_DEPTH Minimum token bucket depth 1 byte
    TB_MAX_DEPTH Maximum token bucket depth 250 gigabyte

    
    

  2. Type TB_Tsp_parms_t is defined by typedef as a structure to represent generic Tspec parameters, and has at least the following members.

    
    

    Member Type Usage
    TB_Tspec_r float32_t Token bucket rate in bytes per second
    TB_Tspec_b float32_t Token bucket depth in bytes
    TB_Tspec_p float32_t Peak data rate in bytes per second
    TB_Tspec_m uint32_t Minimum policed unit in bytes
    TB_Tspec_M uint32_t Maximum packet size in bytes

    
    

  3. Type gen_Tspec_t is defined by typedef as a structure to represent a generic Tspec, and has at least the following members.

    
    

    Member Type Usage
    gen_Tspec_serv_hdr IS_serv_hdr_t (GENERAL_INFO, length)
    gen_Tspec_parm_hdr IS_parm_hdr_t (IS_WKP_TB_TSPEC,)
    gen_Tspec_parms TB_Tsp_parms_t  

    
    

  4. The following macros are defined with the values given below.

    
    

    Macro Value
    gtspec_r gen_Tspec_parms.TB_Tspec_r
    gtspec_b gen_Tspec_parms.TB_Tspec_b
    gtspec_m gen_Tspec_parms.TB_Tspec_m
    gtspec_M gen_Tspec_parms.TB_Tspec_M
    gtspec_p gen_Tspec_parms.TB_Tspec_p
    gtspec_parmno gen_Tspec_parm_hdr.isph_parm_num
    gtspec_flags gen_Tspec_parm_hdr.isph_flags
    gtspec_len (sizeof(gen_Tspec_t) - sizeof(IS_serv_hdr_t))

    
    

Formats for Controlled-Load Service

When header <rapi.h> is included:

  1. Type CL_flowspec_t is defined by typedef as a structure to represent a controlled-load Flowspec, and has at least the following members.

    
    

    Member Type Usage
    CL_spec_serv_hdr IS_serv_hdr_t (CONTROLLED_LOAD_SERV, 0, len)
    CL_spec_parm_hdr IS_parm_hdr_t (IS_WKP_TB_TSPEC,)
    CL_spec_parms TB_Tsp_parms_t  

    
    

  2. The following macros are defined with the values given below.

    
    

    Macro Value
    CLspec_r CL_spec_parms.TB_Tspec_r
    CLspec_b CL_spec_parms.TB_Tspec_b
    CLspec_p CL_spec_parms.TB_Tspec_p
    CLspec_m CL_spec_parms.TB_Tspec_m
    CLspec_M CL_spec_parms.TB_Tspec_M
    CLspec_parmno CL_spec_parm_hdr.isph_parm_num
    CLspec_flags CL_spec_parm_hdr.isph_flags
    CLspec_len32b CL_spec_parm_hdr.isph_len32b
    CLspec_len (sizeof(CL_flowspec_t) - sizeof(IS_serv_hdr_t))

    
    

Formats for Guaranteed Service

When header <rapi.h> is included:

  1. The following enumeration is defined for service-specific parameter identifiers and has at least the following members with the following values:

    
    

    Member Value
    IS_GUAR_RSPEC 130
    GUAR_ADSPARM_C 131
    GUAR_ADSPARM_D 132
    GUAR_ADSPARM_Ctot 133
    GUAR_ADSPARM_Dtot 134
    GUAR_ADSPARM_Csum 135
    GUAR_ADSPARM_Dsum 136

    
    

  2. Type guar_Rspec_t is defined by typedef as a structure for guaranteed Rspec parameters, and has at least the following members.

    
    

    Member Type Usage
    Guar_R float32_t Guaranteed rate in bytes per second
    Guar_S uint32_t Slack term in microseconds

    
    

  3. Type Guar_flowspec_t is defined by typedef as a structure to represent a guaranteed Flowspec, and has at least the following members.

    
    

    Member Type Usage
    Guar_serv_hdr IS_serv_hdr_t (GUARANTEED_SERV, 0, length)
    Guar_Tspec_hdr IS_parm_hdr_t (IS_WKP_TB_TSPEC,)
    Guar_Tspec_parms TB_Tsp_parms_t GENERIC Tspec parameters
    Guar_Rspec_hdr IS_parm_hdr_t (IS_GUAR_RSPEC,)
    Guar_Rspec guar_Rspec_t Guaranteed rate in bytes per second

    
    

  4. The following macros are defined with the values given below.

    
    

    Macro Value
    Gspec_r Guar_Tspec_parms.TB_Tspec_r
    Gspec_b Guar_Tspec_parms.TB_Tspec_b
    Gspec_p Guar_Tspec_parms.TB_Tspec_p
    Gspec_m Guar_Tspec_parms.TB_Tspec_m
    Gspec_M Guar_Tspec_parms.TB_Tspec_M
    Gspec_R Guar_Rspec.Guar_R
    Gspec_S Guar_Rspec.Guar_S
    Gspec_T_parmno Guar_Tspec_hdr.isph_parm_num
    Gspec_T_flags Guar_Tspec_hdr.isph_flags
    Gspec_R_parmno Guar_Rspec_hdr.isph_parm_num
    Gspec_R_flags Guar_Rspec_hdr.isph_flags
    Gspec_len (sizeof(Guar_flowspec_t) - sizeof(IS_serv_hdr_t))

    
    

  5. Type Gads_parms_t is defined by typedef as a structure for guaranteed Adspec parameters, and has the following members which may be followed by override general parameter values.

    
    

    Member Type Usage
    Gads_serv_hdr IS_serv_hdr_t (GUARANTEED_SERV, x, len)
    Gads_Ctot_hdr IS_parm_hdr_t (GUAR_ADSPARM_Ctot,)
    Gads_Ctot uint32_t  
    Gads_Dtot_hdr IS_parm_hdr_t (GUAR_ADSPARM_Dtot,)
    Gads_Dtot uint32_t  
    Gads_Csum_hdr IS_parm_hdr_t (GUAR_ADSPARM_Csum,)
    Gads_Csum uint32_t  
    Gads_Dsum_hdr IS_parm_hdr_t (GUAR_ADSPARM_Dsum,)
    Gads_Dsum uint32_t  

    
    

Basic Adspec Pieces

When header <rapi.h> is included:

  1. Type genparm_parms_t is defined by typedef as a structure for general path characterization parameters, and has at least the following members.

    
    

    Member Type Usage
    gen_parm_hdr IS_serv_hdr_t (GENERAL_INFO, len)
    gen_parm_hopcnt_hdr IS_parm_hdr_t (IS_WKP_HOP_CNT,)
    gen_parm_hopcnt uint32_t  
    gen_parm_pathbw_hdr IS_parm_hdr_t (IS_WKP_PATH_BW,)
    gen_parm_path_bw float32_t  
    gen_parm_minlat_hdr IS_parm_hdr_t (IS_WKP_MIN_LATENCY,)
    gen_parm_min_latency uint32_t  
    gen_parm_compmtu_hdr IS_parm_hdr_t (IS_WKP_COMPOSED_MTU,)
    gen_parm_composed_MTU uint32_t  

    
    

  2. Type Min_adspec_t is defined by typedef as a structure to represent a minimal Adspec per-service fragment - an empty service header - and has at least the following member.

    
    

    Member Type Usage
    mads_hdr IS_serv_hdr_t (<service>, 1, len=0)

    
    

Integrated Services Flowspec

When header <rapi.h> is included:

  1. Type IS_specbody_t is defined by typedef as a structure to represent an Integrated Services Flowspec, and has at least the following members.

    
    

    Member Type Member Type Usage
    spec_mh IS_main_hdr_t      
    spec_u union      
        CL_spec CL_flowspec_t Controlled-load service
        G_spec Guar_flowspec_t Guaranteed service

    
    

  2. The following macros are defined with the values given below.

    
    

    Macro Value
    ISmh_len32b spec_mh.ismh_len32b
    ISmh_version spec_mh.ismh_version
    ISmh_unused spec_mh.ismh_unused

    
    

Integrated Services Tspec

When header <rapi.h> is included:

  1. Type IS_tspbody_t is defined by typedef as a structure to represent an Integrated Services Tspec, and has at least the following members.

    Member Type Member Type Usage
    st_mh IS_main_hdr_t      
    tspec_u union(1)      
        gen_stspec gen_Tspec_t Generic Tspec

    Note:

    (1)
    While it is possible that there could be service-dependent Tspecs, there are in fact none.

  2. The following macros are defined with the values given below.

    
    

    Macro Value
    IStmh_len32b st_mh.ismh_len32b
    IStmh_version st_mh.ismh_version
    IStmh_unused st_mh.ismh_unused

    
    

Integrated Services Adspec

When header <rapi.h> is included, type IS_adsbody_t is defined by typedef as a structure to represent a (minimal) Integrated Services Adspec, and has the following members, followed by variable-length fragments for some or all services. These can be minimal length fragments.


Member Type Usage
adspec_mh IS_main_hdr_t Main header
adspec_genparms genparm_parms_t General char parameter fragment


Contents Next section Index