Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions experimental/saitypesextensions.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,8 @@ typedef enum _sai_dash_tunnel_dscp_mode_t
*/
typedef enum _sai_dash_routing_actions_t
{
SAI_DASH_ROUTING_ACTIONS_NONE = 0,

SAI_DASH_ROUTING_ACTIONS_STATIC_ENCAP = 1,

SAI_DASH_ROUTING_ACTIONS_NAT = 2,
Expand Down Expand Up @@ -174,6 +176,8 @@ typedef enum _sai_dash_ha_role_t
*/
typedef enum _sai_dash_flow_enabled_key_t
{
SAI_DASH_FLOW_ENABLED_KEY_NONE = 0,

SAI_DASH_FLOW_ENABLED_KEY_ENI_MAC = 1,

SAI_DASH_FLOW_ENABLED_KEY_VNI = 2,
Expand Down
10 changes: 10 additions & 0 deletions inc/saitypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -1925,6 +1925,11 @@ typedef sai_status_t (*sai_bulk_object_get_attribute_fn)(
*/
typedef enum _sai_stats_mode_t
{
/**
* @brief No mode defined
*/
SAI_STATS_MODE_NONE = 0 << 0,

/**
* @brief Read statistics
*/
Expand Down Expand Up @@ -2102,6 +2107,11 @@ typedef enum _sai_ser_correction_type_t
*/
typedef enum _sai_ser_log_type_t
{
/**
* @brief No errors
*/
SAI_SER_LOG_TYPE_NONE = 0 << 0,

/**
* @brief Error happens on memory
*/
Expand Down
7 changes: 7 additions & 0 deletions meta/saimetadatatypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,13 @@ typedef enum _sai_attr_value_type_t
*/
typedef enum _sai_attr_flags_t
{
/**
* @brief No flags defined.
*
* This member should not be used.
*/
SAI_ATTR_FLAGS_NONE = (0 << 0),

/**
* @brief Mandatory on create flag.
*
Expand Down
31 changes: 31 additions & 0 deletions meta/saisanitycheck.c
Original file line number Diff line number Diff line change
Expand Up @@ -6110,6 +6110,36 @@ void check_enum_flags_type(
META_ASSERT_FAIL("enum %s flags type %d not supported yet, FIXME", emd->name, emd->flagstype);
}

void check_enum_flag_zero(
_In_ const sai_enum_metadata_t* emd)
{
META_LOG_ENTER();

/*
* this check tests whether each strict flag has value at index 0 which
* enum value is zero (no flags defined) this will be handy during
* serialization of empty flags
*/

if (emd->flagstype != SAI_ENUM_FLAGS_TYPE_STRICT)
return;

/* enum contains strict flags */

if (emd->valuescount == 0)
{
META_ASSERT_FAIL("enum %s (flags strict) don't contain any values!", emd->name);
}

if (emd->values[0] != 0)
{
META_ASSERT_FAIL("enum %s (flags strict) value %s = %d at index 0 is not zero (no flags):",
emd->name,
emd->valuesnames[0],
emd->values[0]);
}
}

void check_single_enum(
_In_ const sai_enum_metadata_t* emd)
{
Expand All @@ -6121,6 +6151,7 @@ void check_single_enum(
check_enum_flags_type_ranges(emd);
check_enum_flags_type_free(emd);
check_enum_object_type(emd);
check_enum_flag_zero(emd);
}

void check_all_enums()
Expand Down
Loading