25#ifndef __SAIMETADATATYPES_H_
26#define __SAIMETADATATYPES_H_
37#define SAI_INVALID_ATTRIBUTE_ID ((sai_attr_id_t)-1)
581#define SAI_HAS_FLAG_MANDATORY_ON_CREATE(x) (((x) & SAI_ATTR_FLAGS_MANDATORY_ON_CREATE) == SAI_ATTR_FLAGS_MANDATORY_ON_CREATE)
586#define SAI_HAS_FLAG_CREATE_ONLY(x) (((x) & SAI_ATTR_FLAGS_CREATE_ONLY) == SAI_ATTR_FLAGS_CREATE_ONLY)
591#define SAI_HAS_FLAG_CREATE_AND_SET(x) (((x) & SAI_ATTR_FLAGS_CREATE_AND_SET) == SAI_ATTR_FLAGS_CREATE_AND_SET)
596#define SAI_HAS_FLAG_READ_ONLY(x) (((x) & SAI_ATTR_FLAGS_READ_ONLY) == SAI_ATTR_FLAGS_READ_ONLY)
601#define SAI_HAS_FLAG_KEY(x) (((x) & SAI_ATTR_FLAGS_KEY) == SAI_ATTR_FLAGS_KEY)
606#define SAI_HAS_FLAG_DYNAMIC(x) (((x) & SAI_ATTR_FLAGS_DYNAMIC) == SAI_ATTR_FLAGS_DYNAMIC)
611#define SAI_HAS_FLAG_SPECIAL(x) (((x) & SAI_ATTR_FLAGS_SPECIAL) == SAI_ATTR_FLAGS_SPECIAL)
713 SAI_CONDITION_OPERATOR_EQ = 0,
715 SAI_CONDITION_OPERATOR_NE,
717 SAI_CONDITION_OPERATOR_LT,
719 SAI_CONDITION_OPERATOR_GT,
721 SAI_CONDITION_OPERATOR_LE,
723 SAI_CONDITION_OPERATOR_GE,
1314 _In_ sai_object_id_t object_id);
1445typedef sai_status_t (*sai_meta_generic_create_fn)(
1447 _In_ sai_object_id_t switch_id,
1448 _In_ uint32_t attr_count,
1451typedef sai_status_t (*sai_meta_generic_remove_fn)(
1454typedef sai_status_t (*sai_meta_generic_set_fn)(
1458typedef sai_status_t (*sai_meta_generic_get_fn)(
1460 _In_ uint32_t attr_count,
1463typedef sai_status_t (*sai_meta_generic_get_stats_fn)(
1465 _In_ uint32_t number_of_counters,
1466 _In_
const sai_stat_id_t *counter_ids,
1467 _Out_ uint64_t *counters);
1469typedef sai_status_t (*sai_meta_generic_get_stats_ext_fn)(
1471 _In_ uint32_t number_of_counters,
1472 _In_
const sai_stat_id_t *counter_ids,
1474 _Out_ uint64_t *counters);
1476typedef sai_status_t (*sai_meta_generic_clear_stats_fn)(
1478 _In_ uint32_t number_of_counters,
1479 _In_
const sai_stat_id_t *counter_ids);
1481typedef sai_status_t (*sai_generic_create_fn)(
1482 _Out_ sai_object_id_t *object_id,
1483 _In_ sai_object_id_t switch_id,
1484 _In_ uint32_t attr_count,
1487typedef sai_status_t (*sai_generic_remove_fn)(
1488 _In_ sai_object_id_t object_id);
1490typedef sai_status_t (*sai_generic_set_fn)(
1491 _In_ sai_object_id_t object_id,
1494typedef sai_status_t (*sai_generic_get_fn)(
1495 _In_ sai_object_id_t object_id,
1496 _In_ uint32_t attr_count,
1584 const sai_meta_generic_set_fn
set;
1589 const sai_meta_generic_get_fn
get;
enum _sai_stats_mode_t sai_stats_mode_t
SAI statistics modes.
enum _sai_object_type_t sai_object_type_t
SAI object type.
Structure for attribute capabilities per operation.
Defines attribute condition.
const sai_attribute_value_t condition
Condition value that attribute will be mandatory then default value must be provided for attribute.
sai_condition_operator_t op
Condition operator (==,!=,<,>,<=.>=).
sai_attr_id_t attrid
Specifies valid attribute id for this object type. Attribute is for the same object type.
sai_attr_condition_type_t type
Condition type.
Structure for bulk retrieval of object ids, attribute and values for each object-type....
SAI object type information.
sai_attr_id_t attridend
End of attributes *_END.
const char *const objecttypename
Object Type name.
const sai_attr_metadata_t *const *const attrmetadata
Attributes metadata.
bool isnonobjectid
Indicates if object is using struct instead of actual object id.
size_t revgraphmemberscount
Defines reverse dependency graph members count.
const sai_struct_member_info_t *const *const structmembers
Defines all struct members.
const sai_meta_generic_get_stats_ext_fn getstatsext
Get stats extended function pointer.
const sai_meta_generic_create_fn create
Create function pointer.
const sai_rev_graph_member_t *const *const revgraphmembers
Defines reverse dependency graph members.
const sai_meta_generic_set_fn set
Set function pointer.
size_t attrmetadatalength
Attributes metadata length.
const sai_enum_metadata_t *const enummetadata
Provides enum attr metadata related to this object type.
size_t structmemberscount
Defines count of struct members.
const sai_meta_generic_remove_fn remove
Remove function pointer.
const sai_meta_generic_get_fn get
Get function pointer.
sai_attr_id_t attridstart
Start of attributes *_START.
bool isobjectid
Indicates if object is OID object.
bool isexperimental
Indicates whether object type is experimental.
sai_object_type_t objecttype
Object Type.
const sai_enum_metadata_t *const statenum
Points to enum sai_OBJECT_TYPE_stat_t if object supports stats.
const sai_meta_generic_clear_stats_fn clearstats
Clear stats function pointer.
const sai_meta_generic_get_stats_fn getstats
Get stats function pointer.
SAI reverse graph member.
sai_object_type_t depobjecttype
Defines dependency object type on which is object type defined above is used.
const sai_attr_metadata_t *const attrmetadata
Defines attribute metadata for object type.
const sai_struct_member_info_t *const structmember
Defines struct member for non object id object type.
sai_object_type_t objecttype
Defines main object type which is used by dependency object type.
Defines struct member info for non object id object type.
sai_attr_value_type_t membervaluetype
Member value type.
size_t allowedobjecttypeslength
Length of allowed object types.
size_t size
Member size using sizeof operator.
const sai_meta_get_struct_member_oid_fn getoid
If struct member is OID this function will get its value.
const sai_enum_metadata_t *const enummetadata
Provides enum metadata if member is enum.
const char *const membername
Member name.
const sai_meta_set_struct_member_oid_fn setoid
If struct member is OID this function will set its value.
const sai_object_type_t *const allowedobjecttypes
Specified allowed object types.
bool isenum
Indicates whether member is enum value.
bool isvlan
Indicates whether field is vlan.
size_t offset
Member offset from the struct beginning in bytes.