SAI Metadata
All Classes Files Functions Variables Typedefs Enumerations Enumerator Modules
saimetadatatypes.h
Go to the documentation of this file.
1
25#ifndef __SAIMETADATATYPES_H_
26#define __SAIMETADATATYPES_H_
27
37#define SAI_INVALID_ATTRIBUTE_ID ((sai_attr_id_t)-1)
38
43{
48
55
57
63{
68
73
78
83
88
93
98
103
108
113
118
123
128
133
138
143
148
153
158
163
168
173
178
183
188
193
198
203
208
213
218
223
228
233
238
243
248
253
258
263
268
273
278
283
288
293
298
303
308
313
318
323
328
333
338
343
348
353
358
363
368
373
378
383
388
393
398
403
408
413
418
423
428
433
438
443
448
453
458
463
468
473
478
483
488
494
501{
510
520
530
539
555
566
575
577
581#define SAI_HAS_FLAG_MANDATORY_ON_CREATE(x) (((x) & SAI_ATTR_FLAGS_MANDATORY_ON_CREATE) == SAI_ATTR_FLAGS_MANDATORY_ON_CREATE)
582
586#define SAI_HAS_FLAG_CREATE_ONLY(x) (((x) & SAI_ATTR_FLAGS_CREATE_ONLY) == SAI_ATTR_FLAGS_CREATE_ONLY)
587
591#define SAI_HAS_FLAG_CREATE_AND_SET(x) (((x) & SAI_ATTR_FLAGS_CREATE_AND_SET) == SAI_ATTR_FLAGS_CREATE_AND_SET)
592
596#define SAI_HAS_FLAG_READ_ONLY(x) (((x) & SAI_ATTR_FLAGS_READ_ONLY) == SAI_ATTR_FLAGS_READ_ONLY)
597
601#define SAI_HAS_FLAG_KEY(x) (((x) & SAI_ATTR_FLAGS_KEY) == SAI_ATTR_FLAGS_KEY)
602
606#define SAI_HAS_FLAG_DYNAMIC(x) (((x) & SAI_ATTR_FLAGS_DYNAMIC) == SAI_ATTR_FLAGS_DYNAMIC)
607
611#define SAI_HAS_FLAG_SPECIAL(x) (((x) & SAI_ATTR_FLAGS_SPECIAL) == SAI_ATTR_FLAGS_SPECIAL)
612
617{
625
630
639
647
652
667
675
677
682{
687
693
699
705
707
712{
713 SAI_CONDITION_OPERATOR_EQ = 0,
714
715 SAI_CONDITION_OPERATOR_NE,
716
717 SAI_CONDITION_OPERATOR_LT,
718
719 SAI_CONDITION_OPERATOR_GT,
720
721 SAI_CONDITION_OPERATOR_LE,
722
723 SAI_CONDITION_OPERATOR_GE,
724
726
731{
736 sai_attr_id_t attrid;
737
743
748
759
761
770{
777
786
793
799
804
805 /* future types can be defined */
806
807 /* TODO extension type? */
808
810
815{
819 const char* const name;
820
824 const size_t valuescount;
825
829 const int* const values;
830
834 const char* const* const valuesnames;
835
839 const char* const* const valuesshortnames;
840
847
855
859 const int* const ignorevalues;
860
864 const char* const* const ignorevaluesnames;
865
873
875
880{
887 uint64_t vendorid;
888
895
902 const size_t enumvaluescount;
903
907 const int* const enumvalues;
908
910
915{
920
924 sai_attr_id_t attrid;
925
929 const char* const attridname;
930
934 const char* const brief;
935
940
945
953
958
965
971
976
985
990
1002
1013
1021
1028 sai_attr_id_t defaultvalueattrid;
1029
1045
1055
1065
1071
1080
1086
1091
1096
1105
1120 const sai_attr_condition_t* const* const validonly;
1121
1126
1131
1142
1149
1157
1165
1172
1177
1182
1187
1192
1196 bool iskey;
1197
1205
1215
1222
1232
1246
1251
1256
1264
1272
1282
1284
1285/*
1286 * TODO since non object id members can have different type and can be located
1287 * at different object_key union position, we need to find a way to extract
1288 * those for automatic serialize/deserialize for example extracting value as
1289 * sai_attribute_value_t and pointing to right serialize/deserialize functions.
1290 * Also, an automatic generated functions for serialize/deserialize for those non
1291 * object id structures must be generated, we don't want to update them manually.
1292 */
1293
1302typedef sai_object_id_t (*sai_meta_get_struct_member_oid_fn)(
1303 _In_ const sai_object_meta_key_t *object_meta_key);
1304
1313 _Inout_ sai_object_meta_key_t *object_meta_key,
1314 _In_ sai_object_id_t object_id);
1315
1321{
1326
1330 const char* const membername;
1331
1336
1344
1349
1359
1364
1370
1376
1383 size_t offset;
1384
1388 size_t size;
1389
1391
1396{
1402
1408
1417
1427
1429
1430/*
1431 * Generic QUAD API definitions. All APIs can be called using this quad generic
1432 * functions.
1433 *
1434 * When creating switch object or non object id switch_id parameter is ignored,
1435 * and can be NULL. Currently object type inside sai_object_meta_key_t is
1436 * ignored and can be skipped.
1437 *
1438 * This generic quad API will help us later to call any API, without doing any
1439 * switch cases for calling different signature functions including non object
1440 * id structures. Also, later we will generate automatic serialize and
1441 * deserialize methods for non object id which will deserialize data to object
1442 * union in sai_object_meta_key_t to right place.
1443 */
1444
1445typedef sai_status_t (*sai_meta_generic_create_fn)(
1446 _Inout_ sai_object_meta_key_t *meta_key,
1447 _In_ sai_object_id_t switch_id,
1448 _In_ uint32_t attr_count,
1449 _In_ const sai_attribute_t *attr_list);
1450
1451typedef sai_status_t (*sai_meta_generic_remove_fn)(
1452 _In_ const sai_object_meta_key_t *meta_key);
1453
1454typedef sai_status_t (*sai_meta_generic_set_fn)(
1455 _In_ const sai_object_meta_key_t *meta_key,
1456 _In_ const sai_attribute_t *attr);
1457
1458typedef sai_status_t (*sai_meta_generic_get_fn)(
1459 _In_ const sai_object_meta_key_t *meta_key,
1460 _In_ uint32_t attr_count,
1461 _Inout_ sai_attribute_t *attr_list);
1462
1463typedef sai_status_t (*sai_meta_generic_get_stats_fn)(
1464 _In_ const sai_object_meta_key_t *meta_key,
1465 _In_ uint32_t number_of_counters,
1466 _In_ const sai_stat_id_t *counter_ids,
1467 _Out_ uint64_t *counters);
1468
1469typedef sai_status_t (*sai_meta_generic_get_stats_ext_fn)(
1470 _In_ const sai_object_meta_key_t *meta_key,
1471 _In_ uint32_t number_of_counters,
1472 _In_ const sai_stat_id_t *counter_ids,
1473 _In_ sai_stats_mode_t mode,
1474 _Out_ uint64_t *counters);
1475
1476typedef sai_status_t (*sai_meta_generic_clear_stats_fn)(
1477 _In_ const sai_object_meta_key_t *meta_key,
1478 _In_ uint32_t number_of_counters,
1479 _In_ const sai_stat_id_t *counter_ids);
1480
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,
1485 _In_ const sai_attribute_t *attr_list);
1486
1487typedef sai_status_t (*sai_generic_remove_fn)(
1488 _In_ sai_object_id_t object_id);
1489
1490typedef sai_status_t (*sai_generic_set_fn)(
1491 _In_ sai_object_id_t object_id,
1492 _In_ const sai_attribute_t *attr);
1493
1494typedef sai_status_t (*sai_generic_get_fn)(
1495 _In_ sai_object_id_t object_id,
1496 _In_ uint32_t attr_count,
1497 _Inout_ sai_attribute_t *attr_list);
1498
1503{
1508
1512 const char* const objecttypename;
1513
1517 sai_attr_id_t attridstart;
1518
1522 sai_attr_id_t attridend;
1523
1529
1534
1539
1545
1550
1555
1560
1565
1570
1574 const sai_meta_generic_create_fn create;
1575
1579 const sai_meta_generic_remove_fn remove;
1580
1584 const sai_meta_generic_set_fn set;
1585
1589 const sai_meta_generic_get_fn get;
1590
1594 const sai_meta_generic_get_stats_fn getstats;
1595
1599 const sai_meta_generic_get_stats_ext_fn getstatsext;
1600
1604 const sai_meta_generic_clear_stats_fn clearstats;
1605
1610
1615
1617
1621#endif
struct _sai_attr_capability_metadata_t sai_attr_capability_metadata_t
Defines attribute capability metadata.
_sai_attr_flags_t
Attribute flags.
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.
struct _sai_struct_member_info_t sai_struct_member_info_t
Defines struct member info for non object id object type.
enum _sai_default_value_type_t sai_default_value_type_t
Defines default value type.
struct _sai_enum_metadata_t sai_enum_metadata_t
Defines enum metadata information.
enum _sai_condition_operator_t sai_condition_operator_t
Condition operator (==,!=,<,>,<=.>=).
struct _sai_attr_metadata_t sai_attr_metadata_t
Defines attribute metadata.
enum _sai_attr_flags_t sai_attr_flags_t
Attribute flags.
_sai_condition_operator_t
Condition operator (==,!=,<,>,<=.>=).
_sai_default_value_type_t
Defines default value type.
enum _sai_attr_condition_type_t sai_attr_condition_type_t
Defines attribute condition type.
struct _sai_object_type_info_t sai_object_type_info_t
SAI object type information.
_sai_attr_value_type_t
Defines attribute value type. Can be used when serializing attributes.
_sai_enum_flags_type_t
Defines enum flags type, if enum contains flags.
struct _sai_rev_graph_member_t sai_rev_graph_member_t
SAI reverse graph member.
enum _sai_attr_value_type_t sai_attr_value_type_t
Defines attribute value type. Can be used when serializing attributes.
struct _sai_object_meta_key_t sai_object_meta_key_t
Defines object metadata key.
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.
_sai_attr_condition_type_t
Defines attribute condition type.
struct _sai_attr_condition_t sai_attr_condition_t
Defines attribute condition.
enum _sai_enum_flags_type_t sai_enum_flags_type_t
Defines enum flags type, if enum contains flags.
@ SAI_ATTR_FLAGS_KEY
Key flag.
@ SAI_ATTR_FLAGS_CREATE_AND_SET
Create and set flag.
@ SAI_ATTR_FLAGS_READ_ONLY
Read only flag.
@ SAI_ATTR_FLAGS_MANDATORY_ON_CREATE
Mandatory on create flag.
@ SAI_ATTR_FLAGS_CREATE_ONLY
Create only flag.
@ SAI_ATTR_FLAGS_DYNAMIC
Dynamic flag.
@ SAI_ATTR_FLAGS_SPECIAL
Special flag.
@ SAI_DEFAULT_VALUE_TYPE_ATTR_RANGE
Value must be in range provided by other attribute.
@ SAI_DEFAULT_VALUE_TYPE_SWITCH_INTERNAL
This object is created by default inside switch (hidden object, like default hash or port).
@ SAI_DEFAULT_VALUE_TYPE_ATTR_VALUE
Default value is equal to other attribute value.
@ SAI_DEFAULT_VALUE_TYPE_VENDOR_SPECIFIC
Default value is vendor specific.
@ SAI_DEFAULT_VALUE_TYPE_EMPTY_LIST
Default value is just empty list.
@ SAI_DEFAULT_VALUE_TYPE_CONST
Default value is just a const value.
@ SAI_DEFAULT_VALUE_TYPE_NONE
There is no default value.
@ SAI_ATTR_VALUE_TYPE_IP_PREFIX_LIST
Attribute value is IP prefix list.
@ SAI_ATTR_VALUE_TYPE_TIMESPEC
Attribute value is timespec.
@ SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_IPV4
Attribute value is ACL action IPv4.
@ SAI_ATTR_VALUE_TYPE_ACL_CHAIN_LIST
Attribute value is IP prefix list.
@ SAI_ATTR_VALUE_TYPE_VLAN_LIST
Attribute value is vlan list.
@ SAI_ATTR_VALUE_TYPE_IPV6
Attribute value is IPv6.
@ SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_OBJECT_ID
Attribute value is ACL action object id.
@ SAI_ATTR_VALUE_TYPE_UINT32_LIST
Attribute value is list of 32 bit unsigned integers.
@ SAI_ATTR_VALUE_TYPE_UINT64
Attribute value is 64 bit unsigned integer.
@ SAI_ATTR_VALUE_TYPE_LATCH_STATUS
Attribute value is a latch's status.
@ SAI_ATTR_VALUE_TYPE_UINT16
Attribute value is 16 bit unsigned integer.
@ SAI_ATTR_VALUE_TYPE_BOOL
Attribute value is bool.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_MAC
Attribute value is ACL field MAC address.
@ SAI_ATTR_VALUE_TYPE_OBJECT_LIST
Attribute value is object list.
@ SAI_ATTR_VALUE_TYPE_UINT16_LIST
Attribute value is list of 16 bit unsigned integers.
@ SAI_ATTR_VALUE_TYPE_INT32_LIST
Attribute value is list of 32 bit signed integers.
@ SAI_ATTR_VALUE_TYPE_MACSEC_SAK
Attribute value is MACsec SAK.
@ SAI_ATTR_VALUE_TYPE_SEGMENT_LIST
Attribute value is Segment Route Segment list.
@ SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_IP_ADDRESS
Attribute value is ACL action IP address.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_OBJECT_LIST
Attribute value is ACL field object list.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_IPV6
Attribute value is ACL field IPv6.
@ SAI_ATTR_VALUE_TYPE_CHARDATA
Attribute value is char data.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_INT8
Attribute value is ACL field 8 bit signed integer.
@ SAI_ATTR_VALUE_TYPE_TLV_LIST
Attribute value is Segment Route Type Length Value list.
@ SAI_ATTR_VALUE_TYPE_ENCRYPT_KEY
Attribute value is encryption key.
@ SAI_ATTR_VALUE_TYPE_MAP_LIST
Attribute value is generic map list.
@ SAI_ATTR_VALUE_TYPE_UINT32
Attribute value is 32 bit unsigned integer.
@ SAI_ATTR_VALUE_TYPE_INT16
Attribute value is 16 bit signed integer.
@ SAI_ATTR_VALUE_TYPE_POINTER
Attribute value is pointer address.
@ SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL
Attribute value is ACL action bool.
@ SAI_ATTR_VALUE_TYPE_JSON
Attribute value is a json.
@ SAI_ATTR_VALUE_TYPE_UINT8
Attribute value is 8 bit unsigned integer.
@ SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_MAC
Attribute value is ACL action MAC address.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_MACSEC_SCI
Attribute value is MACsec rule match field SCI.
@ SAI_ATTR_VALUE_TYPE_PORT_EYE_VALUES_LIST
Attribute value is port eye values list.
@ SAI_ATTR_VALUE_TYPE_PORT_FREQUENCY_OFFSET_PPM_LIST
Attribute value is frequency offset ppm list.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_IPV4
Attribute value is ACL field IPv4.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT16
Attribute value is ACL field 16 bit unsigned integer.
@ SAI_ATTR_VALUE_TYPE_NAT_ENTRY_DATA
Attribute value is NAT data.
@ SAI_ATTR_VALUE_TYPE_IP_PREFIX
Attribute value is IP prefix.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT32
Attribute value is ACL field 32 bit unsigned integer.
@ SAI_ATTR_VALUE_TYPE_INT32_RANGE
Attribute value is 32 bit signed integer range.
@ SAI_ATTR_VALUE_TYPE_ACL_CAPABILITY
Attribute value is ACL capability.
@ SAI_ATTR_VALUE_TYPE_UINT16_RANGE_LIST
Attribute value is 16 bit unsigned integer range list.
@ SAI_ATTR_VALUE_TYPE_PORT_ERR_STATUS_LIST
Attribute value is fabric port error status.
@ SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT32
Attribute value is ACL action 32 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_ACTION_DATA_INT8
Attribute value is ACL action 8 bit signed integer.
@ SAI_ATTR_VALUE_TYPE_INT16_LIST
Attribute value is list of 16 bit signed integers.
@ SAI_ATTR_VALUE_TYPE_MACSEC_SSCI
Attribute value is MACsec SSCI.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT64
Attribute value is ACL field 64 bit unsigned integer.
@ SAI_ATTR_VALUE_TYPE_IPV4
Attribute value is IPv4.
@ 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_FIELD_DATA_OBJECT_ID
Attribute value is ACL field object id.
@ SAI_ATTR_VALUE_TYPE_AUTH_KEY
Attribute value is authentication Key.
@ SAI_ATTR_VALUE_TYPE_SYSTEM_PORT_CONFIG_LIST
Attribute value is System Port Configuration list.
@ SAI_ATTR_VALUE_TYPE_PORT_SNR_LIST
Attribute value is SNR list.
@ SAI_ATTR_VALUE_TYPE_MACSEC_SCI
Attribute value is MACsec SCI.
@ SAI_ATTR_VALUE_TYPE_MACSEC_AUTH_KEY
Attribute value is MACsec Authentication Key.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL
Attribute value is ACL field 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_INT16
Attribute value is ACL action 16 bit signed integer.
@ SAI_ATTR_VALUE_TYPE_SYSTEM_PORT_CONFIG
Attribute value is System Port Configuration.
@ SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_OBJECT_LIST
Attribute value is ACL action object list.
@ SAI_ATTR_VALUE_TYPE_MAC
Attribute value is MAC address.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT8
Attribute value is ACL field 8 bit unsigned integer.
@ SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST
Attribute value is IP address list.
@ SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16
Attribute value is ACL action 16 bit unsigned integer.
@ 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_IP_ADDRESS
Attribute value is IP address.
@ SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST
Attribute value is QOS map list.
@ SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT32
Attribute value is ACL action 32 bit signed integer.
@ SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST
Attribute value is ACL resource.
@ SAI_ATTR_VALUE_TYPE_INT32
Attribute value is 32 bit signed integer.
@ SAI_ATTR_VALUE_TYPE_INT64
Attribute value is 64 bit signed integer.
@ SAI_ATTR_VALUE_TYPE_MACSEC_SALT
Attribute value is MACsec SALT.
@ SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_IPV6
Attribute value is ACL action IPv6.
@ SAI_ATTR_VALUE_TYPE_INT8
Attribute value is 8 bit signed integer.
@ SAI_ATTR_VALUE_TYPE_INT8_LIST
Attribute value is list of 8 bit signed integers.
@ SAI_ATTR_VALUE_TYPE_TWAMP_STATS_DATA
Attribute value is statistics data.
@ SAI_ATTR_VALUE_TYPE_FABRIC_PORT_REACHABILITY
Attribute value is Fabric Port Reachability.
@ SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_INT32
Attribute value is ACL field 32 bit signed integer.
@ SAI_ATTR_VALUE_TYPE_UINT8_LIST
Attribute value is list of 8 bit unsigned integers.
@ 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_UINT32_RANGE
Attribute value is 32 bit unsigned integer range.
@ SAI_ENUM_FLAGS_TYPE_MIXED
Enum is mixed flags starting from 1 and uses power of 2.
@ SAI_ENUM_FLAGS_TYPE_STRICT
Enum is strict flags starting from 1 and uses power of 2.
@ SAI_ENUM_FLAGS_TYPE_FREE
Complete freedom of defining enum, everything is allowed here.
@ SAI_ENUM_FLAGS_TYPE_NONE
Enum has no flags, must start with 0 and have sequential values.
@ SAI_ENUM_FLAGS_TYPE_RANGES
Enum contains ranges in base steps of 0x1000. Can start with specific range. Inside ranges enum must ...
@ SAI_ATTR_CONDITION_TYPE_NONE
This attribute is not conditional attribute.
@ SAI_ATTR_CONDITION_TYPE_AND
All conditions must meet for this attribute to be mandatory on create.
@ SAI_ATTR_CONDITION_TYPE_OR
Any condition that will be true will make this attribute mandatory.
@ SAI_ATTR_CONDITION_TYPE_MIXED
Mixed condition, can contain and/or operators as well as grouping using brackets ()....
enum _sai_stats_mode_t sai_stats_mode_t
SAI statistics modes.
enum _sai_object_type_t sai_object_type_t
SAI object type.
Defines attribute capability metadata.
const int *const enumvalues
Enum values count.
const size_t enumvaluescount
Enum values count.
sai_attr_capability_t operationcapability
Operation capability.
Structure for attribute capabilities per operation.
Definition saiobject.h:139
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.
Defines attribute metadata.
size_t capabilitylength
Length of attribute capabilities.
bool isoidattribute
Determines whether attribute contains OIDs.
bool isaclaction
Determines whether attribute is ACL action.
bool isvlan
Determines whether value is vlan.
bool getsave
When calling GET API result will be put in local db for future use (extra logic).
bool isprimitive
Determines whether attribute value is primitive.
bool iskey
Determines whether attribute is key.
bool isenumlist
Indicates whether attribute is enum list value.
const sai_default_value_type_t defaultvaluetype
Specifies default value type.
const sai_attribute_value_t *const defaultvalue
Provides default value.
sai_attr_condition_type_t conditiontype
Specifies condition type of attribute.
bool isenum
Indicates whether attribute is enum value.
const sai_object_type_t *const allowedobjecttypes
Specified allowed object types.
const char *const attridname
Specifies valid attribute id name for this object type.
int pointertype
Pointer type.
const sai_enum_metadata_t *const enummetadata
Provides enum metadata if attribute is enum or enum list.
bool allownullobjectid
Allows null object id to be passed.
bool isaclmask
Determines whether attribute is ACL mask.
size_t allowedobjecttypeslength
Length of allowed object types.
bool isextensionattr
Indicates whether attribute is extension attribute.
bool allowrepetitiononlist
Allows repetitions on object list.
bool allowmixedobjecttypes
Allows mixed object id types on list like port and LAG.
const sai_attr_capability_metadata_t *const *const capability
Attribute capabilities.
bool isaclfield
Determines whether attribute is ACL field.
size_t conditionslength
Length of the conditions.
bool isconditionrelaxed
Indicates whether condition is relaxed.
const sai_attr_condition_t *const *const conditions
Provide conditions for attribute under which this attribute will be mandatory on create.
sai_attr_condition_type_t validonlytype
Specifies valid only type of attribute.
bool isreadonly
Determines whether attribute is read only.
bool ismandatoryoncreate
Determines whether attribute is mandatory on create.
sai_object_type_t defaultvalueobjecttype
Default value object type.
bool iscreateandset
Determines whether attribute is create and set.
size_t validonlylength
Length of the valid only when conditions.
sai_attr_value_type_t attrvaluetype
Specifies attribute value type for this attribute.
bool isdeprecated
Indicates whether attribute is deprecated.
bool iscreateonly
Determines whether attribute is create only.
bool iscallback
Is callback function.
bool isresourcetype
Tells if attribute is a resource type.
bool isconditional
Indicates whether attribute is conditional.
bool isvalidonly
Indicates whether attribute is valid only.
int notificationtype
Notification type.
sai_attr_id_t defaultvalueattrid
Default value object id.
sai_object_type_t objecttype
Specifies valid SAI object type.
sai_attr_flags_t flags
Specifies flags for this attribute.
sai_attr_id_t attrid
Specifies valid attribute id for this object type.
const char *const brief
Extracted brief description from Doxygen comment.
const sai_attr_condition_t *const *const validonly
Provides conditions when this attribute is valid.
bool allowemptylist
Allows empty list to be set on list value type.
bool storedefaultvalue
Indicates whether default value needs to be saved.
Defines enum metadata information.
const char *const name
String representation of enum type definition.
const char *const *const valuesshortnames
Array of enum values string short names.
const size_t valuescount
Values count in enum.
sai_enum_flags_type_t flagstype
Defines enum flags type, if enum contains flags.
const char *const *const ignorevaluesnames
Array of enum ignored values string names.
const int *const ignorevalues
Array of enum ignored values.
bool containsflags
Indicates whether enumeration contains flags.
const int *const values
Array of enum values.
const char *const *const valuesnames
Array of enum values string names.
sai_object_type_t objecttype
Object type to which this enum belongs.
Structure for bulk retrieval of object ids, attribute and values for each object-type....
Definition saiobject.h:129
Defines object metadata key.
sai_object_key_t objectkey
The key.
sai_object_type_t objecttype
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.