SAI Metadata
Loading...
Searching...
No Matches
saibuffer.h File Reference

This module defines SAI Buffer interface. More...

#include <saitypes.h>

Go to the source code of this file.

Classes

struct  _sai_buffer_api_t
 Buffer methods table retrieved with sai_api_query() More...
 

Typedefs

typedef enum _sai_ingress_priority_group_attr_t sai_ingress_priority_group_attr_t
 Enum defining ingress priority group attributes.
 
typedef enum _sai_ingress_priority_group_stat_t sai_ingress_priority_group_stat_t
 Enum defining statistics for ingress priority group.
 
typedef 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.
 
typedef sai_status_t(* sai_remove_ingress_priority_group_fn) (_In_ sai_object_id_t ingress_priority_group_id)
 Remove ingress priority group.
 
typedef 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.
 
typedef 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.
 
typedef 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.
 
typedef 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.
 
typedef 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.
 
typedef enum _sai_buffer_pool_type_t sai_buffer_pool_type_t
 Enum defining buffer pool types.
 
typedef enum _sai_buffer_pool_threshold_mode_t sai_buffer_pool_threshold_mode_t
 Enum defining buffer pool threshold modes.
 
typedef enum _sai_buffer_pool_attr_t sai_buffer_pool_attr_t
 Enum defining buffer pool attributes.
 
typedef enum _sai_buffer_pool_stat_t sai_buffer_pool_stat_t
 Enum defining statistics for buffer pool.
 
typedef 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.
 
typedef sai_status_t(* sai_remove_buffer_pool_fn) (_In_ sai_object_id_t buffer_pool_id)
 Remove buffer pool.
 
typedef 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.
 
typedef 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.
 
typedef 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.
 
typedef 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.
 
typedef 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.
 
typedef enum _sai_buffer_profile_threshold_mode_t sai_buffer_profile_threshold_mode_t
 Enum defining buffer profile threshold modes.
 
typedef enum _sai_buffer_profile_attr_t sai_buffer_profile_attr_t
 Enum defining buffer profile attributes.
 
typedef 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.
 
typedef sai_status_t(* sai_remove_buffer_profile_fn) (_In_ sai_object_id_t buffer_profile_id)
 Remove buffer profile.
 
typedef 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.
 
typedef 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.
 
typedef struct _sai_buffer_api_t sai_buffer_api_t
 Buffer methods table retrieved with sai_api_query()
 

Enumerations

enum  _sai_ingress_priority_group_attr_t {
  SAI_INGRESS_PRIORITY_GROUP_ATTR_START , SAI_INGRESS_PRIORITY_GROUP_ATTR_BUFFER_PROFILE = SAI_INGRESS_PRIORITY_GROUP_ATTR_START , SAI_INGRESS_PRIORITY_GROUP_ATTR_PORT , SAI_INGRESS_PRIORITY_GROUP_ATTR_TAM ,
  SAI_INGRESS_PRIORITY_GROUP_ATTR_INDEX , SAI_INGRESS_PRIORITY_GROUP_ATTR_END , SAI_INGRESS_PRIORITY_GROUP_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_INGRESS_PRIORITY_GROUP_ATTR_CUSTOM_RANGE_END
}
 Enum defining ingress priority group attributes. More...
 
enum  _sai_ingress_priority_group_stat_t {
  SAI_INGRESS_PRIORITY_GROUP_STAT_PACKETS = 0x00000000 , SAI_INGRESS_PRIORITY_GROUP_STAT_BYTES = 0x00000001 , SAI_INGRESS_PRIORITY_GROUP_STAT_CURR_OCCUPANCY_BYTES = 0x00000002 , SAI_INGRESS_PRIORITY_GROUP_STAT_WATERMARK_BYTES = 0x00000003 ,
  SAI_INGRESS_PRIORITY_GROUP_STAT_SHARED_CURR_OCCUPANCY_BYTES = 0x00000004 , SAI_INGRESS_PRIORITY_GROUP_STAT_SHARED_WATERMARK_BYTES = 0x00000005 , SAI_INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_CURR_OCCUPANCY_BYTES = 0x00000006 , SAI_INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_WATERMARK_BYTES = 0x00000007 ,
  SAI_INGRESS_PRIORITY_GROUP_STAT_DROPPED_PACKETS = 0x00000008 , SAI_INGRESS_PRIORITY_GROUP_STAT_CUSTOM_RANGE_BASE = 0x10000000
}
 Enum defining statistics for ingress priority group. More...
 
enum  _sai_buffer_pool_type_t { SAI_BUFFER_POOL_TYPE_INGRESS , SAI_BUFFER_POOL_TYPE_EGRESS , SAI_BUFFER_POOL_TYPE_BOTH }
 Enum defining buffer pool types. More...
 
enum  _sai_buffer_pool_threshold_mode_t { SAI_BUFFER_POOL_THRESHOLD_MODE_STATIC , SAI_BUFFER_POOL_THRESHOLD_MODE_DYNAMIC }
 Enum defining buffer pool threshold modes. More...
 
