SAI Metadata
Loading...
Searching...
No Matches
saibuffer.h
Go to the documentation of this file.
1
25#if !defined (__SAIBUFFER_H_)
26#define __SAIBUFFER_H_
27
28#include <saitypes.h>
29
40{
45
58
67
77
85
90
93
96
98
103{
106
109
112
115
118
121
124
127
130
133
135
147 _Out_ sai_object_id_t *ingress_priority_group_id,
148 _In_ sai_object_id_t switch_id,
149 _In_ uint32_t attr_count,
150 _In_ const sai_attribute_t *attr_list);
151
160 _In_ sai_object_id_t ingress_priority_group_id);
161
171 _In_ sai_object_id_t ingress_priority_group_id,
172 _In_ const sai_attribute_t *attr);
173
184 _In_ sai_object_id_t ingress_priority_group_id,
185 _In_ uint32_t attr_count,
186 _Inout_ sai_attribute_t *attr_list);
187
199 _In_ sai_object_id_t ingress_priority_group_id,
200 _In_ uint32_t number_of_counters,
201 _In_ const sai_stat_id_t *counter_ids,
202 _Out_ uint64_t *counters);
203
216 _In_ sai_object_id_t ingress_priority_group_id,
217 _In_ uint32_t number_of_counters,
218 _In_ const sai_stat_id_t *counter_ids,
219 _In_ sai_stats_mode_t mode,
220 _Out_ uint64_t *counters);
221
232 _In_ sai_object_id_t ingress_priority_group_id,
233 _In_ uint32_t number_of_counters,
234 _In_ const sai_stat_id_t *counter_ids);
235
240{
243
246
249
251
256{
259
262
264
269{
274
285
293
301
310
320
333
349
354
357
360
362
367{
370
373
376
379
382
385
388
391
394
397
400
403
406
409
412
415
418
421
424
427
430
433
435
446typedef sai_status_t (*sai_create_buffer_pool_fn)(
447 _Out_ sai_object_id_t *buffer_pool_id,
448 _In_ sai_object_id_t switch_id,
449 _In_ uint32_t attr_count,
450 _In_ const sai_attribute_t *attr_list);
451
459typedef sai_status_t (*sai_remove_buffer_pool_fn)(
460 _In_ sai_object_id_t buffer_pool_id);
461
470typedef sai_status_t (*sai_set_buffer_pool_attribute_fn)(
471 _In_ sai_object_id_t buffer_pool_id,
472 _In_ const sai_attribute_t *attr);
473
483typedef sai_status_t (*sai_get_buffer_pool_attribute_fn)(
484 _In_ sai_object_id_t buffer_pool_id,
485 _In_ uint32_t attr_count,
486 _Inout_ sai_attribute_t *attr_list);
487
498typedef sai_status_t (*sai_get_buffer_pool_stats_fn)(
499 _In_ sai_object_id_t buffer_pool_id,
500 _In_ uint32_t number_of_counters,
501 _In_ const sai_stat_id_t *counter_ids,
502 _Out_ uint64_t *counters);
503
515typedef sai_status_t (*sai_get_buffer_pool_stats_ext_fn)(
516 _In_ sai_object_id_t buffer_pool_id,
517 _In_ uint32_t number_of_counters,
518 _In_ const sai_stat_id_t *counter_ids,
519 _In_ sai_stats_mode_t mode,
520 _Out_ uint64_t *counters);
521
531typedef sai_status_t (*sai_clear_buffer_pool_stats_fn)(
532 _In_ sai_object_id_t buffer_pool_id,
533 _In_ uint32_t number_of_counters,
534 _In_ const sai_stat_id_t *counter_ids);
535
540{
543
546
548
553{
558
572
580
583
593
604
615
635
652
669
674
677
680
682
693typedef sai_status_t (*sai_create_buffer_profile_fn)(
694 _Out_ sai_object_id_t *buffer_profile_id,
695 _In_ sai_object_id_t switch_id,
696 _In_ uint32_t attr_count,
697 _In_ const sai_attribute_t *attr_list);
698
706typedef sai_status_t (*sai_remove_buffer_profile_fn)(
707 _In_ sai_object_id_t buffer_profile_id);
708
718 _In_ sai_object_id_t buffer_profile_id,
719 _In_ const sai_attribute_t *attr);
720
731 _In_ sai_object_id_t buffer_profile_id,
732 _In_ uint32_t attr_count,
733 _Inout_ sai_attribute_t *attr_list);
734
738typedef struct _sai_buffer_api_t
739{
740 sai_create_buffer_pool_fn create_buffer_pool;
741 sai_remove_buffer_pool_fn remove_buffer_pool;
742 sai_set_buffer_pool_attribute_fn set_buffer_pool_attribute;
743 sai_get_buffer_pool_attribute_fn get_buffer_pool_attribute;
744 sai_get_buffer_pool_stats_fn get_buffer_pool_stats;
745 sai_get_buffer_pool_stats_ext_fn get_buffer_pool_stats_ext;
746 sai_clear_buffer_pool_stats_fn clear_buffer_pool_stats;
747 sai_create_ingress_priority_group_fn create_ingress_priority_group;
748 sai_remove_ingress_priority_group_fn remove_ingress_priority_group;
749 sai_set_ingress_priority_group_attribute_fn set_ingress_priority_group_attribute;
750 sai_get_ingress_priority_group_attribute_fn get_ingress_priority_group_attribute;
751 sai_get_ingress_priority_group_stats_fn get_ingress_priority_group_stats;
752 sai_get_ingress_priority_group_stats_ext_fn get_ingress_priority_group_stats_ext;
753 sai_clear_ingress_priority_group_stats_fn clear_ingress_priority_group_stats;
754 sai_create_buffer_profile_fn create_buffer_profile;
755 sai_remove_buffer_profile_fn remove_buffer_profile;
756 sai_set_buffer_profile_attribute_fn set_buffer_profile_attribute;
757 sai_get_buffer_profile_attribute_fn get_buffer_profile_attribute;
759
763#endif
sai_status_t(* sai_get_buffer_pool_attribute_fn)(_In_ sai_object_id_t buffer_pool_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
Get buffer pool attributes.
Definition saibuffer.h:483
enum _sai_buffer_profile_threshold_mode_t sai_buffer_profile_threshold_mode_t
Enum defining buffer profile threshold modes.
sai_status_t(* sai_create_buffer_profile_fn)(_Out_ sai_object_id_t *buffer_profile_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create buffer profile.
Definition saibuffer.h:693
enum _sai_buffer_pool_attr_t sai_buffer_pool_attr_t
Enum defining buffer pool attributes.
_sai_ingress_priority_group_attr_t
Enum defining ingress priority group attributes.
Definition saibuffer.h:40
sai_status_t(* sai_set_buffer_pool_attribute_fn)(_In_ sai_object_id_t buffer_pool_id, _In_ const sai_attribute_t *attr)
Set buffer pool attribute.
Definition saibuffer.h:470
enum _sai_buffer_pool_type_t sai_buffer_pool_type_t
Enum defining buffer pool types.
sai_status_t(* sai_remove_buffer_profile_fn)(_In_ sai_object_id_t buffer_profile_id)
Remove buffer profile.
Definition saibuffer.h:706
sai_status_t(* sai_clear_buffer_pool_stats_fn)(_In_ sai_object_id_t buffer_pool_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
Clear buffer pool statistics counters.
Definition saibuffer.h:531
struct _sai_buffer_api_t sai_buffer_api_t
Buffer methods table retrieved with sai_api_query()
enum _sai_buffer_pool_stat_t sai_buffer_pool_stat_t
Enum defining statistics for buffer pool.
_sai_buffer_pool_attr_t
Enum defining buffer pool attributes.
Definition saibuffer.h:269
sai_status_t(* sai_clear_ingress_priority_group_stats_fn)(_In_ sai_object_id_t ingress_priority_group_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
Clear ingress priority group statistics counters.
Definition saibuffer.h:231
enum _sai_ingress_priority_group_stat_t sai_ingress_priority_group_stat_t
Enum defining statistics for ingress priority group.
sai_status_t(* sai_remove_buffer_pool_fn)(_In_ sai_object_id_t buffer_pool_id)
Remove buffer pool.
Definition saibuffer.h:459
sai_status_t(* sai_get_buffer_profile_attribute_fn)(_In_ sai_object_id_t buffer_profile_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
Get buffer profile attributes.
Definition saibuffer.h:730
sai_status_t(* sai_remove_ingress_priority_group_fn)(_In_ sai_object_id_t ingress_priority_group_id)
Remove ingress priority group.
Definition saibuffer.h:159
_sai_buffer_pool_type_t
Enum defining buffer pool types.
Definition saibuffer.h:240
sai_status_t(* sai_get_buffer_pool_stats_ext_fn)(_In_ sai_object_id_t buffer_pool_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _In_ sai_stats_mode_t mode, _Out_ uint64_t *counters)
Get buffer pool statistics counters extended.
Definition saibuffer.h:515
enum _sai_ingress_priority_group_attr_t sai_ingress_priority_group_attr_t
Enum defining ingress priority group attributes.
_sai_buffer_pool_threshold_mode_t
Enum defining buffer pool threshold modes.
Definition saibuffer.h:256
sai_status_t(* sai_get_buffer_pool_stats_fn)(_In_ sai_object_id_t buffer_pool_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
Get buffer pool statistics counters. Deprecated for backward compatibility.
Definition saibuffer.h:498
sai_status_t(* sai_set_buffer_profile_attribute_fn)(_In_ sai_object_id_t buffer_profile_id, _In_ const sai_attribute_t *attr)
Set buffer profile attribute.
Definition saibuffer.h:717
sai_status_t(* sai_get_ingress_priority_group_attribute_fn)(_In_ sai_object_id_t ingress_priority_group_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
Get ingress priority group attributes.
Definition saibuffer.h:183
sai_status_t(* sai_get_ingress_priority_group_stats_fn)(_In_ sai_object_id_t ingress_priority_group_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
Get ingress priority group statistics counters. Deprecated for backward compatibility.
Definition saibuffer.h:198
_sai_ingress_priority_group_stat_t
Enum defining statistics for ingress priority group.
Definition saibuffer.h:103
enum _sai_buffer_profile_attr_t sai_buffer_profile_attr_t
Enum defining buffer profile attributes.
sai_status_t(* sai_get_ingress_priority_group_stats_ext_fn)(_In_ sai_object_id_t ingress_priority_group_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _In_ sai_stats_mode_t mode, _Out_ uint64_t *counters)
Get ingress priority group statistics counters extended.
Definition saibuffer.h:215
sai_status_t(* sai_set_ingress_priority_group_attribute_fn)(_In_ sai_object_id_t ingress_priority_group_id, _In_ const sai_attribute_t *attr)
Set ingress priority group attribute.
Definition saibuffer.h:170
sai_status_t(* sai_create_buffer_pool_fn)(_Out_ sai_object_id_t *buffer_pool_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create buffer pool.
Definition saibuffer.h:446
sai_status_t(* sai_create_ingress_priority_group_fn)(_Out_ sai_object_id_t *ingress_priority_group_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create ingress priority group.
Definition saibuffer.h:146
_sai_buffer_pool_stat_t
Enum defining statistics for buffer pool.
Definition saibuffer.h:367
_sai_buffer_profile_attr_t
Enum defining buffer profile attributes.
Definition saibuffer.h:553
enum _sai_buffer_pool_threshold_mode_t sai_buffer_pool_threshold_mode_t
Enum defining buffer pool threshold modes.
_sai_buffer_profile_threshold_mode_t
Enum defining buffer profile threshold modes.
Definition saibuffer.h:540
@ SAI_INGRESS_PRIORITY_GROUP_ATTR_BUFFER_PROFILE
Buffer profile pointer.
Definition saibuffer.h:57
@ SAI_INGRESS_PRIORITY_GROUP_ATTR_START
Start of attributes.
Definition saibuffer.h:44
@ SAI_INGRESS_PRIORITY_GROUP_ATTR_CUSTOM_RANGE_END
Definition saibuffer.h:95
@ SAI_INGRESS_PRIORITY_GROUP_ATTR_END
End of attributes.
Definition saibuffer.h:89
@ SAI_INGRESS_PRIORITY_GROUP_ATTR_TAM
TAM id.
Definition saibuffer.h:76
@ SAI_INGRESS_PRIORITY_GROUP_ATTR_PORT
Port id.
Definition saibuffer.h:66
@ SAI_INGRESS_PRIORITY_GROUP_ATTR_CUSTOM_RANGE_START
Definition saibuffer.h:92
@ SAI_INGRESS_PRIORITY_GROUP_ATTR_INDEX
PG index.
Definition saibuffer.h:84
@ SAI_BUFFER_POOL_ATTR_START
Start of attributes.
Definition saibuffer.h:273
@ SAI_BUFFER_POOL_ATTR_WRED_PROFILE_ID
Attach WRED ID to pool.
Definition saibuffer.h:348
@ SAI_BUFFER_POOL_ATTR_TAM
TAM id.
Definition saibuffer.h:319
@ SAI_BUFFER_POOL_ATTR_THRESHOLD_MODE
Shared threshold mode for the buffer.
Definition saibuffer.h:309
@ SAI_BUFFER_POOL_ATTR_END
End of attributes.
Definition saibuffer.h:353
@ SAI_BUFFER_POOL_ATTR_CUSTOM_RANGE_END
Definition saibuffer.h:359
@ SAI_BUFFER_POOL_ATTR_TYPE
Buffer pool type.
Definition saibuffer.h:292
@ SAI_BUFFER_POOL_ATTR_SHARED_SIZE
Shared buffer size in bytes.
Definition saibuffer.h:284
@ SAI_BUFFER_POOL_ATTR_CUSTOM_RANGE_START
Definition saibuffer.h:356
@ SAI_BUFFER_POOL_ATTR_SIZE
Buffer pool size in bytes.
Definition saibuffer.h:300
@ SAI_BUFFER_POOL_ATTR_XOFF_SIZE
Shared headroom pool size in bytes for lossless traffic.
Definition saibuffer.h:332
@ SAI_BUFFER_POOL_TYPE_BOTH
Definition saibuffer.h:248
@ SAI_BUFFER_POOL_TYPE_INGRESS
Definition saibuffer.h:242
@ SAI_BUFFER_POOL_TYPE_EGRESS
Definition saibuffer.h:245
@ SAI_BUFFER_POOL_THRESHOLD_MODE_DYNAMIC
Definition saibuffer.h:261
@ SAI_BUFFER_POOL_THRESHOLD_MODE_STATIC
Definition saibuffer.h:258
@ SAI_INGRESS_PRIORITY_GROUP_STAT_DROPPED_PACKETS
Definition saibuffer.h:129
@ SAI_INGRESS_PRIORITY_GROUP_STAT_SHARED_WATERMARK_BYTES
Definition saibuffer.h:120
@ SAI_INGRESS_PRIORITY_GROUP_STAT_SHARED_CURR_OCCUPANCY_BYTES
Definition saibuffer.h:117
@ SAI_INGRESS_PRIORITY_GROUP_STAT_CUSTOM_RANGE_BASE
Definition saibuffer.h:132
@ SAI_INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_CURR_OCCUPANCY_BYTES
Definition saibuffer.h:123
@ SAI_INGRESS_PRIORITY_GROUP_STAT_CURR_OCCUPANCY_BYTES
Definition saibuffer.h:111
@ SAI_INGRESS_PRIORITY_GROUP_STAT_BYTES
Definition saibuffer.h:108
@ SAI_INGRESS_PRIORITY_GROUP_STAT_PACKETS
Definition saibuffer.h:105
@ SAI_INGRESS_PRIORITY_GROUP_STAT_WATERMARK_BYTES
Definition saibuffer.h:114
@ SAI_INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_WATERMARK_BYTES
Definition saibuffer.h:126
@ SAI_BUFFER_POOL_STAT_RED_WRED_ECN_MARKED_BYTES
Definition saibuffer.h:417
@ SAI_BUFFER_POOL_STAT_DROPPED_PACKETS
Definition saibuffer.h:375
@ SAI_BUFFER_POOL_STAT_WRED_ECN_MARKED_PACKETS
Definition saibuffer.h:420
@ SAI_BUFFER_POOL_STAT_GREEN_WRED_DROPPED_PACKETS
Definition saibuffer.h:378
@ SAI_BUFFER_POOL_STAT_YELLOW_WRED_ECN_MARKED_BYTES
Definition saibuffer.h:411
@ SAI_BUFFER_POOL_STAT_RED_WRED_DROPPED_PACKETS
Definition saibuffer.h:390
@ SAI_BUFFER_POOL_STAT_GREEN_WRED_ECN_MARKED_BYTES
Definition saibuffer.h:405
@ SAI_BUFFER_POOL_STAT_CUSTOM_RANGE_BASE
Definition saibuffer.h:432
@ SAI_BUFFER_POOL_STAT_GREEN_WRED_DROPPED_BYTES
Definition saibuffer.h:381
@ SAI_BUFFER_POOL_STAT_WRED_DROPPED_BYTES
Definition saibuffer.h:399
@ SAI_BUFFER_POOL_STAT_YELLOW_WRED_ECN_MARKED_PACKETS
Definition saibuffer.h:408
@ SAI_BUFFER_POOL_STAT_RED_WRED_ECN_MARKED_PACKETS
Definition saibuffer.h:414
@ SAI_BUFFER_POOL_STAT_WATERMARK_BYTES
Definition saibuffer.h:372
@ SAI_BUFFER_POOL_STAT_YELLOW_WRED_DROPPED_BYTES
Definition saibuffer.h:387
@ SAI_BUFFER_POOL_STAT_CURR_OCCUPANCY_BYTES
Definition saibuffer.h:369
@ SAI_BUFFER_POOL_STAT_XOFF_ROOM_WATERMARK_BYTES
Definition saibuffer.h:429
@ SAI_BUFFER_POOL_STAT_WRED_DROPPED_PACKETS
Definition saibuffer.h:396
@ SAI_BUFFER_POOL_STAT_YELLOW_WRED_DROPPED_PACKETS
Definition saibuffer.h:384
@ SAI_BUFFER_POOL_STAT_WRED_ECN_MARKED_BYTES
Definition saibuffer.h:423
@ SAI_BUFFER_POOL_STAT_RED_WRED_DROPPED_BYTES
Definition saibuffer.h:393
@ SAI_BUFFER_POOL_STAT_XOFF_ROOM_CURR_OCCUPANCY_BYTES
Definition saibuffer.h:426
@ SAI_BUFFER_POOL_STAT_GREEN_WRED_ECN_MARKED_PACKETS
Definition saibuffer.h:402
@ SAI_BUFFER_PROFILE_ATTR_XON_OFFSET_TH
Set the buffer profile XON hysteresis threshold in byte.
Definition saibuffer.h:668
@ SAI_BUFFER_PROFILE_ATTR_START
Start of attributes.
Definition saibuffer.h:557
@ SAI_BUFFER_PROFILE_ATTR_CUSTOM_RANGE_START
Definition saibuffer.h:676
@ SAI_BUFFER_PROFILE_ATTR_CUSTOM_RANGE_END
Definition saibuffer.h:679
@ SAI_BUFFER_PROFILE_ATTR_RESERVED_BUFFER_SIZE
Reserved buffer size in bytes.
Definition saibuffer.h:579
@ SAI_BUFFER_PROFILE_ATTR_SHARED_DYNAMIC_TH
Dynamic threshold for the shared usage.
Definition saibuffer.h:603
@ SAI_BUFFER_PROFILE_ATTR_XOFF_TH
Set the buffer profile XOFF threshold in bytes.
Definition saibuffer.h:634
@ SAI_BUFFER_PROFILE_ATTR_POOL_ID
Pointer to buffer pool object id.
Definition saibuffer.h:571
@ SAI_BUFFER_PROFILE_ATTR_XON_TH
Set the buffer profile XON non-hysteresis threshold in byte.
Definition saibuffer.h:651
@ SAI_BUFFER_PROFILE_ATTR_SHARED_STATIC_TH
Static threshold for the shared usage in bytes.
Definition saibuffer.h:614
@ SAI_BUFFER_PROFILE_ATTR_BUFFER_SIZE
Definition saibuffer.h:582
@ SAI_BUFFER_PROFILE_ATTR_THRESHOLD_MODE
Shared threshold mode for the buffer profile.
Definition saibuffer.h:592
@ SAI_BUFFER_PROFILE_ATTR_END
End of attributes.
Definition saibuffer.h:673
@ SAI_BUFFER_PROFILE_THRESHOLD_MODE_STATIC
Definition saibuffer.h:542
@ SAI_BUFFER_PROFILE_THRESHOLD_MODE_DYNAMIC
Definition saibuffer.h:545
enum _sai_stats_mode_t sai_stats_mode_t
SAI statistics modes.
This module defines SAI portable types.
Buffer methods table retrieved with sai_api_query()
Definition saibuffer.h:739