Type
float32_t
is a floating-point type of length 32 bits.
It is defined by including the
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.
When header
Member | Meaning |
---|---|
RAPI_QOS_TSPEC | Generic Tspec |
RAPI_QOS_CNTR_LOAD | Controlled-load service |
RAPI_QOS_GUARANTEED | Guaranteed service |
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 |
Member | Type | Usage |
---|---|---|
len | unsigned int | Actual length in bytes |
form | rapi_format_t | Format |
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)) |
When header
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 |
Member | Type | Usage |
---|---|---|
spec_type | rapi_qos_service_t | QoS_service_type |
xtspec_Tspec | rapi_qos_Tspec_body | Tspec |
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 |
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 |
Macro | Value |
---|---|
tspecbody_qosx | tspecbody_u.qosxt |
tspecbody_IS | tspecbody_u.ISt |
When header
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 |
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 |
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 |
Macro | Value |
---|---|
specbody_qosx | specbody_u.qosx |
specbody_IS | specbody_u.IS |
When header
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:
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 |
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 |
Macro | Value |
---|---|
adspecbody_qosx | adsbody_u.adsx |
adspecbody_IS | adsbody_u.ISa |
When header
Member | Type |
---|---|
sender | struct sockaddr_in |
Member | Type |
---|---|
sender | struct in_addr |
gpi | uint32_t |
Member | Type |
---|---|
sender | struct sockaddr_in6 |
Member | Type |
---|---|
sender | struct in6_addr |
gpi | uint32_t |
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:
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 |
Member | Type |
---|---|
len | unsigned int |
form | rapi_format_t |
pol_u | union |
When header
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 |
When header
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.
Constant | Meaning |
---|---|
RAPI_ERRF_InPlace | Left reservation in place |
RAPI_ERRF_NotGuilty | This receiver not guilty |
RAPI_ERR_BADSEND RAPI_ERR_BADRECV RAPI_ERR_BADSPORT
RAPI_ERR_UNSUPPORTED RAPI_ERR_UNKNOWN
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
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.
When header
Macro | Value | Usage |
---|---|---|
wordsof(x) | (((x)+3)/4) | Number of 32-bit words |
Macro | Value |
---|---|
GENERAL_INFO | 1 |
GUARANTEED_SERV | 2 |
CONTROLLED_LOAD_SERV | 5 |
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 |
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) |
Member | Type | Usage |
---|---|---|
ismh_version | uint8_t | Version |
ismh_unused | uint8_t | |
ismh_len32b | uint16_t | Number of 32-bit words excluding this header |
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 |
Macro | Value |
---|---|
ISSH_BREAK_BIT | 0x80 |
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 |
Macro | Value |
---|---|
ISPH_FLG_INV | 0x80 |
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) |
When header
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 |
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 |
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 |
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)) |
When header
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 |
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)) |
When header
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 |
Member | Type | Usage |
---|---|---|
Guar_R | float32_t | Guaranteed rate in bytes per second |
Guar_S | uint32_t | Slack term in microseconds |
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 |
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)) |
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 |
When header
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 |
Member | Type | Usage |
---|---|---|
mads_hdr | IS_serv_hdr_t | (<service>, 1, len=0) |
When header
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 |
Macro | Value |
---|---|
ISmh_len32b | spec_mh.ismh_len32b |
ISmh_version | spec_mh.ismh_version |
ISmh_unused | spec_mh.ismh_unused |
When header
Member | Type | Member | Type | Usage |
---|---|---|---|---|
st_mh | IS_main_hdr_t | |||
tspec_u | union(1) | |||
gen_stspec | gen_Tspec_t | Generic Tspec |
Macro | Value |
---|---|
IStmh_len32b | st_mh.ismh_len32b |
IStmh_version | st_mh.ismh_version |
IStmh_unused | st_mh.ismh_unused |
When header
Member | Type | Usage |
---|---|---|
adspec_mh | IS_main_hdr_t | Main header |
adspec_genparms | genparm_parms_t | General char parameter fragment |
Contents | Next section | Index |