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

This module defines SAI Metadata Types. More...

Go to the source code of this file.

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

This module defines SAI Metadata Types.

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 saimetadatatypes.h.