diff --git a/lib/src/Makefile.am b/lib/src/Makefile.am index 2e6685926b10..97205217614e 100644 --- a/lib/src/Makefile.am +++ b/lib/src/Makefile.am @@ -30,7 +30,7 @@ AM_CPPFLAGS += \ -Wpointer-arith \ -Wredundant-decls \ -Wstack-protector \ - -Wstrict-aliasing=2 \ + -Wstrict-aliasing=3 \ -Wswitch \ -Wswitch-default \ -Wunreachable-code \ diff --git a/meta/Makefile b/meta/Makefile index 2c6ce3b53135..fba65477ae30 100644 --- a/meta/Makefile +++ b/meta/Makefile @@ -99,7 +99,7 @@ OBJ = \ DEPS = sai_meta.h sai_extra.h -CFLAGS=-std=c++11 -I/usr/include/swss -I/usr/include/sai -I/usr/include $(warnings) +CFLAGS=-std=c++11 -I/usr/include/swss -I/usr/include/sai -I/usr/include -I. -I.. $(warnings) LDFLAGS=-L/usr/lib -lswsscommon all: tests diff --git a/meta/sai_meta.cpp b/meta/sai_meta.cpp index d30a75fb0934..4c1b5abb6126 100644 --- a/meta/sai_meta.cpp +++ b/meta/sai_meta.cpp @@ -1,5 +1,6 @@ #include "sai_meta.h" #include "sai_extra.h" +#include #include diff --git a/meta/sai_meta.h b/meta/sai_meta.h index 2d569a85a5b4..6be53d9227ea 100644 --- a/meta/sai_meta.h +++ b/meta/sai_meta.h @@ -14,7 +14,7 @@ extern "C" { } #include "swss/logger.h" -#include "../common/saiserialize.h" +#include "common/saiserialize.h" #define MAX_LIST_COUNT 128 @@ -37,6 +37,69 @@ extern "C" { #define StringifyEnum(x) ((std::is_enum::value) ? #x : 0) +/* +typedef enum _sai_attr_serialization_type_t +{ + SAI_SERIALIZATION_TYPE_BOOL, + SAI_SERIALIZATION_TYPE_CHARDATA, + SAI_SERIALIZATION_TYPE_UINT8, + SAI_SERIALIZATION_TYPE_INT8, + SAI_SERIALIZATION_TYPE_UINT16, + SAI_SERIALIZATION_TYPE_INT16, + SAI_SERIALIZATION_TYPE_UINT32, + SAI_SERIALIZATION_TYPE_INT32, + SAI_SERIALIZATION_TYPE_UINT64, + SAI_SERIALIZATION_TYPE_INT64, + SAI_SERIALIZATION_TYPE_MAC, + SAI_SERIALIZATION_TYPE_IP4, + SAI_SERIALIZATION_TYPE_IP6, + SAI_SERIALIZATION_TYPE_IP_ADDRESS, + SAI_SERIALIZATION_TYPE_OBJECT_ID, + SAI_SERIALIZATION_TYPE_OBJECT_LIST, + SAI_SERIALIZATION_TYPE_UINT8_LIST, + SAI_SERIALIZATION_TYPE_INT8_LIST, + SAI_SERIALIZATION_TYPE_UINT16_LIST, + SAI_SERIALIZATION_TYPE_INT16_LIST, + SAI_SERIALIZATION_TYPE_UINT32_LIST, + SAI_SERIALIZATION_TYPE_INT32_LIST, + SAI_SERIALIZATION_TYPE_UINT32_RANGE, + SAI_SERIALIZATION_TYPE_INT32_RANGE, + SAI_SERIALIZATION_TYPE_VLAN_LIST, + + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_BOOL, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_INT8, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT16, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_INT16, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_INT32, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT32, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_MAC, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_IP4, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_IP6, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_OBJECT_ID, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_OBJECT_LIST, + SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8_LIST, + + SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT8, + SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_INT8, + SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT16, + SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_INT16, + SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT32, + SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_INT32, + SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_MAC, + SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_IPV4, + SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_IPV6, + SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_ID, + SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_LIST, + + SAI_SERIALIZATION_TYPE_PORT_BREAKOUT, + SAI_SERIALIZATION_TYPE_QOS_MAP_LIST, + SAI_SERIALIZATION_TYPE_TUNNEL_MAP_LIST, + SAI_SERIALIZATION_TYPE_ACL_CAPABILITY + +} sai_attr_serialization_type_t; +*/ + typedef struct _sai_object_meta_key_t { sai_object_type_t object_type; @@ -325,6 +388,38 @@ typedef struct _sai_attr_condition_t { // also must be ignored on post set/remve (check flags) so // we could validate ranges for example what are valid when doing query +/** + * @brief Defines enum metadata information. + */ +typedef struct _sai_enum_metadata_t { + + /** + * @brief String representation of enum typedef. + */ + const char* name; + + /** + * @brief Values count in enum. + */ + const size_t valuescount; + + /** + * @brief Array of enum values. + */ + const int* values; + + /** + * @brief Array of enum values string names. + */ + const char** valuesnames; + + /** + * @brief Array of enum values string short names. + */ + const char** valuesshortnames; + +} sai_enum_metadata_t; + typedef struct _sai_attr_metadata_t { /* @@ -339,6 +434,11 @@ typedef struct _sai_attr_metadata_t { const sai_attr_id_t attrid; + /** + * Specifies valid attribute id name for this object type. + */ + const char* attridname; + /* * Specifies serialization type for this attribute. */ @@ -442,6 +542,12 @@ typedef struct _sai_attr_metadata_t { const std::set& enumallowedvalues; + /* + * If attribute is enum value, then this will + * hold enum metadata. + */ + const sai_enum_metadata_t* const enummetadata; + /* * Specifies condition type of attribute. * @@ -595,6 +701,26 @@ EXTERN_METADATA(vlan); EXTERN_METADATA(vlan_member); EXTERN_METADATA(wred); +#define DEFINE_ENUM_METADATA(x,count)\ +const sai_enum_metadata_t metadata_enum_ ## x = {\ + .name = metadata_ ## x ## _enum_name,\ + .valuescount = count,\ + .values = (const int*)metadata_ ## x ## _enum_values,\ + .valuesnames = metadata_ ## x ## _enum_values_names,\ + .valuesshortnames = metadata_ ## x ## _enum_values_short_names,\ +}; + + +extern const sai_enum_metadata_t metadata_enum_sai_port_oper_status_t; +extern const sai_enum_metadata_t metadata_enum_sai_status_t; +extern const sai_enum_metadata_t metadata_enum_sai_fdb_event_t; +extern const sai_enum_metadata_t metadata_enum_sai_object_type_t; +extern const sai_enum_metadata_t metadata_enum_sai_port_event_t; +extern const sai_enum_metadata_t metadata_enum_sai_packet_color_t; +extern const sai_enum_metadata_t metadata_enum_sai_packet_action_t; +extern const sai_enum_metadata_t metadata_enum_sai_next_hop_group_type_t; +extern const sai_enum_metadata_t metadata_enum_sai_meter_type_t; + struct HashForEnum { template std::size_t operator()(T t) const @@ -625,6 +751,10 @@ extern const sai_attribute_t* get_object_previous_attr( extern sai_status_t meta_init_db(); extern void meta_init(); +extern const sai_attr_metadata_t* sai_metadata_get_attr_metadata( + _In_ sai_object_type_t objecttype, + _In_ sai_attr_id_t attrid); + // GENERIC FUNCTION POINTERS typedef sai_status_t (*sai_create_generic_fn)( diff --git a/meta/sai_meta_acl.cpp b/meta/sai_meta_acl.cpp index 286ed6ee54dc..57e136106fdb 100644 --- a/meta/sai_meta_acl.cpp +++ b/meta/sai_meta_acl.cpp @@ -6,6 +6,7 @@ {\ .objecttype = SAI_OBJECT_TYPE_ACL_TABLE,\ .attrid = SAI_ACL_TABLE_ATTR_FIELD_ ## x,\ + .attridname = "SAI_ACL_TABLE_ATTR_FIELD_" #x,\ .serializationtype = SAI_SERIALIZATION_TYPE_BOOL,\ .flags = SAI_ATTR_FLAGS_CREATE_ONLY,\ .allowedobjecttypes = { },\ @@ -14,6 +15,7 @@ .defaultvalue = { .booldata = false },\ .enumtypestr = NULL,\ .enumallowedvalues = { },\ + .enummetadata = NULL,\ .conditions = { },\ }, @@ -42,7 +44,6 @@ DEFINE_ENUM_VALUES(sai_packet_color_t) }; DEFINE_ENUM_VALUES(sai_acl_ip_type_t) - { SAI_ACL_IP_TYPE_ANY, SAI_ACL_IP_TYPE_IP, @@ -72,11 +73,210 @@ DEFINE_ENUM_VALUES(sai_packet_vlan_t) SAI_PACKET_VLAN_DOUBLE_TAG }; +const char metadata_sai_packet_color_t_enum_name[] = "sai_packet_color_t"; +const sai_packet_color_t metadata_sai_packet_color_t_enum_values[] = { + SAI_PACKET_COLOR_GREEN, + SAI_PACKET_COLOR_YELLOW, + SAI_PACKET_COLOR_RED, +}; +const char* metadata_sai_packet_color_t_enum_values_names[] = { + "SAI_PACKET_COLOR_GREEN", + "SAI_PACKET_COLOR_YELLOW", + "SAI_PACKET_COLOR_RED", + NULL +}; +const char* metadata_sai_packet_color_t_enum_values_short_names[] = { + "GREEN", + "YELLOW", + "RED", + NULL +}; +const size_t metadata_sai_packet_color_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_packet_color_t, 3); + +const char metadata_sai_acl_stage_t_enum_name[] = "sai_acl_stage_t"; +const sai_acl_stage_t metadata_sai_acl_stage_t_enum_values[] = { + SAI_ACL_STAGE_INGRESS, + SAI_ACL_STAGE_EGRESS, + SAI_ACL_SUBSTAGE_INGRESS_PRE_L2, + SAI_ACL_SUBSTAGE_INGRESS_POST_L3, +}; +const char* metadata_sai_acl_stage_t_enum_values_names[] = { + "SAI_ACL_STAGE_INGRESS", + "SAI_ACL_STAGE_EGRESS", + "SAI_ACL_STAGE_SUBSTAGE_INGRESS_PRE_L2", + "SAI_ACL_STAGE_SUBSTAGE_INGRESS_POST_L3", + NULL +}; +const char* metadata_sai_acl_stage_t_enum_values_short_names[] = { + "INGRESS", + "EGRESS", + "SUBSTAGE_INGRESS_PRE_L2", + "SUBSTAGE_INGRESS_POST_L3", + NULL +}; +const size_t metadata_sai_acl_stage_t_enum_values_count = 4; +DEFINE_ENUM_METADATA(sai_acl_stage_t, 4); + +const char metadata_sai_packet_action_t_enum_name[] = "sai_packet_action_t"; +const sai_packet_action_t metadata_sai_packet_action_t_enum_values[] = { + SAI_PACKET_ACTION_DROP, + SAI_PACKET_ACTION_FORWARD, + SAI_PACKET_ACTION_COPY, + SAI_PACKET_ACTION_COPY_CANCEL, + SAI_PACKET_ACTION_TRAP, + SAI_PACKET_ACTION_LOG, + SAI_PACKET_ACTION_DENY, + SAI_PACKET_ACTION_TRANSIT, +}; +const char* metadata_sai_packet_action_t_enum_values_names[] = { + "SAI_PACKET_ACTION_DROP", + "SAI_PACKET_ACTION_FORWARD", + "SAI_PACKET_ACTION_COPY", + "SAI_PACKET_ACTION_COPY_CANCEL", + "SAI_PACKET_ACTION_TRAP", + "SAI_PACKET_ACTION_LOG", + "SAI_PACKET_ACTION_DENY", + "SAI_PACKET_ACTION_TRANSIT", + NULL +}; +const char* metadata_sai_packet_action_t_enum_values_short_names[] = { + "DROP", + "FORWARD", + "COPY", + "COPY_CANCEL", + "TRAP", + "LOG", + "DENY", + "TRANSIT", + NULL +}; +const size_t metadata_sai_packet_action_t_enum_values_count = 8; +DEFINE_ENUM_METADATA(sai_packet_action_t, 8); + +const char metadata_sai_packet_vlan_t_enum_name[] = "sai_packet_vlan_t"; +const sai_packet_vlan_t metadata_sai_packet_vlan_t_enum_values[] = { + SAI_PACKET_VLAN_UNTAG, + SAI_PACKET_VLAN_SINGLE_OUTER_TAG, + SAI_PACKET_VLAN_DOUBLE_TAG, +}; +const char* metadata_sai_packet_vlan_t_enum_values_names[] = { + "SAI_PACKET_VLAN_UNTAG", + "SAI_PACKET_VLAN_SINGLE_OUTER_TAG", + "SAI_PACKET_VLAN_DOUBLE_TAG", + NULL +}; +const char* metadata_sai_packet_vlan_t_enum_values_short_names[] = { + "UNTAG", + "SINGLE_OUTER_TAG", + "DOUBLE_TAG", + NULL +}; +const size_t metadata_sai_packet_vlan_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_packet_vlan_t, 3); + +const char metadata_sai_acl_ip_frag_t_enum_name[] = "sai_acl_ip_frag_t"; +const sai_acl_ip_frag_t metadata_sai_acl_ip_frag_t_enum_values[] = { + SAI_ACL_IP_FRAG_ANY, + SAI_ACL_IP_FRAG_NON_FRAG, + SAI_ACL_IP_FRAG_NON_FRAG_OR_HEAD, + SAI_ACL_IP_FRAG_HEAD, + SAI_ACL_IP_FRAG_NON_HEAD, +}; +const char* metadata_sai_acl_ip_frag_t_enum_values_names[] = { + "SAI_ACL_IP_FRAG_ANY", + "SAI_ACL_IP_FRAG_NON_FRAG", + "SAI_ACL_IP_FRAG_NON_FRAG_OR_HEAD", + "SAI_ACL_IP_FRAG_HEAD", + "SAI_ACL_IP_FRAG_NON_HEAD", + NULL +}; +const char* metadata_sai_acl_ip_frag_t_enum_values_short_names[] = { + "ANY", + "NON_FRAG", + "NON_FRAG_OR_HEAD", + "HEAD", + "NON_HEAD", + NULL +}; +const size_t metadata_sai_acl_ip_frag_t_enum_values_count = 5; +DEFINE_ENUM_METADATA(sai_acl_ip_frag_t, 5); + +const char metadata_sai_acl_ip_type_t_enum_name[] = "sai_acl_ip_type_t"; +const sai_acl_ip_type_t metadata_sai_acl_ip_type_t_enum_values[] = { + SAI_ACL_IP_TYPE_ANY, + SAI_ACL_IP_TYPE_IP, + SAI_ACL_IP_TYPE_NON_IP, + SAI_ACL_IP_TYPE_IPv4ANY, + SAI_ACL_IP_TYPE_NON_IPv4, + SAI_ACL_IP_TYPE_IPv6ANY, + SAI_ACL_IP_TYPE_NON_IPv6, + SAI_ACL_IP_TYPE_ARP, + SAI_ACL_IP_TYPE_ARP_REQUEST, + SAI_ACL_IP_TYPE_ARP_REPLY, +}; +const char* metadata_sai_acl_ip_type_t_enum_values_names[] = { + "SAI_ACL_IP_TYPE_ANY", + "SAI_ACL_IP_TYPE_IP", + "SAI_ACL_IP_TYPE_NON_IP", + "SAI_ACL_IP_TYPE_IPv4ANY", + "SAI_ACL_IP_TYPE_NON_IPv4", + "SAI_ACL_IP_TYPE_IPv6ANY", + "SAI_ACL_IP_TYPE_NON_IPv6", + "SAI_ACL_IP_TYPE_ARP", + "SAI_ACL_IP_TYPE_ARP_REQUEST", + "SAI_ACL_IP_TYPE_ARP_REPLY", + NULL +}; +const char* metadata_sai_acl_ip_type_t_enum_values_short_names[] = { + "ANY", + "IP", + "NON_IP", + "IPv4ANY", + "NON_IPv4", + "IPv6ANY", + "NON_IPv6", + "ARP", + "ARP_REQUEST", + "ARP_REPLY", + NULL +}; +const size_t metadata_sai_acl_ip_type_t_enum_values_count = 10; +DEFINE_ENUM_METADATA(sai_acl_ip_type_t, 10); + +const char metadata_sai_acl_range_type_t_enum_name[] = "sai_acl_range_type_t"; +const sai_acl_range_type_t metadata_sai_acl_range_type_t_enum_values[] = { + SAI_ACL_RANGE_L4_SRC_PORT_RANGE, + SAI_ACL_RANGE_L4_DST_PORT_RANGE, + SAI_ACL_RANGE_OUTER_VLAN, + SAI_ACL_RANGE_INNER_VLAN, + SAI_ACL_RANGE_PACKET_LENGTH, +}; +const char* metadata_sai_acl_range_type_t_enum_values_names[] = { + "SAI_ACL_RANGE_TYPE_L4_SRC_PORT_RANGE", + "SAI_ACL_RANGE_TYPE_L4_DST_PORT_RANGE", + "SAI_ACL_RANGE_TYPE_OUTER_VLAN", + "SAI_ACL_RANGE_TYPE_INNER_VLAN", + "SAI_ACL_RANGE_TYPE_PACKET_LENGTH", + NULL +}; +const char* metadata_sai_acl_range_type_t_enum_values_short_names[] = { + "L4_SRC_PORT_RANGE", + "L4_DST_PORT_RANGE", + "OUTER_VLAN", + "INNER_VLAN", + "PACKET_LENGTH", + NULL +}; +const size_t metadata_sai_acl_range_type_t_enum_values_count = 5; +DEFINE_ENUM_METADATA(sai_acl_range_type_t, 5); + const sai_attr_metadata_t sai_acl_table_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_TABLE, .attrid = SAI_ACL_TABLE_ATTR_STAGE, + .attridname = "SAI_ACL_TABLE_ATTR_STAGE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -85,12 +285,14 @@ const sai_attr_metadata_t sai_acl_table_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_acl_stage_t ), .enumallowedvalues = ENUM_VALUES ( sai_acl_stage_t ), + .enummetadata = &metadata_enum_sai_acl_stage_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_TABLE, .attrid = SAI_ACL_TABLE_ATTR_PRIORITY, + .attridname = "SAI_ACL_TABLE_ATTR_PRIORITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -99,6 +301,7 @@ const sai_attr_metadata_t sai_acl_table_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // Value in range @@ -109,6 +312,7 @@ const sai_attr_metadata_t sai_acl_table_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_TABLE, .attrid = SAI_ACL_TABLE_ATTR_SIZE, + .attridname = "SAI_ACL_TABLE_ATTR_SIZE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -117,6 +321,7 @@ const sai_attr_metadata_t sai_acl_table_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO this attribute is special, since it can change dynamically, dynamic @@ -125,6 +330,7 @@ const sai_attr_metadata_t sai_acl_table_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_TABLE, .attrid = SAI_ACL_TABLE_ATTR_GROUP_ID, + .attridname = "SAI_ACL_TABLE_ATTR_GROUP_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_ACL_TABLE_GROUP }, // TODO there is no API to create this @@ -133,6 +339,7 @@ const sai_attr_metadata_t sai_acl_table_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO group ID is special, since when not specified it's created automatically @@ -194,6 +401,7 @@ const sai_attr_metadata_t sai_acl_table_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_TABLE, .attrid = SAI_ACL_TABLE_ATTR_FIELD_RANGE, + .attridname = "SAI_ACL_TABLE_ATTR_FIELD_RANGE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -202,6 +410,7 @@ const sai_attr_metadata_t sai_acl_table_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_acl_range_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_acl_range_type_t ), + .enummetadata = &metadata_enum_sai_acl_range_type_t, .conditions = { }, }, @@ -241,6 +450,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_TABLE_ID, + .attridname = "SAI_ACL_ENTRY_ATTR_TABLE_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_ACL_TABLE }, @@ -249,12 +459,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_PRIORITY, + .attridname = "SAI_ACL_ENTRY_ATTR_PRIORITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -263,6 +475,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // valid range in SAI_SWITCH_ATTR_ACL_ENTRY_MINIMUM_PRIORITY .. SAI_SWITCH_ATTR_ACL_ENTRY_MAXIMUM_PRIORITY @@ -275,6 +488,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_SRC_IPv6, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_SRC_IPv6", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_IP6, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -283,12 +497,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_DST_IPv6, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_DST_IPv6", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_IP6, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -297,6 +513,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, @@ -304,6 +521,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_SRC_MAC, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_SRC_MAC", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_MAC, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -312,12 +530,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_DST_MAC, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_DST_MAC", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_MAC, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -326,12 +546,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_SRC_IP, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_SRC_IP", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_IP4, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -340,12 +562,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_DST_IP, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_DST_IP", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_IP4, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -354,12 +578,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_IN_PORTS, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_IN_PORTS", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -368,12 +594,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_OUT_PORTS, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_OUT_PORTS", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -382,12 +610,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_IN_PORT, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_IN_PORT", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -396,12 +626,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_OUT_PORT, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_OUT_PORT", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -410,12 +642,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_SRC_PORT, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_SRC_PORT", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -424,12 +658,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_ID, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_ID", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -438,12 +674,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_PRI, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_PRI", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -452,12 +690,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_CFI, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_CFI", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -466,12 +706,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_INNER_VLAN_ID, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_INNER_VLAN_ID", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -480,12 +722,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_INNER_VLAN_PRI, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_INNER_VLAN_PRI", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -494,12 +738,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_INNER_VLAN_CFI, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_INNER_VLAN_CFI", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -508,12 +754,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_L4_SRC_PORT, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_L4_SRC_PORT", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -522,12 +770,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_L4_DST_PORT, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_L4_DST_PORT", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -536,12 +786,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_ETHER_TYPE, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_ETHER_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -550,12 +802,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_IP_PROTOCOL, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_IP_PROTOCOL", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -564,12 +818,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_DSCP, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_DSCP", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -578,12 +834,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_ECN, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_ECN", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -592,12 +850,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_TTL, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_TTL", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -606,12 +866,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_TOS, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_TOS", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -620,12 +882,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_IP_FLAGS, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_IP_FLAGS", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -634,12 +898,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_TCP_FLAGS, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_TCP_FLAGS", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -648,12 +914,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_IP_TYPE, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_IP_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -662,12 +930,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_acl_ip_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_acl_ip_type_t ), + .enummetadata = &metadata_enum_sai_acl_ip_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_IP_FRAG, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_IP_FRAG", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -676,12 +946,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_acl_ip_frag_t ), .enumallowedvalues = ENUM_VALUES ( sai_acl_ip_frag_t ), + .enummetadata = &metadata_enum_sai_acl_ip_frag_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_IPv6_FLOW_LABEL, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_IPv6_FLOW_LABEL", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -690,12 +962,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_TC, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_TC", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -704,12 +978,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_ICMP_TYPE, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_ICMP_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -718,12 +994,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_ICMP_CODE, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_ICMP_CODE", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -732,12 +1010,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_VLAN_TAGS, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_VLAN_TAGS", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -746,6 +1026,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_packet_vlan_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_vlan_t ), + .enummetadata = &metadata_enum_sai_packet_vlan_t, .conditions = { }, }, @@ -755,6 +1036,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_FDB_DST_USER_META, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_FDB_DST_USER_META", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -763,12 +1045,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_ROUTE_DST_USER_META, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_ROUTE_DST_USER_META", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -777,12 +1061,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_NEIGHBOR_USER_META, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_NEIGHBOR_USER_META", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -791,12 +1077,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_PORT_USER_META, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_PORT_USER_META", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -805,12 +1093,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_VLAN_USER_META, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_VLAN_USER_META", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -819,12 +1109,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_ACL_USER_META, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_ACL_USER_META", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -833,12 +1125,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_FDB_NPU_META_DST_HIT, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_FDB_NPU_META_DST_HIT", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -847,12 +1141,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_NEIGHBOR_NPU_META_DST_HIT, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_NEIGHBOR_NPU_META_DST_HIT", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -861,12 +1157,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_ROUTE_NPU_META_DST_HIT, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_ROUTE_NPU_META_DST_HIT", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -875,6 +1173,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, @@ -883,6 +1182,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_FIELD_RANGE, + .attridname = "SAI_ACL_ENTRY_ATTR_FIELD_RANGE", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_ACL_RANGE }, @@ -891,6 +1191,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, @@ -899,6 +1200,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_REDIRECT, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_REDIRECT", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT, SAI_OBJECT_TYPE_LAG, SAI_OBJECT_TYPE_NEXT_HOP, SAI_OBJECT_TYPE_NEXT_HOP_GROUP }, @@ -907,12 +1209,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_REDIRECT_LIST, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_REDIRECT_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT, SAI_OBJECT_TYPE_LAG, SAI_OBJECT_TYPE_NEXT_HOP, SAI_OBJECT_TYPE_NEXT_HOP_GROUP }, @@ -921,12 +1225,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_PACKET_ACTION, + .attridname = "SAI_ACL_ENTRY_ATTR_PACKET_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -935,12 +1241,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_FLOOD, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_FLOOD", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_INT32, // TODO what type? parameter not needed? .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -949,12 +1257,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_COUNTER, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_COUNTER", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_ACL_COUNTER }, @@ -963,12 +1273,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_MIRROR_INGRESS, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_MIRROR_INGRESS", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_MIRROR }, @@ -977,6 +1289,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // extra condition maybe needed to check on session @@ -985,6 +1298,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_MIRROR_EGRESS, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_MIRROR_EGRESS", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_MIRROR }, @@ -993,6 +1307,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // extra condition maybe needed to check on session @@ -1001,6 +1316,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_POLICER, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_POLICER", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_POLICER }, @@ -1009,12 +1325,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_DECREMENT_TTL, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_DECREMENT_TTL", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_INT32, // TODO parameter not needed? .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1023,12 +1341,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_TC, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_TC", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1037,12 +1357,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_COLOR, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_COLOR", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1051,12 +1373,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_packet_color_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_color_t ), + .enummetadata = &metadata_enum_sai_packet_color_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_INNER_VLAN_ID, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_INNER_VLAN_ID", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1065,6 +1389,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO should this vlan exist? should it be object id? @@ -1073,6 +1398,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_INNER_VLAN_PRI, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_INNER_VLAN_PRI", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1081,12 +1407,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_OUTER_VLAN_ID, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_OUTER_VLAN_ID", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1095,6 +1423,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO should this vlan exist? should it be object id? @@ -1103,6 +1432,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_OUTER_VLAN_PRI, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_OUTER_VLAN_PRI", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1111,12 +1441,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_SRC_MAC, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_SRC_MAC", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_MAC, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1125,12 +1457,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_DST_MAC, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_DST_MAC", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_MAC, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1139,12 +1473,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_SRC_IP, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_SRC_IP", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_IPV4, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1153,12 +1489,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_DST_IP, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_DST_IP", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_IPV4, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1167,12 +1505,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_SRC_IPv6, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_SRC_IPv6", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_IPV6, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1181,12 +1521,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_DST_IPv6, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_DST_IPv6", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_IPV6, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1195,12 +1537,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_DSCP, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_DSCP", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1209,12 +1553,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_ECN, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_ECN", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1223,12 +1569,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_L4_SRC_PORT, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_L4_SRC_PORT", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1237,12 +1585,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_L4_DST_PORT, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_L4_DST_PORT", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1251,12 +1601,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_INGRESS_SAMPLEPACKET_ENABLE, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_INGRESS_SAMPLEPACKET_ENABLE", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_SAMPLEPACKET }, @@ -1265,12 +1617,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_EGRESS_SAMPLEPACKET_ENABLE, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_EGRESS_SAMPLEPACKET_ENABLE", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_SAMPLEPACKET }, @@ -1279,12 +1633,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_CPU_QUEUE, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_CPU_QUEUE", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QUEUE }, @@ -1293,12 +1649,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_ACL_META_DATA, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_ACL_META_DATA", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1307,12 +1665,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_EGRESS_BLOCK_PORT_LIST, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_EGRESS_BLOCK_PORT_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -1321,12 +1681,14 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_ENTRY, .attrid = SAI_ACL_ENTRY_ATTR_ACTION_SET_USER_TRAP_ID, + .attridname = "SAI_ACL_ENTRY_ATTR_ACTION_SET_USER_TRAP_ID", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_ACTION_DATA_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1335,6 +1697,7 @@ const sai_attr_metadata_t sai_acl_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // range in SAI_SWITCH_ATTR_ACL_USER_TRAP_ID_RANGE @@ -1350,6 +1713,7 @@ const sai_attr_metadata_t sai_acl_counter_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_COUNTER, .attrid = SAI_ACL_COUNTER_ATTR_TABLE_ID, + .attridname = "SAI_ACL_COUNTER_ATTR_TABLE_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_ACL_TABLE }, @@ -1358,12 +1722,14 @@ const sai_attr_metadata_t sai_acl_counter_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_COUNTER, .attrid = SAI_ACL_COUNTER_ATTR_ENABLE_PACKET_COUNT, + .attridname = "SAI_ACL_COUNTER_ATTR_ENABLE_PACKET_COUNT", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -1372,12 +1738,14 @@ const sai_attr_metadata_t sai_acl_counter_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_COUNTER, .attrid = SAI_ACL_COUNTER_ATTR_ENABLE_BYTE_COUNT, + .attridname = "SAI_ACL_COUNTER_ATTR_ENABLE_BYTE_COUNT", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -1386,12 +1754,14 @@ const sai_attr_metadata_t sai_acl_counter_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ACL_COUNTER, .attrid = SAI_ACL_COUNTER_ATTR_PACKETS, + .attridname = "SAI_ACL_COUNTER_ATTR_PACKETS", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1400,6 +1770,7 @@ const sai_attr_metadata_t sai_acl_counter_attr_metadata[] = { .defaultvalue = { .u64 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // dynamic @@ -1408,6 +1779,7 @@ const sai_attr_metadata_t sai_acl_counter_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ACL_COUNTER, .attrid = SAI_ACL_COUNTER_ATTR_BYTES, + .attridname = "SAI_ACL_COUNTER_ATTR_BYTES", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1416,6 +1788,7 @@ const sai_attr_metadata_t sai_acl_counter_attr_metadata[] = { .defaultvalue = { .u64 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // dynamic @@ -1433,6 +1806,7 @@ const sai_attr_metadata_t sai_acl_range_attr_metadata[] = { // { // .objecttype = SAI_OBJECT_TYPE_ACL_RANGE, // .attrid = SAI_ACL_RANGE_ATTR_TYPE, +// .attridname = "SAI_ACL_RANGE_ATTR_TYPE", // .serializationtype = SAI_SERIALIZATION_TYPE_ACL_RANGE // .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, // .allowedobjecttypes = { }, @@ -1441,12 +1815,13 @@ const sai_attr_metadata_t sai_acl_range_attr_metadata[] = { // .defaultvalue = { }, // .enumtypestr = StringifyEnum ( sai_acl_range_type_t ), // .enumallowedvalues = ENUM_VALUES ( sai_acl_range_type_t ), -// .conditions = { }, +// .conditions =&metadata_enum_sai_acl_range_type_t, // }, // { // .objecttype = SAI_OBJECT_TYPE_ACL_RANGE, // .attrid = SAI_ACL_RANGE_ATTR_LIMIT, +// .attridname = "SAI_ACL_RANGE_ATTR_LIMIT", // .serializationtype = SAI_SERIALIZATION_TYPE_ACL_RANGE // .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, // .allowedobjecttypes = { }, diff --git a/meta/sai_meta_buffer.cpp b/meta/sai_meta_buffer.cpp index 1a6c559cb8dc..1c7e8d65af5e 100644 --- a/meta/sai_meta_buffer.cpp +++ b/meta/sai_meta_buffer.cpp @@ -7,6 +7,7 @@ const sai_attr_metadata_t sai_priority_group_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PRIORITY_GROUP, .attrid = SAI_INGRESS_PRIORITY_GROUP_ATTR_BUFFER_PROFILE, + .attridname = "SAI_INGRESS_PRIORITY_GROUP_ATTR_BUFFER_PROFILE", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_BUFFER_PROFILE }, @@ -15,6 +16,7 @@ const sai_attr_metadata_t sai_priority_group_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, }; @@ -35,11 +37,48 @@ DEFINE_ENUM_VALUES(sai_buffer_threshold_mode_t) SAI_BUFFER_THRESHOLD_MODE_DYNAMIC }; +const char metadata_sai_buffer_threshold_mode_t_enum_name[] = "sai_buffer_threshold_mode_t"; +const sai_buffer_threshold_mode_t metadata_sai_buffer_threshold_mode_t_enum_values[] = { + SAI_BUFFER_THRESHOLD_MODE_STATIC, + SAI_BUFFER_THRESHOLD_MODE_DYNAMIC, +}; +const char* metadata_sai_buffer_threshold_mode_t_enum_values_names[] = { + "SAI_BUFFER_THRESHOLD_MODE_STATIC", + "SAI_BUFFER_THRESHOLD_MODE_DYNAMIC", + NULL +}; +const char* metadata_sai_buffer_threshold_mode_t_enum_values_short_names[] = { + "STATIC", + "DYNAMIC", + NULL +}; +const size_t metadata_sai_buffer_threshold_mode_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_buffer_threshold_mode_t, 2); + +const char metadata_sai_buffer_pool_type_t_enum_name[] = "sai_buffer_pool_type_t"; +const sai_buffer_pool_type_t metadata_sai_buffer_pool_type_t_enum_values[] = { + SAI_BUFFER_POOL_INGRESS, + SAI_BUFFER_POOL_EGRESS, +}; +const char* metadata_sai_buffer_pool_type_t_enum_values_names[] = { + "SAI_BUFFER_POOL_TYPE_INGRESS", + "SAI_BUFFER_POOL_TYPE_EGRESS", + NULL +}; +const char* metadata_sai_buffer_pool_type_t_enum_values_short_names[] = { + "INGRESS", + "EGRESS", + NULL +}; +const size_t metadata_sai_buffer_pool_type_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_buffer_pool_type_t, 2); + const sai_attr_metadata_t sai_buffer_pool_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_BUFFER_POOL, .attrid = SAI_BUFFER_POOL_ATTR_SHARED_SIZE, + .attridname = "SAI_BUFFER_POOL_ATTR_SHARED_SIZE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -48,12 +87,14 @@ const sai_attr_metadata_t sai_buffer_pool_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_BUFFER_POOL, .attrid = SAI_BUFFER_POOL_ATTR_TYPE, + .attridname = "SAI_BUFFER_POOL_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -62,12 +103,14 @@ const sai_attr_metadata_t sai_buffer_pool_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_buffer_pool_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_buffer_pool_type_t ), + .enummetadata = &metadata_enum_sai_buffer_pool_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_BUFFER_POOL, .attrid = SAI_BUFFER_POOL_ATTR_SIZE, + .attridname = "SAI_BUFFER_POOL_ATTR_SIZE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -76,12 +119,14 @@ const sai_attr_metadata_t sai_buffer_pool_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_BUFFER_POOL, .attrid = SAI_BUFFER_POOL_ATTR_TH_MODE, + .attridname = "SAI_BUFFER_POOL_ATTR_TH_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -90,6 +135,7 @@ const sai_attr_metadata_t sai_buffer_pool_attr_metadata[] = { .defaultvalue = { .s32 = SAI_BUFFER_THRESHOLD_MODE_DYNAMIC }, .enumtypestr = StringifyEnum ( sai_buffer_threshold_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_buffer_threshold_mode_t ), + .enummetadata = &metadata_enum_sai_buffer_threshold_mode_t, .conditions = { }, }, }; @@ -103,6 +149,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_BUFFER_PROFILE, .attrid = SAI_BUFFER_PROFILE_ATTR_POOL_ID, + .attridname = "SAI_BUFFER_PROFILE_ATTR_POOL_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_BUFFER_POOL }, @@ -111,6 +158,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // Pool id = SAI_NULL_OBJECT_ID can be used when profile is not associated with specific @@ -120,6 +168,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_BUFFER_PROFILE, .attrid = SAI_BUFFER_PROFILE_ATTR_BUFFER_SIZE, + .attridname = "SAI_BUFFER_PROFILE_ATTR_BUFFER_SIZE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -128,12 +177,14 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_BUFFER_PROFILE, .attrid = SAI_BUFFER_PROFILE_ATTR_TH_MODE, + .attridname = "SAI_BUFFER_PROFILE_ATTR_TH_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -142,6 +193,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_buffer_threshold_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_buffer_threshold_mode_t ), // TODO 3rd value needed to use pool and set to default (PR in progress) + .enummetadata = &metadata_enum_sai_buffer_threshold_mode_t, .conditions = { }, // If set, this overrides SAI_BUFFER_POOL_ATTR_TH_MODE. @@ -152,6 +204,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_BUFFER_PROFILE, .attrid = SAI_BUFFER_PROFILE_ATTR_SHARED_DYNAMIC_TH, + .attridname = "SAI_BUFFER_PROFILE_ATTR_SHARED_DYNAMIC_TH", .serializationtype = SAI_SERIALIZATION_TYPE_INT8, .flags = /*SAI_ATTR_FLAGS_MANDATORY_ON_CREATE |*/ SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -160,6 +213,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // ENUM_COND ( SAI_BUFFER_PROFILE_ATTR_TH_MODE, SAI_BUFFER_THRESHOLD_MODE_DYNAMIC ), // TODO condition here is complex, since if TH is inherited from pool then this is hard to determine @@ -170,6 +224,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_BUFFER_PROFILE, .attrid = SAI_BUFFER_PROFILE_ATTR_SHARED_STATIC_TH, + .attridname = "SAI_BUFFER_PROFILE_ATTR_SHARED_STATIC_TH", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = /*SAI_ATTR_FLAGS_MANDATORY_ON_CREATE |*/ SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -178,6 +233,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // ENUM_COND ( SAI_BUFFER_PROFILE_ATTR_TH_MODE, SAI_BUFFER_THRESHOLD_MODE_DYNAMIC ), // TODO condition here is complex, since if TH is inherited from pool then this is hard to determine @@ -188,6 +244,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_BUFFER_PROFILE, .attrid = SAI_BUFFER_PROFILE_ATTR_XOFF_TH, + .attridname = "SAI_BUFFER_PROFILE_ATTR_XOFF_TH", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -196,6 +253,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO valid only for ingress priority group @@ -204,6 +262,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_BUFFER_PROFILE, .attrid = SAI_BUFFER_PROFILE_ATTR_XON_TH, + .attridname = "SAI_BUFFER_PROFILE_ATTR_XON_TH", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -212,6 +271,7 @@ const sai_attr_metadata_t sai_buffer_profile_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO valid only for ingress priority group diff --git a/meta/sai_meta_fdb.cpp b/meta/sai_meta_fdb.cpp index fc26227ccd81..224b15ae78b7 100644 --- a/meta/sai_meta_fdb.cpp +++ b/meta/sai_meta_fdb.cpp @@ -8,11 +8,51 @@ DEFINE_ENUM_VALUES(sai_fdb_entry_type_t) SAI_FDB_ENTRY_STATIC }; +const char metadata_sai_fdb_event_t_enum_name[] = "sai_fdb_event_t"; +const sai_fdb_event_t metadata_sai_fdb_event_t_enum_values[] = { + SAI_FDB_EVENT_LEARNED, + SAI_FDB_EVENT_AGED, + SAI_FDB_EVENT_FLUSHED, +}; +const char* metadata_sai_fdb_event_t_enum_values_names[] = { + "SAI_FDB_EVENT_LEARNED", + "SAI_FDB_EVENT_AGED", + "SAI_FDB_EVENT_FLUSHED", + NULL +}; +const char* metadata_sai_fdb_event_t_enum_values_short_names[] = { + "LEARNED", + "AGED", + "FLUSHED", + NULL +}; +const size_t metadata_sai_fdb_event_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_fdb_event_t, 3); + +const char metadata_sai_fdb_entry_type_t_enum_name[] = "sai_fdb_entry_type_t"; +const sai_fdb_entry_type_t metadata_sai_fdb_entry_type_t_enum_values[] = { + SAI_FDB_ENTRY_DYNAMIC, + SAI_FDB_ENTRY_STATIC, +}; +const char* metadata_sai_fdb_entry_type_t_enum_values_names[] = { + "SAI_FDB_ENTRY_TYPE_DYNAMIC", + "SAI_FDB_ENTRY_TYPE_STATIC", + NULL +}; +const char* metadata_sai_fdb_entry_type_t_enum_values_short_names[] = { + "DYNAMIC", + "STATIC", + NULL +}; +const size_t metadata_sai_fdb_entry_type_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_fdb_entry_type_t, 2); + const sai_attr_metadata_t sai_fdb_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_FDB, .attrid = SAI_FDB_ENTRY_ATTR_TYPE, + .attridname = "SAI_FDB_ENTRY_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -21,12 +61,14 @@ const sai_attr_metadata_t sai_fdb_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_fdb_entry_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_fdb_entry_type_t ), + .enummetadata = &metadata_enum_sai_fdb_entry_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_FDB, .attrid = SAI_FDB_ENTRY_ATTR_PORT_ID, + .attridname = "SAI_FDB_ENTRY_ATTR_PORT_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT, SAI_OBJECT_TYPE_LAG, SAI_OBJECT_TYPE_TUNNEL }, @@ -35,6 +77,7 @@ const sai_attr_metadata_t sai_fdb_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO some extra check may be required on tunnel @@ -43,6 +86,7 @@ const sai_attr_metadata_t sai_fdb_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_FDB, .attrid = SAI_FDB_ENTRY_ATTR_PACKET_ACTION, + .attridname = "SAI_FDB_ENTRY_ATTR_PACKET_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -51,12 +95,14 @@ const sai_attr_metadata_t sai_fdb_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_FDB, .attrid = SAI_FDB_ENTRY_ATTR_META_DATA, + .attridname = "SAI_FDB_ENTRY_ATTR_META_DATA", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -65,6 +111,7 @@ const sai_attr_metadata_t sai_fdb_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO valid range is SAI_SWITCH_ATTR_FDB_DST_USER_META_DATA_RANGE diff --git a/meta/sai_meta_hash.cpp b/meta/sai_meta_hash.cpp index ce36d40445f7..166290f93808 100644 --- a/meta/sai_meta_hash.cpp +++ b/meta/sai_meta_hash.cpp @@ -18,11 +18,60 @@ DEFINE_ENUM_VALUES(sai_native_hash_field_t) SAI_NATIVE_HASH_FIELD_IN_PORT }; +const char metadata_sai_native_hash_field_t_enum_name[] = "sai_native_hash_field_t"; +const sai_native_hash_field_t metadata_sai_native_hash_field_t_enum_values[] = { + SAI_NATIVE_HASH_FIELD_SRC_IP, + SAI_NATIVE_HASH_FIELD_DST_IP, + SAI_NATIVE_HASH_FIELD_INNER_SRC_IP, + SAI_NATIVE_HASH_FIELD_INNER_DST_IP, + SAI_NATIVE_HASH_FIELD_VLAN_ID, + SAI_NATIVE_HASH_FIELD_IP_PROTOCOL, + SAI_NATIVE_HASH_FIELD_ETHERTYPE, + SAI_NATIVE_HASH_FIELD_L4_SRC_PORT, + SAI_NATIVE_HASH_FIELD_L4_DST_PORT, + SAI_NATIVE_HASH_FIELD_SRC_MAC, + SAI_NATIVE_HASH_FIELD_DST_MAC, + SAI_NATIVE_HASH_FIELD_IN_PORT, +}; +const char* metadata_sai_native_hash_field_t_enum_values_names[] = { + "SAI_NATIVE_HASH_FIELD_SRC_IP", + "SAI_NATIVE_HASH_FIELD_DST_IP", + "SAI_NATIVE_HASH_FIELD_INNER_SRC_IP", + "SAI_NATIVE_HASH_FIELD_INNER_DST_IP", + "SAI_NATIVE_HASH_FIELD_VLAN_ID", + "SAI_NATIVE_HASH_FIELD_IP_PROTOCOL", + "SAI_NATIVE_HASH_FIELD_ETHERTYPE", + "SAI_NATIVE_HASH_FIELD_L4_SRC_PORT", + "SAI_NATIVE_HASH_FIELD_L4_DST_PORT", + "SAI_NATIVE_HASH_FIELD_SRC_MAC", + "SAI_NATIVE_HASH_FIELD_DST_MAC", + "SAI_NATIVE_HASH_FIELD_IN_PORT", + NULL +}; +const char* metadata_sai_native_hash_field_t_enum_values_short_names[] = { + "SRC_IP", + "DST_IP", + "INNER_SRC_IP", + "INNER_DST_IP", + "VLAN_ID", + "IP_PROTOCOL", + "ETHERTYPE", + "L4_SRC_PORT", + "L4_DST_PORT", + "SRC_MAC", + "DST_MAC", + "IN_PORT", + NULL +}; +const size_t metadata_sai_native_hash_field_t_enum_values_count = 12; +DEFINE_ENUM_METADATA(sai_native_hash_field_t, 12); + const sai_attr_metadata_t sai_hash_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_HASH, .attrid = SAI_HASH_ATTR_NATIVE_FIELD_LIST, + .attridname = "SAI_HASH_ATTR_NATIVE_FIELD_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_INT32_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -31,12 +80,14 @@ const sai_attr_metadata_t sai_hash_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_native_hash_field_t ), .enumallowedvalues = ENUM_VALUES ( sai_native_hash_field_t ), + .enummetadata = &metadata_enum_sai_native_hash_field_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_HASH, .attrid = SAI_HASH_ATTR_UDF_GROUP_LIST, + .attridname = "SAI_HASH_ATTR_UDF_GROUP_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_UDF_GROUP }, @@ -45,6 +96,7 @@ const sai_attr_metadata_t sai_hash_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, }; diff --git a/meta/sai_meta_hostintf.cpp b/meta/sai_meta_hostintf.cpp index 850fcfc40b79..5d83362474cb 100644 --- a/meta/sai_meta_hostintf.cpp +++ b/meta/sai_meta_hostintf.cpp @@ -53,11 +53,51 @@ DEFINE_ENUM_VALUES(sai_hostif_trap_channel_t) SAI_HOSTIF_TRAP_CHANNEL_NETDEV }; +const char metadata_sai_hostif_trap_channel_t_enum_name[] = "sai_hostif_trap_channel_t"; +const sai_hostif_trap_channel_t metadata_sai_hostif_trap_channel_t_enum_values[] = { + SAI_HOSTIF_TRAP_CHANNEL_FD, + SAI_HOSTIF_TRAP_CHANNEL_CB, + SAI_HOSTIF_TRAP_CHANNEL_NETDEV, +}; +const char* metadata_sai_hostif_trap_channel_t_enum_values_names[] = { + "SAI_HOSTIF_TRAP_CHANNEL_FD", + "SAI_HOSTIF_TRAP_CHANNEL_CB", + "SAI_HOSTIF_TRAP_CHANNEL_NETDEV", + NULL +}; +const char* metadata_sai_hostif_trap_channel_t_enum_values_short_names[] = { + "FD", + "CB", + "NETDEV", + NULL +}; +const size_t metadata_sai_hostif_trap_channel_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_hostif_trap_channel_t, 3); + +const char metadata_sai_hostif_type_t_enum_name[] = "sai_hostif_type_t"; +const sai_hostif_type_t metadata_sai_hostif_type_t_enum_values[] = { + SAI_HOSTIF_TYPE_NETDEV, + SAI_HOSTIF_TYPE_FD, +}; +const char* metadata_sai_hostif_type_t_enum_values_names[] = { + "SAI_HOSTIF_TYPE_NETDEV", + "SAI_HOSTIF_TYPE_FD", + NULL +}; +const char* metadata_sai_hostif_type_t_enum_values_short_names[] = { + "NETDEV", + "FD", + NULL +}; +const size_t metadata_sai_hostif_type_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_hostif_type_t, 2); + const sai_attr_metadata_t sai_hostintf_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_HOST_INTERFACE, .attrid = SAI_HOSTIF_ATTR_TYPE, + .attridname = "SAI_HOSTIF_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -66,12 +106,14 @@ const sai_attr_metadata_t sai_hostintf_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_hostif_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_hostif_type_t ), + .enummetadata = &metadata_enum_sai_hostif_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_HOST_INTERFACE, .attrid = SAI_HOSTIF_ATTR_RIF_OR_PORT_ID, + .attridname = "SAI_HOSTIF_ATTR_RIF_OR_PORT_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT, SAI_OBJECT_TYPE_ROUTER_INTERFACE }, @@ -80,12 +122,14 @@ const sai_attr_metadata_t sai_hostintf_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_HOSTIF_ATTR_TYPE, SAI_HOSTIF_TYPE_NETDEV ) }, }, { .objecttype = SAI_OBJECT_TYPE_HOST_INTERFACE, .attrid = SAI_HOSTIF_ATTR_NAME, + .attridname = "SAI_HOSTIF_ATTR_NAME", .serializationtype = SAI_SERIALIZATION_TYPE_CHARDATA, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -94,6 +138,7 @@ const sai_attr_metadata_t sai_hostintf_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_HOSTIF_ATTR_TYPE, SAI_HOSTIF_TYPE_NETDEV ) }, // TODO extra logic on name validation is needed @@ -102,6 +147,7 @@ const sai_attr_metadata_t sai_hostintf_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_HOST_INTERFACE, .attrid = SAI_HOSTIF_ATTR_OPER_STATUS, + .attridname = "SAI_HOSTIF_ATTR_OPER_STATUS", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -110,6 +156,7 @@ const sai_attr_metadata_t sai_hostintf_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, }; @@ -123,6 +170,7 @@ const sai_attr_metadata_t sai_hostintf_trap_group_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TRAP_GROUP, .attrid = SAI_HOSTIF_TRAP_GROUP_ATTR_ADMIN_STATE, + .attridname = "SAI_HOSTIF_TRAP_GROUP_ATTR_ADMIN_STATE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -131,12 +179,14 @@ const sai_attr_metadata_t sai_hostintf_trap_group_attr_metadata[] = { .defaultvalue = { .booldata = true }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_TRAP_GROUP, .attrid = SAI_HOSTIF_TRAP_GROUP_ATTR_QUEUE, + .attridname = "SAI_HOSTIF_TRAP_GROUP_ATTR_QUEUE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -145,6 +195,7 @@ const sai_attr_metadata_t sai_hostintf_trap_group_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO this can be tricky since this QUEUE is queue INDEX @@ -158,6 +209,7 @@ const sai_attr_metadata_t sai_hostintf_trap_group_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TRAP_GROUP, .attrid = SAI_HOSTIF_TRAP_GROUP_ATTR_POLICER, + .attridname = "SAI_HOSTIF_TRAP_GROUP_ATTR_POLICER", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_POLICER }, @@ -166,6 +218,7 @@ const sai_attr_metadata_t sai_hostintf_trap_group_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, }; @@ -175,24 +228,27 @@ const size_t sai_hostintf_trap_group_attr_metadata_count = sizeof(sai_hostintf_t // METADATA for SAI_OBJECT_TYPE_TRAP const sai_attr_metadata_t sai_hostintf_trap_attr_metadata[] = { - - //{ - // .objecttype = SAI_OBJECT_TYPE_TRAP, - // .attrid = SAI_HOSTIF_TRAP_ATTR_TRAP_TYPE, - // .serializationtype = SAI_SERIALIZATION_TYPE_INT32, - // .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET | SAI_ATTR_FLAGS_KEY, - // .allowedobjecttypes = { }, - // .allownullobjectid = false, - // .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_NONE, - // .defaultvalue = { }, - // .enumtypestr = StringifyEnum ( sai_hostif_trap_type_t ), - // .enumallowedvalues = ENUM_VALUES ( sai_hostif_trap_type_f ), - // .conditions = { }, - //}, - +/* + { + .objecttype = SAI_OBJECT_TYPE_TRAP, + .attrid = SAI_HOSTIF_TRAP_ATTR_TRAP_TYPE, + .nameid = "SAI_HOSTIF_TRAP_ATTR_TRAP_TYPE", + .serializationtype = SAI_SERIALIZATION_TYPE_INT32, + .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET | SAI_ATTR_FLAGS_KEY, + .allowedobjecttypes = { }, + .allownullobjectid = false, + .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_NONE, + .defaultvalue = { }, + .enumtypestr = StringifyEnum ( sai_hostif_trap_type_t ), + .enumallowedvalues = ENUM_VALUES ( sai_hostif_trap_type_f ), + .enummetadata = &metadata_enum_sai_hostif_trap_type_f, + .conditions = { }, + }, +*/ { .objecttype = SAI_OBJECT_TYPE_TRAP, .attrid = SAI_HOSTIF_TRAP_ATTR_PACKET_ACTION, + .attridname = "SAI_HOSTIF_TRAP_ATTR_PACKET_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -201,6 +257,7 @@ const sai_attr_metadata_t sai_hostintf_trap_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_FORWARD }, // TODO check if this is right one .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, @@ -217,6 +274,7 @@ const sai_attr_metadata_t sai_hostintf_trap_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TRAP, .attrid = SAI_HOSTIF_TRAP_ATTR_TRAP_PRIORITY, + .attridname = "SAI_HOSTIF_TRAP_ATTR_TRAP_PRIORITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -225,6 +283,7 @@ const sai_attr_metadata_t sai_hostintf_trap_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO default value is provided by SAI_SWITCH_ATTR_ACL_ENTRY_MINIMUM_PRIORITY @@ -233,6 +292,7 @@ const sai_attr_metadata_t sai_hostintf_trap_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TRAP, .attrid = SAI_HOSTIF_TRAP_ATTR_TRAP_CHANNEL, + .attridname = "SAI_HOSTIF_TRAP_ATTR_TRAP_CHANNEL", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, // mandatory + crete_only .allowedobjecttypes = { }, @@ -241,30 +301,34 @@ const sai_attr_metadata_t sai_hostintf_trap_attr_metadata[] = { .defaultvalue = { .s32 = SAI_HOSTIF_TRAP_CHANNEL_CB }, .enumtypestr = StringifyEnum ( sai_hostif_trap_channel_t ), .enumallowedvalues = ENUM_VALUES ( sai_hostif_trap_channel_t ), + .enummetadata = &metadata_enum_sai_hostif_trap_channel_t, .conditions = { }, }, +/* + { + .objecttype = SAI_OBJECT_TYPE_TRAP, + .attrid = SAI_HOSTIF_TRAP_ATTR_FD, + .nameid = "SAI_HOSTIF_TRAP_ATTR_FD", + .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, + .flags = SAI_ATTR_FLAGS_CREATE_ONLY, + .allowedobjecttypes = { }, // TODO what kind of object ? + .allownullobjectid = true, + .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_CONST, + .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, + .enumtypestr = NULL, + .enumallowedvalues = { }, + .enummetadata = NULL, + .conditions = { } - //{ - // .objecttype = SAI_OBJECT_TYPE_TRAP, - // .attrid = SAI_HOSTIF_TRAP_ATTR_FD, - // .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, - // .flags = SAI_ATTR_FLAGS_CREATE_ONLY, - // .allowedobjecttypes = { }, // TODO what kind of object ? - // .allownullobjectid = true, - // .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_CONST, - // .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, - // .enumtypestr = NULL, - // .enumallowedvalues = { }, - // .conditions = { } - - // TODO condition is more complex here since trap/log and this (extra logic needed) - // // * Valid only when SAI_HOSTIF_TRAP_ATTR_TRAP_CHANNEL == SAI_HOSTIF_TRAP_CHANNEL_FD - // // * Must be set before set SAI_HOSTIF_TRAP_ATTR_TRAP_CHANNEL to SAI_HOSTIF_TRAP_CHANNEL_FD - //}, - + // TODO condition is more complex here since trap/log and this (extra logic needed) + // * Valid only when SAI_HOSTIF_TRAP_ATTR_TRAP_CHANNEL == SAI_HOSTIF_TRAP_CHANNEL_FD + // * Must be set before set SAI_HOSTIF_TRAP_ATTR_TRAP_CHANNEL to SAI_HOSTIF_TRAP_CHANNEL_FD + }, +*/ { .objecttype = SAI_OBJECT_TYPE_TRAP, .attrid = SAI_HOSTIF_TRAP_ATTR_PORT_LIST, + .attridname = "SAI_HOSTIF_TRAP_ATTR_PORT_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -273,6 +337,7 @@ const sai_attr_metadata_t sai_hostintf_trap_attr_metadata[] = { .defaultvalue = { }, // TODO default is to all ports .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { } // TODO extra logic is needed here since default is to all ports, we need more explanation @@ -281,6 +346,7 @@ const sai_attr_metadata_t sai_hostintf_trap_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TRAP, .attrid = SAI_HOSTIF_TRAP_ATTR_TRAP_GROUP, + .attridname = "SAI_HOSTIF_TRAP_ATTR_TRAP_GROUP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, // create only ? .allowedobjecttypes = { SAI_OBJECT_TYPE_TRAP_GROUP }, @@ -289,6 +355,7 @@ const sai_attr_metadata_t sai_hostintf_trap_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { } // TODO default value points to SAI_SWITCH_ATTR_DEFAULT_TRAP_GROUP diff --git a/meta/sai_meta_lag.cpp b/meta/sai_meta_lag.cpp index b1c98866678d..4f15b2ffc953 100644 --- a/meta/sai_meta_lag.cpp +++ b/meta/sai_meta_lag.cpp @@ -7,6 +7,7 @@ const sai_attr_metadata_t sai_lag_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_LAG, .attrid = SAI_LAG_ATTR_PORT_LIST, + .attridname = "SAI_LAG_ATTR_PORT_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_LAG_MEMBER }, @@ -15,6 +16,7 @@ const sai_attr_metadata_t sai_lag_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, }; @@ -28,6 +30,7 @@ const sai_attr_metadata_t sai_lag_member_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_LAG_MEMBER, .attrid = SAI_LAG_MEMBER_ATTR_LAG_ID, + .attridname = "SAI_LAG_MEMBER_ATTR_LAG_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_LAG }, @@ -36,12 +39,14 @@ const sai_attr_metadata_t sai_lag_member_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_LAG_MEMBER, .attrid = SAI_LAG_MEMBER_ATTR_PORT_ID, + .attridname = "SAI_LAG_MEMBER_ATTR_PORT_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -50,12 +55,14 @@ const sai_attr_metadata_t sai_lag_member_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_LAG_MEMBER, .attrid = SAI_LAG_MEMBER_ATTR_EGRESS_DISABLE, + .attridname = "SAI_LAG_MEMBER_ATTR_EGRESS_DISABLE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -64,12 +71,14 @@ const sai_attr_metadata_t sai_lag_member_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_LAG_MEMBER, .attrid = SAI_LAG_MEMBER_ATTR_INGRESS_DISABLE, + .attridname = "SAI_LAG_MEMBER_ATTR_INGRESS_DISABLE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -78,6 +87,7 @@ const sai_attr_metadata_t sai_lag_member_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, }; diff --git a/meta/sai_meta_mirror.cpp b/meta/sai_meta_mirror.cpp index 2f9302deb75e..b94710976814 100644 --- a/meta/sai_meta_mirror.cpp +++ b/meta/sai_meta_mirror.cpp @@ -14,11 +14,48 @@ DEFINE_ENUM_VALUES(sai_erspan_encapsulation_type_t) SAI_MIRROR_L3_GRE_TUNNEL }; +const char metadata_sai_erspan_encapsulation_type_t_enum_name[] = "sai_erspan_encapsulation_type_t"; +const sai_erspan_encapsulation_type_t metadata_sai_erspan_encapsulation_type_t_enum_values[] = { + SAI_MIRROR_L3_GRE_TUNNEL, +}; +const char* metadata_sai_erspan_encapsulation_type_t_enum_values_names[] = { + "SAI_ERSPAN_ENCAPSULATION_TYPE_MIRROR_L3_GRE_TUNNEL", + NULL +}; +const char* metadata_sai_erspan_encapsulation_type_t_enum_values_short_names[] = { + "MIRROR_L3_GRE_TUNNEL", + NULL +}; +const size_t metadata_sai_erspan_encapsulation_type_t_enum_values_count = 1; +DEFINE_ENUM_METADATA(sai_erspan_encapsulation_type_t, 1); + +const char metadata_sai_mirror_type_t_enum_name[] = "sai_mirror_type_t"; +const sai_mirror_type_t metadata_sai_mirror_type_t_enum_values[] = { + SAI_MIRROR_TYPE_LOCAL, + SAI_MIRROR_TYPE_REMOTE, + SAI_MIRROR_TYPE_ENHANCED_REMOTE, +}; +const char* metadata_sai_mirror_type_t_enum_values_names[] = { + "SAI_MIRROR_TYPE_LOCAL", + "SAI_MIRROR_TYPE_REMOTE", + "SAI_MIRROR_TYPE_ENHANCED_REMOTE", + NULL +}; +const char* metadata_sai_mirror_type_t_enum_values_short_names[] = { + "LOCAL", + "REMOTE", + "ENHANCED_REMOTE", + NULL +}; +const size_t metadata_sai_mirror_type_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_mirror_type_t, 3); + const sai_attr_metadata_t sai_mirror_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_TYPE, + .attridname = "SAI_MIRROR_SESSION_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -27,12 +64,14 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_mirror_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_mirror_type_t ), + .enummetadata = &metadata_enum_sai_mirror_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_MONITOR_PORT, + .attridname = "SAI_MIRROR_SESSION_ATTR_MONITOR_PORT", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -41,12 +80,14 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, /*{ .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_TRUNCATE_SIZE, + .attridname = "SAI_MIRROR_SESSION_ATTR_TRUNCATE_SIZE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -55,12 +96,14 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { .u16 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, },*/ { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_TC, + .attridname = "SAI_MIRROR_SESSION_ATTR_TC", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -69,6 +112,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { .u8 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, @@ -77,6 +121,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_VLAN_TPID, + .attridname = "SAI_MIRROR_SESSION_ATTR_VLAN_TPID", .serializationtype = SAI_SERIALIZATION_TYPE_UINT16, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -85,6 +130,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ), COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_REMOTE), @@ -94,6 +140,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_VLAN_ID, + .attridname = "SAI_MIRROR_SESSION_ATTR_VLAN_ID", .serializationtype = SAI_SERIALIZATION_TYPE_UINT16, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -102,6 +149,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ), COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_REMOTE), @@ -113,6 +161,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_VLAN_PRI, + .attridname = "SAI_MIRROR_SESSION_ATTR_VLAN_PRI", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -121,6 +170,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ), COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_REMOTE), @@ -132,6 +182,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { /*{ .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_VLAN_CFI, + .attridname = "SAI_MIRROR_SESSION_ATTR_VLAN_CFI", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -140,6 +191,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ), COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_REMOTE), @@ -151,6 +203,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_ENCAP_TYPE, + .attridname = "SAI_MIRROR_SESSION_ATTR_ENCAP_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -159,12 +212,14 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_erspan_encapsulation_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_erspan_encapsulation_type_t ), + .enummetadata = &metadata_enum_sai_erspan_encapsulation_type_t, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ) }, }, { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_IPHDR_VERSION, + .attridname = "SAI_MIRROR_SESSION_ATTR_IPHDR_VERSION", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -173,6 +228,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ) }, // TODO extra logic to check version @@ -181,6 +237,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_TOS, + .attridname = "SAI_MIRROR_SESSION_ATTR_TOS", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -189,12 +246,14 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ) }, }, { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_TTL, + .attridname = "SAI_MIRROR_SESSION_ATTR_TTL", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -203,6 +262,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { .u8 = 255 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO valid only when @@ -215,6 +275,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_SRC_IP_ADDRESS, + .attridname = "SAI_MIRROR_SESSION_ATTR_SRC_IP_ADDRESS", .serializationtype = SAI_SERIALIZATION_TYPE_IP_ADDRESS, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -223,12 +284,14 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ) }, }, { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_DST_IP_ADDRESS, + .attridname = "SAI_MIRROR_SESSION_ATTR_DST_IP_ADDRESS", .serializationtype = SAI_SERIALIZATION_TYPE_IP_ADDRESS, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -237,12 +300,14 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ) }, }, { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_SRC_MAC_ADDRESS, + .attridname = "SAI_MIRROR_SESSION_ATTR_SRC_MAC_ADDRESS", .serializationtype = SAI_SERIALIZATION_TYPE_MAC, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -251,12 +316,14 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ) }, }, { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_DST_MAC_ADDRESS, + .attridname = "SAI_MIRROR_SESSION_ATTR_DST_MAC_ADDRESS", .serializationtype = SAI_SERIALIZATION_TYPE_MAC, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -265,12 +332,14 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ) }, }, { .objecttype = SAI_OBJECT_TYPE_MIRROR, .attrid = SAI_MIRROR_SESSION_ATTR_GRE_PROTOCOL_TYPE, + .attridname = "SAI_MIRROR_SESSION_ATTR_GRE_PROTOCOL_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT16, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -279,6 +348,7 @@ const sai_attr_metadata_t sai_mirror_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_MIRROR_SESSION_ATTR_TYPE, SAI_MIRROR_TYPE_ENHANCED_REMOTE ) }, // TODO extra logic for checking value may be needed diff --git a/meta/sai_meta_neighbor.cpp b/meta/sai_meta_neighbor.cpp index 2e362da66d8b..23f8bef46a3a 100644 --- a/meta/sai_meta_neighbor.cpp +++ b/meta/sai_meta_neighbor.cpp @@ -7,6 +7,7 @@ const sai_attr_metadata_t sai_neighbor_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_NEIGHBOR, .attrid = SAI_NEIGHBOR_ATTR_DST_MAC_ADDRESS, + .attridname = "SAI_NEIGHBOR_ATTR_DST_MAC_ADDRESS", .serializationtype = SAI_SERIALIZATION_TYPE_MAC, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -15,12 +16,14 @@ const sai_attr_metadata_t sai_neighbor_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_NEIGHBOR, .attrid = SAI_NEIGHBOR_ATTR_PACKET_ACTION, + .attridname = "SAI_NEIGHBOR_ATTR_PACKET_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -29,12 +32,14 @@ const sai_attr_metadata_t sai_neighbor_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_FORWARD }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_NEIGHBOR, .attrid = SAI_NEIGHBOR_ATTR_NO_HOST_ROUTE, + .attridname = "SAI_NEIGHBOR_ATTR_NO_HOST_ROUTE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -43,12 +48,14 @@ const sai_attr_metadata_t sai_neighbor_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_NEIGHBOR, .attrid = SAI_NEIGHBOR_ATTR_META_DATA, + .attridname = "SAI_NEIGHBOR_ATTR_META_DATA", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -57,6 +64,7 @@ const sai_attr_metadata_t sai_neighbor_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO value range is SAI_SWITCH_ATTR_NEIGHBOR_DST_USER_META_DATA_RANGE diff --git a/meta/sai_meta_nexthop.cpp b/meta/sai_meta_nexthop.cpp index da256f3a92ce..2bea1e149315 100644 --- a/meta/sai_meta_nexthop.cpp +++ b/meta/sai_meta_nexthop.cpp @@ -5,15 +5,37 @@ DEFINE_ENUM_VALUES(sai_next_hop_type_t) { SAI_NEXT_HOP_IP, + SAI_NEXT_HOP_MPLS, SAI_NEXT_HOP_TUNNEL_ENCAP, - // SAI_NEXT_HOP_MPLS, // not supported yet }; +const char metadata_sai_next_hop_type_t_enum_name[] = "sai_next_hop_type_t"; +const sai_next_hop_type_t metadata_sai_next_hop_type_t_enum_values[] = { + SAI_NEXT_HOP_IP, + SAI_NEXT_HOP_MPLS, + SAI_NEXT_HOP_TUNNEL_ENCAP, +}; +const char* metadata_sai_next_hop_type_t_enum_values_names[] = { + "SAI_NEXT_HOP_TYPE_IP", + "SAI_NEXT_HOP_TYPE_MPLS", + "SAI_NEXT_HOP_TYPE_TUNNEL_ENCAP", + NULL +}; +const char* metadata_sai_next_hop_type_t_enum_values_short_names[] = { + "IP", + "MPLS", + "TUNNEL_ENCAP", + NULL +}; +const size_t metadata_sai_next_hop_type_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_next_hop_type_t, 3); + const sai_attr_metadata_t sai_nexthop_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_NEXT_HOP, .attrid = SAI_NEXT_HOP_ATTR_TYPE, + .attridname = "SAI_NEXT_HOP_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -22,12 +44,14 @@ const sai_attr_metadata_t sai_nexthop_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_next_hop_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_next_hop_type_t ), + .enummetadata = &metadata_enum_sai_next_hop_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_NEXT_HOP, .attrid = SAI_NEXT_HOP_ATTR_IP, + .attridname = "SAI_NEXT_HOP_ATTR_IP", .serializationtype = SAI_SERIALIZATION_TYPE_IP_ADDRESS, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -36,12 +60,14 @@ const sai_attr_metadata_t sai_nexthop_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_NEXT_HOP_ATTR_TYPE, SAI_NEXT_HOP_IP ) }, }, { .objecttype = SAI_OBJECT_TYPE_NEXT_HOP, .attrid = SAI_NEXT_HOP_ATTR_ROUTER_INTERFACE_ID, + .attridname = "SAI_NEXT_HOP_ATTR_ROUTER_INTERFACE_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_ROUTER_INTERFACE }, @@ -50,12 +76,14 @@ const sai_attr_metadata_t sai_nexthop_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_NEXT_HOP, .attrid = SAI_NEXT_HOP_ATTR_TUNNEL_ID, + .attridname = "SAI_NEXT_HOP_ATTR_TUNNEL_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_TUNNEL }, @@ -64,6 +92,7 @@ const sai_attr_metadata_t sai_nexthop_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_NEXT_HOP_ATTR_TYPE, SAI_NEXT_HOP_TUNNEL_ENCAP ) }, }, }; diff --git a/meta/sai_meta_nexthopgroup.cpp b/meta/sai_meta_nexthopgroup.cpp index f30cad627d38..369e5b1d6510 100644 --- a/meta/sai_meta_nexthopgroup.cpp +++ b/meta/sai_meta_nexthopgroup.cpp @@ -7,11 +7,27 @@ DEFINE_ENUM_VALUES(sai_next_hop_group_type_t) SAI_NEXT_HOP_GROUP_ECMP }; +const char metadata_sai_next_hop_group_type_t_enum_name[] = "sai_next_hop_group_type_t"; +const sai_next_hop_group_type_t metadata_sai_next_hop_group_type_t_enum_values[] = { + SAI_NEXT_HOP_GROUP_ECMP, +}; +const char* metadata_sai_next_hop_group_type_t_enum_values_names[] = { + "SAI_NEXT_HOP_GROUP_TYPE_ECMP", + NULL +}; +const char* metadata_sai_next_hop_group_type_t_enum_values_short_names[] = { + "ECMP", + NULL +}; +const size_t metadata_sai_next_hop_group_type_t_enum_values_count = 1; +DEFINE_ENUM_METADATA(sai_next_hop_group_type_t, 1); + const sai_attr_metadata_t sai_nexthopgroup_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_NEXT_HOP_GROUP, .attrid = SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_COUNT, + .attridname = "SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_COUNT", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -20,12 +36,14 @@ const sai_attr_metadata_t sai_nexthopgroup_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_NEXT_HOP_GROUP, .attrid = SAI_NEXT_HOP_GROUP_ATTR_TYPE, + .attridname = "SAI_NEXT_HOP_GROUP_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -34,12 +52,14 @@ const sai_attr_metadata_t sai_nexthopgroup_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_next_hop_group_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_next_hop_group_type_t ), + .enummetadata = &metadata_enum_sai_next_hop_group_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_NEXT_HOP_GROUP, .attrid = SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_LIST, + .attridname = "SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_NEXT_HOP }, @@ -48,6 +68,7 @@ const sai_attr_metadata_t sai_nexthopgroup_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, }; diff --git a/meta/sai_meta_policer.cpp b/meta/sai_meta_policer.cpp index c2211682d0d7..4c0f69758fa2 100644 --- a/meta/sai_meta_policer.cpp +++ b/meta/sai_meta_policer.cpp @@ -21,11 +21,69 @@ DEFINE_ENUM_VALUES(sai_policer_color_source_t) SAI_POLICER_COLOR_SOURCE_AWARE }; +const char metadata_sai_policer_color_source_t_enum_name[] = "sai_policer_color_source_t"; +const sai_policer_color_source_t metadata_sai_policer_color_source_t_enum_values[] = { + SAI_POLICER_COLOR_SOURCE_BLIND, + SAI_POLICER_COLOR_SOURCE_AWARE, +}; +const char* metadata_sai_policer_color_source_t_enum_values_names[] = { + "SAI_POLICER_COLOR_SOURCE_BLIND", + "SAI_POLICER_COLOR_SOURCE_AWARE", + NULL +}; +const char* metadata_sai_policer_color_source_t_enum_values_short_names[] = { + "BLIND", + "AWARE", + NULL +}; +const size_t metadata_sai_policer_color_source_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_policer_color_source_t, 2); + +const char metadata_sai_policer_mode_t_enum_name[] = "sai_policer_mode_t"; +const sai_policer_mode_t metadata_sai_policer_mode_t_enum_values[] = { + SAI_POLICER_MODE_Sr_TCM, + SAI_POLICER_MODE_Tr_TCM, + SAI_POLICER_MODE_STORM_CONTROL, +}; +const char* metadata_sai_policer_mode_t_enum_values_names[] = { + "SAI_POLICER_MODE_SR_TCM", + "SAI_POLICER_MODE_TR_TCM", + "SAI_POLICER_MODE_STORM_CONTROL", + NULL +}; +const char* metadata_sai_policer_mode_t_enum_values_short_names[] = { + "SR_TCM", + "TR_TCM", + "STORM_CONTROL", + NULL +}; +const size_t metadata_sai_policer_mode_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_policer_mode_t, 3); + +const char metadata_sai_meter_type_t_enum_name[] = "sai_meter_type_t"; +const sai_meter_type_t metadata_sai_meter_type_t_enum_values[] = { + SAI_METER_TYPE_PACKETS, + SAI_METER_TYPE_BYTES, +}; +const char* metadata_sai_meter_type_t_enum_values_names[] = { + "SAI_METER_TYPE_PACKETS", + "SAI_METER_TYPE_BYTES", + NULL +}; +const char* metadata_sai_meter_type_t_enum_values_short_names[] = { + "PACKETS", + "BYTES", + NULL +}; +const size_t metadata_sai_meter_type_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_meter_type_t, 2); + const sai_attr_metadata_t sai_policer_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_POLICER, .attrid = SAI_POLICER_ATTR_METER_TYPE, + .attridname = "SAI_POLICER_ATTR_METER_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -34,12 +92,14 @@ const sai_attr_metadata_t sai_policer_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_meter_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_meter_type_t ), + .enummetadata = &metadata_enum_sai_meter_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_POLICER, .attrid = SAI_POLICER_ATTR_MODE, + .attridname = "SAI_POLICER_ATTR_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -48,12 +108,14 @@ const sai_attr_metadata_t sai_policer_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_policer_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_policer_mode_t ), + .enummetadata = &metadata_enum_sai_policer_mode_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_POLICER, .attrid = SAI_POLICER_ATTR_COLOR_SOURCE, + .attridname = "SAI_POLICER_ATTR_COLOR_SOURCE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -62,12 +124,14 @@ const sai_attr_metadata_t sai_policer_attr_metadata[] = { .defaultvalue = { .s32 = SAI_POLICER_COLOR_SOURCE_AWARE }, .enumtypestr = StringifyEnum ( sai_policer_color_source_t ), .enumallowedvalues = ENUM_VALUES ( sai_policer_color_source_t ), + .enummetadata = &metadata_enum_sai_policer_color_source_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_POLICER, .attrid = SAI_POLICER_ATTR_CBS, + .attridname = "SAI_POLICER_ATTR_CBS", .serializationtype = SAI_SERIALIZATION_TYPE_UINT64, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -76,12 +140,14 @@ const sai_attr_metadata_t sai_policer_attr_metadata[] = { .defaultvalue = { .u64 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_POLICER, .attrid = SAI_POLICER_ATTR_CIR, + .attridname = "SAI_POLICER_ATTR_CIR", .serializationtype = SAI_SERIALIZATION_TYPE_UINT64, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -90,12 +156,14 @@ const sai_attr_metadata_t sai_policer_attr_metadata[] = { .defaultvalue = { .u64 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_POLICER, .attrid = SAI_POLICER_ATTR_PBS, + .attridname = "SAI_POLICER_ATTR_PBS", .serializationtype = SAI_SERIALIZATION_TYPE_UINT64, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -104,12 +172,14 @@ const sai_attr_metadata_t sai_policer_attr_metadata[] = { .defaultvalue = { .u64 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_POLICER, .attrid = SAI_POLICER_ATTR_PIR, + .attridname = "SAI_POLICER_ATTR_PIR", .serializationtype = SAI_SERIALIZATION_TYPE_UINT64, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -118,12 +188,14 @@ const sai_attr_metadata_t sai_policer_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_POLICER_ATTR_METER_TYPE, SAI_POLICER_MODE_Tr_TCM ) }, }, { .objecttype = SAI_OBJECT_TYPE_POLICER, .attrid = SAI_POLICER_ATTR_GREEN_PACKET_ACTION, + .attridname = "SAI_POLICER_ATTR_GREEN_PACKET_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -132,12 +204,14 @@ const sai_attr_metadata_t sai_policer_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_FORWARD }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_POLICER, .attrid = SAI_POLICER_ATTR_YELLOW_PACKET_ACTION, + .attridname = "SAI_POLICER_ATTR_YELLOW_PACKET_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -146,12 +220,14 @@ const sai_attr_metadata_t sai_policer_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_FORWARD }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_POLICER, .attrid = SAI_POLICER_ATTR_RED_PACKET_ACTION, + .attridname = "SAI_POLICER_ATTR_RED_PACKET_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -160,12 +236,14 @@ const sai_attr_metadata_t sai_policer_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_FORWARD }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_POLICER, .attrid = SAI_POLICER_ATTR_ENABLE_COUNTER_LIST, + .attridname = "SAI_POLICER_ATTR_ENABLE_COUNTER_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_INT32_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -174,6 +252,7 @@ const sai_attr_metadata_t sai_policer_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, }; diff --git a/meta/sai_meta_port.cpp b/meta/sai_meta_port.cpp index 33832c5577e1..e1918d10cdac 100644 --- a/meta/sai_meta_port.cpp +++ b/meta/sai_meta_port.cpp @@ -56,6 +56,183 @@ DEFINE_ENUM_VALUES(sai_port_fdb_learning_mode_t) SAI_PORT_LEARN_MODE_CPU_LOG }; +const char metadata_sai_port_internal_loopback_mode_t_enum_name[] = "sai_port_internal_loopback_mode_t"; +const sai_port_internal_loopback_mode_t metadata_sai_port_internal_loopback_mode_t_enum_values[] = { + SAI_PORT_INTERNAL_LOOPBACK_NONE, + SAI_PORT_INTERNAL_LOOPBACK_PHY, + SAI_PORT_INTERNAL_LOOPBACK_MAC, +}; +const char* metadata_sai_port_internal_loopback_mode_t_enum_values_names[] = { + "SAI_PORT_INTERNAL_LOOPBACK_MODE_NONE", + "SAI_PORT_INTERNAL_LOOPBACK_MODE_PHY", + "SAI_PORT_INTERNAL_LOOPBACK_MODE_MAC", + NULL +}; +const char* metadata_sai_port_internal_loopback_mode_t_enum_values_short_names[] = { + "NONE", + "PHY", + "MAC", + NULL +}; +const size_t metadata_sai_port_internal_loopback_mode_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_port_internal_loopback_mode_t, 3); + +const char metadata_sai_port_media_type_t_enum_name[] = "sai_port_media_type_t"; +const sai_port_media_type_t metadata_sai_port_media_type_t_enum_values[] = { + SAI_PORT_MEDIA_TYPE_NOT_PRESENT, + SAI_PORT_MEDIA_TYPE_UNKNONWN, +}; +const char* metadata_sai_port_media_type_t_enum_values_names[] = { + "SAI_PORT_MEDIA_TYPE_NOT_PRESENT", + "SAI_PORT_MEDIA_TYPE_UNKNONWN", + NULL +}; +const char* metadata_sai_port_media_type_t_enum_values_short_names[] = { + "NOT_PRESENT", + "UNKNONWN", + NULL +}; +const size_t metadata_sai_port_media_type_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_port_media_type_t, 2); + +const char metadata_sai_port_breakout_mode_type_t_enum_name[] = "sai_port_breakout_mode_type_t"; +const sai_port_breakout_mode_type_t metadata_sai_port_breakout_mode_type_t_enum_values[] = { + SAI_PORT_BREAKOUT_MODE_1_LANE, + SAI_PORT_BREAKOUT_MODE_2_LANE, + SAI_PORT_BREAKOUT_MODE_4_LANE, + SAI_PORT_BREAKOUT_MODE_MAX, +}; +const char* metadata_sai_port_breakout_mode_type_t_enum_values_names[] = { + "SAI_PORT_BREAKOUT_MODE_TYPE_1_LANE", + "SAI_PORT_BREAKOUT_MODE_TYPE_2_LANE", + "SAI_PORT_BREAKOUT_MODE_TYPE_4_LANE", + "SAI_PORT_BREAKOUT_MODE_TYPE_MAX", + NULL +}; +const char* metadata_sai_port_breakout_mode_type_t_enum_values_short_names[] = { + "1_LANE", + "2_LANE", + "4_LANE", + "MAX", + NULL +}; +const size_t metadata_sai_port_breakout_mode_type_t_enum_values_count = 4; +DEFINE_ENUM_METADATA(sai_port_breakout_mode_type_t, 4); + +const char metadata_sai_port_fdb_learning_mode_t_enum_name[] = "sai_port_fdb_learning_mode_t"; +const sai_port_fdb_learning_mode_t metadata_sai_port_fdb_learning_mode_t_enum_values[] = { + SAI_PORT_LEARN_MODE_DROP, + SAI_PORT_LEARN_MODE_DISABLE, + SAI_PORT_LEARN_MODE_HW, + SAI_PORT_LEARN_MODE_CPU_TRAP, + SAI_PORT_LEARN_MODE_CPU_LOG, +}; +const char* metadata_sai_port_fdb_learning_mode_t_enum_values_names[] = { + "SAI_PORT_FDB_LEARNING_MODE_DROP", + "SAI_PORT_FDB_LEARNING_MODE_DISABLE", + "SAI_PORT_FDB_LEARNING_MODE_HW", + "SAI_PORT_FDB_LEARNING_MODE_CPU_TRAP", + "SAI_PORT_FDB_LEARNING_MODE_CPU_LOG", + NULL +}; +const char* metadata_sai_port_fdb_learning_mode_t_enum_values_short_names[] = { + "DROP", + "DISABLE", + "HW", + "CPU_TRAP", + "CPU_LOG", + NULL +}; +const size_t metadata_sai_port_fdb_learning_mode_t_enum_values_count = 5; +DEFINE_ENUM_METADATA(sai_port_fdb_learning_mode_t, 5); + +const char metadata_sai_port_flow_control_mode_t_enum_name[] = "sai_port_flow_control_mode_t"; +const sai_port_flow_control_mode_t metadata_sai_port_flow_control_mode_t_enum_values[] = { + SAI_PORT_FLOW_CONTROL_DISABLE, + SAI_PORT_FLOW_CONTROL_TX_ONLY, + SAI_PORT_FLOW_CONTROL_RX_ONLY, + SAI_PORT_FLOW_CONTROL_BOTH_ENABLE, +}; +const char* metadata_sai_port_flow_control_mode_t_enum_values_names[] = { + "SAI_PORT_FLOW_CONTROL_MODE_DISABLE", + "SAI_PORT_FLOW_CONTROL_MODE_TX_ONLY", + "SAI_PORT_FLOW_CONTROL_MODE_RX_ONLY", + "SAI_PORT_FLOW_CONTROL_MODE_BOTH_ENABLE", + NULL +}; +const char* metadata_sai_port_flow_control_mode_t_enum_values_short_names[] = { + "DISABLE", + "TX_ONLY", + "RX_ONLY", + "BOTH_ENABLE", + NULL +}; +const size_t metadata_sai_port_flow_control_mode_t_enum_values_count = 4; +DEFINE_ENUM_METADATA(sai_port_flow_control_mode_t, 4); + +const char metadata_sai_port_type_t_enum_name[] = "sai_port_type_t"; +const sai_port_type_t metadata_sai_port_type_t_enum_values[] = { + SAI_PORT_TYPE_LOGICAL, + SAI_PORT_TYPE_CPU, +}; +const char* metadata_sai_port_type_t_enum_values_names[] = { + "SAI_PORT_TYPE_LOGICAL", + "SAI_PORT_TYPE_CPU", + NULL +}; +const char* metadata_sai_port_type_t_enum_values_short_names[] = { + "LOGICAL", + "CPU", + NULL +}; +const size_t metadata_sai_port_type_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_port_type_t, 2); + +const char metadata_sai_port_oper_status_t_enum_name[] = "sai_port_oper_status_t"; +const sai_port_oper_status_t metadata_sai_port_oper_status_t_enum_values[] = { + SAI_PORT_OPER_STATUS_UNKNOWN, + SAI_PORT_OPER_STATUS_UP, + SAI_PORT_OPER_STATUS_DOWN, + SAI_PORT_OPER_STATUS_TESTING, + SAI_PORT_OPER_STATUS_NOT_PRESENT, +}; +const char* metadata_sai_port_oper_status_t_enum_values_names[] = { + "SAI_PORT_OPER_STATUS_UNKNOWN", + "SAI_PORT_OPER_STATUS_UP", + "SAI_PORT_OPER_STATUS_DOWN", + "SAI_PORT_OPER_STATUS_TESTING", + "SAI_PORT_OPER_STATUS_NOT_PRESENT", + NULL +}; +const char* metadata_sai_port_oper_status_t_enum_values_short_names[] = { + "UNKNOWN", + "UP", + "DOWN", + "TESTING", + "NOT_PRESENT", + NULL +}; +const size_t metadata_sai_port_oper_status_t_enum_values_count = 5; +DEFINE_ENUM_METADATA(sai_port_oper_status_t, 5); + +const char metadata_sai_port_event_t_enum_name[] = "sai_port_event_t"; +const sai_port_event_t metadata_sai_port_event_t_enum_values[] = { + SAI_PORT_EVENT_ADD, + SAI_PORT_EVENT_DELETE, +}; +const char* metadata_sai_port_event_t_enum_values_names[] = { + "SAI_PORT_EVENT_ADD", + "SAI_PORT_EVENT_DELETE", + NULL +}; +const char* metadata_sai_port_event_t_enum_values_short_names[] = { + "ADD", + "DELETE", + NULL +}; +const size_t metadata_sai_port_event_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_port_event_t, 2); + const sai_attr_metadata_t sai_port_attr_metadata[] = { // READ-ONLY @@ -63,6 +240,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_TYPE, + .attridname = "SAI_PORT_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -71,12 +249,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_port_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_type_t ), + .enummetadata = &metadata_enum_sai_port_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_OPER_STATUS, + .attridname = "SAI_PORT_ATTR_OPER_STATUS", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -85,6 +265,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_port_oper_status_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_oper_status_t ), + .enummetadata = &metadata_enum_sai_port_oper_status_t, .conditions = { }, // dynamic @@ -93,6 +274,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_SUPPORTED_BREAKOUT_MODE, + .attridname = "SAI_PORT_ATTR_SUPPORTED_BREAKOUT_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -101,12 +283,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_CURRENT_BREAKOUT_MODE, + .attridname = "SAI_PORT_ATTR_CURRENT_BREAKOUT_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -115,6 +299,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_port_breakout_mode_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_breakout_mode_type_t ), + .enummetadata = &metadata_enum_sai_port_breakout_mode_type_t, .conditions = { }, // dynamic @@ -123,6 +308,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_NUMBER_OF_QUEUES, + .attridname = "SAI_PORT_ATTR_QOS_NUMBER_OF_QUEUES", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -131,6 +317,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // dynamic @@ -139,6 +326,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_QUEUE_LIST, + .attridname = "SAI_PORT_ATTR_QOS_QUEUE_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_QUEUE }, @@ -147,6 +335,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // dynamic @@ -155,6 +344,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_NUMBER_OF_SCHEDULER_GROUPS, + .attridname = "SAI_PORT_ATTR_QOS_NUMBER_OF_SCHEDULER_GROUPS", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -163,6 +353,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // dynamic @@ -171,6 +362,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_SCHEDULER_GROUP_LIST, + .attridname = "SAI_PORT_ATTR_QOS_SCHEDULER_GROUP_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_SCHEDULER_GROUP }, @@ -179,6 +371,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // dynamic @@ -187,6 +380,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_SUPPORTED_SPEED, + .attridname = "SAI_PORT_ATTR_SUPPORTED_SPEED", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -195,12 +389,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, /* { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_SUPPORTED_HALF_DUPLEX_SPEED, + .attridname = "SAI_PORT_ATTR_SUPPORTED_HALF_DUPLEX_SPEED", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -209,12 +405,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_SUPPORTED_AUTO_NEG_MODE, + .attridname = "SAI_PORT_ATTR_SUPPORTED_AUTO_NEG_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -223,12 +421,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_SUPPORTED_FLOW_CONTROL, + .attridname = "SAI_PORT_ATTR_SUPPORTED_FLOW_CONTROL", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -237,12 +437,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_port_flow_control_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_flow_control_mode_t ), + .enummetadata = &metadata_enum_sai_port_flow_control_mode_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_SUPPORTED_ASYMMETRIC_PAUSE_MODE, + .attridname = "SAI_PORT_ATTR_SUPPORTED_ASYMMETRIC_PAUSE_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -251,12 +453,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_SUPPORTED_MEDIA_TYPE, + .attridname = "SAI_PORT_ATTR_SUPPORTED_MEDIA_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -265,12 +469,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_port_media_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_media_type_t ), + .enummetadata = &metadata_enum_sai_port_media_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_SUPPORTED_SPEED, + .attridname = "SAI_PORT_ATTR_REMOTE_SUPPORTED_SPEED", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -279,12 +485,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_SUPPORTED_HALF_DUPLEX_SPEED, + .attridname = "SAI_PORT_ATTR_REMOTE_SUPPORTED_HALF_DUPLEX_SPEED", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -293,12 +501,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_SUPPORTED_AUTO_NEG_MODE, + .attridname = "SAI_PORT_ATTR_REMOTE_SUPPORTED_AUTO_NEG_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -307,12 +517,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_SUPPORTED_FLOW_CONTROL, + .attridname = "SAI_PORT_ATTR_REMOTE_SUPPORTED_FLOW_CONTROL", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -321,12 +533,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_port_flow_control_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_flow_control_mode_t ), + .enummetadata = &metadata_enum_sai_port_flow_control_mode_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_SUPPORTED_ASYMMETRIC_PAUSE_MODE, + .attridname = "SAI_PORT_ATTR_REMOTE_SUPPORTED_ASYMMETRIC_PAUSE_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -335,12 +549,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_SUPPORTED_MEDIA_TYPE, + .attridname = "SAI_PORT_ATTR_REMOTE_SUPPORTED_MEDIA_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -349,12 +565,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_port_media_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_media_type_t ), + .enummetadata = &metadata_enum_sai_port_media_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_ADVERTISED_SPEED, + .attridname = "SAI_PORT_ATTR_REMOTE_ADVERTISED_SPEED", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -363,12 +581,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_ADVERTISED_HALF_DUPLEX_SPEED, + .attridname = "SAI_PORT_ATTR_REMOTE_ADVERTISED_HALF_DUPLEX_SPEED", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -377,12 +597,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_ADVERTISED_AUTO_NEG_MODE, + .attridname = "SAI_PORT_ATTR_REMOTE_ADVERTISED_AUTO_NEG_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -391,12 +613,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_ADVERTISED_FLOW_CONTROL, + .attridname = "SAI_PORT_ATTR_REMOTE_ADVERTISED_FLOW_CONTROL", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -405,12 +629,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_port_flow_control_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_flow_control_mode_t ), + .enummetadata = &metadata_enum_sai_port_flow_control_mode_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_ADVERTISED_ASYMMETRIC_PAUSE_MODE, + .attridname = "SAI_PORT_ATTR_REMOTE_ADVERTISED_ASYMMETRIC_PAUSE_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -419,12 +645,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_REMOTE_ADVERTISED_MEDIA_TYPE, + .attridname = "SAI_PORT_ATTR_REMOTE_ADVERTISED_MEDIA_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -433,6 +661,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_port_media_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_media_type_t ), + .enummetadata = &metadata_enum_sai_port_media_type_t, .conditions = { }, }, */ @@ -440,6 +669,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_NUMBER_OF_PRIORITY_GROUPS, + .attridname = "SAI_PORT_ATTR_NUMBER_OF_PRIORITY_GROUPS", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -448,6 +678,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // dynamic @@ -456,6 +687,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_PRIORITY_GROUP_LIST, + .attridname = "SAI_PORT_ATTR_PRIORITY_GROUP_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_PRIORITY_GROUP }, @@ -464,6 +696,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // dynamic @@ -474,6 +707,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_HW_LANE_LIST, + .attridname = "SAI_PORT_ATTR_HW_LANE_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY | SAI_ATTR_FLAGS_KEY, .allowedobjecttypes = { }, @@ -482,12 +716,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_SPEED, + .attridname = "SAI_PORT_ATTR_SPEED", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -496,12 +732,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_FULL_DUPLEX_MODE, + .attridname = "SAI_PORT_ATTR_FULL_DUPLEX_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -510,12 +748,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .booldata = true }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_AUTO_NEG_MODE, + .attridname = "SAI_PORT_ATTR_AUTO_NEG_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -524,12 +764,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_ADMIN_STATE, + .attridname = "SAI_PORT_ATTR_ADMIN_STATE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -538,12 +780,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_MEDIA_TYPE, + .attridname = "SAI_PORT_ATTR_MEDIA_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -552,95 +796,109 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PORT_MEDIA_TYPE_NOT_PRESENT }, .enumtypestr = StringifyEnum ( sai_port_media_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_media_type_t ), + .enummetadata = &metadata_enum_sai_port_media_type_t, .conditions = { }, }, // TODO what is default value ? - - // { - // .objecttype = SAI_OBJECT_TYPE_PORT, - // .attrid = SAI_PORT_ATTR_ADVERTISED_SPEED, - // .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, - // .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, - // .allowedobjecttypes = { }, - // .allownullobjectid = false, - // .defaultvalue = { }, // TODO default - // .enumtypestr = NULL, - // .enumallowedvalues = { }, - // .conditions = { }, - // }, - - // { - // .objecttype = SAI_OBJECT_TYPE_PORT, - // .attrid = SAI_PORT_ATTR_ADVERTISED_HALF_DUPLEX_SPEED, - // .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, - // .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, - // .allowedobjecttypes = { }, - // .allownullobjectid = false, - // .defaultvalue = { }, // TODO default - // .enumtypestr = NULL, - // .enumallowedvalues = { }, - // .conditions = { }, - // }, - - // { - // .objecttype = SAI_OBJECT_TYPE_PORT, - // .attrid = SAI_PORT_ATTR_ADVERTISED_AUTO_NEG_MODE, - // .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, - // .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, - // .allowedobjecttypes = { }, - // .allownullobjectid = false, - // .defaultvalue = { }, // TODO default - // .enumtypestr = NULL, - // .enumallowedvalues = { }, - // .conditions = { }, - // }, - - // { - // .objecttype = SAI_OBJECT_TYPE_PORT, - // .attrid = SAI_PORT_ATTR_ADVERTISED_FLOW_CONTROL, - // .serializationtype = SAI_SERIALIZATION_TYPE_INT32, - // .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, - // .allowedobjecttypes = { }, - // .allownullobjectid = false, - // .defaultvalue = { }, // TODO default - // .enumtypestr = StringifyEnum ( sai_port_flow_control_mode_t ), - // .enumallowedvalues = ENUM_VALUES ( sai_port_flow_control_mode_t ), - // .conditions = { }, - // }, - - // { - // .objecttype = SAI_OBJECT_TYPE_PORT, - // .attrid = SAI_PORT_ATTR_ADVERTISED_ASYMMETRIC_PAUSE_MODE, - // .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, - // .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, - // .allowedobjecttypes = { }, - // .allownullobjectid = false, - // .defaultvalue = { }, // TODO default - // .enumtypestr = NULL, - // .enumallowedvalues = { }, - // .conditions = { }, - // }, - - // { - // .objecttype = SAI_OBJECT_TYPE_PORT, - // .attrid = SAI_PORT_ATTR_ADVERTISED_MEDIA_TYPE, - // .serializationtype = SAI_SERIALIZATION_TYPE_INT32, - // .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, - // .allowedobjecttypes = { }, - // .allownullobjectid = false, - // .defaultvalue = { }, - // .enumtypestr = StringifyEnum ( sai_port_media_type_t ), - // .enumallowedvalues = ENUM_VALUES ( sai_port_media_type_t ), - // .conditions = { }, - // }, - +/* + { + .objecttype = SAI_OBJECT_TYPE_PORT, + .attrid = SAI_PORT_ATTR_ADVERTISED_SPEED, + .nameid = "SAI_PORT_ATTR_ADVERTISED_SPEED", + .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, + .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, + .allowedobjecttypes = { }, + .allownullobjectid = false, + .defaultvalue = { }, // TODO default + .enumtypestr = NULL, + .enumallowedvalues = { }, + .enummetadata = NULL, + .conditions = { }, + }, + + { + .objecttype = SAI_OBJECT_TYPE_PORT, + .attrid = SAI_PORT_ATTR_ADVERTISED_HALF_DUPLEX_SPEED, + .nameid = "SAI_PORT_ATTR_ADVERTISED_HALF_DUPLEX_SPEED", + .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, + .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, + .allowedobjecttypes = { }, + .allownullobjectid = false, + .defaultvalue = { }, // TODO default + .enumtypestr = NULL, + .enumallowedvalues = { }, + .enummetadata = NULL, + .conditions = { }, + }, + + { + .objecttype = SAI_OBJECT_TYPE_PORT, + .attrid = SAI_PORT_ATTR_ADVERTISED_AUTO_NEG_MODE, + .nameid = "SAI_PORT_ATTR_ADVERTISED_AUTO_NEG_MODE", + .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, + .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, + .allowedobjecttypes = { }, + .allownullobjectid = false, + .defaultvalue = { }, // TODO default + .enumtypestr = NULL, + .enumallowedvalues = { }, + .enummetadata = NULL, + .conditions = { }, + }, + + { + .objecttype = SAI_OBJECT_TYPE_PORT, + .attrid = SAI_PORT_ATTR_ADVERTISED_FLOW_CONTROL, + .nameid = "SAI_PORT_ATTR_ADVERTISED_FLOW_CONTROL", + .serializationtype = SAI_SERIALIZATION_TYPE_INT32, + .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, + .allowedobjecttypes = { }, + .allownullobjectid = false, + .defaultvalue = { }, // TODO default + .enumtypestr = StringifyEnum ( sai_port_flow_control_mode_t ), + .enumallowedvalues = ENUM_VALUES ( sai_port_flow_control_mode_t ), + .enummetadata = &metadata_enum_sai_port_flow_control_mode_t, + .conditions = { }, + }, + + { + .objecttype = SAI_OBJECT_TYPE_PORT, + .attrid = SAI_PORT_ATTR_ADVERTISED_ASYMMETRIC_PAUSE_MODE, + .nameid = "SAI_PORT_ATTR_ADVERTISED_ASYMMETRIC_PAUSE_MODE", + .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, + .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, + .allowedobjecttypes = { }, + .allownullobjectid = false, + .defaultvalue = { }, // TODO default + .enumtypestr = NULL, + .enumallowedvalues = { }, + .enummetadata = NULL, + .conditions = { }, + }, + + { + .objecttype = SAI_OBJECT_TYPE_PORT, + .attrid = SAI_PORT_ATTR_ADVERTISED_MEDIA_TYPE, + .nameid = "SAI_PORT_ATTR_ADVERTISED_MEDIA_TYPE", + .serializationtype = SAI_SERIALIZATION_TYPE_INT32, + .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, + .allowedobjecttypes = { }, + .allownullobjectid = false, + .defaultvalue = { }, + .enumtypestr = StringifyEnum ( sai_port_media_type_t ), + .enumallowedvalues = ENUM_VALUES ( sai_port_media_type_t ), + .enummetadata = &metadata_enum_sai_port_media_type_t, + .conditions = { }, + }, +*/ // Continue // TODO this is inconsistent, since we have vlan member, so why this param is read/write? { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_PORT_VLAN_ID, + .attridname = "SAI_PORT_ATTR_PORT_VLAN_ID", .serializationtype = SAI_SERIALIZATION_TYPE_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -649,6 +907,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .u16 = DEFAULT_VLAN_NUMBER }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO extra logic needed to check if vlan exist @@ -657,6 +916,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_DEFAULT_VLAN_PRIORITY, + .attridname = "SAI_PORT_ATTR_DEFAULT_VLAN_PRIORITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -665,12 +925,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .u8 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_INGRESS_FILTERING, + .attridname = "SAI_PORT_ATTR_INGRESS_FILTERING", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -679,12 +941,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_DROP_UNTAGGED, + .attridname = "SAI_PORT_ATTR_DROP_UNTAGGED", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -693,12 +957,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_DROP_TAGGED, + .attridname = "SAI_PORT_ATTR_DROP_TAGGED", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -707,12 +973,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_INTERNAL_LOOPBACK, + .attridname = "SAI_PORT_ATTR_INTERNAL_LOOPBACK", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -721,12 +989,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PORT_INTERNAL_LOOPBACK_NONE }, .enumtypestr = StringifyEnum ( sai_port_internal_loopback_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_internal_loopback_mode_t ), + .enummetadata = &metadata_enum_sai_port_internal_loopback_mode_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_FDB_LEARNING, + .attridname = "SAI_PORT_ATTR_FDB_LEARNING", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -735,12 +1005,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PORT_LEARN_MODE_HW }, .enumtypestr = StringifyEnum ( sai_port_fdb_learning_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_fdb_learning_mode_t ), + .enummetadata = &metadata_enum_sai_port_fdb_learning_mode_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_UPDATE_DSCP, + .attridname = "SAI_PORT_ATTR_UPDATE_DSCP", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -749,12 +1021,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_MTU, + .attridname = "SAI_PORT_ATTR_MTU", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -763,6 +1037,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .u32 = DEFAULT_LAYER2_FRAME_SIZE }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO extra check for range will be needed @@ -771,6 +1046,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_FLOOD_STORM_CONTROL_POLICER_ID, + .attridname = "SAI_PORT_ATTR_FLOOD_STORM_CONTROL_POLICER_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_POLICER }, @@ -779,12 +1055,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, // TODO switch may have default value assigned .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_BROADCAST_STORM_CONTROL_POLICER_ID, + .attridname = "SAI_PORT_ATTR_BROADCAST_STORM_CONTROL_POLICER_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_POLICER }, @@ -793,12 +1071,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, // TODO switch may have default value assigned .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_MULTICAST_STORM_CONTROL_POLICER_ID, + .attridname = "SAI_PORT_ATTR_MULTICAST_STORM_CONTROL_POLICER_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_POLICER }, @@ -807,12 +1087,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, // TODO switch may have default value assigned .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_GLOBAL_FLOW_CONTROL, + .attridname = "SAI_PORT_ATTR_GLOBAL_FLOW_CONTROL", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -821,12 +1103,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PORT_FLOW_CONTROL_DISABLE }, .enumtypestr = StringifyEnum ( sai_port_flow_control_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_port_flow_control_mode_t ), + .enummetadata = &metadata_enum_sai_port_flow_control_mode_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_MAX_LEARNED_ADDRESSES, + .attridname = "SAI_PORT_ATTR_MAX_LEARNED_ADDRESSES", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -835,12 +1119,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_FDB_LEARNING_LIMIT_VIOLATION, + .attridname = "SAI_PORT_ATTR_FDB_LEARNING_LIMIT_VIOLATION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -849,12 +1135,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_DROP }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_INGRESS_MIRROR_SESSION, + .attridname = "SAI_PORT_ATTR_INGRESS_MIRROR_SESSION", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_MIRROR }, @@ -863,12 +1151,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_EGRESS_MIRROR_SESSION, + .attridname = "SAI_PORT_ATTR_EGRESS_MIRROR_SESSION", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_MIRROR }, @@ -877,12 +1167,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE, + .attridname = "SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_SAMPLEPACKET }, @@ -891,12 +1183,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_EGRESS_SAMPLEPACKET_ENABLE, + .attridname = "SAI_PORT_ATTR_EGRESS_SAMPLEPACKET_ENABLE", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_SAMPLEPACKET }, @@ -905,12 +1199,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_POLICER_ID, + .attridname = "SAI_PORT_ATTR_POLICER_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_POLICER }, @@ -919,6 +1215,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, // TODO by default port may have policer assigned ? .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, @@ -927,6 +1224,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_DEFAULT_TC, + .attridname = "SAI_PORT_ATTR_QOS_DEFAULT_TC", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -935,12 +1233,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .u8 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_DOT1P_TO_TC_MAP, + .attridname = "SAI_PORT_ATTR_QOS_DOT1P_TO_TC_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -949,12 +1249,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_DOT1P_TO_COLOR_MAP, + .attridname = "SAI_PORT_ATTR_QOS_DOT1P_TO_COLOR_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -963,12 +1265,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_DSCP_TO_TC_MAP, + .attridname = "SAI_PORT_ATTR_QOS_DSCP_TO_TC_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -977,12 +1281,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_DSCP_TO_COLOR_MAP, + .attridname = "SAI_PORT_ATTR_QOS_DSCP_TO_COLOR_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -991,12 +1297,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_TC_TO_QUEUE_MAP, + .attridname = "SAI_PORT_ATTR_QOS_TC_TO_QUEUE_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1005,12 +1313,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP, + .attridname = "SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1019,12 +1329,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP, + .attridname = "SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1033,12 +1345,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_TC_TO_PRIORITY_GROUP_MAP, + .attridname = "SAI_PORT_ATTR_QOS_TC_TO_PRIORITY_GROUP_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1047,12 +1361,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_PRIORITY_GROUP_MAP, + .attridname = "SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_PRIORITY_GROUP_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1061,12 +1377,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_QUEUE_MAP, + .attridname = "SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_QUEUE_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1075,12 +1393,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_WRED_PROFILE_ID, + .attridname = "SAI_PORT_ATTR_QOS_WRED_PROFILE_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_WRED }, @@ -1089,12 +1409,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_SCHEDULER_PROFILE_ID, + .attridname = "SAI_PORT_ATTR_QOS_SCHEDULER_PROFILE_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_SCHEDULER }, @@ -1103,12 +1425,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, // TODO by default port may have scheduler .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_INGRESS_BUFFER_PROFILE_LIST, + .attridname = "SAI_PORT_ATTR_QOS_INGRESS_BUFFER_PROFILE_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_BUFFER_PROFILE }, @@ -1117,12 +1441,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, // TODO by default port may have ingress buffer profile .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_QOS_EGRESS_BUFFER_PROFILE_LIST, + .attridname = "SAI_PORT_ATTR_QOS_EGRESS_BUFFER_PROFILE_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_BUFFER_PROFILE }, @@ -1131,12 +1457,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, // TODO by default port may have egress buffer profile .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL, + .attridname = "SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1145,12 +1473,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .u8 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_META_DATA, + .attridname = "SAI_PORT_ATTR_META_DATA", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1159,12 +1489,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, /*{ .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_EGRESS_BLOCK_PORT_LIST, + .attridname = "SAI_PORT_ATTR_EGRESS_BLOCK_PORT_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_BUFFER_PROFILE }, @@ -1173,12 +1505,14 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_PORT, .attrid = SAI_PORT_ATTR_HW_PROFILE_ID, + .attridname = "SAI_PORT_ATTR_HW_PROFILE_ID", .serializationtype = SAI_SERIALIZATION_TYPE_UINT64, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1187,6 +1521,7 @@ const sai_attr_metadata_t sai_port_attr_metadata[] = { .defaultvalue = { .u64 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, },*/ }; diff --git a/meta/sai_meta_qosmaps.cpp b/meta/sai_meta_qosmaps.cpp index d6d7ac83e99c..71152afe213e 100644 --- a/meta/sai_meta_qosmaps.cpp +++ b/meta/sai_meta_qosmaps.cpp @@ -16,11 +16,54 @@ DEFINE_ENUM_VALUES(sai_qos_map_type_t) SAI_QOS_MAP_PFC_PRIORITY_TO_QUEUE }; +const char metadata_sai_qos_map_type_t_enum_name[] = "sai_qos_map_type_t"; +const sai_qos_map_type_t metadata_sai_qos_map_type_t_enum_values[] = { + SAI_QOS_MAP_DOT1P_TO_TC, + SAI_QOS_MAP_DOT1P_TO_COLOR, + SAI_QOS_MAP_DSCP_TO_TC, + SAI_QOS_MAP_DSCP_TO_COLOR, + SAI_QOS_MAP_TC_TO_QUEUE, + SAI_QOS_MAP_TC_AND_COLOR_TO_DSCP, + SAI_QOS_MAP_TC_AND_COLOR_TO_DOT1P, + SAI_QOS_MAP_TC_TO_PRIORITY_GROUP, + SAI_QOS_MAP_PFC_PRIORITY_TO_PRIORITY_GROUP, + SAI_QOS_MAP_PFC_PRIORITY_TO_QUEUE, +}; +const char* metadata_sai_qos_map_type_t_enum_values_names[] = { + "SAI_QOS_MAP_TYPE_DOT1P_TO_TC", + "SAI_QOS_MAP_TYPE_DOT1P_TO_COLOR", + "SAI_QOS_MAP_TYPE_DSCP_TO_TC", + "SAI_QOS_MAP_TYPE_DSCP_TO_COLOR", + "SAI_QOS_MAP_TYPE_TC_TO_QUEUE", + "SAI_QOS_MAP_TYPE_TC_AND_COLOR_TO_DSCP", + "SAI_QOS_MAP_TYPE_TC_AND_COLOR_TO_DOT1P", + "SAI_QOS_MAP_TYPE_TC_TO_PRIORITY_GROUP", + "SAI_QOS_MAP_TYPE_PFC_PRIORITY_TO_PRIORITY_GROUP", + "SAI_QOS_MAP_TYPE_PFC_PRIORITY_TO_QUEUE", + NULL +}; +const char* metadata_sai_qos_map_type_t_enum_values_short_names[] = { + "DOT1P_TO_TC", + "DOT1P_TO_COLOR", + "DSCP_TO_TC", + "DSCP_TO_COLOR", + "TC_TO_QUEUE", + "TC_AND_COLOR_TO_DSCP", + "TC_AND_COLOR_TO_DOT1P", + "TC_TO_PRIORITY_GROUP", + "PFC_PRIORITY_TO_PRIORITY_GROUP", + "PFC_PRIORITY_TO_QUEUE", + NULL +}; +const size_t metadata_sai_qos_map_type_t_enum_values_count = 10; +DEFINE_ENUM_METADATA(sai_qos_map_type_t, 10); + const sai_attr_metadata_t sai_qos_maps_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_QOS_MAPS, .attrid = SAI_QOS_MAP_ATTR_TYPE, + .attridname = "SAI_QOS_MAP_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -29,12 +72,14 @@ const sai_attr_metadata_t sai_qos_maps_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_qos_map_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_qos_map_type_t ), + .enummetadata = &metadata_enum_sai_qos_map_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_QOS_MAPS, .attrid = SAI_QOS_MAP_ATTR_MAP_TO_VALUE_LIST, + .attridname = "SAI_QOS_MAP_ATTR_MAP_TO_VALUE_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_QOS_MAP_LIST, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -43,6 +88,7 @@ const sai_attr_metadata_t sai_qos_maps_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO all defaults? what means all? diff --git a/meta/sai_meta_queue.cpp b/meta/sai_meta_queue.cpp index bd93e2eaa90a..db3c131ccb0b 100644 --- a/meta/sai_meta_queue.cpp +++ b/meta/sai_meta_queue.cpp @@ -13,11 +13,33 @@ DEFINE_ENUM_VALUES(sai_queue_type_t) SAI_QUEUE_TYPE_MULTICAST }; +const char metadata_sai_queue_type_t_enum_name[] = "sai_queue_type_t"; +const sai_queue_type_t metadata_sai_queue_type_t_enum_values[] = { + SAI_QUEUE_TYPE_ALL, + SAI_QUEUE_TYPE_UNICAST, + SAI_QUEUE_TYPE_MULTICAST, +}; +const char* metadata_sai_queue_type_t_enum_values_names[] = { + "SAI_QUEUE_TYPE_ALL", + "SAI_QUEUE_TYPE_UNICAST", + "SAI_QUEUE_TYPE_MULTICAST", + NULL +}; +const char* metadata_sai_queue_type_t_enum_values_short_names[] = { + "ALL", + "UNICAST", + "MULTICAST", + NULL +}; +const size_t metadata_sai_queue_type_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_queue_type_t, 3); + const sai_attr_metadata_t sai_queue_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_QUEUE, .attrid = SAI_QUEUE_ATTR_TYPE, + .attridname = "SAI_QUEUE_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY | SAI_ATTR_FLAGS_KEY, .allowedobjecttypes = { }, @@ -26,12 +48,14 @@ const sai_attr_metadata_t sai_queue_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_queue_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_queue_type_t ), + .enummetadata = &metadata_enum_sai_queue_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_QUEUE, .attrid = SAI_QUEUE_ATTR_INDEX, + .attridname = "SAI_QUEUE_ATTR_INDEX", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY | SAI_ATTR_FLAGS_KEY, .allowedobjecttypes = { }, @@ -40,6 +64,7 @@ const sai_attr_metadata_t sai_queue_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, @@ -49,6 +74,7 @@ const sai_attr_metadata_t sai_queue_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_QUEUE, .attrid = SAI_QUEUE_ATTR_WRED_PROFILE_ID, + .attridname = "SAI_QUEUE_ATTR_WRED_PROFILE_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_WRED }, @@ -57,12 +83,14 @@ const sai_attr_metadata_t sai_queue_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, // there may be default wred .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_QUEUE, .attrid = SAI_QUEUE_ATTR_BUFFER_PROFILE_ID, + .attridname = "SAI_QUEUE_ATTR_BUFFER_PROFILE_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_BUFFER_PROFILE }, @@ -71,12 +99,14 @@ const sai_attr_metadata_t sai_queue_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, // there may be default wred .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_QUEUE, .attrid = SAI_QUEUE_ATTR_SCHEDULER_PROFILE_ID, + .attridname = "SAI_QUEUE_ATTR_SCHEDULER_PROFILE_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_SCHEDULER }, @@ -85,6 +115,7 @@ const sai_attr_metadata_t sai_queue_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, // there may be default wred .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, }; diff --git a/meta/sai_meta_route.cpp b/meta/sai_meta_route.cpp index 819e57dd9d14..c7f979d909d7 100644 --- a/meta/sai_meta_route.cpp +++ b/meta/sai_meta_route.cpp @@ -7,6 +7,7 @@ const sai_attr_metadata_t sai_route_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ROUTE, .attrid = SAI_ROUTE_ATTR_PACKET_ACTION, + .attridname = "SAI_ROUTE_ATTR_PACKET_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -15,12 +16,14 @@ const sai_attr_metadata_t sai_route_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_FORWARD }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ROUTE, .attrid = SAI_ROUTE_ATTR_TRAP_PRIORITY, + .attridname = "SAI_ROUTE_ATTR_TRAP_PRIORITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -29,12 +32,14 @@ const sai_attr_metadata_t sai_route_attr_metadata[] = { .defaultvalue = { .u8 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ROUTE, .attrid = SAI_ROUTE_ATTR_NEXT_HOP_ID, + .attridname = "SAI_ROUTE_ATTR_NEXT_HOP_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_NEXT_HOP, SAI_OBJECT_TYPE_NEXT_HOP_GROUP, SAI_OBJECT_TYPE_ROUTER_INTERFACE, SAI_OBJECT_TYPE_PORT }, @@ -43,6 +48,7 @@ const sai_attr_metadata_t sai_route_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO may require some extra logic for CPU port @@ -51,6 +57,7 @@ const sai_attr_metadata_t sai_route_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ROUTE, .attrid = SAI_ROUTE_ATTR_META_DATA, + .attridname = "SAI_ROUTE_ATTR_META_DATA", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -59,6 +66,7 @@ const sai_attr_metadata_t sai_route_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO range in SAI_SWITCH_ATTR_ROUTE_USER_META_DATA_RANGE diff --git a/meta/sai_meta_router.cpp b/meta/sai_meta_router.cpp index 4d18d6e7bc44..9756b13cb47a 100644 --- a/meta/sai_meta_router.cpp +++ b/meta/sai_meta_router.cpp @@ -7,6 +7,7 @@ const sai_attr_metadata_t sai_router_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_VIRTUAL_ROUTER, .attrid = SAI_VIRTUAL_ROUTER_ATTR_ADMIN_V4_STATE, + .attridname = "SAI_VIRTUAL_ROUTER_ATTR_ADMIN_V4_STATE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -15,12 +16,14 @@ const sai_attr_metadata_t sai_router_attr_metadata[] = { .defaultvalue = { .booldata = true }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_VIRTUAL_ROUTER, .attrid = SAI_VIRTUAL_ROUTER_ATTR_ADMIN_V6_STATE, + .attridname = "SAI_VIRTUAL_ROUTER_ATTR_ADMIN_V6_STATE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -29,12 +32,14 @@ const sai_attr_metadata_t sai_router_attr_metadata[] = { .defaultvalue = { .booldata = true }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_VIRTUAL_ROUTER, .attrid = SAI_VIRTUAL_ROUTER_ATTR_SRC_MAC_ADDRESS, + .attridname = "SAI_VIRTUAL_ROUTER_ATTR_SRC_MAC_ADDRESS", .serializationtype = SAI_SERIALIZATION_TYPE_MAC, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -43,6 +48,7 @@ const sai_attr_metadata_t sai_router_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO equal to the SAI_SWITCH_ATTR_SRC_MAC_ADDRESS by default @@ -54,6 +60,7 @@ const sai_attr_metadata_t sai_router_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_VIRTUAL_ROUTER, .attrid = SAI_VIRTUAL_ROUTER_ATTR_VIOLATION_TTL1_ACTION, + .attridname = "SAI_VIRTUAL_ROUTER_ATTR_VIOLATION_TTL1_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -62,12 +69,14 @@ const sai_attr_metadata_t sai_router_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_TRAP }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_VIRTUAL_ROUTER, .attrid = SAI_VIRTUAL_ROUTER_ATTR_VIOLATION_IP_OPTIONS, + .attridname = "SAI_VIRTUAL_ROUTER_ATTR_VIOLATION_IP_OPTIONS", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -76,6 +85,7 @@ const sai_attr_metadata_t sai_router_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_TRAP }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, }; diff --git a/meta/sai_meta_routerintf.cpp b/meta/sai_meta_routerintf.cpp index 40adaaae7d96..d2ce121b35bb 100644 --- a/meta/sai_meta_routerintf.cpp +++ b/meta/sai_meta_routerintf.cpp @@ -9,11 +9,33 @@ DEFINE_ENUM_VALUES(sai_router_interface_type_t) SAI_ROUTER_INTERFACE_TYPE_LOOPBACK }; +const char metadata_sai_router_interface_type_t_enum_name[] = "sai_router_interface_type_t"; +const sai_router_interface_type_t metadata_sai_router_interface_type_t_enum_values[] = { + SAI_ROUTER_INTERFACE_TYPE_PORT, + SAI_ROUTER_INTERFACE_TYPE_VLAN, + SAI_ROUTER_INTERFACE_TYPE_LOOPBACK, +}; +const char* metadata_sai_router_interface_type_t_enum_values_names[] = { + "SAI_ROUTER_INTERFACE_TYPE_PORT", + "SAI_ROUTER_INTERFACE_TYPE_VLAN", + "SAI_ROUTER_INTERFACE_TYPE_LOOPBACK", + NULL +}; +const char* metadata_sai_router_interface_type_t_enum_values_short_names[] = { + "PORT", + "VLAN", + "LOOPBACK", + NULL +}; +const size_t metadata_sai_router_interface_type_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_router_interface_type_t, 3); + const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ROUTER_INTERFACE, .attrid = SAI_ROUTER_INTERFACE_ATTR_VIRTUAL_ROUTER_ID, + .attridname = "SAI_ROUTER_INTERFACE_ATTR_VIRTUAL_ROUTER_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_VIRTUAL_ROUTER }, @@ -22,12 +44,14 @@ const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ROUTER_INTERFACE, .attrid = SAI_ROUTER_INTERFACE_ATTR_TYPE, + .attridname = "SAI_ROUTER_INTERFACE_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -36,12 +60,14 @@ const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_router_interface_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_router_interface_type_t ), + .enummetadata = &metadata_enum_sai_router_interface_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_ROUTER_INTERFACE, .attrid = SAI_ROUTER_INTERFACE_ATTR_PORT_ID, + .attridname = "SAI_ROUTER_INTERFACE_ATTR_PORT_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT, SAI_OBJECT_TYPE_LAG }, @@ -50,12 +76,14 @@ const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_ROUTER_INTERFACE_ATTR_TYPE, SAI_ROUTER_INTERFACE_TYPE_PORT ) }, }, { .objecttype = SAI_OBJECT_TYPE_ROUTER_INTERFACE, .attrid = SAI_ROUTER_INTERFACE_ATTR_VLAN_ID, + .attridname = "SAI_ROUTER_INTERFACE_ATTR_VLAN_ID", .serializationtype = SAI_SERIALIZATION_TYPE_UINT16, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -64,6 +92,7 @@ const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_ROUTER_INTERFACE_ATTR_TYPE, SAI_ROUTER_INTERFACE_TYPE_VLAN ) }, // TODO extra check needed if vlan existsm and increase reference then @@ -72,6 +101,7 @@ const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ROUTER_INTERFACE, .attrid = SAI_ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS, + .attridname = "SAI_ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS", .serializationtype = SAI_SERIALIZATION_TYPE_MAC, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -80,6 +110,7 @@ const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { } // TODO equal to the SAI_SWITCH_ATTR_SRC_MAC_ADDRESS by default @@ -94,6 +125,7 @@ const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_ROUTER_INTERFACE, .attrid = SAI_ROUTER_INTERFACE_ATTR_ADMIN_V4_STATE, + .attridname = "SAI_ROUTER_INTERFACE_ATTR_ADMIN_V4_STATE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -102,12 +134,14 @@ const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { .defaultvalue = { .booldata = true }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { } }, { .objecttype = SAI_OBJECT_TYPE_ROUTER_INTERFACE, .attrid = SAI_ROUTER_INTERFACE_ATTR_ADMIN_V6_STATE, + .attridname = "SAI_ROUTER_INTERFACE_ATTR_ADMIN_V6_STATE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -116,12 +150,14 @@ const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { .defaultvalue = { .booldata = true }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { } }, { .objecttype = SAI_OBJECT_TYPE_ROUTER_INTERFACE, .attrid = SAI_ROUTER_INTERFACE_ATTR_MTU, + .attridname = "SAI_ROUTER_INTERFACE_ATTR_MTU", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -130,12 +166,14 @@ const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { .defaultvalue = { .u32 = DEFAULT_LAYER2_FRAME_SIZE }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { } }, { .objecttype = SAI_OBJECT_TYPE_ROUTER_INTERFACE, .attrid = SAI_ROUTER_INTERFACE_ATTR_NEIGHBOR_MISS_PACKET_ACTION, + .attridname = "SAI_ROUTER_INTERFACE_ATTR_NEIGHBOR_MISS_PACKET_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -144,6 +182,7 @@ const sai_attr_metadata_t sai_routerintf_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_TRAP }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { } }, }; diff --git a/meta/sai_meta_samplepacket.cpp b/meta/sai_meta_samplepacket.cpp index 75faea05c2da..24cbc5508caf 100644 --- a/meta/sai_meta_samplepacket.cpp +++ b/meta/sai_meta_samplepacket.cpp @@ -13,11 +13,27 @@ DEFINE_ENUM_VALUES(sai_samplepacket_mode_t) //SAI_SAMPLEPACKET_MODE_SHARED }; +const char metadata_sai_samplepacket_type_t_enum_name[] = "sai_samplepacket_type_t"; +const sai_samplepacket_type_t metadata_sai_samplepacket_type_t_enum_values[] = { + SAI_SAMPLEPACKET_SLOW_PATH, +}; +const char* metadata_sai_samplepacket_type_t_enum_values_names[] = { + "SAI_SAMPLEPACKET_TYPE_SLOW_PATH", + NULL +}; +const char* metadata_sai_samplepacket_type_t_enum_values_short_names[] = { + "SLOW_PATH", + NULL +}; +const size_t metadata_sai_samplepacket_type_t_enum_values_count = 1; +DEFINE_ENUM_METADATA(sai_samplepacket_type_t, 1); + const sai_attr_metadata_t sai_samplepacket_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SAMPLEPACKET, .attrid = SAI_SAMPLEPACKET_ATTR_SAMPLE_RATE, + .attridname = "SAI_SAMPLEPACKET_ATTR_SAMPLE_RATE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -26,12 +42,14 @@ const sai_attr_metadata_t sai_samplepacket_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SAMPLEPACKET, .attrid = SAI_SAMPLEPACKET_ATTR_TYPE, + .attridname = "SAI_SAMPLEPACKET_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -40,12 +58,14 @@ const sai_attr_metadata_t sai_samplepacket_attr_metadata[] = { .defaultvalue = { .s32 = SAI_SAMPLEPACKET_SLOW_PATH }, .enumtypestr = StringifyEnum ( sai_samplepacket_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_samplepacket_type_t ), + .enummetadata = &metadata_enum_sai_samplepacket_type_t, .conditions = { }, }, /*{ .objecttype = SAI_OBJECT_TYPE_SAMPLEPACKET, .attrid = SAI_SAMPLEPACKET_ATTR_MODE, + .attridname = "SAI_SAMPLEPACKET_ATTR_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -54,6 +74,7 @@ const sai_attr_metadata_t sai_samplepacket_attr_metadata[] = { .defaultvalue = { .s32 = SAI_SAMPLEPACKET_MODE_EXCLUSIVE }, .enumtypestr = StringifyEnum ( sai_samplepacket_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_samplepacket_mode_t ), + .enummetadata = &metadata_enum_sai_samplepacket_mode_t, .conditions = { }, },*/ }; diff --git a/meta/sai_meta_sanity.cpp b/meta/sai_meta_sanity.cpp index c7c596f85b02..5d31d52c257f 100644 --- a/meta/sai_meta_sanity.cpp +++ b/meta/sai_meta_sanity.cpp @@ -1,5 +1,149 @@ -#include "sai_meta.h" #include +#include "sai_meta.h" + +const char metadata_sai_object_type_t_enum_name[] = "sai_object_type_t"; +const sai_object_type_t metadata_sai_object_type_t_enum_values[] = { + SAI_OBJECT_TYPE_NULL, + SAI_OBJECT_TYPE_PORT, + SAI_OBJECT_TYPE_LAG, + SAI_OBJECT_TYPE_VIRTUAL_ROUTER, + SAI_OBJECT_TYPE_NEXT_HOP, + SAI_OBJECT_TYPE_NEXT_HOP_GROUP, + SAI_OBJECT_TYPE_ROUTER_INTERFACE, + SAI_OBJECT_TYPE_ACL_TABLE, + SAI_OBJECT_TYPE_ACL_ENTRY, + SAI_OBJECT_TYPE_ACL_COUNTER, + SAI_OBJECT_TYPE_ACL_RANGE, + SAI_OBJECT_TYPE_HOST_INTERFACE, + SAI_OBJECT_TYPE_MIRROR, + SAI_OBJECT_TYPE_SAMPLEPACKET, + SAI_OBJECT_TYPE_STP_INSTANCE, + SAI_OBJECT_TYPE_TRAP_GROUP, + SAI_OBJECT_TYPE_ACL_TABLE_GROUP, + SAI_OBJECT_TYPE_POLICER, + SAI_OBJECT_TYPE_WRED, + SAI_OBJECT_TYPE_QOS_MAPS, + SAI_OBJECT_TYPE_QUEUE, + SAI_OBJECT_TYPE_SCHEDULER, + SAI_OBJECT_TYPE_SCHEDULER_GROUP, + SAI_OBJECT_TYPE_BUFFER_POOL, + SAI_OBJECT_TYPE_BUFFER_PROFILE, + SAI_OBJECT_TYPE_PRIORITY_GROUP, + SAI_OBJECT_TYPE_LAG_MEMBER, + SAI_OBJECT_TYPE_HASH, + SAI_OBJECT_TYPE_UDF, + SAI_OBJECT_TYPE_UDF_MATCH, + SAI_OBJECT_TYPE_UDF_GROUP, + SAI_OBJECT_TYPE_FDB, + SAI_OBJECT_TYPE_SWITCH, + SAI_OBJECT_TYPE_TRAP, + SAI_OBJECT_TYPE_TRAP_USER_DEF, + SAI_OBJECT_TYPE_NEIGHBOR, + SAI_OBJECT_TYPE_ROUTE, + SAI_OBJECT_TYPE_VLAN, + SAI_OBJECT_TYPE_VLAN_MEMBER, + SAI_OBJECT_TYPE_PACKET, + SAI_OBJECT_TYPE_TUNNEL_MAP, + SAI_OBJECT_TYPE_TUNNEL, + SAI_OBJECT_TYPE_TUNNEL_TABLE_ENTRY, + SAI_OBJECT_TYPE_MAX, +}; +const char* metadata_sai_object_type_t_enum_values_names[] = { + "SAI_OBJECT_TYPE_NULL", + "SAI_OBJECT_TYPE_PORT", + "SAI_OBJECT_TYPE_LAG", + "SAI_OBJECT_TYPE_VIRTUAL_ROUTER", + "SAI_OBJECT_TYPE_NEXT_HOP", + "SAI_OBJECT_TYPE_NEXT_HOP_GROUP", + "SAI_OBJECT_TYPE_ROUTER_INTERFACE", + "SAI_OBJECT_TYPE_ACL_TABLE", + "SAI_OBJECT_TYPE_ACL_ENTRY", + "SAI_OBJECT_TYPE_ACL_COUNTER", + "SAI_OBJECT_TYPE_ACL_RANGE", + "SAI_OBJECT_TYPE_HOSTIF", + "SAI_OBJECT_TYPE_MIRROR_SESSION", + "SAI_OBJECT_TYPE_SAMPLEPACKET", + "SAI_OBJECT_TYPE_STP", + "SAI_OBJECT_TYPE_HOSTIF_TRAP_GROUP", + "SAI_OBJECT_TYPE_ACL_TABLE_GROUP", + "SAI_OBJECT_TYPE_POLICER", + "SAI_OBJECT_TYPE_WRED", + "SAI_OBJECT_TYPE_QOS_MAP", + "SAI_OBJECT_TYPE_QUEUE", + "SAI_OBJECT_TYPE_SCHEDULER", + "SAI_OBJECT_TYPE_SCHEDULER_GROUP", + "SAI_OBJECT_TYPE_BUFFER_POOL", + "SAI_OBJECT_TYPE_BUFFER_PROFILE", + "SAI_OBJECT_TYPE_INGRESS_PRIORITY_GROUP", + "SAI_OBJECT_TYPE_LAG_MEMBER", + "SAI_OBJECT_TYPE_HASH", + "SAI_OBJECT_TYPE_UDF", + "SAI_OBJECT_TYPE_UDF_MATCH", + "SAI_OBJECT_TYPE_UDF_GROUP", + "SAI_OBJECT_TYPE_FDB_ENTRY", + "SAI_OBJECT_TYPE_SWITCH", + "SAI_OBJECT_TYPE_HOSTIF_TRAP", + "SAI_OBJECT_TYPE_HOSTIF_USER_DEFINED_TRAP", + "SAI_OBJECT_TYPE_NEIGHBOR_ENTRY", + "SAI_OBJECT_TYPE_ROUTE_ENTRY", + "SAI_OBJECT_TYPE_VLAN", + "SAI_OBJECT_TYPE_VLAN_MEMBER", + "SAI_OBJECT_TYPE_HOSTIF_PACKET", + "SAI_OBJECT_TYPE_TUNNEL_MAP", + "SAI_OBJECT_TYPE_TUNNEL", + "SAI_OBJECT_TYPE_TUNNEL_TERM_TABLE_ENTRY", + "SAI_OBJECT_TYPE_MAX", + NULL +}; +const char* metadata_sai_object_type_t_enum_values_short_names[] = { + "NULL", + "PORT", + "LAG", + "VIRTUAL_ROUTER", + "NEXT_HOP", + "NEXT_HOP_GROUP", + "ROUTER_INTERFACE", + "ACL_TABLE", + "ACL_ENTRY", + "ACL_COUNTER", + "ACL_RANGE", + "HOSTIF", + "MIRROR_SESSION", + "SAMPLEPACKET", + "STP", + "HOSTIF_TRAP_GROUP", + "ACL_TABLE_GROUP", + "POLICER", + "WRED", + "QOS_MAP", + "QUEUE", + "SCHEDULER", + "SCHEDULER_GROUP", + "BUFFER_POOL", + "BUFFER_PROFILE", + "INGRESS_PRIORITY_GROUP", + "LAG_MEMBER", + "HASH", + "UDF", + "UDF_MATCH", + "UDF_GROUP", + "FDB_ENTRY", + "SWITCH", + "HOSTIF_TRAP", + "HOSTIF_USER_DEFINED_TRAP", + "NEIGHBOR_ENTRY", + "ROUTE_ENTRY", + "VLAN", + "VLAN_MEMBER", + "HOSTIF_PACKET", + "TUNNEL_MAP", + "TUNNEL", + "TUNNEL_TERM_TABLE_ENTRY", + "MAX", + NULL +}; +const size_t metadata_sai_object_type_t_enum_values_count = 44; +DEFINE_ENUM_METADATA(sai_object_type_t, 44); // TODO needs to be moved to SAI @@ -1015,6 +1159,14 @@ void metadata_sanity_check(const sai_attr_metadata_t& md) META_LOG_THROW(md, "is not marked enum but has defined enum allowed values"); } + if (md.isenum() || md.isenumlist()) + { + if (md.enummetadata == NULL) + { + META_LOG_THROW(md, "attribute is enum but no metadata specified"); + } + } + if (requiredefault && md.isenum()) { int32_t enumdefault = md.defaultvalue.s32; diff --git a/meta/sai_meta_scheduler.cpp b/meta/sai_meta_scheduler.cpp index 7ab37bb7d166..edaa642fe24a 100644 --- a/meta/sai_meta_scheduler.cpp +++ b/meta/sai_meta_scheduler.cpp @@ -9,11 +9,33 @@ DEFINE_ENUM_VALUES(sai_scheduling_type_t) SAI_SCHEDULING_DWRR }; +const char metadata_sai_scheduling_type_t_enum_name[] = "sai_scheduling_type_t"; +const sai_scheduling_type_t metadata_sai_scheduling_type_t_enum_values[] = { + SAI_SCHEDULING_STRICT, + SAI_SCHEDULING_WRR, + SAI_SCHEDULING_DWRR, +}; +const char* metadata_sai_scheduling_type_t_enum_values_names[] = { + "SAI_SCHEDULING_TYPE_STRICT", + "SAI_SCHEDULING_TYPE_WRR", + "SAI_SCHEDULING_TYPE_DWRR", + NULL +}; +const char* metadata_sai_scheduling_type_t_enum_values_short_names[] = { + "STRICT", + "WRR", + "DWRR", + NULL +}; +const size_t metadata_sai_scheduling_type_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_scheduling_type_t, 3); + const sai_attr_metadata_t sai_scheduler_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SCHEDULER, .attrid = SAI_SCHEDULER_ATTR_SCHEDULING_ALGORITHM, + .attridname = "SAI_SCHEDULER_ATTR_SCHEDULING_ALGORITHM", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -22,12 +44,14 @@ const sai_attr_metadata_t sai_scheduler_attr_metadata[] = { .defaultvalue = { .s32 = SAI_SCHEDULING_WRR }, .enumtypestr = StringifyEnum ( sai_scheduling_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_scheduling_type_t ), + .enummetadata = &metadata_enum_sai_scheduling_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SCHEDULER, .attrid = SAI_SCHEDULER_ATTR_SCHEDULING_WEIGHT, + .attridname = "SAI_SCHEDULER_ATTR_SCHEDULING_WEIGHT", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -36,6 +60,7 @@ const sai_attr_metadata_t sai_scheduler_attr_metadata[] = { .defaultvalue = { .u8 = 1 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO valid only when SAI_SCHEDULER_ATTR_SCHEDULING_ALGORITHM = SAI_SCHEDULING_DWRR @@ -45,6 +70,7 @@ const sai_attr_metadata_t sai_scheduler_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SCHEDULER, .attrid = SAI_SCHEDULER_ATTR_SHAPER_TYPE, + .attridname = "SAI_SCHEDULER_ATTR_SHAPER_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -53,12 +79,14 @@ const sai_attr_metadata_t sai_scheduler_attr_metadata[] = { .defaultvalue = { .s32 = SAI_METER_TYPE_BYTES }, .enumtypestr = StringifyEnum ( sai_meter_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_meter_type_t ), + .enummetadata = &metadata_enum_sai_meter_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SCHEDULER, .attrid = SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_RATE, + .attridname = "SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_RATE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT64, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -67,12 +95,14 @@ const sai_attr_metadata_t sai_scheduler_attr_metadata[] = { .defaultvalue = { .u64 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SCHEDULER, .attrid = SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_BURST_RATE, + .attridname = "SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_BURST_RATE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT64, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -81,12 +111,14 @@ const sai_attr_metadata_t sai_scheduler_attr_metadata[] = { .defaultvalue = { .u64 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SCHEDULER, .attrid = SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_RATE, + .attridname = "SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_RATE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT64, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -95,12 +127,14 @@ const sai_attr_metadata_t sai_scheduler_attr_metadata[] = { .defaultvalue = { .u64 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SCHEDULER, .attrid = SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_BURST_RATE, + .attridname = "SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_BURST_RATE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT64, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -109,6 +143,7 @@ const sai_attr_metadata_t sai_scheduler_attr_metadata[] = { .defaultvalue = { .u64 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, }; diff --git a/meta/sai_meta_schedulergroup.cpp b/meta/sai_meta_schedulergroup.cpp index 2d727e83c733..6665ef2385bc 100644 --- a/meta/sai_meta_schedulergroup.cpp +++ b/meta/sai_meta_schedulergroup.cpp @@ -7,6 +7,7 @@ const sai_attr_metadata_t sai_scheduler_group_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SCHEDULER_GROUP, .attrid = SAI_SCHEDULER_GROUP_ATTR_CHILD_COUNT, + .attridname = "SAI_SCHEDULER_GROUP_ATTR_CHILD_COUNT", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -15,20 +16,23 @@ const sai_attr_metadata_t sai_scheduler_group_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SCHEDULER_GROUP, .attrid = SAI_SCHEDULER_GROUP_ATTR_CHILD_LIST, + .attridname = "SAI_SCHEDULER_GROUP_ATTR_CHILD_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, - .allowedobjecttypes = { SAI_OBJECT_TYPE_SCHEDULER_GROUP, SAI_OBJECT_TYPE_QUEUE }, + .allowedobjecttypes = { SAI_OBJECT_TYPE_SCHEDULER }, // TODO there may be different types like QUEUE or PORT here .allownullobjectid = false, .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_NONE, .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO extra check may be needed here @@ -37,6 +41,7 @@ const sai_attr_metadata_t sai_scheduler_group_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SCHEDULER_GROUP, .attrid = SAI_SCHEDULER_GROUP_ATTR_PORT_ID, + .attridname = "SAI_SCHEDULER_GROUP_ATTR_PORT_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -45,12 +50,14 @@ const sai_attr_metadata_t sai_scheduler_group_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SCHEDULER_GROUP, .attrid = SAI_SCHEDULER_GROUP_ATTR_LEVEL, + .attridname = "SAI_SCHEDULER_GROUP_ATTR_LEVEL", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -59,6 +66,7 @@ const sai_attr_metadata_t sai_scheduler_group_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO validate range 0..16 @@ -67,6 +75,7 @@ const sai_attr_metadata_t sai_scheduler_group_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SCHEDULER_GROUP, .attrid = SAI_SCHEDULER_GROUP_ATTR_MAX_CHILDS, + .attridname = "SAI_SCHEDULER_GROUP_ATTR_MAX_CHILDS", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -75,6 +84,7 @@ const sai_attr_metadata_t sai_scheduler_group_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO validate range 0..64 ? @@ -83,14 +93,16 @@ const sai_attr_metadata_t sai_scheduler_group_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SCHEDULER_GROUP, .attrid = SAI_SCHEDULER_GROUP_ATTR_SCHEDULER_PROFILE_ID, + .attridname = "SAI_SCHEDULER_GROUP_ATTR_SCHEDULER_PROFILE_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, - .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET, + .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_SCHEDULER }, .allownullobjectid = false, .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_NONE, .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO SET ONLY, special, not supported yet, must change api design diff --git a/meta/sai_meta_stp.cpp b/meta/sai_meta_stp.cpp index aa450cfb93db..e62ad2e123bb 100644 --- a/meta/sai_meta_stp.cpp +++ b/meta/sai_meta_stp.cpp @@ -9,6 +9,7 @@ const sai_attr_metadata_t sai_stp_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_STP_INSTANCE, .attrid = SAI_STP_ATTR_VLAN_LIST, + .attridname = "SAI_STP_ATTR_VLAN_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_VLAN_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -17,6 +18,7 @@ const sai_attr_metadata_t sai_stp_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, diff --git a/meta/sai_meta_switch.cpp b/meta/sai_meta_switch.cpp index 93bf1239c221..0c1af9810a43 100644 --- a/meta/sai_meta_switch.cpp +++ b/meta/sai_meta_switch.cpp @@ -42,6 +42,90 @@ DEFINE_ENUM_VALUES(sai_hash_algorithm_t) SAI_HASH_ALGORITHM_RANDOM }; +const char metadata_sai_switch_oper_status_t_enum_name[] = "sai_switch_oper_status_t"; +const sai_switch_oper_status_t metadata_sai_switch_oper_status_t_enum_values[] = { + SAI_SWITCH_OPER_STATUS_UNKNOWN, + SAI_SWITCH_OPER_STATUS_UP, + SAI_SWITCH_OPER_STATUS_DOWN, + SAI_SWITCH_OPER_STATUS_FAILED, +}; +const char* metadata_sai_switch_oper_status_t_enum_values_names[] = { + "SAI_SWITCH_OPER_STATUS_UNKNOWN", + "SAI_SWITCH_OPER_STATUS_UP", + "SAI_SWITCH_OPER_STATUS_DOWN", + "SAI_SWITCH_OPER_STATUS_FAILED", + NULL +}; +const char* metadata_sai_switch_oper_status_t_enum_values_short_names[] = { + "UNKNOWN", + "UP", + "DOWN", + "FAILED", + NULL +}; +const size_t metadata_sai_switch_oper_status_t_enum_values_count = 4; +DEFINE_ENUM_METADATA(sai_switch_oper_status_t, 4); + +const char metadata_sai_hash_algorithm_t_enum_name[] = "sai_hash_algorithm_t"; +const sai_hash_algorithm_t metadata_sai_hash_algorithm_t_enum_values[] = { + SAI_HASH_ALGORITHM_CRC, + SAI_HASH_ALGORITHM_XOR, + SAI_HASH_ALGORITHM_RANDOM, +}; +const char* metadata_sai_hash_algorithm_t_enum_values_names[] = { + "SAI_HASH_ALGORITHM_CRC", + "SAI_HASH_ALGORITHM_XOR", + "SAI_HASH_ALGORITHM_RANDOM", + NULL +}; +const char* metadata_sai_hash_algorithm_t_enum_values_short_names[] = { + "CRC", + "XOR", + "RANDOM", + NULL +}; +const size_t metadata_sai_hash_algorithm_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_hash_algorithm_t, 3); + +const char metadata_sai_switch_switching_mode_t_enum_name[] = "sai_switch_switching_mode_t"; +const sai_switch_switching_mode_t metadata_sai_switch_switching_mode_t_enum_values[] = { + SAI_SWITCHING_MODE_CUT_THROUGH, + SAI_SWITCHING_MODE_STORE_AND_FORWARD, +}; +const char* metadata_sai_switch_switching_mode_t_enum_values_names[] = { + "SAI_SWITCH_SWITCHING_MODE_CUT_THROUGH", + "SAI_SWITCH_SWITCHING_MODE_STORE_AND_FORWARD", + NULL +}; +const char* metadata_sai_switch_switching_mode_t_enum_values_short_names[] = { + "CUT_THROUGH", + "STORE_AND_FORWARD", + NULL +}; +const size_t metadata_sai_switch_switching_mode_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_switch_switching_mode_t, 2); + +const char metadata_sai_switch_restart_type_t_enum_name[] = "sai_switch_restart_type_t"; +const sai_switch_restart_type_t metadata_sai_switch_restart_type_t_enum_values[] = { + SAI_RESTART_TYPE_NONE, + SAI_RESTART_TYPE_PLANNED, + SAI_RESTART_TYPE_ANY, +}; +const char* metadata_sai_switch_restart_type_t_enum_values_names[] = { + "SAI_SWITCH_RESTART_TYPE_NONE", + "SAI_SWITCH_RESTART_TYPE_PLANNED", + "SAI_SWITCH_RESTART_TYPE_ANY", + NULL +}; +const char* metadata_sai_switch_restart_type_t_enum_values_short_names[] = { + "NONE", + "PLANNED", + "ANY", + NULL +}; +const size_t metadata_sai_switch_restart_type_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_switch_restart_type_t, 3); + const sai_attr_metadata_t sai_switch_attr_metadata[] = { // READ-ONLY @@ -49,6 +133,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_PORT_NUMBER, + .attridname = "SAI_SWITCH_ATTR_PORT_NUMBER", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -57,6 +142,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // dynamic @@ -65,6 +151,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_PORT_LIST, + .attridname = "SAI_SWITCH_ATTR_PORT_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -73,6 +160,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // dynamic @@ -81,6 +169,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_PORT_MAX_MTU, + .attridname = "SAI_SWITCH_ATTR_PORT_MAX_MTU", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -89,12 +178,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_CPU_PORT, + .attridname = "SAI_SWITCH_ATTR_CPU_PORT", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -103,12 +194,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_MAX_VIRTUAL_ROUTERS, + .attridname = "SAI_SWITCH_ATTR_MAX_VIRTUAL_ROUTERS", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -117,12 +210,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_FDB_TABLE_SIZE, + .attridname = "SAI_SWITCH_ATTR_FDB_TABLE_SIZE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -131,12 +226,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_L3_NEIGHBOR_TABLE_SIZE, + .attridname = "SAI_SWITCH_ATTR_L3_NEIGHBOR_TABLE_SIZE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -145,12 +242,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_L3_ROUTE_TABLE_SIZE, + .attridname = "SAI_SWITCH_ATTR_L3_ROUTE_TABLE_SIZE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -159,12 +258,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_LAG_MEMBERS, + .attridname = "SAI_SWITCH_ATTR_LAG_MEMBERS", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -173,12 +274,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_NUMBER_OF_LAGS, + .attridname = "SAI_SWITCH_ATTR_NUMBER_OF_LAGS", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -187,12 +290,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ECMP_MEMBERS, + .attridname = "SAI_SWITCH_ATTR_ECMP_MEMBERS", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -201,12 +306,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_NUMBER_OF_ECMP_GROUPS, + .attridname = "SAI_SWITCH_ATTR_NUMBER_OF_ECMP_GROUPS", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -215,12 +322,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_NUMBER_OF_UNICAST_QUEUES, + .attridname = "SAI_SWITCH_ATTR_NUMBER_OF_UNICAST_QUEUES", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -229,12 +338,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_NUMBER_OF_MULTICAST_QUEUES, + .attridname = "SAI_SWITCH_ATTR_NUMBER_OF_MULTICAST_QUEUES", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -243,12 +354,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_NUMBER_OF_QUEUES, + .attridname = "SAI_SWITCH_ATTR_NUMBER_OF_QUEUES", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -257,12 +370,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_NUMBER_OF_CPU_QUEUES, + .attridname = "SAI_SWITCH_ATTR_NUMBER_OF_CPU_QUEUES", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -271,12 +386,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ON_LINK_ROUTE_SUPPORTED, + .attridname = "SAI_SWITCH_ATTR_ON_LINK_ROUTE_SUPPORTED", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -285,12 +402,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_OPER_STATUS, + .attridname = "SAI_SWITCH_ATTR_OPER_STATUS", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -299,6 +418,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_switch_oper_status_t ), .enumallowedvalues = ENUM_VALUES ( sai_switch_oper_status_t ), + .enummetadata = &metadata_enum_sai_switch_oper_status_t, .conditions = { }, // dynamic @@ -307,6 +427,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_MAX_TEMP, + .attridname = "SAI_SWITCH_ATTR_MAX_TEMP", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -315,12 +436,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ACL_TABLE_MINIMUM_PRIORITY, + .attridname = "SAI_SWITCH_ATTR_ACL_TABLE_MINIMUM_PRIORITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -329,12 +452,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ACL_TABLE_MAXIMUM_PRIORITY, + .attridname = "SAI_SWITCH_ATTR_ACL_TABLE_MAXIMUM_PRIORITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -343,12 +468,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ACL_ENTRY_MINIMUM_PRIORITY, + .attridname = "SAI_SWITCH_ATTR_ACL_ENTRY_MINIMUM_PRIORITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -357,12 +484,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ACL_ENTRY_MAXIMUM_PRIORITY, + .attridname = "SAI_SWITCH_ATTR_ACL_ENTRY_MAXIMUM_PRIORITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -371,12 +500,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_FDB_DST_USER_META_DATA_RANGE, + .attridname = "SAI_SWITCH_ATTR_FDB_DST_USER_META_DATA_RANGE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_RANGE, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -385,12 +516,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ROUTE_DST_USER_META_DATA_RANGE, + .attridname = "SAI_SWITCH_ATTR_ROUTE_DST_USER_META_DATA_RANGE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_RANGE, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -399,12 +532,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_NEIGHBOR_DST_USER_META_DATA_RANGE, + .attridname = "SAI_SWITCH_ATTR_NEIGHBOR_DST_USER_META_DATA_RANGE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_RANGE, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -413,12 +548,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_PORT_USER_META_DATA_RANGE, + .attridname = "SAI_SWITCH_ATTR_PORT_USER_META_DATA_RANGE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_RANGE, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -427,12 +564,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_VLAN_USER_META_DATA_RANGE, + .attridname = "SAI_SWITCH_ATTR_VLAN_USER_META_DATA_RANGE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_RANGE, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -441,12 +580,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ACL_USER_META_DATA_RANGE, + .attridname = "SAI_SWITCH_ATTR_ACL_USER_META_DATA_RANGE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_RANGE, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -455,12 +596,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ACL_USER_TRAP_ID_RANGE, + .attridname = "SAI_SWITCH_ATTR_ACL_USER_TRAP_ID_RANGE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_RANGE, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -469,12 +612,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_DEFAULT_STP_INST_ID, + .attridname = "SAI_SWITCH_ATTR_DEFAULT_STP_INST_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_STP_INSTANCE }, @@ -483,12 +628,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_DEFAULT_VIRTUAL_ROUTER_ID, + .attridname = "SAI_SWITCH_ATTR_DEFAULT_VIRTUAL_ROUTER_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_VIRTUAL_ROUTER }, @@ -497,12 +644,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_TRAFFIC_CLASSES, + .attridname = "SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_TRAFFIC_CLASSES", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -511,12 +660,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUP_HIERARCHY_LEVELS, + .attridname = "SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUP_HIERARCHY_LEVELS", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -525,12 +676,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUPS_PER_HIERARCHY_LEVEL, + .attridname = "SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUPS_PER_HIERARCHY_LEVEL", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -539,12 +692,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_CHILDS_PER_SCHEDULER_GROUP, + .attridname = "SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_CHILDS_PER_SCHEDULER_GROUP", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -553,12 +708,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_TOTAL_BUFFER_SIZE, + .attridname = "SAI_SWITCH_ATTR_TOTAL_BUFFER_SIZE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -567,12 +724,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_INGRESS_BUFFER_POOL_NUM, + .attridname = "SAI_SWITCH_ATTR_INGRESS_BUFFER_POOL_NUM", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -581,12 +740,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_EGRESS_BUFFER_POOL_NUM, + .attridname = "SAI_SWITCH_ATTR_EGRESS_BUFFER_POOL_NUM", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -595,12 +756,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_DEFAULT_TRAP_GROUP, + .attridname = "SAI_SWITCH_ATTR_DEFAULT_TRAP_GROUP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_TRAP_GROUP }, @@ -609,6 +772,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, /* @@ -625,6 +789,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ECMP_HASH, + .attridname = "SAI_SWITCH_ATTR_ECMP_HASH", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_HASH }, @@ -633,6 +798,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, /* @@ -648,6 +814,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_LAG_HASH, + .attridname = "SAI_SWITCH_ATTR_LAG_HASH", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_HASH }, @@ -656,6 +823,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, /* @@ -671,6 +839,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_RESTART_TYPE, + .attridname = "SAI_SWITCH_ATTR_RESTART_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -679,12 +848,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_switch_restart_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_switch_restart_type_t ), + .enummetadata = &metadata_enum_sai_switch_restart_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_MIN_PLANNED_RESTART_INTERVAL, + .attridname = "SAI_SWITCH_ATTR_MIN_PLANNED_RESTART_INTERVAL", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -693,12 +864,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_NV_STORAGE_SIZE, + .attridname = "SAI_SWITCH_ATTR_NV_STORAGE_SIZE", .serializationtype = SAI_SERIALIZATION_TYPE_UINT64, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -707,12 +880,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_MAX_ACL_ACTION_COUNT, + .attridname = "SAI_SWITCH_ATTR_MAX_ACL_ACTION_COUNT", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { }, @@ -721,28 +896,32 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, - -// { -// .objecttype = SAI_OBJECT_TYPE_SWITCH, -// .attrid = SAI_SWITCH_ATTR_ACL_CAPABILITY, -// .serializationtype = SAI_SERIALIZATION_TYPE_ACL_CAPABILITY, // not supported yet -// .flags = SAI_ATTR_FLAGS_READ_ONLY, -// .allowedobjecttypes = { }, -// .allownullobjectid = false, -// .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_NONE, -// .defaultvalue = { }, -// .enumtypestr = NULL, -// .enumallowedvalues = { }, -// .conditions = { }, -// }, - +/* + { + .objecttype = SAI_OBJECT_TYPE_SWITCH, + .attrid = SAI_SWITCH_ATTR_ACL_CAPABILITY, + .nameid = "SAI_SWITCH_ATTR_ACL_CAPABILITY", + .serializationtype = SAI_SERIALIZATION_TYPE_ACL_CAPABILITY, // not supported yet + .flags = SAI_ATTR_FLAGS_READ_ONLY, + .allowedobjecttypes = { }, + .allownullobjectid = false, + .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_NONE, + .defaultvalue = { }, + .enumtypestr = NULL, + .enumallowedvalues = { }, + .enummetadata = NULL, + .conditions = { }, + }, +*/ // READ-WRITE { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_SWITCHING_MODE, + .attridname = "SAI_SWITCH_ATTR_SWITCHING_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -751,12 +930,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .s32 = SAI_SWITCHING_MODE_STORE_AND_FORWARD }, .enumtypestr = StringifyEnum ( sai_switch_switching_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_switch_switching_mode_t ), + .enummetadata = &metadata_enum_sai_switch_switching_mode_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_BCAST_CPU_FLOOD_ENABLE, + .attridname = "SAI_SWITCH_ATTR_BCAST_CPU_FLOOD_ENABLE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -765,6 +946,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO what is default value? switch dependent? @@ -773,6 +955,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_MCAST_CPU_FLOOD_ENABLE, + .attridname = "SAI_SWITCH_ATTR_MCAST_CPU_FLOOD_ENABLE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -781,12 +964,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_SRC_MAC_ADDRESS, + .attridname = "SAI_SWITCH_ATTR_SRC_MAC_ADDRESS", .serializationtype = SAI_SERIALIZATION_TYPE_MAC, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -795,6 +980,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // NOTE: Default value is switch dependent @@ -803,6 +989,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_MAX_LEARNED_ADDRESSES, + .attridname = "SAI_SWITCH_ATTR_MAX_LEARNED_ADDRESSES", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -811,12 +998,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_FDB_AGING_TIME, + .attridname = "SAI_SWITCH_ATTR_FDB_AGING_TIME", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -825,12 +1014,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_FDB_UNICAST_MISS_ACTION, + .attridname = "SAI_SWITCH_ATTR_FDB_UNICAST_MISS_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -839,12 +1030,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_FORWARD }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_FDB_BROADCAST_MISS_ACTION, + .attridname = "SAI_SWITCH_ATTR_FDB_BROADCAST_MISS_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -853,12 +1046,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_FORWARD }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_FDB_MULTICAST_MISS_ACTION, + .attridname = "SAI_SWITCH_ATTR_FDB_MULTICAST_MISS_ACTION", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -867,12 +1062,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .s32 = SAI_PACKET_ACTION_FORWARD }, .enumtypestr = StringifyEnum ( sai_packet_action_t ), .enumallowedvalues = ENUM_VALUES ( sai_packet_action_t ), + .enummetadata = &metadata_enum_sai_packet_action_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM, + .attridname = "SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -881,12 +1078,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .s32 = SAI_HASH_ALGORITHM_CRC }, .enumtypestr = StringifyEnum ( sai_hash_algorithm_t ), .enumallowedvalues = ENUM_VALUES ( sai_hash_algorithm_t ), + .enummetadata = &metadata_enum_sai_hash_algorithm_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_SEED, + .attridname = "SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_SEED", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -895,12 +1094,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ECMP_DEFAULT_SYMMETRIC_HASH, + .attridname = "SAI_SWITCH_ATTR_ECMP_DEFAULT_SYMMETRIC_HASH", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -909,12 +1110,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ECMP_HASH_IPV4, + .attridname = "SAI_SWITCH_ATTR_ECMP_HASH_IPV4", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_HASH }, @@ -923,6 +1126,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO there may exist internal hash (vendor specific / switch internal) @@ -931,6 +1135,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ECMP_HASH_IPV4_IN_IPV4, + .attridname = "SAI_SWITCH_ATTR_ECMP_HASH_IPV4_IN_IPV4", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_HASH }, @@ -939,6 +1144,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO there may exist internal hash @@ -947,6 +1153,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_ECMP_HASH_IPV6, + .attridname = "SAI_SWITCH_ATTR_ECMP_HASH_IPV6", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_HASH }, @@ -955,6 +1162,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO there may exist internal hash @@ -963,6 +1171,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM, + .attridname = "SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -971,12 +1180,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .s32 = SAI_HASH_ALGORITHM_CRC }, .enumtypestr = StringifyEnum ( sai_hash_algorithm_t ), .enumallowedvalues = ENUM_VALUES ( sai_hash_algorithm_t ), + .enummetadata = &metadata_enum_sai_hash_algorithm_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_SEED, + .attridname = "SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_SEED", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -985,12 +1196,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_LAG_DEFAULT_SYMMETRIC_HASH, + .attridname = "SAI_SWITCH_ATTR_LAG_DEFAULT_SYMMETRIC_HASH", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -999,12 +1212,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_LAG_HASH_IPV4, + .attridname = "SAI_SWITCH_ATTR_LAG_HASH_IPV4", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_HASH }, @@ -1013,6 +1228,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, @@ -1022,6 +1238,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_LAG_HASH_IPV4_IN_IPV4, + .attridname = "SAI_SWITCH_ATTR_LAG_HASH_IPV4_IN_IPV4", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_HASH }, @@ -1030,6 +1247,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO there may exist internal hash @@ -1038,6 +1256,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_LAG_HASH_IPV6, + .attridname = "SAI_SWITCH_ATTR_LAG_HASH_IPV6", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_HASH }, @@ -1046,6 +1265,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, @@ -1055,6 +1275,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_COUNTER_REFRESH_INTERVAL, + .attridname = "SAI_SWITCH_ATTR_COUNTER_REFRESH_INTERVAL", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1063,6 +1284,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .u32 = 1 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, @@ -1072,6 +1294,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_DEFAULT_TC, + .attridname = "SAI_SWITCH_ATTR_QOS_DEFAULT_TC", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -1080,12 +1303,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .u8 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_DOT1P_TO_TC_MAP, + .attridname = "SAI_SWITCH_ATTR_QOS_DOT1P_TO_TC_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1094,6 +1319,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, @@ -1101,6 +1327,7 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_DOT1P_TO_COLOR_MAP, + .attridname = "SAI_SWITCH_ATTR_QOS_DOT1P_TO_COLOR_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1109,12 +1336,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_DSCP_TO_TC_MAP, + .attridname = "SAI_SWITCH_ATTR_QOS_DSCP_TO_TC_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1123,12 +1352,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_DSCP_TO_COLOR_MAP, + .attridname = "SAI_SWITCH_ATTR_QOS_DSCP_TO_COLOR_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1137,12 +1368,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_TC_TO_QUEUE_MAP, + .attridname = "SAI_SWITCH_ATTR_QOS_TC_TO_QUEUE_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1151,12 +1384,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP, + .attridname = "SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1165,12 +1400,14 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_SWITCH, .attrid = SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP, + .attridname = "SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_QOS_MAPS }, @@ -1179,22 +1416,26 @@ const sai_attr_metadata_t sai_switch_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, - - //{ - // .objecttype = SAI_OBJECT_TYPE_SWITCH, - // .attrid = SAI_SWITCH_ATTR_SWITCH_SHELL_ENABLE, - // .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, - // .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, - // .allowedobjecttypes = { }, - // .allownullobjectid = true, - // .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_CONST, - // .defaultvalue = { .booldata = false }, - // .enumtypestr = NULL, - // .enumallowedvalues = { }, - // .conditions = { }, - //}, +/* + { + .objecttype = SAI_OBJECT_TYPE_SWITCH, + .attrid = SAI_SWITCH_ATTR_SWITCH_SHELL_ENABLE, + .nameid = "SAI_SWITCH_ATTR_SWITCH_SHELL_ENABLE", + .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, + .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, + .allowedobjecttypes = { }, + .allownullobjectid = true, + .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_CONST, + .defaultvalue = { .booldata = false }, + .enumtypestr = NULL, + .enumallowedvalues = { }, + .enummetadata = NULL, + .conditions = { }, + }, +*/ }; const size_t sai_switch_attr_metadata_count = sizeof(sai_switch_attr_metadata)/sizeof(sai_attr_metadata_t); diff --git a/meta/sai_meta_tunnel.cpp b/meta/sai_meta_tunnel.cpp index 6612d78a01e1..bc3885bdc8b0 100644 --- a/meta/sai_meta_tunnel.cpp +++ b/meta/sai_meta_tunnel.cpp @@ -49,11 +49,153 @@ DEFINE_ENUM_VALUES(sai_tunnel_term_table_entry_type_t) SAI_TUNNEL_TERM_TABLE_ENTRY_P2MP }; +const char metadata_sai_tunnel_term_table_entry_type_t_enum_name[] = "sai_tunnel_term_table_entry_type_t"; +const sai_tunnel_term_table_entry_type_t metadata_sai_tunnel_term_table_entry_type_t_enum_values[] = { + SAI_TUNNEL_TERM_TABLE_ENTRY_P2P, + SAI_TUNNEL_TERM_TABLE_ENTRY_P2MP, +}; +const char* metadata_sai_tunnel_term_table_entry_type_t_enum_values_names[] = { + "SAI_TUNNEL_TERM_TABLE_ENTRY_TYPE_P2P", + "SAI_TUNNEL_TERM_TABLE_ENTRY_TYPE_P2MP", + NULL +}; +const char* metadata_sai_tunnel_term_table_entry_type_t_enum_values_short_names[] = { + "P2P", + "P2MP", + NULL +}; +const size_t metadata_sai_tunnel_term_table_entry_type_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_tunnel_term_table_entry_type_t, 2); + +const char metadata_sai_tunnel_map_type_t_enum_name[] = "sai_tunnel_map_type_t"; +const sai_tunnel_map_type_t metadata_sai_tunnel_map_type_t_enum_values[] = { + SAI_TUNNEL_MAP_OECN_TO_UECN, + SAI_TUNNEL_MAP_UECN_OECN_TO_OECN, + SAI_TUNNEL_MAP_VNI_TO_VLAN_ID, + SAI_TUNNEL_MAP_VLAN_ID_TO_VNI, +}; +const char* metadata_sai_tunnel_map_type_t_enum_values_names[] = { + "SAI_TUNNEL_MAP_TYPE_OECN_TO_UECN", + "SAI_TUNNEL_MAP_TYPE_UECN_OECN_TO_OECN", + "SAI_TUNNEL_MAP_TYPE_VNI_TO_VLAN_ID", + "SAI_TUNNEL_MAP_TYPE_VLAN_ID_TO_VNI", + NULL +}; +const char* metadata_sai_tunnel_map_type_t_enum_values_short_names[] = { + "OECN_TO_UECN", + "UECN_OECN_TO_OECN", + "VNI_TO_VLAN_ID", + "VLAN_ID_TO_VNI", + NULL +}; +const size_t metadata_sai_tunnel_map_type_t_enum_values_count = 4; +DEFINE_ENUM_METADATA(sai_tunnel_map_type_t, 4); + +const char metadata_sai_tunnel_encap_ecn_mode_t_enum_name[] = "sai_tunnel_encap_ecn_mode_t"; +const sai_tunnel_encap_ecn_mode_t metadata_sai_tunnel_encap_ecn_mode_t_enum_values[] = { + SAI_TUNNEL_ENCAP_ECN_MODE_STANDARD, + SAI_TUNNEL_ENCAP_ECN_MODE_USER_DEFINED, +}; +const char* metadata_sai_tunnel_encap_ecn_mode_t_enum_values_names[] = { + "SAI_TUNNEL_ENCAP_ECN_MODE_STANDARD", + "SAI_TUNNEL_ENCAP_ECN_MODE_USER_DEFINED", + NULL +}; +const char* metadata_sai_tunnel_encap_ecn_mode_t_enum_values_short_names[] = { + "STANDARD", + "USER_DEFINED", + NULL +}; +const size_t metadata_sai_tunnel_encap_ecn_mode_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_tunnel_encap_ecn_mode_t, 2); + +const char metadata_sai_tunnel_decap_ecn_mode_t_enum_name[] = "sai_tunnel_decap_ecn_mode_t"; +const sai_tunnel_decap_ecn_mode_t metadata_sai_tunnel_decap_ecn_mode_t_enum_values[] = { + SAI_TUNNEL_DECAP_ECN_MODE_STANDARD, + SAI_TUNNEL_DECAP_ECN_MODE_COPY_FROM_OUTER, + SAI_TUNNEL_DECAP_ECN_MODE_USER_DEFINED, +}; +const char* metadata_sai_tunnel_decap_ecn_mode_t_enum_values_names[] = { + "SAI_TUNNEL_DECAP_ECN_MODE_STANDARD", + "SAI_TUNNEL_DECAP_ECN_MODE_COPY_FROM_OUTER", + "SAI_TUNNEL_DECAP_ECN_MODE_USER_DEFINED", + NULL +}; +const char* metadata_sai_tunnel_decap_ecn_mode_t_enum_values_short_names[] = { + "STANDARD", + "COPY_FROM_OUTER", + "USER_DEFINED", + NULL +}; +const size_t metadata_sai_tunnel_decap_ecn_mode_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_tunnel_decap_ecn_mode_t, 3); + +const char metadata_sai_tunnel_dscp_mode_t_enum_name[] = "sai_tunnel_dscp_mode_t"; +const sai_tunnel_dscp_mode_t metadata_sai_tunnel_dscp_mode_t_enum_values[] = { + SAI_TUNNEL_DSCP_UNIFORM_MODEL, + SAI_TUNNEL_DSCP_PIPE_MODEL, +}; +const char* metadata_sai_tunnel_dscp_mode_t_enum_values_names[] = { + "SAI_TUNNEL_DSCP_MODE_UNIFORM_MODEL", + "SAI_TUNNEL_DSCP_MODE_PIPE_MODEL", + NULL +}; +const char* metadata_sai_tunnel_dscp_mode_t_enum_values_short_names[] = { + "UNIFORM_MODEL", + "PIPE_MODEL", + NULL +}; +const size_t metadata_sai_tunnel_dscp_mode_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_tunnel_dscp_mode_t, 2); + +const char metadata_sai_tunnel_ttl_mode_t_enum_name[] = "sai_tunnel_ttl_mode_t"; +const sai_tunnel_ttl_mode_t metadata_sai_tunnel_ttl_mode_t_enum_values[] = { + SAI_TUNNEL_TTL_UNIFORM_MODEL, + SAI_TUNNEL_TTL_PIPE_MODEL, +}; +const char* metadata_sai_tunnel_ttl_mode_t_enum_values_names[] = { + "SAI_TUNNEL_TTL_MODE_UNIFORM_MODEL", + "SAI_TUNNEL_TTL_MODE_PIPE_MODEL", + NULL +}; +const char* metadata_sai_tunnel_ttl_mode_t_enum_values_short_names[] = { + "UNIFORM_MODEL", + "PIPE_MODEL", + NULL +}; +const size_t metadata_sai_tunnel_ttl_mode_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_tunnel_ttl_mode_t, 2); + +const char metadata_sai_tunnel_type_t_enum_name[] = "sai_tunnel_type_t"; +const sai_tunnel_type_t metadata_sai_tunnel_type_t_enum_values[] = { + SAI_TUNNEL_IPINIP, + SAI_TUNNEL_IPINIP_GRE, + SAI_TUNNEL_VXLAN, + SAI_TUNNEL_MPLS, +}; +const char* metadata_sai_tunnel_type_t_enum_values_names[] = { + "SAI_TUNNEL_TYPE_IPINIP", + "SAI_TUNNEL_TYPE_IPINIP_GRE", + "SAI_TUNNEL_TYPE_VXLAN", + "SAI_TUNNEL_TYPE_MPLS", + NULL +}; +const char* metadata_sai_tunnel_type_t_enum_values_short_names[] = { + "IPINIP", + "IPINIP_GRE", + "VXLAN", + "MPLS", + NULL +}; +const size_t metadata_sai_tunnel_type_t_enum_values_count = 4; +DEFINE_ENUM_METADATA(sai_tunnel_type_t, 4); + const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_TYPE, + .attridname = "SAI_TUNNEL_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -62,12 +204,14 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_tunnel_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_tunnel_type_t ), + .enummetadata = &metadata_enum_sai_tunnel_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_UNDERLAY_INTERFACE, + .attridname = "SAI_TUNNEL_ATTR_UNDERLAY_INTERFACE", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_ROUTER_INTERFACE }, @@ -76,6 +220,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_TUNNEL_ATTR_TYPE, SAI_TUNNEL_IPINIP ), COND_ENUM ( SAI_TUNNEL_ATTR_TYPE, SAI_TUNNEL_IPINIP_GRE ), @@ -85,6 +230,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_OVERLAY_INTERFACE, + .attridname = "SAI_TUNNEL_ATTR_OVERLAY_INTERFACE", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_ROUTER_INTERFACE }, @@ -93,6 +239,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_TUNNEL_ATTR_TYPE, SAI_TUNNEL_IPINIP ), COND_ENUM ( SAI_TUNNEL_ATTR_TYPE, SAI_TUNNEL_IPINIP_GRE ), @@ -104,6 +251,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_ENCAP_SRC_IP, + .attridname = "SAI_TUNNEL_ATTR_ENCAP_SRC_IP", .serializationtype = SAI_SERIALIZATION_TYPE_IP_ADDRESS, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -112,12 +260,14 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_ENCAP_TTL_MODE, + .attridname = "SAI_TUNNEL_ATTR_ENCAP_TTL_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -126,6 +276,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { .s32 = SAI_TUNNEL_TTL_UNIFORM_MODEL }, .enumtypestr = StringifyEnum ( sai_tunnel_ttl_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_tunnel_ttl_mode_t ), + .enummetadata = &metadata_enum_sai_tunnel_ttl_mode_t, .conditions = { }, // TODO some extra checks may be needed @@ -134,6 +285,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_ENCAP_TTL_VAL, + .attridname = "SAI_TUNNEL_ATTR_ENCAP_TTL_VAL", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -142,6 +294,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_TUNNEL_ATTR_ENCAP_TTL_MODE, SAI_TUNNEL_TTL_PIPE_MODEL ) }, // TODO valid only and MANDATORY_ON_CREATE when SAI_TUNNEL_ENCAP_TTL_MODE = SAI_TUNNEL_TTL_PIPE_MODEL @@ -150,6 +303,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_ENCAP_DSCP_MODE, + .attridname = "SAI_TUNNEL_ATTR_ENCAP_DSCP_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -158,12 +312,14 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { .s32 = SAI_TUNNEL_DSCP_UNIFORM_MODEL }, .enumtypestr = StringifyEnum ( sai_tunnel_dscp_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_tunnel_dscp_mode_t ), + .enummetadata = &metadata_enum_sai_tunnel_dscp_mode_t, .conditions = { } }, { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_ENCAP_DSCP_VAL, + .attridname = "SAI_TUNNEL_ATTR_ENCAP_DSCP_VAL", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -172,6 +328,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_TUNNEL_ATTR_ENCAP_DSCP_MODE, SAI_TUNNEL_DSCP_PIPE_MODEL ) }, // TODO only 6 bits, additional check is needed @@ -181,6 +338,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_ENCAP_GRE_KEY_VALID, + .attridname = "SAI_TUNNEL_ATTR_ENCAP_GRE_KEY_VALID", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -189,6 +347,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_TUNNEL_ATTR_TYPE, SAI_TUNNEL_IPINIP_GRE ) }, // valid only on that condition @@ -197,6 +356,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_ENCAP_GRE_KEY, + .attridname = "SAI_TUNNEL_ATTR_ENCAP_GRE_KEY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -205,6 +365,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_BOOL ( SAI_TUNNEL_ATTR_ENCAP_GRE_KEY_VALID, true) }, // valid only on that condition @@ -213,6 +374,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_ENCAP_ECN_MODE, + .attridname = "SAI_TUNNEL_ATTR_ENCAP_ECN_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -221,6 +383,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { .s32 = SAI_TUNNEL_ENCAP_ECN_MODE_STANDARD }, .enumtypestr = StringifyEnum ( sai_tunnel_encap_ecn_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_tunnel_encap_ecn_mode_t ), + .enummetadata = &metadata_enum_sai_tunnel_encap_ecn_mode_t, .conditions = { }, // TODO Need to provide SAI_TUNNEL_MAP_OECN_TO_UECN in SAI_TUNNEL_ATTR_ENCAP_MAPPERS @@ -229,6 +392,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_ENCAP_MAPPERS, + .attridname = "SAI_TUNNEL_ATTR_ENCAP_MAPPERS", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_TUNNEL_MAP }, @@ -237,6 +401,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_TUNNEL_ATTR_ENCAP_ECN_MODE, SAI_TUNNEL_ENCAP_ECN_MODE_USER_DEFINED ) }, // TODO extra logic will be needed on mappers @@ -248,6 +413,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_DECAP_ECN_MODE, + .attridname = "SAI_TUNNEL_ATTR_DECAP_ECN_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -256,12 +422,14 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { .s32 = SAI_TUNNEL_DECAP_ECN_MODE_STANDARD }, .enumtypestr = StringifyEnum ( sai_tunnel_decap_ecn_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_tunnel_decap_ecn_mode_t ), + .enummetadata = &metadata_enum_sai_tunnel_decap_ecn_mode_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_DECAP_MAPPERS, + .attridname = "SAI_TUNNEL_ATTR_DECAP_MAPPERS", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_TUNNEL_MAP }, @@ -270,6 +438,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_TUNNEL_ATTR_DECAP_ECN_MODE, SAI_TUNNEL_DECAP_ECN_MODE_USER_DEFINED ) }, // TODO extra logic will be needed on mappers @@ -279,6 +448,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_DECAP_TTL_MODE, + .attridname = "SAI_TUNNEL_ATTR_DECAP_TTL_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -287,6 +457,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { }, //{ .s32 = SAI_TUNNEL_TTL_UNIFORM_MODEL }, .enumtypestr = StringifyEnum ( sai_tunnel_ttl_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_tunnel_ttl_mode_t ), + .enummetadata = &metadata_enum_sai_tunnel_ttl_mode_t, .conditions = { COND_ENUM ( SAI_TUNNEL_ATTR_TYPE, SAI_TUNNEL_IPINIP ), COND_ENUM ( SAI_TUNNEL_ATTR_TYPE, SAI_TUNNEL_IPINIP_GRE ), @@ -298,6 +469,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL, .attrid = SAI_TUNNEL_ATTR_DECAP_DSCP_MODE, + .attridname = "SAI_TUNNEL_ATTR_DECAP_DSCP_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -306,6 +478,7 @@ const sai_attr_metadata_t sai_tunnel_attr_metadata[] = { .defaultvalue = { }, // { .s32 = SAI_TUNNEL_DSCP_UNIFORM_MODEL }, .enumtypestr = StringifyEnum ( sai_tunnel_dscp_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_tunnel_dscp_mode_t ), + .enummetadata = &metadata_enum_sai_tunnel_dscp_mode_t, .conditions = { COND_ENUM ( SAI_TUNNEL_ATTR_TYPE, SAI_TUNNEL_IPINIP ), COND_ENUM ( SAI_TUNNEL_ATTR_TYPE, SAI_TUNNEL_IPINIP_GRE ), @@ -325,6 +498,7 @@ const sai_attr_metadata_t sai_tunnel_map_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL_MAP, .attrid = SAI_TUNNEL_MAP_ATTR_TYPE, + .attridname = "SAI_TUNNEL_MAP_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -333,27 +507,30 @@ const sai_attr_metadata_t sai_tunnel_map_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_tunnel_map_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_tunnel_map_type_t ), + .enummetadata = &metadata_enum_sai_tunnel_map_type_t, .conditions = { }, // TODO some extra logic may be needed }, +/* + { + .objecttype = SAI_OBJECT_TYPE_TUNNEL_MAP, + .attrid = SAI_TUNNEL_MAP_ATTR_MAP_TO_VALUE_LIST, + .nameid = "SAI_TUNNEL_MAP_ATTR_MAP_TO_VALUE_LIST", + .serializationtype = SAI_SERIALIZATION_TYPE_TUNNEL_MAP_LIST, // TODO declare + .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, + .allowedobjecttypes = { }, + .allownullobjectid = false, + .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_NONE, + .defaultvalue = { }, + .enumtypestr = NULL, + .enumallowedvalues = { }, + .enummetadata = NULL, + .conditions = { }, -// { -// .objecttype = SAI_OBJECT_TYPE_TUNNEL_MAP, -// .attrid = SAI_TUNNEL_MAP_ATTR_MAP_TO_VALUE_LIST, -// .serializationtype = SAI_SERIALIZATION_TYPE_TUNNEL_MAP_LIST, // TODO declare -// .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, -// .allowedobjecttypes = { }, -// .allownullobjectid = false, -// .defaultvaluetype = SAI_DEFAULT_VALUE_TYPE_NONE, -// .defaultvalue = { }, -// .enumtypestr = NULL, -// .enumallowedvalues = { }, -// .conditions = { }, -// -// // TODO some extra logic may be needed on map -// }, - + // TODO some extra logic may be needed on map + }, +*/ }; const size_t sai_tunnel_map_attr_metadata_count = sizeof(sai_tunnel_map_attr_metadata)/sizeof(sai_attr_metadata_t); @@ -365,6 +542,7 @@ const sai_attr_metadata_t sai_tunnel_table_entry_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_TUNNEL_TABLE_ENTRY, .attrid = SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_VR_ID, + .attridname = "SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_VR_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_VIRTUAL_ROUTER }, @@ -373,12 +551,14 @@ const sai_attr_metadata_t sai_tunnel_table_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_TUNNEL_TABLE_ENTRY, .attrid = SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TYPE, + .attridname = "SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -387,12 +567,14 @@ const sai_attr_metadata_t sai_tunnel_table_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_tunnel_term_table_entry_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_tunnel_term_table_entry_type_t ), + .enummetadata = &metadata_enum_sai_tunnel_term_table_entry_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_TUNNEL_TABLE_ENTRY, .attrid = SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP, + .attridname = "SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP", .serializationtype = SAI_SERIALIZATION_TYPE_IP_ADDRESS, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -401,12 +583,14 @@ const sai_attr_metadata_t sai_tunnel_table_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_TUNNEL_TABLE_ENTRY, .attrid = SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP, + .attridname = "SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP", .serializationtype = SAI_SERIALIZATION_TYPE_IP_ADDRESS, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -415,12 +599,14 @@ const sai_attr_metadata_t sai_tunnel_table_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_ENUM ( SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TYPE, SAI_TUNNEL_TERM_TABLE_ENTRY_P2P ) }, }, { .objecttype = SAI_OBJECT_TYPE_TUNNEL_TABLE_ENTRY, .attrid = SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TUNNEL_TYPE, + .attridname = "SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TUNNEL_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -429,12 +615,14 @@ const sai_attr_metadata_t sai_tunnel_table_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = StringifyEnum ( sai_tunnel_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_tunnel_type_t ), + .enummetadata = &metadata_enum_sai_tunnel_type_t, .conditions = { COND_ENUM ( SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TYPE, SAI_TUNNEL_TERM_TABLE_ENTRY_P2P ) }, }, { .objecttype = SAI_OBJECT_TYPE_TUNNEL_TABLE_ENTRY, .attrid = SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_ACTION_TUNNEL_ID, + .attridname = "SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_ACTION_TUNNEL_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_TUNNEL }, @@ -443,6 +631,7 @@ const sai_attr_metadata_t sai_tunnel_table_entry_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO some additional logic may be needed for tunnel type IPinIP etc diff --git a/meta/sai_meta_udf.cpp b/meta/sai_meta_udf.cpp index 16fc98c6a1db..1a12de7c661e 100644 --- a/meta/sai_meta_udf.cpp +++ b/meta/sai_meta_udf.cpp @@ -25,11 +25,51 @@ DEFINE_ENUM_VALUES(sai_udf_group_type_t) SAI_UDF_GROUP_HASH }; +const char metadata_sai_udf_group_type_t_enum_name[] = "sai_udf_group_type_t"; +const sai_udf_group_type_t metadata_sai_udf_group_type_t_enum_values[] = { + SAI_UDF_GROUP_GENERIC, + SAI_UDF_GROUP_HASH, +}; +const char* metadata_sai_udf_group_type_t_enum_values_names[] = { + "SAI_UDF_GROUP_TYPE_GENERIC", + "SAI_UDF_GROUP_TYPE_HASH", + NULL +}; +const char* metadata_sai_udf_group_type_t_enum_values_short_names[] = { + "GENERIC", + "HASH", + NULL +}; +const size_t metadata_sai_udf_group_type_t_enum_values_count = 2; +DEFINE_ENUM_METADATA(sai_udf_group_type_t, 2); + +const char metadata_sai_udf_base_t_enum_name[] = "sai_udf_base_t"; +const sai_udf_base_t metadata_sai_udf_base_t_enum_values[] = { + SAI_UDF_BASE_L2, + SAI_UDF_BASE_L3, + SAI_UDF_BASE_L4, +}; +const char* metadata_sai_udf_base_t_enum_values_names[] = { + "SAI_UDF_BASE_L2", + "SAI_UDF_BASE_L3", + "SAI_UDF_BASE_L4", + NULL +}; +const char* metadata_sai_udf_base_t_enum_values_short_names[] = { + "L2", + "L3", + "L4", + NULL +}; +const size_t metadata_sai_udf_base_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_udf_base_t, 3); + const sai_attr_metadata_t sai_udf_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_UDF, .attrid = SAI_UDF_ATTR_MATCH_ID, + .attridname = "SAI_UDF_ATTR_MATCH_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_UDF_MATCH }, @@ -38,12 +78,14 @@ const sai_attr_metadata_t sai_udf_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_UDF, .attrid = SAI_UDF_ATTR_GROUP_ID, + .attridname = "SAI_UDF_ATTR_GROUP_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_UDF_GROUP }, @@ -52,12 +94,14 @@ const sai_attr_metadata_t sai_udf_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_UDF, .attrid = SAI_UDF_ATTR_BASE, + .attridname = "SAI_UDF_ATTR_BASE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -66,12 +110,14 @@ const sai_attr_metadata_t sai_udf_attr_metadata[] = { .defaultvalue = { .s32 = SAI_UDF_BASE_L2 }, .enumtypestr = StringifyEnum ( sai_udf_base_t ), .enumallowedvalues = ENUM_VALUES ( sai_udf_base_t ), + .enummetadata = &metadata_enum_sai_udf_base_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_UDF, .attrid = SAI_UDF_ATTR_OFFSET, + .attridname = "SAI_UDF_ATTR_OFFSET", .serializationtype = SAI_SERIALIZATION_TYPE_UINT16, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -80,12 +126,14 @@ const sai_attr_metadata_t sai_udf_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_UDF, .attrid = SAI_UDF_ATTR_HASH_MASK, + .attridname = "SAI_UDF_ATTR_HASH_MASK", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8_LIST, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -94,6 +142,7 @@ const sai_attr_metadata_t sai_udf_attr_metadata[] = { .defaultvalue = hash_mask_default_value, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO extra logic is needed here to validate list length (create and set) @@ -109,6 +158,7 @@ const sai_attr_metadata_t sai_udf_match_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_UDF_MATCH, .attrid = SAI_UDF_MATCH_ATTR_L2_TYPE, + .attridname = "SAI_UDF_MATCH_ATTR_L2_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -117,12 +167,14 @@ const sai_attr_metadata_t sai_udf_match_attr_metadata[] = { .defaultvalue = { }, // default to none .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_UDF_MATCH, .attrid = SAI_UDF_MATCH_ATTR_L3_TYPE, + .attridname = "SAI_UDF_MATCH_ATTR_L3_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -131,12 +183,14 @@ const sai_attr_metadata_t sai_udf_match_attr_metadata[] = { .defaultvalue = { }, // default to none .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_UDF_MATCH, .attrid = SAI_UDF_MATCH_ATTR_GRE_TYPE, + .attridname = "SAI_UDF_MATCH_ATTR_GRE_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_ACL_FIELD_DATA_UINT16, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -145,12 +199,14 @@ const sai_attr_metadata_t sai_udf_match_attr_metadata[] = { .defaultvalue = { }, // default to none .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_UDF_MATCH, .attrid = SAI_UDF_MATCH_ATTR_PRIORITY, + .attridname = "SAI_UDF_MATCH_ATTR_PRIORITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -159,6 +215,7 @@ const sai_attr_metadata_t sai_udf_match_attr_metadata[] = { .defaultvalue = { .u8 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, }; @@ -172,6 +229,7 @@ const sai_attr_metadata_t sai_udf_group_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_UDF_GROUP, .attrid = SAI_UDF_GROUP_ATTR_UDF_LIST, + .attridname = "SAI_UDF_GROUP_ATTR_UDF_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_UDF }, @@ -180,12 +238,14 @@ const sai_attr_metadata_t sai_udf_group_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_UDF_GROUP, .attrid = SAI_UDF_GROUP_ATTR_TYPE, + .attridname = "SAI_UDF_GROUP_ATTR_TYPE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -194,12 +254,14 @@ const sai_attr_metadata_t sai_udf_group_attr_metadata[] = { .defaultvalue = { .s32 = SAI_UDF_GROUP_GENERIC }, .enumtypestr = StringifyEnum ( sai_udf_group_type_t ), .enumallowedvalues = ENUM_VALUES ( sai_udf_group_type_t ), + .enummetadata = &metadata_enum_sai_udf_group_type_t, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_UDF_GROUP, .attrid = SAI_UDF_GROUP_ATTR_LENGTH, + .attridname = "SAI_UDF_GROUP_ATTR_LENGTH", .serializationtype = SAI_SERIALIZATION_TYPE_UINT16, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -208,6 +270,7 @@ const sai_attr_metadata_t sai_udf_group_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, }; diff --git a/meta/sai_meta_vlan.cpp b/meta/sai_meta_vlan.cpp index 03789f0124b4..89db521ae019 100644 --- a/meta/sai_meta_vlan.cpp +++ b/meta/sai_meta_vlan.cpp @@ -9,11 +9,33 @@ DEFINE_ENUM_VALUES(sai_vlan_tagging_mode_t) SAI_VLAN_PORT_PRIORITY_TAGGED }; +const char metadata_sai_vlan_tagging_mode_t_enum_name[] = "sai_vlan_tagging_mode_t"; +const sai_vlan_tagging_mode_t metadata_sai_vlan_tagging_mode_t_enum_values[] = { + SAI_VLAN_PORT_UNTAGGED, + SAI_VLAN_PORT_TAGGED, + SAI_VLAN_PORT_PRIORITY_TAGGED, +}; +const char* metadata_sai_vlan_tagging_mode_t_enum_values_names[] = { + "SAI_VLAN_TAGGING_MODE_UNTAGGED", + "SAI_VLAN_TAGGING_MODE_TAGGED", + "SAI_VLAN_TAGGING_MODE_PRIORITY_TAGGED", + NULL +}; +const char* metadata_sai_vlan_tagging_mode_t_enum_values_short_names[] = { + "UNTAGGED", + "TAGGED", + "PRIORITY_TAGGED", + NULL +}; +const size_t metadata_sai_vlan_tagging_mode_t_enum_values_count = 3; +DEFINE_ENUM_METADATA(sai_vlan_tagging_mode_t, 3); + const sai_attr_metadata_t sai_vlan_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_VLAN, .attrid = SAI_VLAN_ATTR_MEMBER_LIST, + .attridname = "SAI_VLAN_ATTR_MEMBER_LIST", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_LIST, .flags = SAI_ATTR_FLAGS_READ_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_VLAN_MEMBER }, @@ -22,12 +44,14 @@ const sai_attr_metadata_t sai_vlan_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_VLAN, .attrid = SAI_VLAN_ATTR_MAX_LEARNED_ADDRESSES, + .attridname = "SAI_VLAN_ATTR_MAX_LEARNED_ADDRESSES", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -36,12 +60,14 @@ const sai_attr_metadata_t sai_vlan_attr_metadata[] = { .defaultvalue = { .u32 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_VLAN, .attrid = SAI_VLAN_ATTR_STP_INSTANCE, + .attridname = "SAI_VLAN_ATTR_STP_INSTANCE", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { SAI_OBJECT_TYPE_STP_INSTANCE }, @@ -50,6 +76,7 @@ const sai_attr_metadata_t sai_vlan_attr_metadata[] = { .defaultvalue = { .oid = SAI_NULL_OBJECT_ID }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO default to default STP @@ -58,6 +85,7 @@ const sai_attr_metadata_t sai_vlan_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_VLAN, .attrid = SAI_VLAN_ATTR_LEARN_DISABLE, + .attridname = "SAI_VLAN_ATTR_LEARN_DISABLE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -66,12 +94,14 @@ const sai_attr_metadata_t sai_vlan_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_VLAN, .attrid = SAI_VLAN_ATTR_META_DATA, + .attridname = "SAI_VLAN_ATTR_META_DATA", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -80,6 +110,7 @@ const sai_attr_metadata_t sai_vlan_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO default value inside SAI_SWITCH_ATTR_VLAN_USER_META_DATA_RANGE @@ -95,6 +126,7 @@ const sai_attr_metadata_t sai_vlan_member_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_VLAN_MEMBER, .attrid = SAI_VLAN_MEMBER_ATTR_VLAN_ID, + .attridname = "SAI_VLAN_MEMBER_ATTR_VLAN_ID", .serializationtype = SAI_SERIALIZATION_TYPE_UINT16, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -103,12 +135,14 @@ const sai_attr_metadata_t sai_vlan_member_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_VLAN_MEMBER, .attrid = SAI_VLAN_MEMBER_ATTR_PORT_ID, + .attridname = "SAI_VLAN_MEMBER_ATTR_PORT_ID", .serializationtype = SAI_SERIALIZATION_TYPE_OBJECT_ID, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { SAI_OBJECT_TYPE_PORT }, @@ -117,12 +151,14 @@ const sai_attr_metadata_t sai_vlan_member_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_VLAN_MEMBER, .attrid = SAI_VLAN_MEMBER_ATTR_TAGGING_MODE, + .attridname = "SAI_VLAN_MEMBER_ATTR_TAGGING_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -131,6 +167,7 @@ const sai_attr_metadata_t sai_vlan_member_attr_metadata[] = { .defaultvalue = { .s32 = SAI_VLAN_PORT_UNTAGGED }, .enumtypestr = StringifyEnum ( sai_vlan_tagging_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_vlan_tagging_mode_t ), + .enummetadata = &metadata_enum_sai_vlan_tagging_mode_t, .conditions = { }, }, }; diff --git a/meta/sai_meta_wred.cpp b/meta/sai_meta_wred.cpp index 4535b5bc78c6..5bdfe867985f 100644 --- a/meta/sai_meta_wred.cpp +++ b/meta/sai_meta_wred.cpp @@ -14,11 +14,48 @@ DEFINE_ENUM_VALUES(sai_ecn_mark_mode_t) SAI_ECN_MARK_MODE_ALL }; +const char metadata_sai_ecn_mark_mode_t_enum_name[] = "sai_ecn_mark_mode_t"; +const sai_ecn_mark_mode_t metadata_sai_ecn_mark_mode_t_enum_values[] = { + SAI_ECN_MARK_MODE_NONE, + SAI_ECN_MARK_MODE_GREEN, + SAI_ECN_MARK_MODE_YELLOW, + SAI_ECN_MARK_MODE_RED, + SAI_ECN_MARK_MODE_GREEN_YELLOW, + SAI_ECN_MARK_MODE_GREEN_RED, + SAI_ECN_MARK_MODE_YELLOW_RED, + SAI_ECN_MARK_MODE_ALL, +}; +const char* metadata_sai_ecn_mark_mode_t_enum_values_names[] = { + "SAI_ECN_MARK_MODE_NONE", + "SAI_ECN_MARK_MODE_GREEN", + "SAI_ECN_MARK_MODE_YELLOW", + "SAI_ECN_MARK_MODE_RED", + "SAI_ECN_MARK_MODE_GREEN_YELLOW", + "SAI_ECN_MARK_MODE_GREEN_RED", + "SAI_ECN_MARK_MODE_YELLOW_RED", + "SAI_ECN_MARK_MODE_ALL", + NULL +}; +const char* metadata_sai_ecn_mark_mode_t_enum_values_short_names[] = { + "NONE", + "GREEN", + "YELLOW", + "RED", + "GREEN_YELLOW", + "GREEN_RED", + "YELLOW_RED", + "ALL", + NULL +}; +const size_t metadata_sai_ecn_mark_mode_t_enum_values_count = 8; +DEFINE_ENUM_METADATA(sai_ecn_mark_mode_t, 8); + const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_ECN_MARK_MODE, + .attridname = "SAI_WRED_ATTR_ECN_MARK_MODE", .serializationtype = SAI_SERIALIZATION_TYPE_INT32, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -27,6 +64,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { .s32 = SAI_ECN_MARK_MODE_NONE }, .enumtypestr = StringifyEnum ( sai_ecn_mark_mode_t ), .enumallowedvalues = ENUM_VALUES ( sai_ecn_mark_mode_t ), + .enummetadata = &metadata_enum_sai_ecn_mark_mode_t, .conditions = { }, // NOTE: attribute is CREATE_ONLY since when type will change it may impact thresholds @@ -37,6 +75,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_GREEN_ENABLE, + .attridname = "SAI_WRED_ATTR_GREEN_ENABLE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -45,6 +84,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // NOTE: attribute is CREATE_ONLY since when type will change it may impact thresholds @@ -53,6 +93,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_GREEN_MIN_THRESHOLD, + .attridname = "SAI_WRED_ATTR_GREEN_MIN_THRESHOLD", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -61,6 +102,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_BOOL ( SAI_WRED_ATTR_GREEN_ENABLE, true ), COND_ENUM ( SAI_WRED_ATTR_ECN_MARK_MODE, SAI_ECN_MARK_MODE_GREEN ), @@ -73,6 +115,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_GREEN_MAX_THRESHOLD, + .attridname = "SAI_WRED_ATTR_GREEN_MAX_THRESHOLD", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -81,6 +124,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_BOOL ( SAI_WRED_ATTR_GREEN_ENABLE, true ), COND_ENUM ( SAI_WRED_ATTR_ECN_MARK_MODE, SAI_ECN_MARK_MODE_GREEN ), @@ -95,6 +139,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_GREEN_DROP_PROBABILITY, + .attridname = "SAI_WRED_ATTR_GREEN_DROP_PROBABILITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -103,6 +148,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { .u32 = 100 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, @@ -112,6 +158,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_YELLOW_ENABLE, + .attridname = "SAI_WRED_ATTR_YELLOW_ENABLE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -120,12 +167,14 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_YELLOW_MIN_THRESHOLD, + .attridname = "SAI_WRED_ATTR_YELLOW_MIN_THRESHOLD", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -134,6 +183,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_BOOL ( SAI_WRED_ATTR_YELLOW_ENABLE, true ), COND_ENUM ( SAI_WRED_ATTR_ECN_MARK_MODE, SAI_ECN_MARK_MODE_YELLOW ), @@ -146,6 +196,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_YELLOW_MAX_THRESHOLD, + .attridname = "SAI_WRED_ATTR_YELLOW_MAX_THRESHOLD", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -154,6 +205,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_BOOL ( SAI_WRED_ATTR_YELLOW_ENABLE, true ), COND_ENUM ( SAI_WRED_ATTR_ECN_MARK_MODE, SAI_ECN_MARK_MODE_YELLOW ), @@ -166,6 +218,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_YELLOW_DROP_PROBABILITY, + .attridname = "SAI_WRED_ATTR_YELLOW_DROP_PROBABILITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -174,6 +227,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { .u32 = 100 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, @@ -182,6 +236,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_RED_ENABLE, + .attridname = "SAI_WRED_ATTR_RED_ENABLE", .serializationtype = SAI_SERIALIZATION_TYPE_BOOL, .flags = SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -190,12 +245,14 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { .booldata = false }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_RED_MIN_THRESHOLD, + .attridname = "SAI_WRED_ATTR_RED_MIN_THRESHOLD", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -204,6 +261,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_BOOL ( SAI_WRED_ATTR_RED_ENABLE, true ), COND_ENUM ( SAI_WRED_ATTR_ECN_MARK_MODE, SAI_ECN_MARK_MODE_RED ), @@ -216,6 +274,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_RED_MAX_THRESHOLD, + .attridname = "SAI_WRED_ATTR_RED_MAX_THRESHOLD", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY, .allowedobjecttypes = { }, @@ -224,6 +283,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { COND_BOOL ( SAI_WRED_ATTR_RED_ENABLE, true ), COND_ENUM ( SAI_WRED_ATTR_ECN_MARK_MODE, SAI_ECN_MARK_MODE_RED ), @@ -236,6 +296,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_RED_DROP_PROBABILITY, + .attridname = "SAI_WRED_ATTR_RED_DROP_PROBABILITY", .serializationtype = SAI_SERIALIZATION_TYPE_UINT32, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -244,6 +305,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { .u32 = 100 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, }, @@ -252,6 +314,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { { .objecttype = SAI_OBJECT_TYPE_WRED, .attrid = SAI_WRED_ATTR_WEIGHT, + .attridname = "SAI_WRED_ATTR_WEIGHT", .serializationtype = SAI_SERIALIZATION_TYPE_UINT8, .flags = SAI_ATTR_FLAGS_CREATE_AND_SET, .allowedobjecttypes = { }, @@ -260,6 +323,7 @@ const sai_attr_metadata_t sai_wred_attr_metadata[] = { .defaultvalue = { .u8 = 0 }, .enumtypestr = NULL, .enumallowedvalues = { }, + .enummetadata = NULL, .conditions = { }, // TODO validte range 0 .. 15 diff --git a/meta/tests.cpp b/meta/tests.cpp index 1f4d073cfa45..4315cf62f61d 100644 --- a/meta/tests.cpp +++ b/meta/tests.cpp @@ -1,6 +1,6 @@ #include "sai_meta.h" #include "sai_extra.h" - +#include #include #include diff --git a/vslib/src/Makefile.am b/vslib/src/Makefile.am index d97a99101f77..a23013efb135 100644 --- a/vslib/src/Makefile.am +++ b/vslib/src/Makefile.am @@ -31,7 +31,7 @@ WARNINGS = \ -Wredundant-decls \ -Wshadow \ -Wstack-protector \ - -Wstrict-aliasing=2 \ + -Wstrict-aliasing=3 \ -Wswitch \ -Wswitch-default \ -Wunreachable-code \