SAI Metadata
Loading...
Searching...
No Matches
SAI - Metadata Types Definitions

Classes

struct  _sai_object_meta_key_t
 Defines object metadata key. More...
 
struct  _sai_attr_condition_t
 Defines attribute condition. More...
 
struct  _sai_enum_metadata_t
 Defines enum metadata information. More...
 
struct  _sai_attr_capability_metadata_t
 Defines attribute capability metadata. More...
 
struct  _sai_attr_metadata_t
 Defines attribute metadata. More...
 
struct  _sai_struct_member_info_t
 Defines struct member info for non object id object type. More...
 
struct  _sai_rev_graph_member_t
 SAI reverse graph member. More...
 
struct  _sai_object_type_info_t
 SAI object type information. More...
 

Macros

#define SAI_INVALID_ATTRIBUTE_ID   ((sai_attr_id_t)-1)
 
#define SAI_HAS_FLAG_MANDATORY_ON_CREATE(x)   (((x) & SAI_ATTR_FLAGS_MANDATORY_ON_CREATE) == SAI_ATTR_FLAGS_MANDATORY_ON_CREATE)
 
#define SAI_HAS_FLAG_CREATE_ONLY(x)   (((x) & SAI_ATTR_FLAGS_CREATE_ONLY) == SAI_ATTR_FLAGS_CREATE_ONLY)
 
#define SAI_HAS_FLAG_CREATE_AND_SET(x)   (((x) & SAI_ATTR_FLAGS_CREATE_AND_SET) == SAI_ATTR_FLAGS_CREATE_AND_SET)
 
#define SAI_HAS_FLAG_READ_ONLY(x)   (((x) & SAI_ATTR_FLAGS_READ_ONLY) == SAI_ATTR_FLAGS_READ_ONLY)
 
#define SAI_HAS_FLAG_KEY(x)   (((x) & SAI_ATTR_FLAGS_KEY) == SAI_ATTR_FLAGS_KEY)
 
#define SAI_HAS_FLAG_DYNAMIC(x)   (((x) & SAI_ATTR_FLAGS_DYNAMIC) == SAI_ATTR_FLAGS_DYNAMIC)
 
#define SAI_HAS_FLAG_SPECIAL(x)   (((x) & SAI_ATTR_FLAGS_SPECIAL) == SAI_ATTR_FLAGS_SPECIAL)
 

Typedefs

typedef struct _sai_object_meta_key_t sai_object_meta_key_t
 Defines object metadata key.
 
typedef enum _sai_attr_value_type_t sai_attr_value_type_t
 Defines attribute value type. Can be used when serializing attributes.
 
typedef enum _sai_attr_flags_t sai_attr_flags_t
 Attribute flags.
 
typedef enum _sai_default_value_type_t sai_default_value_type_t
 Defines default value type.
 
typedef enum _sai_attr_condition_type_t sai_attr_condition_type_t
 Defines attribute condition type.
 
typedef enum _sai_condition_operator_t sai_condition_operator_t
 Condition operator (==,!=,<,>,<=.>=).
 
typedef struct _sai_attr_condition_t sai_attr_condition_t
 Defines attribute condition.
 
typedef enum _sai_enum_flags_type_t sai_enum_flags_type_t
 Defines enum flags type, if enum contains flags.
 
typedef struct _sai_enum_metadata_t sai_enum_metadata_t
 Defines enum metadata information.
 
typedef struct _sai_attr_capability_metadata_t sai_attr_capability_metadata_t
 Defines attribute capability metadata.
 
typedef struct _sai_attr_metadata_t sai_attr_metadata_t
 Defines attribute metadata.
 
typedef sai_object_id_t(* sai_meta_get_struct_member_oid_fn) (_In_ const sai_object_meta_key_t *object_meta_key)
 Function definition for getting object id from non object id structure member.
 
typedef void(* sai_meta_set_struct_member_oid_fn) (_Inout_ sai_object_meta_key_t *object_meta_key, _In_ sai_object_id_t object_id)
 Function definition for setting object id from non object id structure member.
 
typedef struct _sai_struct_member_info_t sai_struct_member_info_t
 Defines struct member info for non object id object type.
 
