SAI Metadata
Loading...
Searching...
No Matches
SAI - Adaptive Routing and Switching specific API definitions

Classes

struct  _sai_ars_api_t
 Adaptive routing and switching methods table retrieved with sai_api_query() More...
 

Typedefs

typedef enum _sai_ars_mode_t sai_ars_mode_t
 Adaptive routing and switching path (re)assignment mode.
 
typedef enum _sai_ars_attr_t sai_ars_attr_t
 Attribute id for adaptive routing and switching.
 
typedef sai_status_t(* sai_create_ars_fn) (_Out_ sai_object_id_t *ars_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create adaptive routing and switching object.
 
typedef sai_status_t(* sai_remove_ars_fn) (_In_ sai_object_id_t ars_id)
 Remove adaptive routing and switching object.
 
typedef sai_status_t(* sai_set_ars_attribute_fn) (_In_ sai_object_id_t ars_id, _In_ const sai_attribute_t *attr)
 Set Adaptive routing and switching attribute.
 
typedef sai_status_t(* sai_get_ars_attribute_fn) (_In_ sai_object_id_t ars_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get Adaptive routing and switching attribute.
 
typedef struct _sai_ars_api_t sai_ars_api_t
 Adaptive routing and switching methods table retrieved with sai_api_query()
 

Enumerations

enum  _sai_ars_mode_t {
  SAI_ARS_MODE_FLOWLET_QUALITY , SAI_ARS_MODE_FLOWLET_RANDOM , SAI_ARS_MODE_PER_PACKET_QUALITY , SAI_ARS_MODE_PER_PACKET_RANDOM ,
  SAI_ARS_MODE_FIXED
}
 Adaptive routing and switching path (re)assignment mode. More...
 
enum  _sai_ars_attr_t {
  SAI_ARS_ATTR_START , SAI_ARS_ATTR_MODE = SAI_ARS_ATTR_START , SAI_ARS_ATTR_IDLE_TIME , SAI_ARS_ATTR_MAX_FLOWS ,
  SAI_ARS_ATTR_MON_ENABLE , SAI_ARS_ATTR_SAMPLEPACKET_ENABLE , SAI_ARS_ATTR_MAX_ALT_MEMEBERS_PER_GROUP , SAI_ARS_ATTR_MAX_PRIMARY_MEMEBERS_PER_GROUP ,
  SAI_ARS_ATTR_PRIMARY_PATH_QUALITY_THRESHOLD , SAI_ARS_ATTR_ALTERNATE_PATH_COST , SAI_ARS_ATTR_ALTERNATE_PATH_BIAS , SAI_ARS_ATTR_END ,
  SAI_ARS_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_ARS_ATTR_CUSTOM_RANGE_END
}
 Attribute id for adaptive routing and switching. More...
 

Detailed Description

Typedef Documentation

◆ sai_create_ars_fn

typedef sai_status_t(* sai_create_ars_fn) (_Out_ sai_object_id_t *ars_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Create adaptive routing and switching object.

Parameters
[out]ars_idAdaptive routing and switching 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 186 of file saiars.h.

◆ sai_get_ars_attribute_fn

typedef sai_status_t(* sai_get_ars_attribute_fn) (_In_ sai_object_id_t ars_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get Adaptive routing and switching attribute.

Parameters
[in]ars_idAdaptive routing and switching 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 223 of file saiars.h.

◆ sai_remove_ars_fn

typedef sai_status_t(* sai_remove_ars_fn) (_In_ sai_object_id_t ars_id)

Remove adaptive routing and switching object.

Parameters
[in]ars_idAdaptive routing and switching id
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 199 of file saiars.h.

◆ sai_set_ars_attribute_fn

typedef sai_status_t(* sai_set_ars_attribute_fn) (_In_ sai_object_id_t ars_id, _In_ const sai_attribute_t *attr)

Set Adaptive routing and switching attribute.

Parameters
[in]ars_idAdaptive routing and switching id
[in]attrAttribute
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 210 of file saiars.h.

Enumeration Type Documentation

◆ _sai_ars_attr_t

Attribute id for adaptive routing and switching.

Enumerator
SAI_ARS_ATTR_START 

Start of attributes.

SAI_ARS_ATTR_MODE 

ARS path assignment mode.

Value Type:
sai_ars_mode_t
Flags:
CREATE_AND_SET
Default value:
SAI_ARS_MODE_FLOWLET_QUALITY
SAI_ARS_ATTR_IDLE_TIME 

Idle duration in microseconds. This duration is to classifying a flow-let in a macro flow.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
256
SAI_ARS_ATTR_MAX_FLOWS 

Maximum number of flow states that can be maintained per this ARS object.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
512
SAI_ARS_ATTR_MON_ENABLE 

ARS monitoring.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_ARS_ATTR_SAMPLEPACKET_ENABLE 

Enable/Disable ARS Samplepacket session.

Enable ARS sampling by assigning samplepacket object id. Disable ARS sampling by assigning SAI_NULL_OBJECT_ID as attribute value.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_SAMPLEPACKET
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_ARS_ATTR_MAX_ALT_MEMEBERS_PER_GROUP 

Maximum number of alternate members per adaptive routing group.

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

Maximum number of primary members per adaptive routing group.

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

Quality threshold for least cost ARS paths. Crossing down the threshold will result in using the non least cost sub optimal path.

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

Cost of switching over to non least cost ARS paths.

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

Indicates the bias in favor of alternate path.

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

End of attributes.

SAI_ARS_ATTR_CUSTOM_RANGE_START 

Custom range base value

SAI_ARS_ATTR_CUSTOM_RANGE_END 

End of custom range base

Definition at line 61 of file saiars.h.

◆ _sai_ars_mode_t

Adaptive routing and switching path (re)assignment mode.

Enumerator
SAI_ARS_MODE_FLOWLET_QUALITY 

Per flow-let quality based path (re)assignment

SAI_ARS_MODE_FLOWLET_RANDOM 

Per flow-let random path (re)assignment

SAI_ARS_MODE_PER_PACKET_QUALITY 

Per packet quality based path (re)assignment

SAI_ARS_MODE_PER_PACKET_RANDOM 

Per packet random path (re)assignment

SAI_ARS_MODE_FIXED 

Fixed path assignment

Definition at line 39 of file saiars.h.