SAI Metadata
Loading...
Searching...
No Matches
SAI - ARS profile specific API definitions.

Classes

struct  _sai_ars_profile_api_t
 ARS Profile methods table retrieved with sai_api_query() More...
 

Typedefs

typedef enum _sai_ars_profile_algo_t sai_ars_profile_algo_t
 Adaptive Routing and Switching quality measure algorithm.
 
typedef enum _sai_ars_profile_attr_t sai_ars_profile_attr_t
 Enum defining attributes for ARS profile.
 
typedef sai_status_t(* sai_create_ars_profile_fn) (_Out_ sai_object_id_t *ars_profile_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create ARS Profile.
 
typedef sai_status_t(* sai_remove_ars_profile_fn) (_In_ sai_object_id_t ars_profile_id)
 Remove ARS Profile.
 
typedef sai_status_t(* sai_set_ars_profile_attribute_fn) (_In_ sai_object_id_t ars_profile_id, _In_ const sai_attribute_t *attr)
 Set attributes for ARS profile.
 
typedef sai_status_t(* sai_get_ars_profile_attribute_fn) (_In_ sai_object_id_t ars_profile_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get attributes of ARS profile.
 
typedef struct _sai_ars_profile_api_t sai_ars_profile_api_t
 ARS Profile methods table retrieved with sai_api_query()
 

Enumerations

enum  _sai_ars_profile_algo_t { SAI_ARS_PROFILE_ALGO_EWMA }
 Adaptive Routing and Switching quality measure algorithm. More...
 
enum  _sai_ars_profile_attr_t {
  SAI_ARS_PROFILE_ATTR_START , SAI_ARS_PROFILE_ATTR_ALGO = SAI_ARS_PROFILE_ATTR_START , SAI_ARS_PROFILE_ATTR_SAMPLING_INTERVAL , SAI_ARS_PROFILE_ATTR_ARS_RANDOM_SEED ,
  SAI_ARS_PROFILE_ATTR_ECMP_ARS_MAX_GROUPS , SAI_ARS_PROFILE_ATTR_ECMP_ARS_MAX_MEMBERS_PER_GROUP , SAI_ARS_PROFILE_ATTR_LAG_ARS_MAX_GROUPS , SAI_ARS_PROFILE_ATTR_LAG_ARS_MAX_MEMBERS_PER_GROUP ,
  SAI_ARS_PROFILE_ATTR_PORT_LOAD_PAST , SAI_ARS_PROFILE_ATTR_PORT_LOAD_PAST_WEIGHT , SAI_ARS_PROFILE_ATTR_PORT_LOAD_FUTURE , SAI_ARS_PROFILE_ATTR_PORT_LOAD_FUTURE_WEIGHT ,
  SAI_ARS_PROFILE_ATTR_PORT_LOAD_CURRENT , SAI_ARS_PROFILE_ATTR_PORT_LOAD_EXPONENT , SAI_ARS_PROFILE_ATTR_QUANT_BANDS , SAI_ARS_PROFILE_ATTR_QUANT_BAND_0_MIN_THRESHOLD ,
  SAI_ARS_PROFILE_ATTR_QUANT_BAND_0_MAX_THRESHOLD , SAI_ARS_PROFILE_ATTR_QUANT_BAND_1_MIN_THRESHOLD , SAI_ARS_PROFILE_ATTR_QUANT_BAND_1_MAX_THRESHOLD , SAI_ARS_PROFILE_ATTR_QUANT_BAND_2_MIN_THRESHOLD ,
  SAI_ARS_PROFILE_ATTR_QUANT_BAND_2_MAX_THRESHOLD , SAI_ARS_PROFILE_ATTR_QUANT_BAND_3_MIN_THRESHOLD , SAI_ARS_PROFILE_ATTR_QUANT_BAND_3_MAX_THRESHOLD , SAI_ARS_PROFILE_ATTR_QUANT_BAND_4_MIN_THRESHOLD ,
  SAI_ARS_PROFILE_ATTR_QUANT_BAND_4_MAX_THRESHOLD , SAI_ARS_PROFILE_ATTR_QUANT_BAND_5_MIN_THRESHOLD , SAI_ARS_PROFILE_ATTR_QUANT_BAND_5_MAX_THRESHOLD , SAI_ARS_PROFILE_ATTR_QUANT_BAND_6_MIN_THRESHOLD ,
  SAI_ARS_PROFILE_ATTR_QUANT_BAND_6_MAX_THRESHOLD , SAI_ARS_PROFILE_ATTR_QUANT_BAND_7_MIN_THRESHOLD , SAI_ARS_PROFILE_ATTR_QUANT_BAND_7_MAX_THRESHOLD , SAI_ARS_PROFILE_ATTR_END ,
  SAI_ARS_PROFILE_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_ARS_PROFILE_ATTR_CUSTOM_RANGE_END
}
 Enum defining attributes for ARS profile. More...
 

Detailed Description

Typedef Documentation

◆ sai_create_ars_profile_fn

typedef sai_status_t(* sai_create_ars_profile_fn) (_Out_ sai_object_id_t *ars_profile_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Create ARS Profile.

Parameters
[out]ars_profile_idARS Profile Id
[in]switch_idSwitch id
[in]attr_countNumber of attributes
[in]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 352 of file saiarsprofile.h.

◆ sai_get_ars_profile_attribute_fn

typedef sai_status_t(* sai_get_ars_profile_attribute_fn) (_In_ sai_object_id_t ars_profile_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get attributes of ARS profile.

Parameters
[in]ars_profile_idARS Profile id
[in]attr_countNumber of attributes
[in,out]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 389 of file saiarsprofile.h.

◆ sai_remove_ars_profile_fn

typedef sai_status_t(* sai_remove_ars_profile_fn) (_In_ sai_object_id_t ars_profile_id)

Remove ARS Profile.

Parameters
[in]ars_profile_idARS Profile id to be removed.
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 365 of file saiarsprofile.h.

◆ sai_set_ars_profile_attribute_fn

typedef sai_status_t(* sai_set_ars_profile_attribute_fn) (_In_ sai_object_id_t ars_profile_id, _In_ const sai_attribute_t *attr)

Set attributes for ARS profile.

Parameters
[in]ars_profile_idARS Profile Id
[in]attrAttribute to set
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 376 of file saiarsprofile.h.

Enumeration Type Documentation

◆ _sai_ars_profile_algo_t

Adaptive Routing and Switching quality measure algorithm.

Enumerator
SAI_ARS_PROFILE_ALGO_EWMA 

Exponentially weighted moving average

Definition at line 39 of file saiarsprofile.h.

◆ _sai_ars_profile_attr_t

Enum defining attributes for ARS profile.

Enumerator
SAI_ARS_PROFILE_ATTR_START 

Start of attributes.

SAI_ARS_PROFILE_ATTR_ALGO 

ARS algorithm used for quality computation.

Value Type:
sai_ars_profile_algo_t
Flags:
CREATE_AND_SET
Default value:
SAI_ARS_PROFILE_ALGO_EWMA
SAI_ARS_PROFILE_ATTR_SAMPLING_INTERVAL 

Sampling interval in microseconds of data for quality measure computation.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
16
SAI_ARS_PROFILE_ATTR_ARS_RANDOM_SEED 

Random seed for adaptive routing and switching.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_ECMP_ARS_MAX_GROUPS 

Maximum number of ECMP ARS groups.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_ARS_PROFILE_ATTR_ECMP_ARS_MAX_MEMBERS_PER_GROUP 

Maximum number of members per ECMP ARS group.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_ARS_PROFILE_ATTR_LAG_ARS_MAX_GROUPS 

Maximum number of LAG ARS groups.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_ARS_PROFILE_ATTR_LAG_ARS_MAX_MEMBERS_PER_GROUP 

Maximum number of members per LAG ARS group.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_ARS_PROFILE_ATTR_PORT_LOAD_PAST 

Enable past port load as the quality parameter. This is the average egress bytes measured on a port.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
true
Valid only when:
SAI_ARS_PROFILE_ATTR_ALGO == SAI_ARS_PROFILE_ALGO_EWMA
SAI_ARS_PROFILE_ATTR_PORT_LOAD_PAST_WEIGHT 

Weight attribute is used in EWMA calculations. Large weight lowers the significance of instantaneous measure on the overall average.

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
16
Valid only when:
SAI_ARS_PROFILE_ATTR_ALGO == SAI_ARS_PROFILE_ALGO_EWMA
SAI_ARS_PROFILE_ATTR_PORT_LOAD_FUTURE 

Enable future port load as the quality parameter. This is the average queued bytes measured on a port.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
true
Valid only when:
SAI_ARS_PROFILE_ATTR_ALGO == SAI_ARS_PROFILE_ALGO_EWMA
SAI_ARS_PROFILE_ATTR_PORT_LOAD_FUTURE_WEIGHT 

Weight attribute is used in EWMA calculations. Large weight lowers the significance of instantaneous measure on the overall average.

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
16
Valid only when:
SAI_ARS_PROFILE_ATTR_ALGO == SAI_ARS_PROFILE_ALGO_EWMA
SAI_ARS_PROFILE_ATTR_PORT_LOAD_CURRENT 

Set port loading value to current sampled value when sampled value is less than the average.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
Valid only when:
SAI_ARS_PROFILE_ATTR_ALGO == SAI_ARS_PROFILE_ALGO_EWMA
SAI_ARS_PROFILE_ATTR_PORT_LOAD_EXPONENT 

EWMA exponent used in port loading computation. Larger the exponent, larger is the weight to previously computed port loading value.

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
2
Valid only when:
SAI_ARS_PROFILE_ATTR_ALGO == SAI_ARS_PROFILE_ALGO_EWMA
SAI_ARS_PROFILE_ATTR_QUANT_BANDS 

Number of quantization bands support for quality map.

Value Type:
sai_uint8_t
Flags:
READ_ONLY
SAI_ARS_PROFILE_ATTR_QUANT_BAND_0_MIN_THRESHOLD 

Minimum threshold used for quantization process in Mbps for band 0.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_0_MAX_THRESHOLD 

Maximum threshold used for quantization process in Mbps for band 0.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_1_MIN_THRESHOLD 

Minimum threshold used for quantization process in Mbps for band 1.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_1_MAX_THRESHOLD 

Maximum threshold used for quantization process in Mbps for band 1.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_2_MIN_THRESHOLD 

Minimum threshold used for quantization process in Mbps for band 2.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_2_MAX_THRESHOLD 

Maximum threshold used for quantization process in Mbps for band 2.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_3_MIN_THRESHOLD 

Minimum threshold used for quantization process in Mbps for band 3.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_3_MAX_THRESHOLD 

Maximum threshold used for quantization process in Mbps for band 3.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_4_MIN_THRESHOLD 

Minimum threshold used for quantization process in Mbps for band 4.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_4_MAX_THRESHOLD 

Maximum threshold used for quantization process in Mbps for band 4.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_5_MIN_THRESHOLD 

Minimum threshold used for quantization process in Mbps for band 5.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_5_MAX_THRESHOLD 

Maximum threshold used for quantization process in Mbps for band 5.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_6_MIN_THRESHOLD 

Minimum threshold used for quantization process in Mbps for band 6.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_6_MAX_THRESHOLD 

Maximum threshold used for quantization process in Mbps for band 6.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_7_MIN_THRESHOLD 

Minimum threshold used for quantization process in Mbps for band 7.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_QUANT_BAND_7_MAX_THRESHOLD 

Maximum threshold used for quantization process in Mbps for band 7.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_ARS_PROFILE_ATTR_END 

End of attributes.

SAI_ARS_PROFILE_ATTR_CUSTOM_RANGE_START 

Custom range base value

SAI_ARS_PROFILE_ATTR_CUSTOM_RANGE_END 

End of custom range base

Definition at line 49 of file saiarsprofile.h.