enum  _sai_buffer_pool_attr_t {
  SAI_BUFFER_POOL_ATTR_START , SAI_BUFFER_POOL_ATTR_SHARED_SIZE = SAI_BUFFER_POOL_ATTR_START , SAI_BUFFER_POOL_ATTR_TYPE , SAI_BUFFER_POOL_ATTR_SIZE ,
  SAI_BUFFER_POOL_ATTR_THRESHOLD_MODE , SAI_BUFFER_POOL_ATTR_TAM , SAI_BUFFER_POOL_ATTR_XOFF_SIZE , SAI_BUFFER_POOL_ATTR_WRED_PROFILE_ID ,
  SAI_BUFFER_POOL_ATTR_END , SAI_BUFFER_POOL_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_BUFFER_POOL_ATTR_CUSTOM_RANGE_END
}
 Enum defining buffer pool attributes. More...
 
enum  _sai_buffer_pool_stat_t {
  SAI_BUFFER_POOL_STAT_CURR_OCCUPANCY_BYTES = 0x00000000 , SAI_BUFFER_POOL_STAT_WATERMARK_BYTES = 0x00000001 , SAI_BUFFER_POOL_STAT_DROPPED_PACKETS = 0x00000002 , SAI_BUFFER_POOL_STAT_GREEN_WRED_DROPPED_PACKETS = 0x00000003 ,
  SAI_BUFFER_POOL_STAT_GREEN_WRED_DROPPED_BYTES = 0x00000004 , SAI_BUFFER_POOL_STAT_YELLOW_WRED_DROPPED_PACKETS = 0x00000005 , SAI_BUFFER_POOL_STAT_YELLOW_WRED_DROPPED_BYTES = 0x00000006 , SAI_BUFFER_POOL_STAT_RED_WRED_DROPPED_PACKETS = 0x00000007 ,
  SAI_BUFFER_POOL_STAT_RED_WRED_DROPPED_BYTES = 0x00000008 , SAI_BUFFER_POOL_STAT_WRED_DROPPED_PACKETS = 0x00000009 , SAI_BUFFER_POOL_STAT_WRED_DROPPED_BYTES = 0x0000000a , SAI_BUFFER_POOL_STAT_GREEN_WRED_ECN_MARKED_PACKETS = 0x0000000b ,
  SAI_BUFFER_POOL_STAT_GREEN_WRED_ECN_MARKED_BYTES = 0x0000000c , SAI_BUFFER_POOL_STAT_YELLOW_WRED_ECN_MARKED_PACKETS = 0x0000000d , SAI_BUFFER_POOL_STAT_YELLOW_WRED_ECN_MARKED_BYTES = 0x0000000e , SAI_BUFFER_POOL_STAT_RED_WRED_ECN_MARKED_PACKETS = 0x0000000f ,
  SAI_BUFFER_POOL_STAT_RED_WRED_ECN_MARKED_BYTES = 0x00000010 , SAI_BUFFER_POOL_STAT_WRED_ECN_MARKED_PACKETS = 0x00000011 , SAI_BUFFER_POOL_STAT_WRED_ECN_MARKED_BYTES = 0x00000012 , SAI_BUFFER_POOL_STAT_XOFF_ROOM_CURR_OCCUPANCY_BYTES = 0x00000013 ,
  SAI_BUFFER_POOL_STAT_XOFF_ROOM_WATERMARK_BYTES = 0x00000014 , SAI_BUFFER_POOL_STAT_CUSTOM_RANGE_BASE = 0x10000000
}
 Enum defining statistics for buffer pool. More...
 
enum  _sai_buffer_profile_threshold_mode_t { SAI_BUFFER_PROFILE_THRESHOLD_MODE_STATIC , SAI_BUFFER_PROFILE_THRESHOLD_MODE_DYNAMIC }
 Enum defining buffer profile threshold modes. More...
 
enum  _sai_buffer_profile_attr_t {
  SAI_BUFFER_PROFILE_ATTR_START , SAI_BUFFER_PROFILE_ATTR_POOL_ID = SAI_BUFFER_PROFILE_ATTR_START , SAI_BUFFER_PROFILE_ATTR_RESERVED_BUFFER_SIZE , SAI_BUFFER_PROFILE_ATTR_BUFFER_SIZE = SAI_BUFFER_PROFILE_ATTR_RESERVED_BUFFER_SIZE ,
  SAI_BUFFER_PROFILE_ATTR_THRESHOLD_MODE , SAI_BUFFER_PROFILE_ATTR_SHARED_DYNAMIC_TH , SAI_BUFFER_PROFILE_ATTR_SHARED_STATIC_TH , SAI_BUFFER_PROFILE_ATTR_XOFF_TH ,
  SAI_BUFFER_PROFILE_ATTR_XON_TH , SAI_BUFFER_PROFILE_ATTR_XON_OFFSET_TH , SAI_BUFFER_PROFILE_ATTR_END , SAI_BUFFER_PROFILE_ATTR_CUSTOM_RANGE_START = 0x10000000 ,
  SAI_BUFFER_PROFILE_ATTR_CUSTOM_RANGE_END
}
 Enum defining buffer profile attributes. More...
 

Detailed Description

This module defines SAI Buffer interface.

Copyright (c) 2014 Microsoft Open Technologies, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions and limitations under the License.

Microsoft would like to thank the following companies for their review and assistance with these files: Intel Corporation, Mellanox Technologies Ltd, Dell Products, L.P., Facebook, Inc., Marvell International Ltd.

Definition in file saibuffer.h.