SAI Metadata
Loading...
Searching...
No Matches
SAI - QOS scheduler specific API definitions

Classes

struct  _sai_scheduler_api_t
 Scheduler methods table retrieved with sai_api_query() More...
 

Typedefs

typedef enum _sai_scheduling_type_t sai_scheduling_type_t
 Enum defining scheduling algorithm.
 
typedef enum _sai_scheduler_attr_t sai_scheduler_attr_t
 Enum defining scheduler attributes.
 
typedef sai_status_t(* sai_create_scheduler_fn) (_Out_ sai_object_id_t *scheduler_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create Scheduler Profile.
 
typedef sai_status_t(* sai_remove_scheduler_fn) (_In_ sai_object_id_t scheduler_id)
 Remove Scheduler profile.
 
typedef sai_status_t(* sai_set_scheduler_attribute_fn) (_In_ sai_object_id_t scheduler_id, _In_ const sai_attribute_t *attr)
 Set Scheduler Attribute.
 
typedef sai_status_t(* sai_get_scheduler_attribute_fn) (_In_ sai_object_id_t scheduler_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get Scheduler attribute.
 
typedef struct _sai_scheduler_api_t sai_scheduler_api_t
 Scheduler methods table retrieved with sai_api_query()
 

Enumerations

enum  _sai_scheduling_type_t { SAI_SCHEDULING_TYPE_STRICT = 0x00000000 , SAI_SCHEDULING_TYPE_WRR = 0x00000001 , SAI_SCHEDULING_TYPE_DWRR = 0x00000002 }
 Enum defining scheduling algorithm. More...
 
enum  _sai_scheduler_attr_t {
  SAI_SCHEDULER_ATTR_START = 0x00000000 , SAI_SCHEDULER_ATTR_SCHEDULING_TYPE = SAI_SCHEDULER_ATTR_START , SAI_SCHEDULER_ATTR_SCHEDULING_WEIGHT = 0x00000001 , SAI_SCHEDULER_ATTR_METER_TYPE = 0x00000002 ,
  SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_RATE = 0x00000003 , SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_BURST_RATE = 0x00000004 , SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_RATE = 0x00000005 , SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_BURST_RATE = 0x00000006 ,
  SAI_SCHEDULER_ATTR_END , SAI_SCHEDULER_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_SCHEDULER_ATTR_CUSTOM_RANGE_END
}
 Enum defining scheduler attributes. More...
 

Detailed Description

Typedef Documentation

◆ sai_create_scheduler_fn

typedef sai_status_t(* sai_create_scheduler_fn) (_Out_ sai_object_id_t *scheduler_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Create Scheduler Profile.

Parameters
[out]scheduler_idScheduler 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 155 of file saischeduler.h.

◆ sai_get_scheduler_attribute_fn

typedef sai_status_t(* sai_get_scheduler_attribute_fn) (_In_ sai_object_id_t scheduler_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get Scheduler attribute.

Parameters
[in]scheduler_idScheduler 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 192 of file saischeduler.h.

◆ sai_remove_scheduler_fn

typedef sai_status_t(* sai_remove_scheduler_fn) (_In_ sai_object_id_t scheduler_id)

Remove Scheduler profile.

Parameters
[in]scheduler_idScheduler id
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 168 of file saischeduler.h.

◆ sai_set_scheduler_attribute_fn

typedef sai_status_t(* sai_set_scheduler_attribute_fn) (_In_ sai_object_id_t scheduler_id, _In_ const sai_attribute_t *attr)

Set Scheduler Attribute.

Parameters
[in]scheduler_idScheduler id
[in]attrAttribute to set
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 179 of file saischeduler.h.

Enumeration Type Documentation

◆ _sai_scheduler_attr_t

Enum defining scheduler attributes.

Enumerator
SAI_SCHEDULER_ATTR_START 

Start of attributes.

SAI_SCHEDULER_ATTR_SCHEDULING_TYPE 

Scheduling algorithm.

Value Type:
sai_scheduling_type_t
Flags:
CREATE_AND_SET
Default value:
SAI_SCHEDULING_TYPE_WRR
SAI_SCHEDULER_ATTR_SCHEDULING_WEIGHT 

Scheduling algorithm weight.

Range [1 - 100].

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
1
Valid only when:
SAI_SCHEDULER_ATTR_SCHEDULING_TYPE == SAI_SCHEDULING_TYPE_DWRR
SAI_SCHEDULER_ATTR_METER_TYPE 

Sharper.

Value Type:
sai_meter_type_t
Flags:
CREATE_AND_SET
Default value:
SAI_METER_TYPE_BYTES
SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_RATE 

Guaranteed Bandwidth shape rate [bytes/sec or PPS].

Value 0 to no limit.

Value Type:
sai_uint64_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_BURST_RATE 

Guaranteed Burst for Bandwidth shape rate [Bytes or Packets].

Value Type:
sai_uint64_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_RATE 

Maximum Bandwidth shape rate [bytes/sec or PPS].

Value 0 to no limit.

Value Type:
sai_uint64_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_BURST_RATE 

Maximum Burst for Bandwidth shape rate [bytes or Packets].

Value Type:
sai_uint64_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_SCHEDULER_ATTR_END 

End of attributes.

SAI_SCHEDULER_ATTR_CUSTOM_RANGE_START 

Custom range base value

SAI_SCHEDULER_ATTR_CUSTOM_RANGE_END 

End of custom range base

Definition at line 55 of file saischeduler.h.

◆ _sai_scheduling_type_t

Enum defining scheduling algorithm.

Enumerator
SAI_SCHEDULING_TYPE_STRICT 

Strict Scheduling

SAI_SCHEDULING_TYPE_WRR 

Weighted Round-Robin Scheduling

SAI_SCHEDULING_TYPE_DWRR 

Deficit Weighted Round-Robin Scheduling

Definition at line 39 of file saischeduler.h.