typedef struct _sai_rev_graph_member_t sai_rev_graph_member_t
 SAI reverse graph member.
 
typedef sai_status_t(* sai_meta_generic_create_fn) (_Inout_ sai_object_meta_key_t *meta_key, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 
typedef sai_status_t(* sai_meta_generic_remove_fn) (_In_ const sai_object_meta_key_t *meta_key)
 
typedef sai_status_t(* sai_meta_generic_set_fn) (_In_ const sai_object_meta_key_t *meta_key, _In_ const sai_attribute_t *attr)
 
typedef sai_status_t(* sai_meta_generic_get_fn) (_In_ const sai_object_meta_key_t *meta_key, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 
typedef sai_status_t(* sai_meta_generic_get_stats_fn) (_In_ const sai_object_meta_key_t *meta_key, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
 
typedef sai_status_t(* sai_meta_generic_get_stats_ext_fn) (_In_ const sai_object_meta_key_t *meta_key, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _In_ sai_stats_mode_t mode, _Out_ uint64_t *counters)
 
typedef sai_status_t(* sai_meta_generic_clear_stats_fn) (_In_ const sai_object_meta_key_t *meta_key, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
 
typedef sai_status_t(* sai_generic_create_fn) (_Out_ sai_object_id_t *object_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 
typedef sai_status_t(* sai_generic_remove_fn) (_In_ sai_object_id_t object_id)
 
typedef sai_status_t(* sai_generic_set_fn) (_In_ sai_object_id_t object_id, _In_ const sai_attribute_t *attr)
 
typedef sai_status_t(* sai_generic_get_fn) (_In_ sai_object_id_t object_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 
typedef struct _sai_object_type_info_t sai_object_type_info_t
 SAI object type information.
 

Enumerations

enum  _sai_attr_value_type_t {
  SAI_ATTR_VALUE_TYPE_BOOL , SAI_ATTR_VALUE_TYPE_CHARDATA , SAI_ATTR_VALUE_TYPE_UINT8 , SAI_ATTR_VALUE_TYPE_INT8 ,
  SAI_ATTR_VALUE_TYPE_UINT16 , SAI_ATTR_VALUE_TYPE_INT16 , SAI_ATTR_VALUE_TYPE_UINT32 , SAI_ATTR_VALUE_TYPE_INT32 ,
  SAI_ATTR_VALUE_TYPE_UINT64 , SAI_ATTR_VALUE_TYPE_INT64 , SAI_ATTR_VALUE_TYPE_POINTER , SAI_ATTR_VALUE_TYPE_MAC ,
  SAI_ATTR_VALUE_TYPE_IPV4 , SAI_ATTR_VALUE_TYPE_IPV6 , SAI_ATTR_VALUE_TYPE_IP_ADDRESS , SAI_ATTR_VALUE_TYPE_IP_PREFIX ,
  SAI_ATTR_VALUE_TYPE_PRBS_RX_STATE , SAI_ATTR_VALUE_TYPE_OBJECT_ID , SAI_ATTR_VALUE_TYPE_OBJECT_LIST , SAI_ATTR_VALUE_TYPE_UINT8_LIST ,
  SAI_ATTR_VALUE_TYPE_INT8_LIST , SAI_ATTR_VALUE_TYPE_UINT16_LIST , SAI_ATTR_VALUE_TYPE_INT16_LIST , SAI_ATTR_VALUE_TYPE_UINT32_LIST ,
  SAI_ATTR_VALUE_TYPE_INT32_LIST , SAI_ATTR_VALUE_TYPE_UINT32_RANGE , SAI_ATTR_VALUE_TYPE_UINT16_RANGE_LIST , SAI_ATTR_VALUE_TYPE_INT32_RANGE ,
  SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL , SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT8 , SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_INT8 , SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT16 ,
  SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_INT16 , SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT32 , SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_INT32 , SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT64 ,
  SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_MAC , SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_IPV4 , SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_IPV6 , SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_MACSEC_SCI ,
  SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_OBJECT_ID , SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_OBJECT_LIST , SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT8_LIST , SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL ,
  SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8 , SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8 , SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16 , SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT16 ,
  SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT32 , SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT32 , SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_MAC , SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_IPV4 ,
  SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_IPV6 , SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_IP_ADDRESS , SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_OBJECT_ID , SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_OBJECT_LIST ,
  SAI_ATTR_VALUE_TYPE_ACL_CAPABILITY , SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST , SAI_ATTR_VALUE_TYPE_MAP_LIST , SAI_ATTR_VALUE_TYPE_VLAN_LIST ,
  SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST , SAI_ATTR_VALUE_TYPE_TLV_LIST , SAI_ATTR_VALUE_TYPE_SEGMENT_LIST , SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST ,
  SAI_ATTR_VALUE_TYPE_PORT_EYE_VALUES_LIST , SAI_ATTR_VALUE_TYPE_TIMESPEC , SAI_ATTR_VALUE_TYPE_NAT_ENTRY_DATA , SAI_ATTR_VALUE_TYPE_MACSEC_SCI ,
  SAI_ATTR_VALUE_TYPE_MACSEC_SSCI , SAI_ATTR_VALUE_TYPE_MACSEC_SAK , SAI_ATTR_VALUE_TYPE_MACSEC_AUTH_KEY , SAI_ATTR_VALUE_TYPE_MACSEC_SALT ,
  SAI_ATTR_VALUE_TYPE_SYSTEM_PORT_CONFIG , SAI_ATTR_VALUE_TYPE_SYSTEM_PORT_CONFIG_LIST , SAI_ATTR_VALUE_TYPE_FABRIC_PORT_REACHABILITY , SAI_ATTR_VALUE_TYPE_PORT_ERR_STATUS_LIST ,
  SAI_ATTR_VALUE_TYPE_ENCRYPT_KEY , SAI_ATTR_VALUE_TYPE_AUTH_KEY , SAI_ATTR_VALUE_TYPE_LATCH_STATUS , SAI_ATTR_VALUE_TYPE_PORT_LANE_LATCH_STATUS_LIST ,
  SAI_ATTR_VALUE_TYPE_JSON , SAI_ATTR_VALUE_TYPE_IP_PREFIX_LIST , SAI_ATTR_VALUE_TYPE_ACL_CHAIN_LIST , SAI_ATTR_VALUE_TYPE_PORT_FREQUENCY_OFFSET_PPM_LIST ,
  SAI_ATTR_VALUE_TYPE_PORT_SNR_LIST , SAI_ATTR_VALUE_TYPE_TWAMP_STATS_DATA
}
 Defines attribute value type. Can be used when serializing attributes. More...
 
enum  _sai_attr_flags_t {
  SAI_ATTR_FLAGS_MANDATORY_ON_CREATE = (1 << 0) , SAI_ATTR_FLAGS_CREATE_ONLY = (1 << 1) , SAI_ATTR_FLAGS_CREATE_AND_SET = (1 << 2) , SAI_ATTR_FLAGS_READ_ONLY = (1 << 3) ,
  SAI_ATTR_FLAGS_KEY = (1 << 4) , SAI_ATTR_FLAGS_DYNAMIC = (1 << 5) , SAI_ATTR_FLAGS_SPECIAL = (1 << 6)
}
 Attribute flags. More...
 
enum  _sai_default_value_type_t {
  SAI_DEFAULT_VALUE_TYPE_NONE = 0 , SAI_DEFAULT_VALUE_TYPE_CONST , SAI_DEFAULT_VALUE_TYPE_ATTR_RANGE , SAI_DEFAULT_VALUE_TYPE_ATTR_VALUE ,
  SAI_DEFAULT_VALUE_TYPE_EMPTY_LIST , SAI_DEFAULT_VALUE_TYPE_VENDOR_SPECIFIC , SAI_DEFAULT_VALUE_TYPE_SWITCH_INTERNAL
}
 Defines default value type. More...
 
enum  _sai_attr_condition_type_t { SAI_ATTR_CONDITION_TYPE_NONE = 0 , SAI_ATTR_CONDITION_TYPE_OR , SAI_ATTR_CONDITION_TYPE_AND , SAI_ATTR_CONDITION_TYPE_MIXED }
 Defines attribute condition type. More...
 
enum  _sai_condition_operator_t {
  SAI_CONDITION_OPERATOR_EQ = 0 , SAI_CONDITION_OPERATOR_NE , SAI_CONDITION_OPERATOR_LT , SAI_CONDITION_OPERATOR_GT ,
  SAI_CONDITION_OPERATOR_LE , SAI_CONDITION_OPERATOR_GE
}
 Condition operator (==,!=,<,>,<=.>=). More...
 
enum  _sai_enum_flags_type_t {
  SAI_ENUM_FLAGS_TYPE_NONE , SAI_ENUM_FLAGS_TYPE_STRICT , SAI_ENUM_FLAGS_TYPE_MIXED , SAI_ENUM_FLAGS_TYPE_RANGES ,
  SAI_ENUM_FLAGS_TYPE_FREE
}
 Defines enum flags type, if enum contains flags. More...
 

Detailed Description

Macro Definition Documentation

◆ SAI_HAS_FLAG_CREATE_AND_SET

#define SAI_HAS_FLAG_CREATE_AND_SET (   x)    (((x) & SAI_ATTR_FLAGS_CREATE_AND_SET) == SAI_ATTR_FLAGS_CREATE_AND_SET)

Definition at line 591 of file saimetadatatypes.h.

◆ SAI_HAS_FLAG_CREATE_ONLY

#define SAI_HAS_FLAG_CREATE_ONLY (   x)    (((x) & SAI_ATTR_FLAGS_CREATE_ONLY) == SAI_ATTR_FLAGS_CREATE_ONLY)

Definition at line 586 of file saimetadatatypes.h.

◆ SAI_HAS_FLAG_DYNAMIC

#define SAI_HAS_FLAG_DYNAMIC (   x)    (((x) & SAI_ATTR_FLAGS_DYNAMIC) == SAI_ATTR_FLAGS_DYNAMIC)

Definition at line 606 of file saimetadatatypes.h.

◆ SAI_HAS_FLAG_KEY

#define SAI_HAS_FLAG_KEY (   x)    (((x) & SAI_ATTR_FLAGS_KEY) == SAI_ATTR_FLAGS_KEY)

Definition at line 601 of file saimetadatatypes.h.

◆ SAI_HAS_FLAG_MANDATORY_ON_CREATE

#define SAI_HAS_FLAG_MANDATORY_ON_CREATE (   x)    (((x) & SAI_ATTR_FLAGS_MANDATORY_ON_CREATE) == SAI_ATTR_FLAGS_MANDATORY_ON_CREATE)

Definition at line 581 of file saimetadatatypes.h.

◆ SAI_HAS_FLAG_READ_ONLY

#define SAI_HAS_FLAG_READ_ONLY (   x)    (((x) & SAI_ATTR_FLAGS_READ_ONLY) == SAI_ATTR_FLAGS_READ_ONLY)

Definition at line 596 of file saimetadatatypes.h.

◆ SAI_HAS_FLAG_SPECIAL

#define SAI_HAS_FLAG_SPECIAL (   x)    (((x) & SAI_ATTR_FLAGS_SPECIAL) == SAI_ATTR_FLAGS_SPECIAL)

Definition at line 611 of file saimetadatatypes.h.

◆ SAI_INVALID_ATTRIBUTE_ID

#define SAI_INVALID_ATTRIBUTE_ID   ((sai_attr_id_t)-1)

Definition at line 37 of file saimetadatatypes.h.

Typedef Documentation

◆ sai_attr_flags_t

Attribute flags.

Flags:
strict

◆ sai_enum_flags_type_t

Defines enum flags type, if enum contains flags.

Enum values repetitions are not allowed on all types, unless marked with deprecated for backward compatibility or defined outside enum using define directive.

◆ sai_generic_create_fn

typedef sai_status_t(* sai_generic_create_fn) (_Out_ sai_object_id_t *object_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Definition at line 1481 of file saimetadatatypes.h.

◆ sai_generic_get_fn

typedef sai_status_t(* sai_generic_get_fn) (_In_ sai_object_id_t object_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Definition at line 1494 of file saimetadatatypes.h.

◆ sai_generic_remove_fn

typedef sai_status_t(* sai_generic_remove_fn) (_In_ sai_object_id_t object_id)

Definition at line 1487 of file saimetadatatypes.h.

◆ sai_generic_set_fn

typedef sai_status_t(* sai_generic_set_fn) (_In_ sai_object_id_t object_id, _In_ const sai_attribute_t *attr)

Definition at line 1490 of file saimetadatatypes.h.

◆ sai_meta_generic_clear_stats_fn

typedef sai_status_t(* sai_meta_generic_clear_stats_fn) (_In_ const sai_object_meta_key_t *meta_key, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)

Definition at line 1476 of file saimetadatatypes.h.

◆ sai_meta_generic_create_fn

typedef sai_status_t(* sai_meta_generic_create_fn) (_Inout_ sai_object_meta_key_t *meta_key, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Definition at line 1445 of file saimetadatatypes.h.

◆ sai_meta_generic_get_fn

typedef sai_status_t(* sai_meta_generic_get_fn) (_In_ const sai_object_meta_key_t *meta_key, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Definition at line 1458 of file saimetadatatypes.h.

◆ sai_meta_generic_get_stats_ext_fn

typedef sai_status_t(* sai_meta_generic_get_stats_ext_fn) (_In_ const sai_object_meta_key_t *meta_key, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _In_ sai_stats_mode_t mode, _Out_ uint64_t *counters)

Definition at line 1469 of file saimetadatatypes.h.

◆ sai_meta_generic_get_stats_fn

typedef sai_status_t(* sai_meta_generic_get_stats_fn) (_In_ const sai_object_meta_key_t *meta_key, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)

Definition at line 1463 of file saimetadatatypes.h.

◆ sai_meta_generic_remove_fn

typedef sai_status_t(* sai_meta_generic_remove_fn) (_In_ const sai_object_meta_key_t *meta_key)

Definition at line 1451 of file saimetadatatypes.h.

◆ sai_meta_generic_set_fn

typedef sai_status_t(* sai_meta_generic_set_fn) (_In_ const sai_object_meta_key_t *meta_key, _In_ const sai_attribute_t *attr)

Definition at line 1454 of file saimetadatatypes.h.

◆ sai_meta_get_struct_member_oid_fn

typedef sai_object_id_t(* sai_meta_get_struct_member_oid_fn) (_In_ const sai_object_meta_key_t *object_meta_key)

Function definition for getting object id from non object id structure member.

Parameters
[in]object_meta_keyObject meta key
Returns
Object id from struct member

Definition at line 1302 of file saimetadatatypes.h.

◆ sai_meta_set_struct_member_oid_fn

typedef void(* sai_meta_set_struct_member_oid_fn) (_Inout_ sai_object_meta_key_t *object_meta_key, _In_ sai_object_id_t object_id)

Function definition for setting object id from non object id structure member.

Parameters
[in,out]object_meta_keyObject meta key
[in]object_idObject id to be set

Definition at line 1312 of file saimetadatatypes.h.

Enumeration Type Documentation

◆ _sai_attr_condition_type_t

Defines attribute condition type.

Enumerator
SAI_ATTR_CONDITION_TYPE_NONE 

This attribute is not conditional attribute.

SAI_ATTR_CONDITION_TYPE_OR 

Any condition that will be true will make this attribute mandatory.

SAI_ATTR_CONDITION_TYPE_AND 

All conditions must meet for this attribute to be mandatory on create.

SAI_ATTR_CONDITION_TYPE_MIXED 

Mixed condition, can contain and/or operators as well as grouping using brackets (). Conditions are stored in RPN.

Definition at line 681 of file saimetadatatypes.h.

◆ _sai_attr_flags_t

Attribute flags.

Flags:
strict
Enumerator
SAI_ATTR_FLAGS_MANDATORY_ON_CREATE 

Mandatory on create flag.

Attribute with this flag is mandatory when calling CREATE API, unless this attribute is marked as conditional. Must be combined with CREATE_ONLY or CREATE_AND_SET flag.

SAI_ATTR_FLAGS_CREATE_ONLY 

Create only flag.

Attribute with this flag can only be created and its value cannot be changed by SET API. Can be combined with MANDATORY flag. If attribute is not combined with MANDATORY flag then DEFAULT value must be provided for this attribute.

SAI_ATTR_FLAGS_CREATE_AND_SET 

Create and set flag.

Attribute with this flag can be created and after creation value may be modified using SET API. Can be combined with MANDATORY flag. If attribute is not combined with MANDATORY flag then DEFAULT value must be provided for this attribute.

SAI_ATTR_FLAGS_READ_ONLY 

Read only flag.

Attribute with this flag can only be read using GET API. Creation and modification is not possible. Can be combined with DYNAMIC flag for example counter attribute.

SAI_ATTR_FLAGS_KEY 

Key flag.

Attribute with this flag is treated as unique key (can only be combined with MANDATORY and CREATE_ONLY flags. This flag will indicate that creating new object with the same key will fail (for example VLAN). There may be more than one key in attributes when creating object. Key should be used only on primitive attribute values (like enum or int). In some cases it may be supported on list (for port lanes) but then extra logic is needed to compute and handle that key.

If multiple keys are provided, meta key is created as combination of keys in order attribute ids are declared (internal details).

SAI_ATTR_FLAGS_DYNAMIC 

Dynamic flag.

Attribute with this flag indicates that value of the attribute is dynamic and can change in time (like an attribute counter value, or port operational status). Change may happen independently or when other attribute was created or modified (creating vlan member will change vlan member list). Can be combined with READ_ONLY flag.

SAI_ATTR_FLAGS_SPECIAL 

Special flag.

Attribute with this flag will indicate that this attribute is special and it needs extended logic to be handled. This flag can only be standalone.

Definition at line 500 of file saimetadatatypes.h.

◆ _sai_attr_value_type_t

Defines attribute value type. Can be used when serializing attributes.

Enumerator
SAI_ATTR_VALUE_TYPE_BOOL 

Attribute value is bool.

SAI_ATTR_VALUE_TYPE_CHARDATA 

Attribute value is char data.

SAI_ATTR_VALUE_TYPE_UINT8 

Attribute value is 8 bit unsigned integer.

SAI_ATTR_VALUE_TYPE_INT8 

Attribute value is 8 bit signed integer.

SAI_ATTR_VALUE_TYPE_UINT16 

Attribute value is 16 bit unsigned integer.

SAI_ATTR_VALUE_TYPE_INT16 

Attribute value is 16 bit signed integer.

SAI_ATTR_VALUE_TYPE_UINT32 

Attribute value is 32 bit unsigned integer.

SAI_ATTR_VALUE_TYPE_INT32 

Attribute value is 32 bit signed integer.

SAI_ATTR_VALUE_TYPE_UINT64 

Attribute value is 64 bit unsigned integer.

SAI_ATTR_VALUE_TYPE_INT64 

Attribute value is 64 bit signed integer.

SAI_ATTR_VALUE_TYPE_POINTER 

Attribute value is pointer address.

SAI_ATTR_VALUE_TYPE_MAC 

Attribute value is MAC address.

SAI_ATTR_VALUE_TYPE_IPV4 

Attribute value is IPv4.

SAI_ATTR_VALUE_TYPE_IPV6 

Attribute value is IPv6.

SAI_ATTR_VALUE_TYPE_IP_ADDRESS 

Attribute value is IP address.

SAI_ATTR_VALUE_TYPE_IP_PREFIX 

Attribute value is IP prefix.

SAI_ATTR_VALUE_TYPE_PRBS_RX_STATE 

Attribute value is PRBS RX state.

SAI_ATTR_VALUE_TYPE_OBJECT_ID 

Attribute value is object id.

SAI_ATTR_VALUE_TYPE_OBJECT_LIST 

Attribute value is object list.

SAI_ATTR_VALUE_TYPE_UINT8_LIST 

Attribute value is list of 8 bit unsigned integers.

SAI_ATTR_VALUE_TYPE_INT8_LIST 

Attribute value is list of 8 bit signed integers.

SAI_ATTR_VALUE_TYPE_UINT16_LIST 

Attribute value is list of 16 bit unsigned integers.

SAI_ATTR_VALUE_TYPE_INT16_LIST 

Attribute value is list of 16 bit signed integers.

SAI_ATTR_VALUE_TYPE_UINT32_LIST 

Attribute value is list of 32 bit unsigned integers.

SAI_ATTR_VALUE_TYPE_INT32_LIST 

Attribute value is list of 32 bit signed integers.

SAI_ATTR_VALUE_TYPE_UINT32_RANGE 

Attribute value is 32 bit unsigned integer range.

SAI_ATTR_VALUE_TYPE_UINT16_RANGE_LIST 

Attribute value is 16 bit unsigned integer range list.

SAI_ATTR_VALUE_TYPE_INT32_RANGE 

Attribute value is 32 bit signed integer range.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL 

Attribute value is ACL field bool.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT8 

Attribute value is ACL field 8 bit unsigned integer.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_INT8 

Attribute value is ACL field 8 bit signed integer.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT16 

Attribute value is ACL field 16 bit unsigned integer.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_INT16 

Attribute value is ACL field 16 bit signed integer.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT32 

Attribute value is ACL field 32 bit unsigned integer.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_INT32 

Attribute value is ACL field 32 bit signed integer.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT64 

Attribute value is ACL field 64 bit unsigned integer.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_MAC 

Attribute value is ACL field MAC address.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_IPV4 

Attribute value is ACL field IPv4.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_IPV6 

Attribute value is ACL field IPv6.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_MACSEC_SCI 

Attribute value is MACsec rule match field SCI.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_OBJECT_ID 

Attribute value is ACL field object id.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_OBJECT_LIST 

Attribute value is ACL field object list.

SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT8_LIST 

Attribute value is ACL field list of 8 bit unsigned integers.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL 

Attribute value is ACL action bool.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8 

Attribute value is ACL action 8 bit unsigned integer.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8 

Attribute value is ACL action 8 bit signed integer.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16 

Attribute value is ACL action 16 bit unsigned integer.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT16 

Attribute value is ACL action 16 bit signed integer.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT32 

Attribute value is ACL action 32 bit unsigned integer.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT32 

Attribute value is ACL action 32 bit signed integer.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_MAC 

Attribute value is ACL action MAC address.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_IPV4 

Attribute value is ACL action IPv4.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_IPV6 

Attribute value is ACL action IPv6.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_IP_ADDRESS 

Attribute value is ACL action IP address.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_OBJECT_ID 

Attribute value is ACL action object id.

SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_OBJECT_LIST 

Attribute value is ACL action object list.

SAI_ATTR_VALUE_TYPE_ACL_CAPABILITY 

Attribute value is ACL capability.

SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST 

Attribute value is ACL resource.

SAI_ATTR_VALUE_TYPE_MAP_LIST 

Attribute value is generic map list.

SAI_ATTR_VALUE_TYPE_VLAN_LIST 

Attribute value is vlan list.

SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST 

Attribute value is QOS map list.

SAI_ATTR_VALUE_TYPE_TLV_LIST 

Attribute value is Segment Route Type Length Value list.

SAI_ATTR_VALUE_TYPE_SEGMENT_LIST 

Attribute value is Segment Route Segment list.

SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST 

Attribute value is IP address list.

SAI_ATTR_VALUE_TYPE_PORT_EYE_VALUES_LIST 

Attribute value is port eye values list.

SAI_ATTR_VALUE_TYPE_TIMESPEC 

Attribute value is timespec.

SAI_ATTR_VALUE_TYPE_NAT_ENTRY_DATA 

Attribute value is NAT data.

SAI_ATTR_VALUE_TYPE_MACSEC_SCI 

Attribute value is MACsec SCI.

SAI_ATTR_VALUE_TYPE_MACSEC_SSCI 

Attribute value is MACsec SSCI.

SAI_ATTR_VALUE_TYPE_MACSEC_SAK 

Attribute value is MACsec SAK.

SAI_ATTR_VALUE_TYPE_MACSEC_AUTH_KEY 

Attribute value is MACsec Authentication Key.

SAI_ATTR_VALUE_TYPE_MACSEC_SALT 

Attribute value is MACsec SALT.

SAI_ATTR_VALUE_TYPE_SYSTEM_PORT_CONFIG 

Attribute value is System Port Configuration.

SAI_ATTR_VALUE_TYPE_SYSTEM_PORT_CONFIG_LIST 

Attribute value is System Port Configuration list.

SAI_ATTR_VALUE_TYPE_FABRIC_PORT_REACHABILITY 

Attribute value is Fabric Port Reachability.

SAI_ATTR_VALUE_TYPE_PORT_ERR_STATUS_LIST 

Attribute value is fabric port error status.

SAI_ATTR_VALUE_TYPE_ENCRYPT_KEY 

Attribute value is encryption key.

SAI_ATTR_VALUE_TYPE_AUTH_KEY 

Attribute value is authentication Key.

SAI_ATTR_VALUE_TYPE_LATCH_STATUS 

Attribute value is a latch's status.

SAI_ATTR_VALUE_TYPE_PORT_LANE_LATCH_STATUS_LIST 

Attribute value is a list of latch status for all lanes in a port.

SAI_ATTR_VALUE_TYPE_JSON 

Attribute value is a json.

SAI_ATTR_VALUE_TYPE_IP_PREFIX_LIST 

Attribute value is IP prefix list.

SAI_ATTR_VALUE_TYPE_ACL_CHAIN_LIST 

Attribute value is IP prefix list.

SAI_ATTR_VALUE_TYPE_PORT_FREQUENCY_OFFSET_PPM_LIST 

Attribute value is frequency offset ppm list.

SAI_ATTR_VALUE_TYPE_PORT_SNR_LIST 

Attribute value is SNR list.

SAI_ATTR_VALUE_TYPE_TWAMP_STATS_DATA 

Attribute value is statistics data.

Definition at line 62 of file saimetadatatypes.h.

◆ _sai_condition_operator_t

Condition operator (==,!=,<,>,<=.>=).

Definition at line 711 of file saimetadatatypes.h.

◆ _sai_default_value_type_t

Defines default value type.

Enumerator
SAI_DEFAULT_VALUE_TYPE_NONE 

There is no default value.

This must be assigned on MANDATORY_ON_CREATE attributes.

SAI_DEFAULT_VALUE_TYPE_CONST 

Default value is just a const value.

SAI_DEFAULT_VALUE_TYPE_ATTR_RANGE 

Value must be in range provided by other attribute.

Usually value is provided by switch object. Range can be obtained by GET API. Usually default value is minimum of range.

SAI_DEFAULT_VALUE_TYPE_ATTR_VALUE 

Default value is equal to other attribute value.

Usually value is provided by switch object. Can be obtained using GET API.

SAI_DEFAULT_VALUE_TYPE_EMPTY_LIST 

Default value is just empty list.

SAI_DEFAULT_VALUE_TYPE_VENDOR_SPECIFIC 

Default value is vendor specific.

This value is assigned by switch vendor like default switch MAC address.

It can also be default created object like default hash.

Vendor specific should be different from default objects that are created by default.

SAI_DEFAULT_VALUE_TYPE_SWITCH_INTERNAL 

This object is created by default inside switch (hidden object, like default hash or port).

Should be used only on object id types.

Definition at line 616 of file saimetadatatypes.h.

◆ _sai_enum_flags_type_t

Defines enum flags type, if enum contains flags.

Enum values repetitions are not allowed on all types, unless marked with deprecated for backward compatibility or defined outside enum using define directive.

Enumerator
SAI_ENUM_FLAGS_TYPE_NONE 

Enum has no flags, must start with 0 and have sequential values.

This is default value for all enum, no need for explicit declaration.

SAI_ENUM_FLAGS_TYPE_STRICT 

Enum is strict flags starting from 1 and uses power of 2.

Flags combinations enum definitions NOT allowed, like: C = A | B.

User combined value can contain all flags set at once.

SAI_ENUM_FLAGS_TYPE_MIXED 

Enum is mixed flags starting from 1 and uses power of 2.

Flags combinations enum definitions ARE allowed, like: C = A | B.

SAI_ENUM_FLAGS_TYPE_RANGES 

Enum contains ranges in base steps of 0x1000. Can start with specific range. Inside ranges enum must have sequential values.

SAI_ENUM_FLAGS_TYPE_FREE 

Complete freedom of defining enum, everything is allowed here.

Definition at line 769 of file saimetadatatypes.h.