SAI Metadata
Loading...
Searching...
No Matches
SAI - Switch specific API definitions

Classes

struct  _sai_switch_api_t
 Switch method table retrieved with sai_api_query() More...
 

Macros

#define SAI_MAX_HARDWARE_ID_LEN   255
 Maximum Hardware ID Length.
 
#define SAI_MAX_FIRMWARE_PATH_NAME_LEN   PATH_MAX
 Maximum Firmware Path Name Length.
 
#define SAI_SWITCH_ATTR_MAX_KEY_STRING_LEN   64
 
#define SAI_SWITCH_ATTR_MAX_KEY_COUNT   16
 
#define SAI_KEY_FDB_TABLE_SIZE   "SAI_FDB_TABLE_SIZE"
 
#define SAI_KEY_L3_ROUTE_TABLE_SIZE   "SAI_L3_ROUTE_TABLE_SIZE"
 
#define SAI_KEY_L3_NEIGHBOR_TABLE_SIZE   "SAI_L3_NEIGHBOR_TABLE_SIZE"
 
#define SAI_KEY_NUM_LAG_MEMBERS   "SAI_NUM_LAG_MEMBERS"
 
#define SAI_KEY_NUM_LAGS   "SAI_NUM_LAGS"
 
#define SAI_KEY_NUM_ECMP_MEMBERS   "SAI_NUM_ECMP_MEMBERS"
 
#define SAI_KEY_NUM_ECMP_GROUPS   "SAI_NUM_ECMP_GROUPS"
 
#define SAI_KEY_NUM_UNICAST_QUEUES   "SAI_NUM_UNICAST_QUEUES"
 
#define SAI_KEY_NUM_MULTICAST_QUEUES   "SAI_NUM_MULTICAST_QUEUES"
 
#define SAI_KEY_NUM_QUEUES   "SAI_NUM_QUEUES"
 
#define SAI_KEY_NUM_CPU_QUEUES   "SAI_NUM_CPU_QUEUES"
 
#define SAI_KEY_INIT_CONFIG_FILE   "SAI_INIT_CONFIG_FILE"
 
#define SAI_KEY_BOOT_TYPE   "SAI_BOOT_TYPE"
 
#define SAI_KEY_WARM_BOOT_READ_FILE   "SAI_WARM_BOOT_READ_FILE"
 
#define SAI_KEY_WARM_BOOT_WRITE_FILE   "SAI_WARM_BOOT_WRITE_FILE"
 
#define SAI_KEY_HW_PORT_PROFILE_ID_CONFIG_FILE   "SAI_HW_PORT_PROFILE_ID_CONFIG_FILE"
 

Typedefs

typedef enum _sai_switch_oper_status_t sai_switch_oper_status_t
 Attribute data for SAI_SWITCH_ATTR_OPER_STATUS.
 
typedef enum _sai_packet_action_t sai_packet_action_t
 Attribute data for packet action.
 
typedef enum _sai_packet_vlan_t sai_packet_vlan_t
 Attribute data for number of vlan tags present in a packet.
 
typedef enum _sai_switch_switching_mode_t sai_switch_switching_mode_t
 Attribute data for SAI_SWITCH_ATTR_SWITCHING_MODE.
 
typedef enum _sai_hash_algorithm_t sai_hash_algorithm_t
 Attribute data for SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM and SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM.
 
typedef enum _sai_switch_restart_type_t sai_switch_restart_type_t
 Attribute data for SAI_SWITCH_ATTR_RESTART_TYPE.
 
typedef enum _sai_switch_mcast_snooping_capability_t sai_switch_mcast_snooping_capability_t
 Attribute data for SAI_SWITCH_ATTR_MCAST_SNOOPING_CAPABILITY.
 
typedef enum _sai_switch_hardware_access_bus_t sai_switch_hardware_access_bus_t
 Attribute data for SAI_SWITCH_ATTR_HARDWARE_ACCESS_BUS.
 
typedef enum _sai_switch_firmware_load_method_t sai_switch_firmware_load_method_t
 Attribute data for SAI_SWITCH_ATTR_FIRMWARE_LOAD_METHOD.
 
typedef enum _sai_switch_firmware_load_type_t sai_switch_firmware_load_type_t
 Attribute data for SAI_SWITCH_ATTR_FIRMWARE_LOAD_TYPE.
 
typedef enum _sai_switch_type_t sai_switch_type_t
 Attribute data for SAI_SWITCH_ATTR_TYPE.
 
typedef enum _sai_switch_failover_config_mode_t sai_switch_failover_config_mode_t
 Attribute data for SAI_SWITCH_ATTR_FAILOVER_CONFIG_MODE Used for Failover configuration mode In case of primary port failure, hitless enables the switch over to secondary port without losing link. It allows uninterrupted data transmission.
 
typedef enum _sai_tunnel_type_t sai_tunnel_type_t
 Defines tunnel type.
 
typedef enum _sai_tunnel_vxlan_udp_sport_mode_t sai_tunnel_vxlan_udp_sport_mode_t
 Defines VXLAN tunnel UDP source port mode.
 
typedef enum _sai_tunnel_encap_ecn_mode_t sai_tunnel_encap_ecn_mode_t
 Defines tunnel encap ECN mode.
 
typedef enum _sai_tunnel_decap_ecn_mode_t sai_tunnel_decap_ecn_mode_t
 Defines tunnel decap ECN mode.
 
typedef enum _sai_switch_tunnel_attr_t sai_switch_tunnel_attr_t
 Defines tunnel attributes at switch level. SAI_OBJECT_TYPE_SWITCH_TUNNEL object provides per tunnel type global configuration. SAI_OBJECT_TYPE_TUNNEL object configuration overrides the switch scoped global configuration.
 
typedef enum _sai_switch_hostif_oper_status_update_mode_t sai_switch_hostif_oper_status_update_mode_t
 Attribute data for SAI_SWITCH_ATTR_HOSTIF_OPER_STATUS_UPDATE_MODE.
 
typedef enum _sai_switch_attr_t sai_switch_attr_t
 Attribute Id in sai_set_switch_attribute() and sai_get_switch_attribute() calls.
 
typedef enum _sai_switch_asic_sdk_health_severity_t sai_switch_asic_sdk_health_severity_t
 Switch health event severity.
 
typedef enum _sai_switch_asic_sdk_health_category_t sai_switch_asic_sdk_health_category_t
 Switch health categories.
 
typedef enum _sai_switch_stat_t sai_switch_stat_t
 Switch counter IDs in sai_get_switch_stats() call.
 
typedef void(* sai_switch_asic_sdk_health_event_notification_fn) (_In_ sai_object_id_t switch_id, _In_ sai_switch_asic_sdk_health_severity_t severity, _In_ sai_timespec_t timestamp, _In_ sai_switch_asic_sdk_health_category_t category, _In_ sai_switch_health_data_t data, _In_ const sai_u8_list_t description)
 Switch health event callback.
 
typedef void(* sai_switch_shutdown_request_notification_fn) (_In_ sai_object_id_t switch_id)
 Switch shutdown request callback.
 
typedef void(* sai_switch_state_change_notification_fn) (_In_ sai_object_id_t switch_id, _In_ sai_switch_oper_status_t switch_oper_status)
 Switch operational state change notification.
 
typedef sai_status_t(* sai_switch_register_read_fn) (_In_ uint64_t platform_context, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _Out_ uint32_t *reg_val)
 Platform specific device register read access.
 
typedef sai_status_t(* sai_switch_register_write_fn) (_In_ uint64_t platform_context, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _In_ const uint32_t *reg_val)
 Platform specific device register write access.
 
typedef sai_status_t(* sai_switch_mdio_read_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _Out_ uint32_t *reg_val)
 Switch MDIO read API.
 
typedef sai_status_t(* sai_switch_mdio_write_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _In_ const uint32_t *reg_val)
 Switch MDIO write API.
 
typedef sai_status_t(* sai_switch_mdio_cl22_read_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _Out_ uint32_t *reg_val)
 Switch MDIO clause 22 read API.
 
typedef sai_status_t(* sai_switch_mdio_cl22_write_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _In_ const uint32_t *reg_val)
 Switch MDIO clause write API.
 
typedef sai_status_t(* sai_create_switch_fn) (_Out_ sai_object_id_t *switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create switch.
 
typedef sai_status_t(* sai_remove_switch_fn) (_In_ sai_object_id_t switch_id)
 Remove/disconnect Switch.
 
typedef sai_status_t(* sai_set_switch_attribute_fn) (_In_ sai_object_id_t switch_id, _In_ const sai_attribute_t *attr)
 Set switch attribute value.
 
typedef sai_status_t(* sai_get_switch_attribute_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get switch attribute value.
 
typedef sai_status_t(* sai_get_switch_stats_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
 Get switch statistics counters. Deprecated for backward compatibility.
 
typedef sai_status_t(* sai_get_switch_stats_ext_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _In_ sai_stats_mode_t mode, _Out_ uint64_t *counters)
 Get switch statistics counters extended.
 
typedef sai_status_t(* sai_clear_switch_stats_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
 Clear switch statistics counters.
 
typedef sai_status_t(* sai_create_switch_tunnel_fn) (_Out_ sai_object_id_t *switch_tunnel_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create switch scoped tunnel.
 
typedef sai_status_t(* sai_remove_switch_tunnel_fn) (_In_ sai_object_id_t switch_tunnel_id)
 Remove/disconnect Switch scope tunnel.
 
typedef sai_status_t(* sai_set_switch_tunnel_attribute_fn) (_In_ sai_object_id_t switch_tunnel_id, _In_ const sai_attribute_t *attr)
 Set switch scoped tunnel attribute value.
 
typedef sai_status_t(* sai_get_switch_tunnel_attribute_fn) (_In_ sai_object_id_t switch_tunnel_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get switch scoped tunnel attribute value.
 
typedef struct _sai_switch_api_t sai_switch_api_t
 Switch method table retrieved with sai_api_query()
 

Enumerations

enum  _sai_switch_oper_status_t { SAI_SWITCH_OPER_STATUS_UNKNOWN , SAI_SWITCH_OPER_STATUS_UP , SAI_SWITCH_OPER_STATUS_DOWN , SAI_SWITCH_OPER_STATUS_FAILED }
 Attribute data for SAI_SWITCH_ATTR_OPER_STATUS. More...
 
enum  _sai_packet_action_t {
  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 ,
  SAI_PACKET_ACTION_DONOTDROP
}
 Attribute data for packet action. More...
 
enum  _sai_packet_vlan_t { SAI_PACKET_VLAN_UNTAG , SAI_PACKET_VLAN_SINGLE_OUTER_TAG , SAI_PACKET_VLAN_DOUBLE_TAG }
 Attribute data for number of vlan tags present in a packet. More...
 
enum  _sai_switch_switching_mode_t { SAI_SWITCH_SWITCHING_MODE_CUT_THROUGH , SAI_SWITCH_SWITCHING_MODE_STORE_AND_FORWARD }
 Attribute data for SAI_SWITCH_ATTR_SWITCHING_MODE. More...
 
enum  _sai_hash_algorithm_t {
  SAI_HASH_ALGORITHM_CRC = 0 , SAI_HASH_ALGORITHM_XOR = 1 , SAI_HASH_ALGORITHM_RANDOM = 2 , SAI_HASH_ALGORITHM_CRC_32LO = 3 ,
  SAI_HASH_ALGORITHM_CRC_32HI = 4 , SAI_HASH_ALGORITHM_CRC_CCITT = 5 , SAI_HASH_ALGORITHM_CRC_XOR = 6
}
 Attribute data for SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM and SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM. More...
 
enum  _sai_switch_restart_type_t { SAI_SWITCH_RESTART_TYPE_NONE = 0 , SAI_SWITCH_RESTART_TYPE_PLANNED = 1 , SAI_SWITCH_RESTART_TYPE_ANY = 2 }
 Attribute data for SAI_SWITCH_ATTR_RESTART_TYPE. More...
 
enum  _sai_switch_mcast_snooping_capability_t { SAI_SWITCH_MCAST_SNOOPING_CAPABILITY_NONE = 0 , SAI_SWITCH_MCAST_SNOOPING_CAPABILITY_XG = 1 , SAI_SWITCH_MCAST_SNOOPING_CAPABILITY_SG = 2 , SAI_SWITCH_MCAST_SNOOPING_CAPABILITY_XG_AND_SG = 3 }
 Attribute data for SAI_SWITCH_ATTR_MCAST_SNOOPING_CAPABILITY. More...
 
enum  _sai_switch_hardware_access_bus_t { SAI_SWITCH_HARDWARE_ACCESS_BUS_MDIO , SAI_SWITCH_HARDWARE_ACCESS_BUS_I2C , SAI_SWITCH_HARDWARE_ACCESS_BUS_CPLD }
 Attribute data for SAI_SWITCH_ATTR_HARDWARE_ACCESS_BUS. More...
 
enum  _sai_switch_firmware_load_method_t { SAI_SWITCH_FIRMWARE_LOAD_METHOD_NONE , SAI_SWITCH_FIRMWARE_LOAD_METHOD_INTERNAL , SAI_SWITCH_FIRMWARE_LOAD_METHOD_EEPROM }
 Attribute data for SAI_SWITCH_ATTR_FIRMWARE_LOAD_METHOD. More...
 
enum  _sai_switch_firmware_load_type_t { SAI_SWITCH_FIRMWARE_LOAD_TYPE_SKIP , SAI_SWITCH_FIRMWARE_LOAD_TYPE_FORCE , SAI_SWITCH_FIRMWARE_LOAD_TYPE_AUTO }
 Attribute data for SAI_SWITCH_ATTR_FIRMWARE_LOAD_TYPE. More...
 
enum  _sai_switch_type_t { SAI_SWITCH_TYPE_NPU , SAI_SWITCH_TYPE_PHY , SAI_SWITCH_TYPE_VOQ , SAI_SWITCH_TYPE_FABRIC }
 Attribute data for SAI_SWITCH_ATTR_TYPE. More...
 
enum  _sai_switch_failover_config_mode_t { SAI_SWITCH_FAILOVER_CONFIG_MODE_NO_HITLESS , SAI_SWITCH_FAILOVER_CONFIG_MODE_HITLESS }
 Attribute data for SAI_SWITCH_ATTR_FAILOVER_CONFIG_MODE Used for Failover configuration mode In case of primary port failure, hitless enables the switch over to secondary port without losing link. It allows uninterrupted data transmission. More...
 
enum  _sai_tunnel_type_t {
  SAI_TUNNEL_TYPE_IPINIP , SAI_TUNNEL_TYPE_IPINIP_GRE , SAI_TUNNEL_TYPE_VXLAN , SAI_TUNNEL_TYPE_MPLS ,
  SAI_TUNNEL_TYPE_SRV6 , SAI_TUNNEL_TYPE_NVGRE , SAI_TUNNEL_TYPE_IPINIP_ESP , SAI_TUNNEL_TYPE_IPINIP_UDP_ESP ,
  SAI_TUNNEL_TYPE_VXLAN_UDP_ESP
}
 Defines tunnel type. More...
 
enum  _sai_tunnel_vxlan_udp_sport_mode_t { SAI_TUNNEL_VXLAN_UDP_SPORT_MODE_USER_DEFINED , SAI_TUNNEL_VXLAN_UDP_SPORT_MODE_EPHEMERAL }
 Defines VXLAN tunnel UDP source port mode. More...
 
enum  _sai_tunnel_encap_ecn_mode_t { SAI_TUNNEL_ENCAP_ECN_MODE_STANDARD , SAI_TUNNEL_ENCAP_ECN_MODE_USER_DEFINED }
 Defines tunnel encap ECN mode. More...
 
enum  _sai_tunnel_decap_ecn_mode_t { SAI_TUNNEL_DECAP_ECN_MODE_STANDARD , SAI_TUNNEL_DECAP_ECN_MODE_COPY_FROM_OUTER , SAI_TUNNEL_DECAP_ECN_MODE_USER_DEFINED }
 Defines tunnel decap ECN mode. More...
 
enum  _sai_switch_tunnel_attr_t {
  SAI_SWITCH_TUNNEL_ATTR_START , SAI_SWITCH_TUNNEL_ATTR_TUNNEL_TYPE = SAI_SWITCH_TUNNEL_ATTR_START , SAI_SWITCH_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION , SAI_SWITCH_TUNNEL_ATTR_TUNNEL_ENCAP_ECN_MODE ,
  SAI_SWITCH_TUNNEL_ATTR_ENCAP_MAPPERS , SAI_SWITCH_TUNNEL_ATTR_TUNNEL_DECAP_ECN_MODE , SAI_SWITCH_TUNNEL_ATTR_DECAP_MAPPERS , SAI_SWITCH_TUNNEL_ATTR_TUNNEL_VXLAN_UDP_SPORT_MODE ,
  SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT , SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK , SAI_SWITCH_TUNNEL_ATTR_ENCAP_QOS_TC_AND_COLOR_TO_DSCP_MAP , SAI_SWITCH_TUNNEL_ATTR_ENCAP_QOS_TC_TO_QUEUE_MAP ,
  SAI_SWITCH_TUNNEL_ATTR_DECAP_QOS_DSCP_TO_TC_MAP , SAI_SWITCH_TUNNEL_ATTR_DECAP_QOS_TC_TO_PRIORITY_GROUP_MAP , SAI_SWITCH_TUNNEL_ATTR_END , SAI_SWITCH_TUNNEL_ATTR_CUSTOM_RANGE_START = 0x10000000 ,
  SAI_SWITCH_TUNNEL_ATTR_CUSTOM_RANGE_END
}
 Defines tunnel attributes at switch level. SAI_OBJECT_TYPE_SWITCH_TUNNEL object provides per tunnel type global configuration. SAI_OBJECT_TYPE_TUNNEL object configuration overrides the switch scoped global configuration. More...
 
enum  _sai_switch_hostif_oper_status_update_mode_t { SAI_SWITCH_HOSTIF_OPER_STATUS_UPDATE_MODE_APPLICATION = 0 , SAI_SWITCH_HOSTIF_OPER_STATUS_UPDATE_MODE_SAI_ADAPTER = 1 }
 Attribute data for SAI_SWITCH_ATTR_HOSTIF_OPER_STATUS_UPDATE_MODE. More...
 
enum  _sai_switch_attr_t {
  SAI_SWITCH_ATTR_START , SAI_SWITCH_ATTR_NUMBER_OF_ACTIVE_PORTS = SAI_SWITCH_ATTR_START , SAI_SWITCH_ATTR_PORT_NUMBER = SAI_SWITCH_ATTR_NUMBER_OF_ACTIVE_PORTS , SAI_SWITCH_ATTR_MAX_NUMBER_OF_SUPPORTED_PORTS ,
  SAI_SWITCH_ATTR_PORT_LIST , SAI_SWITCH_ATTR_PORT_MAX_MTU , SAI_SWITCH_ATTR_CPU_PORT , SAI_SWITCH_ATTR_MAX_VIRTUAL_ROUTERS ,
  SAI_SWITCH_ATTR_FDB_TABLE_SIZE , SAI_SWITCH_ATTR_L3_NEIGHBOR_TABLE_SIZE , SAI_SWITCH_ATTR_L3_ROUTE_TABLE_SIZE , SAI_SWITCH_ATTR_LAG_MEMBERS ,
  SAI_SWITCH_ATTR_NUMBER_OF_LAGS , SAI_SWITCH_ATTR_ECMP_MEMBERS , SAI_SWITCH_ATTR_NUMBER_OF_ECMP_GROUPS , SAI_SWITCH_ATTR_NUMBER_OF_UNICAST_QUEUES ,
  SAI_SWITCH_ATTR_NUMBER_OF_MULTICAST_QUEUES , SAI_SWITCH_ATTR_NUMBER_OF_QUEUES , SAI_SWITCH_ATTR_NUMBER_OF_CPU_QUEUES , SAI_SWITCH_ATTR_ON_LINK_ROUTE_SUPPORTED ,
  SAI_SWITCH_ATTR_OPER_STATUS , SAI_SWITCH_ATTR_MAX_NUMBER_OF_TEMP_SENSORS , SAI_SWITCH_ATTR_TEMP_LIST , SAI_SWITCH_ATTR_MAX_TEMP ,
  SAI_SWITCH_ATTR_AVERAGE_TEMP , SAI_SWITCH_ATTR_ACL_TABLE_MINIMUM_PRIORITY , SAI_SWITCH_ATTR_ACL_TABLE_MAXIMUM_PRIORITY , SAI_SWITCH_ATTR_ACL_ENTRY_MINIMUM_PRIORITY ,
  SAI_SWITCH_ATTR_ACL_ENTRY_MAXIMUM_PRIORITY , SAI_SWITCH_ATTR_ACL_TABLE_GROUP_MINIMUM_PRIORITY , SAI_SWITCH_ATTR_ACL_TABLE_GROUP_MAXIMUM_PRIORITY , SAI_SWITCH_ATTR_FDB_DST_USER_META_DATA_RANGE ,
  SAI_SWITCH_ATTR_ROUTE_DST_USER_META_DATA_RANGE , SAI_SWITCH_ATTR_NEIGHBOR_DST_USER_META_DATA_RANGE , SAI_SWITCH_ATTR_PORT_USER_META_DATA_RANGE , SAI_SWITCH_ATTR_VLAN_USER_META_DATA_RANGE ,
  SAI_SWITCH_ATTR_ACL_USER_META_DATA_RANGE , SAI_SWITCH_ATTR_ACL_USER_TRAP_ID_RANGE , SAI_SWITCH_ATTR_DEFAULT_VLAN_ID , SAI_SWITCH_ATTR_DEFAULT_STP_INST_ID ,
  SAI_SWITCH_ATTR_MAX_STP_INSTANCE , SAI_SWITCH_ATTR_DEFAULT_VIRTUAL_ROUTER_ID , SAI_SWITCH_ATTR_DEFAULT_OVERRIDE_VIRTUAL_ROUTER_ID , SAI_SWITCH_ATTR_DEFAULT_1Q_BRIDGE_ID ,
  SAI_SWITCH_ATTR_INGRESS_ACL , SAI_SWITCH_ATTR_EGRESS_ACL , SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_TRAFFIC_CLASSES , SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUP_HIERARCHY_LEVELS ,
  SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUPS_PER_HIERARCHY_LEVEL , SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_CHILDS_PER_SCHEDULER_GROUP , SAI_SWITCH_ATTR_TOTAL_BUFFER_SIZE , SAI_SWITCH_ATTR_INGRESS_BUFFER_POOL_NUM ,
  SAI_SWITCH_ATTR_EGRESS_BUFFER_POOL_NUM , SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY ,
  SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY ,
  SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_L2MC_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_IPMC_ENTRY ,
  SAI_SWITCH_ATTR_AVAILABLE_SNAT_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_DNAT_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_DOUBLE_NAT_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_ACL_TABLE ,
  SAI_SWITCH_ATTR_AVAILABLE_ACL_TABLE_GROUP , SAI_SWITCH_ATTR_AVAILABLE_MY_SID_ENTRY , SAI_SWITCH_ATTR_DEFAULT_TRAP_GROUP , SAI_SWITCH_ATTR_ECMP_HASH ,
  SAI_SWITCH_ATTR_LAG_HASH , SAI_SWITCH_ATTR_RESTART_WARM , SAI_SWITCH_ATTR_WARM_RECOVER , SAI_SWITCH_ATTR_RESTART_TYPE ,
  SAI_SWITCH_ATTR_MIN_PLANNED_RESTART_INTERVAL , SAI_SWITCH_ATTR_NV_STORAGE_SIZE , SAI_SWITCH_ATTR_MAX_ACL_ACTION_COUNT , SAI_SWITCH_ATTR_MAX_ACL_RANGE_COUNT ,
  SAI_SWITCH_ATTR_ACL_CAPABILITY , SAI_SWITCH_ATTR_MCAST_SNOOPING_CAPABILITY , SAI_SWITCH_ATTR_SWITCHING_MODE , SAI_SWITCH_ATTR_BCAST_CPU_FLOOD_ENABLE ,
  SAI_SWITCH_ATTR_MCAST_CPU_FLOOD_ENABLE , SAI_SWITCH_ATTR_SRC_MAC_ADDRESS , SAI_SWITCH_ATTR_MAX_LEARNED_ADDRESSES , SAI_SWITCH_ATTR_FDB_AGING_TIME ,
  SAI_SWITCH_ATTR_FDB_UNICAST_MISS_PACKET_ACTION , SAI_SWITCH_ATTR_FDB_BROADCAST_MISS_PACKET_ACTION , SAI_SWITCH_ATTR_FDB_MULTICAST_MISS_PACKET_ACTION , SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM ,
  SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_SEED , SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_OFFSET , SAI_SWITCH_ATTR_ECMP_DEFAULT_SYMMETRIC_HASH , SAI_SWITCH_ATTR_ECMP_HASH_IPV4 ,
  SAI_SWITCH_ATTR_ECMP_HASH_IPV4_IN_IPV4 , SAI_SWITCH_ATTR_ECMP_HASH_IPV6 , SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM , SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_SEED ,
  SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_OFFSET , SAI_SWITCH_ATTR_LAG_DEFAULT_SYMMETRIC_HASH , SAI_SWITCH_ATTR_LAG_HASH_IPV4 , SAI_SWITCH_ATTR_LAG_HASH_IPV4_IN_IPV4 ,
  SAI_SWITCH_ATTR_LAG_HASH_IPV6 , SAI_SWITCH_ATTR_COUNTER_REFRESH_INTERVAL , SAI_SWITCH_ATTR_QOS_DEFAULT_TC , SAI_SWITCH_ATTR_QOS_DOT1P_TO_TC_MAP ,
  SAI_SWITCH_ATTR_QOS_DOT1P_TO_COLOR_MAP , SAI_SWITCH_ATTR_QOS_DSCP_TO_TC_MAP , SAI_SWITCH_ATTR_QOS_DSCP_TO_COLOR_MAP , SAI_SWITCH_ATTR_QOS_TC_TO_QUEUE_MAP ,
  SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP , SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP , SAI_SWITCH_ATTR_SWITCH_SHELL_ENABLE , SAI_SWITCH_ATTR_SWITCH_PROFILE_ID ,
  SAI_SWITCH_ATTR_SWITCH_HARDWARE_INFO , SAI_SWITCH_ATTR_FIRMWARE_PATH_NAME , SAI_SWITCH_ATTR_INIT_SWITCH , SAI_SWITCH_ATTR_SWITCH_STATE_CHANGE_NOTIFY ,
  SAI_SWITCH_ATTR_SWITCH_SHUTDOWN_REQUEST_NOTIFY , SAI_SWITCH_ATTR_SHUTDOWN_REQUEST_NOTIFY = SAI_SWITCH_ATTR_SWITCH_SHUTDOWN_REQUEST_NOTIFY , SAI_SWITCH_ATTR_FDB_EVENT_NOTIFY , SAI_SWITCH_ATTR_PORT_STATE_CHANGE_NOTIFY ,
  SAI_SWITCH_ATTR_PACKET_EVENT_NOTIFY , SAI_SWITCH_ATTR_FAST_API_ENABLE , SAI_SWITCH_ATTR_MIRROR_TC , SAI_SWITCH_ATTR_ACL_STAGE_INGRESS ,
  SAI_SWITCH_ATTR_ACL_STAGE_EGRESS , SAI_SWITCH_ATTR_SRV6_MAX_SID_DEPTH , SAI_SWITCH_ATTR_SRV6_TLV_TYPE , SAI_SWITCH_ATTR_QOS_NUM_LOSSLESS_QUEUES ,
  SAI_SWITCH_ATTR_QUEUE_PFC_DEADLOCK_NOTIFY , SAI_SWITCH_ATTR_PFC_DLR_PACKET_ACTION , SAI_SWITCH_ATTR_PFC_TC_DLD_INTERVAL_RANGE , SAI_SWITCH_ATTR_PFC_TC_DLD_INTERVAL ,
  SAI_SWITCH_ATTR_PFC_TC_DLR_INTERVAL_RANGE , SAI_SWITCH_ATTR_PFC_TC_DLR_INTERVAL , SAI_SWITCH_ATTR_SUPPORTED_PROTECTED_OBJECT_TYPE , SAI_SWITCH_ATTR_TPID_OUTER_VLAN ,
  SAI_SWITCH_ATTR_TPID_INNER_VLAN , SAI_SWITCH_ATTR_CRC_CHECK_ENABLE , SAI_SWITCH_ATTR_CRC_RECALCULATION_ENABLE , SAI_SWITCH_ATTR_BFD_SESSION_STATE_CHANGE_NOTIFY ,
  SAI_SWITCH_ATTR_NUMBER_OF_BFD_SESSION , SAI_SWITCH_ATTR_MAX_BFD_SESSION , SAI_SWITCH_ATTR_SUPPORTED_IPV4_BFD_SESSION_OFFLOAD_TYPE , SAI_SWITCH_ATTR_SUPPORTED_IPV6_BFD_SESSION_OFFLOAD_TYPE ,
  SAI_SWITCH_ATTR_MIN_BFD_RX , SAI_SWITCH_ATTR_MIN_BFD_TX , SAI_SWITCH_ATTR_ECN_ECT_THRESHOLD_ENABLE , SAI_SWITCH_ATTR_VXLAN_DEFAULT_ROUTER_MAC ,
  SAI_SWITCH_ATTR_VXLAN_DEFAULT_PORT , SAI_SWITCH_ATTR_MAX_MIRROR_SESSION , SAI_SWITCH_ATTR_MAX_SAMPLED_MIRROR_SESSION , SAI_SWITCH_ATTR_SUPPORTED_EXTENDED_STATS_MODE ,
  SAI_SWITCH_ATTR_UNINIT_DATA_PLANE_ON_REMOVAL , SAI_SWITCH_ATTR_TAM_OBJECT_ID , SAI_SWITCH_ATTR_TAM_EVENT_NOTIFY , SAI_SWITCH_ATTR_SUPPORTED_OBJECT_TYPE_LIST ,
  SAI_SWITCH_ATTR_PRE_SHUTDOWN , SAI_SWITCH_ATTR_NAT_ZONE_COUNTER_OBJECT_ID , SAI_SWITCH_ATTR_NAT_ENABLE , SAI_SWITCH_ATTR_HARDWARE_ACCESS_BUS ,
  SAI_SWITCH_ATTR_PLATFROM_CONTEXT , SAI_SWITCH_ATTR_REGISTER_READ , SAI_SWITCH_ATTR_REGISTER_WRITE , SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_BROADCAST ,
  SAI_SWITCH_ATTR_FIRMWARE_LOAD_METHOD , SAI_SWITCH_ATTR_FIRMWARE_LOAD_TYPE , SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_EXECUTE , SAI_SWITCH_ATTR_FIRMWARE_BROADCAST_STOP ,
  SAI_SWITCH_ATTR_FIRMWARE_VERIFY_AND_INIT_SWITCH , SAI_SWITCH_ATTR_FIRMWARE_STATUS , SAI_SWITCH_ATTR_FIRMWARE_MAJOR_VERSION , SAI_SWITCH_ATTR_FIRMWARE_MINOR_VERSION ,
  SAI_SWITCH_ATTR_PORT_CONNECTOR_LIST , SAI_SWITCH_ATTR_PROPOGATE_PORT_STATE_FROM_LINE_TO_SYSTEM_PORT_SUPPORT , SAI_SWITCH_ATTR_TYPE , SAI_SWITCH_ATTR_MACSEC_OBJECT_LIST ,
  SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_TC_MAP , SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP , SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP , SAI_SWITCH_ATTR_SWITCH_ID ,
  SAI_SWITCH_ATTR_MAX_SYSTEM_CORES , SAI_SWITCH_ATTR_SYSTEM_PORT_CONFIG_LIST , SAI_SWITCH_ATTR_NUMBER_OF_SYSTEM_PORTS , SAI_SWITCH_ATTR_SYSTEM_PORT_LIST ,
  SAI_SWITCH_ATTR_NUMBER_OF_FABRIC_PORTS , SAI_SWITCH_ATTR_FABRIC_PORT_LIST , SAI_SWITCH_ATTR_PACKET_DMA_MEMORY_POOL_SIZE , SAI_SWITCH_ATTR_FAILOVER_CONFIG_MODE ,
  SAI_SWITCH_ATTR_SUPPORTED_FAILOVER_MODE , SAI_SWITCH_ATTR_TUNNEL_OBJECTS_LIST , SAI_SWITCH_ATTR_PACKET_AVAILABLE_DMA_MEMORY_POOL_SIZE , SAI_SWITCH_ATTR_PRE_INGRESS_ACL ,
  SAI_SWITCH_ATTR_AVAILABLE_SNAPT_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_DNAPT_ENTRY , SAI_SWITCH_ATTR_AVAILABLE_DOUBLE_NAPT_ENTRY , SAI_SWITCH_ATTR_SLAVE_MDIO_ADDR_LIST ,
  SAI_SWITCH_ATTR_MY_MAC_TABLE_MINIMUM_PRIORITY , SAI_SWITCH_ATTR_MY_MAC_TABLE_MAXIMUM_PRIORITY , SAI_SWITCH_ATTR_MY_MAC_LIST , SAI_SWITCH_ATTR_INSTALLED_MY_MAC_ENTRIES ,
  SAI_SWITCH_ATTR_AVAILABLE_MY_MAC_ENTRIES , SAI_SWITCH_ATTR_MAX_NUMBER_OF_FORWARDING_CLASSES , SAI_SWITCH_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP , SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP ,
  SAI_SWITCH_ATTR_IPSEC_OBJECT_ID , SAI_SWITCH_ATTR_IPSEC_SA_TAG_TPID , SAI_SWITCH_ATTR_IPSEC_SA_STATUS_CHANGE_NOTIFY , SAI_SWITCH_ATTR_NAT_EVENT_NOTIFY ,
  SAI_SWITCH_ATTR_MAX_ECMP_MEMBER_COUNT , SAI_SWITCH_ATTR_ECMP_MEMBER_COUNT , SAI_SWITCH_ATTR_ARS_PROFILE , SAI_SWITCH_ATTR_ACL_STAGE_POST_INGRESS ,
  SAI_SWITCH_ATTR_CREDIT_WD , SAI_SWITCH_ATTR_CREDIT_WD_TIMER , SAI_SWITCH_ATTR_SWITCH_ISOLATE , SAI_SWITCH_ATTR_HOSTIF_OPER_STATUS_UPDATE_MODE ,
  SAI_SWITCH_ATTR_SWITCH_ASIC_SDK_HEALTH_EVENT_NOTIFY , SAI_SWITCH_ATTR_REG_FATAL_SWITCH_ASIC_SDK_HEALTH_CATEGORY , SAI_SWITCH_ATTR_REG_WARNING_SWITCH_ASIC_SDK_HEALTH_CATEGORY , SAI_SWITCH_ATTR_REG_NOTICE_SWITCH_ASIC_SDK_HEALTH_CATEGORY ,
  SAI_SWITCH_ATTR_ACL_CHAIN_LIST , SAI_SWITCH_ATTR_PORT_HOST_TX_READY_NOTIFY , SAI_SWITCH_ATTR_TUNNEL_TERM_TABLE_ENTRY_MINIMUM_PRIORITY , SAI_SWITCH_ATTR_TUNNEL_TERM_TABLE_ENTRY_MAXIMUM_PRIORITY ,
  SAI_SWITCH_ATTR_TWAMP_SESSION_EVENT_NOTIFY , SAI_SWITCH_ATTR_AVAILABLE_TWAMP_SESSION , SAI_SWITCH_ATTR_MAX_TWAMP_SESSION , SAI_SWITCH_ATTR_AVAILABLE_IP_NEXT_HOP_GROUP_MEMBER_ENTRY ,
  SAI_SWITCH_ATTR_AVAILABLE_SYSTEM_VOQS , SAI_SWITCH_ATTR_END , SAI_SWITCH_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_SWITCH_ATTR_CUSTOM_RANGE_END
}
 Attribute Id in sai_set_switch_attribute() and sai_get_switch_attribute() calls. More...
 
enum  _sai_switch_asic_sdk_health_severity_t { SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_FATAL , SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_WARNING , SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_NOTICE }
 Switch health event severity. More...
 
enum  _sai_switch_asic_sdk_health_category_t { SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_SW , SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_FW , SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_CPU_HW , SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_ASIC_HW }
 Switch health categories. More...
 
enum  _sai_switch_stat_t {
  SAI_SWITCH_STAT_IN_DROP_REASON_RANGE_BASE = 0x00001000 , SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS = SAI_SWITCH_STAT_IN_DROP_REASON_RANGE_BASE , SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS , SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS ,
  SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS , SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS , SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS , SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS ,
  SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS , SAI_SWITCH_STAT_IN_DROP_REASON_RANGE_END = 0x00001fff , SAI_SWITCH_STAT_OUT_DROP_REASON_RANGE_BASE = 0x00002000 , SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS = SAI_SWITCH_STAT_OUT_DROP_REASON_RANGE_BASE ,
  SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS , SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS , SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS , SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS ,
  SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS , SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS , SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS , SAI_SWITCH_STAT_OUT_DROP_REASON_RANGE_END = 0x00002fff ,
  SAI_SWITCH_STAT_FABRIC_DROP_REASON_RANGE_BASE = 0x00003000 , SAI_SWITCH_STAT_ECC_DROP = SAI_SWITCH_STAT_FABRIC_DROP_REASON_RANGE_BASE , SAI_SWITCH_STAT_REACHABILITY_DROP , SAI_SWITCH_STAT_HIGHEST_QUEUE_CONGESTION_LEVEL ,
  SAI_SWITCH_STAT_GLOBAL_DROP , SAI_SWITCH_STAT_PACKET_INTEGRITY_DROP , SAI_SWITCH_STAT_FABRIC_DROP_REASON_RANGE_END = 0x00003fff
}
 Switch counter IDs in sai_get_switch_stats() call. More...
 

Detailed Description

Macro Definition Documentation

◆ SAI_KEY_BOOT_TYPE

#define SAI_KEY_BOOT_TYPE   "SAI_BOOT_TYPE"

0: cold boot. Initialize NPU and external phys. 1: warm boot. Do not re-initialize NPU or external phys, reconstruct SAI/SDK state from stored state. 2: fast boot. Only initialize NPU. SAI/SDK state should not be persisted except for those related to physical port attributes such as SPEED, AUTONEG mode, admin state, operational status.

Definition at line 3228 of file saiswitch.h.

◆ SAI_KEY_FDB_TABLE_SIZE

#define SAI_KEY_FDB_TABLE_SIZE   "SAI_FDB_TABLE_SIZE"

Definition at line 3163 of file saiswitch.h.

◆ SAI_KEY_HW_PORT_PROFILE_ID_CONFIG_FILE

#define SAI_KEY_HW_PORT_PROFILE_ID_CONFIG_FILE   "SAI_HW_PORT_PROFILE_ID_CONFIG_FILE"

Vendor specific Configuration file for Hardware Port Profile ID parameters. HW port profile ID can be used to set vendor specific port attributes based on the transceiver type plugged in to the port

Definition at line 3248 of file saiswitch.h.

◆ SAI_KEY_INIT_CONFIG_FILE

#define SAI_KEY_INIT_CONFIG_FILE   "SAI_INIT_CONFIG_FILE"

Definition at line 3218 of file saiswitch.h.

◆ SAI_KEY_L3_NEIGHBOR_TABLE_SIZE

#define SAI_KEY_L3_NEIGHBOR_TABLE_SIZE   "SAI_L3_NEIGHBOR_TABLE_SIZE"

Definition at line 3173 of file saiswitch.h.

◆ SAI_KEY_L3_ROUTE_TABLE_SIZE

#define SAI_KEY_L3_ROUTE_TABLE_SIZE   "SAI_L3_ROUTE_TABLE_SIZE"

Definition at line 3168 of file saiswitch.h.

◆ SAI_KEY_NUM_CPU_QUEUES

#define SAI_KEY_NUM_CPU_QUEUES   "SAI_NUM_CPU_QUEUES"

Definition at line 3213 of file saiswitch.h.

◆ SAI_KEY_NUM_ECMP_GROUPS

#define SAI_KEY_NUM_ECMP_GROUPS   "SAI_NUM_ECMP_GROUPS"

Definition at line 3193 of file saiswitch.h.

◆ SAI_KEY_NUM_ECMP_MEMBERS

#define SAI_KEY_NUM_ECMP_MEMBERS   "SAI_NUM_ECMP_MEMBERS"

Definition at line 3188 of file saiswitch.h.

◆ SAI_KEY_NUM_LAG_MEMBERS

#define SAI_KEY_NUM_LAG_MEMBERS   "SAI_NUM_LAG_MEMBERS"

Definition at line 3178 of file saiswitch.h.

◆ SAI_KEY_NUM_LAGS

#define SAI_KEY_NUM_LAGS   "SAI_NUM_LAGS"

Definition at line 3183 of file saiswitch.h.

◆ SAI_KEY_NUM_MULTICAST_QUEUES

#define SAI_KEY_NUM_MULTICAST_QUEUES   "SAI_NUM_MULTICAST_QUEUES"

Definition at line 3203 of file saiswitch.h.

◆ SAI_KEY_NUM_QUEUES

#define SAI_KEY_NUM_QUEUES   "SAI_NUM_QUEUES"

Definition at line 3208 of file saiswitch.h.

◆ SAI_KEY_NUM_UNICAST_QUEUES

#define SAI_KEY_NUM_UNICAST_QUEUES   "SAI_NUM_UNICAST_QUEUES"

Definition at line 3198 of file saiswitch.h.

◆ SAI_KEY_WARM_BOOT_READ_FILE

#define SAI_KEY_WARM_BOOT_READ_FILE   "SAI_WARM_BOOT_READ_FILE"

The file to recover SAI/NPU state from

Definition at line 3234 of file saiswitch.h.

◆ SAI_KEY_WARM_BOOT_WRITE_FILE

#define SAI_KEY_WARM_BOOT_WRITE_FILE   "SAI_WARM_BOOT_WRITE_FILE"

The file to write SAI/NPU state to

Definition at line 3240 of file saiswitch.h.

◆ SAI_MAX_FIRMWARE_PATH_NAME_LEN

#define SAI_MAX_FIRMWARE_PATH_NAME_LEN   PATH_MAX

Maximum Firmware Path Name Length.

Definition at line 44 of file saiswitch.h.

◆ SAI_MAX_HARDWARE_ID_LEN

#define SAI_MAX_HARDWARE_ID_LEN   255

Maximum Hardware ID Length.

Definition at line 39 of file saiswitch.h.

◆ SAI_SWITCH_ATTR_MAX_KEY_COUNT

#define SAI_SWITCH_ATTR_MAX_KEY_COUNT   16

Maximum count of switch attribute keys

Note
This value needs to be incremented whenever a new switch attribute key is added.

Definition at line 3154 of file saiswitch.h.

◆ SAI_SWITCH_ATTR_MAX_KEY_STRING_LEN

#define SAI_SWITCH_ATTR_MAX_KEY_STRING_LEN   64

Maximum length of switch attribute key string that can be set using key=value

Definition at line 3145 of file saiswitch.h.

Typedef Documentation

◆ sai_clear_switch_stats_fn

typedef sai_status_t(* sai_clear_switch_stats_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)

Clear switch statistics counters.

Parameters
[in]switch_idSwitch id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 3534 of file saiswitch.h.

◆ sai_create_switch_fn

typedef sai_status_t(* sai_create_switch_fn) (_Out_ sai_object_id_t *switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Create switch.

SDK initialization/connect to SDK. After the call the capability attributes should be ready for retrieval via sai_get_switch_attribute(). Same Switch Object id should be given for create/connect for each NPU.

Parameters
[out]switch_idThe Switch Object ID
[in]attr_countNumber of attributes
[in]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 3448 of file saiswitch.h.

◆ sai_create_switch_tunnel_fn

typedef sai_status_t(* sai_create_switch_tunnel_fn) (_Out_ sai_object_id_t *switch_tunnel_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Create switch scoped tunnel.

Parameters
[out]switch_tunnel_idThe Switch Tunnel Object ID
[in]switch_idSwitch id
[in]attr_countNumber of attributes
[in]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 3549 of file saiswitch.h.

◆ sai_get_switch_attribute_fn

typedef sai_status_t(* sai_get_switch_attribute_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get switch attribute value.

Parameters
[in]switch_idSwitch id
[in]attr_countNumber of attributes
[in,out]attr_listArray of switch attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 3486 of file saiswitch.h.

◆ sai_get_switch_stats_ext_fn

typedef sai_status_t(* sai_get_switch_stats_ext_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _In_ sai_stats_mode_t mode, _Out_ uint64_t *counters)

Get switch statistics counters extended.

Parameters
[in]switch_idSwitch id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
[in]modeStatistics mode
[out]countersArray of resulting counter values.
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 3518 of file saiswitch.h.

◆ sai_get_switch_stats_fn

typedef sai_status_t(* sai_get_switch_stats_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)

Get switch statistics counters. Deprecated for backward compatibility.

Parameters
[in]switch_idSwitch id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
[out]countersArray of resulting counter values.
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 3501 of file saiswitch.h.

◆ sai_get_switch_tunnel_attribute_fn

typedef sai_status_t(* sai_get_switch_tunnel_attribute_fn) (_In_ sai_object_id_t switch_tunnel_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get switch scoped tunnel attribute value.

Parameters
[in]switch_tunnel_idSwitch Tunnel id
[in]attr_countNumber of attributes
[in,out]attr_listArray of switch tunnel attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 3588 of file saiswitch.h.

◆ sai_remove_switch_fn

typedef sai_status_t(* sai_remove_switch_fn) (_In_ sai_object_id_t switch_id)

Remove/disconnect Switch.

Release all resources associated with currently opened switch

Parameters
[in]switch_idThe Switch id
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 3462 of file saiswitch.h.

◆ sai_remove_switch_tunnel_fn

typedef sai_status_t(* sai_remove_switch_tunnel_fn) (_In_ sai_object_id_t switch_tunnel_id)

Remove/disconnect Switch scope tunnel.

Release all resources associated with currently opened switch

Parameters
[in]switch_tunnel_idThe Switch Tunnel id
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 3564 of file saiswitch.h.

◆ sai_set_switch_attribute_fn

typedef sai_status_t(* sai_set_switch_attribute_fn) (_In_ sai_object_id_t switch_id, _In_ const sai_attribute_t *attr)

Set switch attribute value.

Parameters
[in]switch_idSwitch id
[in]attrSwitch attribute
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 3473 of file saiswitch.h.

◆ sai_set_switch_tunnel_attribute_fn

typedef sai_status_t(* sai_set_switch_tunnel_attribute_fn) (_In_ sai_object_id_t switch_tunnel_id, _In_ const sai_attribute_t *attr)

Set switch scoped tunnel attribute value.

Parameters
[in]switch_tunnel_idSwitch Tunnel id
[in]attrSwitch tunnel attribute
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 3575 of file saiswitch.h.

◆ sai_switch_asic_sdk_health_event_notification_fn

typedef void(* sai_switch_asic_sdk_health_event_notification_fn) (_In_ sai_object_id_t switch_id, _In_ sai_switch_asic_sdk_health_severity_t severity, _In_ sai_timespec_t timestamp, _In_ sai_switch_asic_sdk_health_category_t category, _In_ sai_switch_health_data_t data, _In_ const sai_u8_list_t description)

Switch health event callback.

Allowed object types
switch_id SAI_OBJECT_TYPE_SWITCH
Parameters
[in]switch_idSwitch Id
[in]severityHealth event severity
[in]timestampTime and date of receiving the SDK Health event
[in]categoryCategory of cause
[in]dataData of switch health
[in]descriptionJSON-encoded description string with information delivered from SDK event/trap Example of a possible description: { "switch_id": "0x00000000000000AB", "severity": "2", "timestamp": { "tv_sec": "22429", "tv_nsec": "3428724" }, "category": "3", "data": { data_type: "0" }, "additional_data": "Some additional information" }

Definition at line 3276 of file saiswitch.h.

◆ sai_switch_mdio_cl22_read_fn

typedef sai_status_t(* sai_switch_mdio_cl22_read_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _Out_ uint32_t *reg_val)

Switch MDIO clause 22 read API.

Provides clause 22 read access API for devices connected to MDIO from NPU SAI.

Allowed object types
switch_id SAI_OBJECT_TYPE_SWITCH
Parameters
[in]switch_idSwitch Id
[in]device_addrDevice address(PHY/lane/port MDIO address)
[in]start_reg_addrStarting register address to read
[in]number_of_registersNumber of consecutive registers to read
[out]reg_valRegister read values

Definition at line 3408 of file saiswitch.h.

◆ sai_switch_mdio_cl22_write_fn

typedef sai_status_t(* sai_switch_mdio_cl22_write_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _In_ const uint32_t *reg_val)

Switch MDIO clause write API.

Provides clause 22 write access API for devices connected to MDIO from NPU SAI.

Allowed object types
switch_id SAI_OBJECT_TYPE_SWITCH
Parameters
[in]switch_idSwitch Id
[in]device_addrDevice address(PHY/lane/port MDIO address)
[in]start_reg_addrStarting register address to write
[in]number_of_registersNumber of consecutive registers to write
[in]reg_valRegister write values

Definition at line 3428 of file saiswitch.h.

◆ sai_switch_mdio_read_fn

typedef sai_status_t(* sai_switch_mdio_read_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _Out_ uint32_t *reg_val)

Switch MDIO read API.

Provides read access API for devices connected to MDIO from NPU SAI.

Allowed object types
switch_id SAI_OBJECT_TYPE_SWITCH
Parameters
[in]switch_idSwitch Id
[in]device_addrDevice address(PHY/lane/port MDIO address)
[in]start_reg_addrStarting register address to read
[in]number_of_registersNumber of consecutive registers to read
[out]reg_valRegister read values

Definition at line 3368 of file saiswitch.h.

◆ sai_switch_mdio_write_fn

typedef sai_status_t(* sai_switch_mdio_write_fn) (_In_ sai_object_id_t switch_id, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _In_ const uint32_t *reg_val)

Switch MDIO write API.

Provides write access API for devices connected to MDIO from NPU SAI.

Allowed object types
switch_id SAI_OBJECT_TYPE_SWITCH
Parameters
[in]switch_idSwitch Id
[in]device_addrDevice address(PHY/lane/port MDIO address)
[in]start_reg_addrStarting register address to write
[in]number_of_registersNumber of consecutive registers to write
[in]reg_valRegister write values

Definition at line 3388 of file saiswitch.h.

◆ sai_switch_register_read_fn

typedef sai_status_t(* sai_switch_register_read_fn) (_In_ uint64_t platform_context, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _Out_ uint32_t *reg_val)

Platform specific device register read access.

This API provides platform adaption functionality to access device registers from driver. This is mandatory to pass as attribute to sai_create_switch when driver implementation does not support register access by device file system directly.

Allowed object types
switch_id SAI_OBJECT_TYPE_SWITCH
Parameters
[in]platform_contextPlatform context information.
[in]device_addrDevice address(PHY/lane/port MDIO address)
[in]start_reg_addrStarting register address to read
[in]number_of_registersNumber of consecutive registers to read
[out]reg_valRegister read values

Definition at line 3325 of file saiswitch.h.

◆ sai_switch_register_write_fn

typedef sai_status_t(* sai_switch_register_write_fn) (_In_ uint64_t platform_context, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _In_ const uint32_t *reg_val)

Platform specific device register write access.

This API provides platform adaption functionality to access device registers from driver. This is mandatory to pass as attribute to sai_create_switch when driver implementation does not support register access by device file system directly.

Allowed object types
switch_id SAI_OBJECT_TYPE_SWITCH
Parameters
[in]platform_contextPlatform context information.
[in]device_addrDevice address(PHY/lane/port MDIO address)
[in]start_reg_addrStarting register address to write
[in]number_of_registersNumber of consecutive registers to write
[in]reg_valRegister write values

Definition at line 3348 of file saiswitch.h.

◆ sai_switch_shutdown_request_notification_fn

typedef void(* sai_switch_shutdown_request_notification_fn) (_In_ sai_object_id_t switch_id)

Switch shutdown request callback.

Adapter DLL may request a shutdown due to an unrecoverable failure or a maintenance operation

Allowed object types
switch_id SAI_OBJECT_TYPE_SWITCH
Parameters
[in]switch_idSwitch Id

Definition at line 3294 of file saiswitch.h.

◆ sai_switch_stat_t

Switch counter IDs in sai_get_switch_stats() call.

Flags:
ranges

◆ sai_switch_state_change_notification_fn

typedef void(* sai_switch_state_change_notification_fn) (_In_ sai_object_id_t switch_id, _In_ sai_switch_oper_status_t switch_oper_status)

Switch operational state change notification.

Allowed object types
switch_id SAI_OBJECT_TYPE_SWITCH
Parameters
[in]switch_idSwitch Id
[in]switch_oper_statusNew switch operational state

Definition at line 3305 of file saiswitch.h.

Enumeration Type Documentation

◆ _sai_hash_algorithm_t

Attribute data for SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM and SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM.

Enumerator
SAI_HASH_ALGORITHM_CRC 

CRC based hash algorithm

SAI_HASH_ALGORITHM_XOR 

XOR-based hash algorithm

SAI_HASH_ALGORITHM_RANDOM 

Random-based hash algorithm

SAI_HASH_ALGORITHM_CRC_32LO 

Lower 16-bits of CRC32 based hash algorithm

SAI_HASH_ALGORITHM_CRC_32HI 

Higher 16-bits of CRC32-based hash algorithm

SAI_HASH_ALGORITHM_CRC_CCITT 

CRC using CCITT polynomial based hash algorithm

SAI_HASH_ALGORITHM_CRC_XOR 

Combination of CRC and XOR based hash algorithm

Definition at line 188 of file saiswitch.h.

◆ _sai_packet_action_t

Attribute data for packet action.

Enumerator
SAI_PACKET_ACTION_DROP 

Drop Packet in data plane

SAI_PACKET_ACTION_FORWARD 

Forward Packet in data plane.

SAI_PACKET_ACTION_COPY 

Packet action copy.

Copy Packet to CPU without interfering the original packet action in the pipeline.

SAI_PACKET_ACTION_COPY_CANCEL 

Cancel copy the packet to CPU.

SAI_PACKET_ACTION_TRAP 

Packet action trap.

Combination of Packet Actions

This is a combination of SAI packet action COPY and DROP: A copy of the original packet is sent to CPU port, the original packet is forcefully dropped from the pipeline.

SAI_PACKET_ACTION_LOG 

Packet action log.

This is a combination of SAI packet action COPY and FORWARD: A copy of the original packet is sent to CPU port, the original packet, if it was to be dropped in the original pipeline, change the pipeline action to forward (cancel drop).

SAI_PACKET_ACTION_DENY 

This is a combination of SAI packet action COPY_CANCEL and DROP

SAI_PACKET_ACTION_TRANSIT 

This is a combination of SAI packet action COPY_CANCEL and FORWARD

SAI_PACKET_ACTION_DONOTDROP 

Do not drop the packet.

Definition at line 68 of file saiswitch.h.

◆ _sai_packet_vlan_t

Attribute data for number of vlan tags present in a packet.

Enumerator
SAI_PACKET_VLAN_UNTAG 

Untagged.

Packet without vlan tags.

SAI_PACKET_VLAN_SINGLE_OUTER_TAG 

Single Outer Tag.

Packet outer TPID matches to the ingress port outer TPID and packet inner TPID if present, does not match the configured inner TPID.

SAI_PACKET_VLAN_DOUBLE_TAG 

Double Tag.

Packet outer TPID matches to the ingress port outer TPID and packet inner TPID matches to the configured inner TPID.

Definition at line 144 of file saiswitch.h.

◆ _sai_switch_asic_sdk_health_category_t

Switch health categories.

Enumerator
SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_SW 

Switch health software category

SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_FW 

Switch health firmware category

SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_CPU_HW 

Switch health cpu hardware category

SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_ASIC_HW 

Switch health ASIC hardware category

Definition at line 3035 of file saiswitch.h.

◆ _sai_switch_asic_sdk_health_severity_t

Switch health event severity.

Enumerator
SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_FATAL 

Switch event severity fatal

SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_WARNING 

Switch event severity warning

SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_NOTICE 

Switch event severity notice

Definition at line 3019 of file saiswitch.h.

◆ _sai_switch_attr_t

Attribute Id in sai_set_switch_attribute() and sai_get_switch_attribute() calls.

Enumerator
SAI_SWITCH_ATTR_START 

Start of attributes.

SAI_SWITCH_ATTR_NUMBER_OF_ACTIVE_PORTS 

Number of active(created) ports on the switch.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_PORT_NUMBER 
Ignored:
- for backward compatibility
SAI_SWITCH_ATTR_MAX_NUMBER_OF_SUPPORTED_PORTS 

Maximum number of supported ports on the switch.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_PORT_LIST 

Get the port list.

Value Type:
sai_object_list_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_PORT
Default value:
internal
SAI_SWITCH_ATTR_PORT_MAX_MTU 

Get the Max MTU in bytes, supported by the switch.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_CPU_PORT 

Get the CPU Port.

Value Type:
sai_object_id_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_PORT
Default value:
internal
SAI_SWITCH_ATTR_MAX_VIRTUAL_ROUTERS 

Max number of virtual routers supported.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_FDB_TABLE_SIZE 

The size of the FDB Table in bytes.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_L3_NEIGHBOR_TABLE_SIZE 

The L3 Host Table size.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_L3_ROUTE_TABLE_SIZE 

The L3 Route Table size.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_LAG_MEMBERS 

Number of ports that can be part of a LAG.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_NUMBER_OF_LAGS 

Number of LAGs that can be created.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ECMP_MEMBERS 

ECMP number of members per group.

Default is 64

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_NUMBER_OF_ECMP_GROUPS 

ECMP number of group.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_NUMBER_OF_UNICAST_QUEUES 

The number of Unicast queues per port.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_NUMBER_OF_MULTICAST_QUEUES 

The number of Multicast queues per port.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_NUMBER_OF_QUEUES 

The total number of queues per port.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_NUMBER_OF_CPU_QUEUES 

The number of CPU queues.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ON_LINK_ROUTE_SUPPORTED 

Local subnet routing supported.

Routes with next hop set to "on-link".

Value Type:
bool
Flags:
READ_ONLY
SAI_SWITCH_ATTR_OPER_STATUS 

Operational state.

Value Type:
sai_switch_oper_status_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MAX_NUMBER_OF_TEMP_SENSORS 

Maximum number of temperature sensors available.

Value Type:
sai_uint8_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_TEMP_LIST 

List of temperature readings from all sensors.

Values in Celsius.

Value Type:
sai_s32_list_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MAX_TEMP 

The current value of the maximum temperature retrieved from the switch sensors.

Value in Celsius.

Value Type:
sai_int32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVERAGE_TEMP 

The average of temperature readings over all sensors in the switch.

Value in Celsius.

Value Type:
sai_int32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ACL_TABLE_MINIMUM_PRIORITY 

Minimum priority for ACL table.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ACL_TABLE_MAXIMUM_PRIORITY 

Maximum priority for ACL table.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ACL_ENTRY_MINIMUM_PRIORITY 

Minimum priority for ACL entry.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ACL_ENTRY_MAXIMUM_PRIORITY 

Maximum priority for ACL entry.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ACL_TABLE_GROUP_MINIMUM_PRIORITY 

Minimum priority for ACL table group.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ACL_TABLE_GROUP_MAXIMUM_PRIORITY 

Maximum priority for ACL table group.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_FDB_DST_USER_META_DATA_RANGE 

FDB DST user-based meta data range.

Value Type:
sai_u32_range_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ROUTE_DST_USER_META_DATA_RANGE 

Route DST Table user-based meta data range.

Value Type:
sai_u32_range_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_NEIGHBOR_DST_USER_META_DATA_RANGE 

Neighbor DST Table user-based meta data range.

Value Type:
sai_u32_range_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_PORT_USER_META_DATA_RANGE 

Port user-based meta data range.

Value Type:
sai_u32_range_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_VLAN_USER_META_DATA_RANGE 

VLAN user-based meta data range.

Value Type:
sai_u32_range_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ACL_USER_META_DATA_RANGE 

ACL user-based ACL meta data range.

Value Type:
sai_u32_range_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ACL_USER_TRAP_ID_RANGE 

ACL user-based trap id range.

Value Type:
sai_u32_range_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_DEFAULT_VLAN_ID 

Default SAI VLAN ID.

Value Type:
sai_object_id_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_VLAN
Default value:
internal
SAI_SWITCH_ATTR_DEFAULT_STP_INST_ID 

Default SAI STP instance ID.

Value Type:
sai_object_id_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_STP
Default value:
internal
SAI_SWITCH_ATTR_MAX_STP_INSTANCE 

Max number of STP instances that NPU supports.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_DEFAULT_VIRTUAL_ROUTER_ID 

Default SAI Virtual Router ID.

Must return SAI_STATUS_OBJECT_IN_USE when try to delete this VR ID.

Value Type:
sai_object_id_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_VIRTUAL_ROUTER
Default value:
internal
SAI_SWITCH_ATTR_DEFAULT_OVERRIDE_VIRTUAL_ROUTER_ID 

Default SAI Override Virtual Router ID.

Must return SAI_STATUS_OBJECT_IN_USE when try to delete this VR ID.

Value Type:
sai_object_id_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_VIRTUAL_ROUTER
Default value:
internal
SAI_SWITCH_ATTR_DEFAULT_1Q_BRIDGE_ID 

Default .1Q Bridge ID.

Value Type:
sai_object_id_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_BRIDGE
Default value:
internal
SAI_SWITCH_ATTR_INGRESS_ACL 

Switch/Global bind point for ingress ACL object.

Bind (or unbind) an ingress ACL table or ACL group globally. Enable/Update ingress ACL table or ACL group filtering by assigning a valid object id. Disable ingress filtering by assigning SAI_NULL_OBJECT_ID in the attribute value.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_ACL_TABLE, SAI_OBJECT_TYPE_ACL_TABLE_GROUP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_EGRESS_ACL 

Switch/Global bind point for egress ACL object.

Bind (or unbind) an egress ACL tables or ACL group globally. Enable/Update egress ACL table or ACL group filtering by assigning a valid object id. Disable egress filtering by assigning SAI_NULL_OBJECT_ID in the attribute value.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_ACL_TABLE, SAI_OBJECT_TYPE_ACL_TABLE_GROUP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_TRAFFIC_CLASSES 

Maximum traffic classes limit.

Value Type:
sai_uint8_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUP_HIERARCHY_LEVELS 

HQOS - Maximum Number of Hierarchy scheduler group levels(depth) supported.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUPS_PER_HIERARCHY_LEVEL 

HQOS - Maximum number of scheduler groups supported on each Hierarchy level.

Value Type:
sai_u32_list_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_CHILDS_PER_SCHEDULER_GROUP 

HQOS - Maximum number of childs supported per scheduler group.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_TOTAL_BUFFER_SIZE 

Switch total buffer size in KB.

Value Type:
sai_uint64_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_INGRESS_BUFFER_POOL_NUM 

Switch number of ingress buffer pool.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_EGRESS_BUFFER_POOL_NUM 

Switch number of egress buffer pool.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY 

Available IPv4 routes.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY 

Available IPv6 routes.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY 

Available IPv4 Nexthop entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY 

Available IPv6 Nexthop entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY 

Available IPv4 Neighbor entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY 

Available IPv6 Neighbor entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY 

Available Next hop group entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY 

Available Next hop group member entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY 

Available FDB entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_L2MC_ENTRY 

Available L2MC entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_IPMC_ENTRY 

Available IPMC entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_SNAT_ENTRY 

Available SNAT entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_DNAT_ENTRY 

Available DNAT entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_DOUBLE_NAT_ENTRY 

Available Double NAT entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_ACL_TABLE 

Available ACL Tables.

Value Type:
sai_acl_resource_list_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_ACL_TABLE_GROUP 

Available ACL Table groups.

Value Type:
sai_acl_resource_list_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_MY_SID_ENTRY 

Available My SID entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_DEFAULT_TRAP_GROUP 

Default trap group.

Default value after switch initialization:

SAI_HOSTIF_TRAP_GROUP_ATTR_ADMIN_STATE = true SAI_HOSTIF_TRAP_GROUP_ATTR_PRIO = SAI_SWITCH_ATTR_ACL_TABLE_MINIMUM_PRIORITY SAI_HOSTIF_TRAP_GROUP_ATTR_QUEUE = 0 SAI_HOSTIF_TRAP_GROUP_ATTR_POLICER = SAI_NULL_OBJECT_ID

The group handle is read only, while the group attributes, such as queue and policer, may be modified.

Value Type:
sai_object_id_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_HOSTIF_TRAP_GROUP
Default value:
internal
SAI_SWITCH_ATTR_ECMP_HASH 

The hash object for packets going through ECMP.

Default value after switch initialization:

SAI_HASH_ATTR_NATIVE_HASH_FIELD_LIST = [SAI_NATIVE_HASH_FIELD_SRC_MAC, SAI_NATIVE_HASH_FIELD_DST_MAC, SAI_NATIVE_HASH_FIELD_IN_PORT, SAI_NATIVE_HASH_FIELD_ETHERTYPE] SAI_HASH_ATTR_UDF_GROUP_LIST empty list

The object id is read only, while the object attributes can be modified.

Value Type:
sai_object_id_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_HASH
Default value:
internal
SAI_SWITCH_ATTR_LAG_HASH 

The hash object for packets going through LAG.

Default value after switch initialization:

SAI_HASH_ATTR_NATIVE_HASH_FIELD_LIST = [SAI_NATIVE_HASH_FIELD_SRC_MAC, SAI_NATIVE_HASH_FIELD_DST_MAC, SAI_NATIVE_HASH_FIELD_IN_PORT, SAI_NATIVE_HASH_FIELD_ETHERTYPE] SAI_HASH_ATTR_UDF_GROUP_LIST empty list)

The object id is read only, while the object attributes can be modified.

Value Type:
sai_object_id_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_HASH
Default value:
internal
SAI_SWITCH_ATTR_RESTART_WARM 

Set Type of reboot WARM/COLD.

Indicates controlled warm restart. Since warm restart can be caused by crash (therefore there are no guarantees for this call), this hint is really a performance optimization. This hint is set as part of the shutdown sequence, before boot. TRUE - Warm Reboot FALSE - Cold Reboot

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_SWITCH_ATTR_WARM_RECOVER 

Warm boot recovery.

Start warm boot recovery when set to true This hint is set after boot. In case of host adapter restart, host adapter can pass boot type in SAI_KEY_BOOT_TYPE. In case of host adapter recovery, host adapter can pass a hint about the boot type and recovery, in this flag.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_SWITCH_ATTR_RESTART_TYPE 

Type of restart supported.

Value Type:
sai_switch_restart_type_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MIN_PLANNED_RESTART_INTERVAL 

Minimum interval of time required by SAI for planned restart in milliseconds.

Will be 0 for SAI_SWITCH_RESTART_TYPE_NONE. The Host Adapter will have to wait for this minimum interval of time before it decides to bring down SAI due to initialize failure.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_NV_STORAGE_SIZE 

Nonvolatile storage required by both SAI and NPU in KB.

Will be 0 for SAI_SWITCH_RESTART_TYPE_NONE.

Value Type:
sai_uint64_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MAX_ACL_ACTION_COUNT 

Count of the total number of actions supported by NPU.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MAX_ACL_RANGE_COUNT 

Count of the total number of ranges supported by NPU.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ACL_CAPABILITY 

ACL capabilities supported by the NPU.

Value Type:
sai_acl_capability_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MCAST_SNOOPING_CAPABILITY 

Multicast snooping capability supported by the NPU.

Value Type:
sai_switch_mcast_snooping_capability_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_SWITCHING_MODE 

Switching mode.

Value Type:
sai_switch_switching_mode_t
Flags:
CREATE_AND_SET
Default value:
SAI_SWITCH_SWITCHING_MODE_STORE_AND_FORWARD
SAI_SWITCH_ATTR_BCAST_CPU_FLOOD_ENABLE 

L2 broadcast flood control to CPU port.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_SWITCH_ATTR_MCAST_CPU_FLOOD_ENABLE 

L2 multicast flood control to CPU port.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_SWITCH_ATTR_SRC_MAC_ADDRESS 

Default switch MAC Address.

Value Type:
sai_mac_t
Flags:
CREATE_AND_SET
Default value:
vendor
SAI_SWITCH_ATTR_MAX_LEARNED_ADDRESSES 

Maximum number of learned MAC addresses.

Zero means learning limit is disabled.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_SWITCH_ATTR_FDB_AGING_TIME 

Dynamic FDB entry aging time in seconds.

Zero means aging is disabled.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_SWITCH_ATTR_FDB_UNICAST_MISS_PACKET_ACTION 

Flood control for packets with unknown destination address.

Value Type:
sai_packet_action_t
Flags:
CREATE_AND_SET
Default value:
SAI_PACKET_ACTION_FORWARD
SAI_SWITCH_ATTR_FDB_BROADCAST_MISS_PACKET_ACTION 

Broadcast miss action.

Value Type:
sai_packet_action_t
Flags:
CREATE_AND_SET
Default value:
SAI_PACKET_ACTION_FORWARD
SAI_SWITCH_ATTR_FDB_MULTICAST_MISS_PACKET_ACTION 

Multicast miss action.

Value Type:
sai_packet_action_t
Flags:
CREATE_AND_SET
Default value:
SAI_PACKET_ACTION_FORWARD
SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM 

SAI ECMP default hash algorithm.

Value Type:
sai_hash_algorithm_t
Flags:
CREATE_AND_SET
Default value:
SAI_HASH_ALGORITHM_CRC
SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_SEED 

SAI ECMP default hash seed.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_OFFSET 

SAI ECMP default hash offset.

When set, the output of the ECMP hash calculation will be rotated right by the specified number of bits.

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_SWITCH_ATTR_ECMP_DEFAULT_SYMMETRIC_HASH 

SAI ECMP default symmetric hash.

When set, the hash calculation will result in the same value as when the source and destination addresses (L2 src/dst MAC,L3 src/dst IP,L4 src/dst port) were swapped, ensuring the same conversation will result in the same hash value.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_SWITCH_ATTR_ECMP_HASH_IPV4 

The hash object for IPv4 packets going through ECMP.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_HASH
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_ECMP_HASH_IPV4_IN_IPV4 

The hash object for IPv4 in IPv4 packets going through ECMP.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_HASH
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_ECMP_HASH_IPV6 

The hash object for IPv6 packets going through ECMP.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_HASH
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM 

SAI LAG default hash algorithm.

Value Type:
sai_hash_algorithm_t
Flags:
CREATE_AND_SET
Default value:
SAI_HASH_ALGORITHM_CRC
SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_SEED 

SAI LAG default hash seed.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_OFFSET 

SAI LAG default hash offset.

When set, the output of the LAG hash calculation will be rotated right by the specified number of bits.

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_SWITCH_ATTR_LAG_DEFAULT_SYMMETRIC_HASH 

SAI LAG default symmetric hash.

When set, the hash calculation will result in the same value as when the source and destination addresses (L2 src/dst MAC,L3 src/dst IP,L4 src/dst port) were swapped, ensuring the same conversation will result in the same hash value.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_SWITCH_ATTR_LAG_HASH_IPV4 

The hash object for IPv4 packets going through LAG.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_HASH
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_LAG_HASH_IPV4_IN_IPV4 

The hash object for IPv4 in IPv4 packets going through LAG.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_HASH
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_LAG_HASH_IPV6 

The hash object for IPv6 packets going through LAG.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_HASH
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_COUNTER_REFRESH_INTERVAL 

Refresh interval.

The SDK can

1 - Read the counters directly from HW (or) 2 - Cache the counters in SW. Caching is typically done if retrieval of counters directly from HW for each counter read is CPU intensive

This setting can be used to

1 - Move from HW based to SW based or Vice versa 2 - Configure the SW counter cache refresh rate

Setting a value of 0 enables direct HW based counter read. A non zero value enables the SW cache based and the counter refresh rate.

A NPU may support both or one of the option. It would return error for unsupported options

Default - 1 sec (SW counter cache)

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
1
SAI_SWITCH_ATTR_QOS_DEFAULT_TC 

Default Traffic class value.

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_SWITCH_ATTR_QOS_DOT1P_TO_TC_MAP 

Enable DOT1P -> TC MAP on switch.

MAP id = SAI_NULL_OBJECT_ID to disable map on switch. To enable/disable trust Dot1p, Map ID should be added/removed on switch. Default disabled.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_QOS_DOT1P_TO_COLOR_MAP 

Enable DOT1P -> COLOR MAP on switch.

MAP id = SAI_NULL_OBJECT_ID to disable map on switch. To enable/disable trust Dot1p, Map ID should be added/removed on switch. Default disabled.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_QOS_DSCP_TO_TC_MAP 

Enable DSCP -> TC MAP on switch.

MAP id = SAI_NULL_OBJECT_ID to disable map on switch. To enable/disable trust DSCP, Map ID should be added/removed on switch. Default no map.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_QOS_DSCP_TO_COLOR_MAP 

Enable DSCP -> COLOR MAP on switch.

MAP id = SAI_NULL_OBJECT_ID to disable map on switch. To enable/disable trust DSCP, Map ID should be added/removed on switch. Default no map.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_QOS_TC_TO_QUEUE_MAP 

Enable TC -> Queue MAP on switch.

Map id = SAI_NULL_OBJECT_ID to disable map on switch. Default no map i.e All packets to queue 0.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP 

Enable TC + COLOR -> DOT1P MAP.

Map id = SAI_NULL_OBJECT_ID to disable map on switch. Default no map

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP 

Enable TC + COLOR -> DSCP MAP.

Map id = SAI_NULL_OBJECT_ID to disable map on switch. Default no map.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_SWITCH_SHELL_ENABLE 

Enable vendor specific switch shell.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_SWITCH_ATTR_SWITCH_PROFILE_ID 

Handle for switch profile id.

Use this to retrieve the Key-Value pairs as part of switch initialization.

Value Type:
sai_uint32_t
Flags:
CREATE_ONLY
Default value:
0
SAI_SWITCH_ATTR_SWITCH_HARDWARE_INFO 

Device Information for switch initialization.

Hardware information format is based on SAI implementations by vendors. String is NULL terminated. Format is vendor specific. Example: Like PCI location, I2C address, MDIO address, MDIO bus SysFS information etc. In case of NULL, First NPU attached to CPU will be initialized. For the MDIO SysFS driver support, the interface name and phy_id should be set and separated by "/", which should be formatted as {interface_name}/{phy_id} Single NPU case this attribute is optional.

Value Type:
sai_s8_list_t
Flags:
CREATE_ONLY
Default value:
empty
SAI_SWITCH_ATTR_FIRMWARE_PATH_NAME 

Vendor specific path name of the firmware to load.

Value Type:
sai_s8_list_t
Flags:
CREATE_ONLY
Default value:
empty
SAI_SWITCH_ATTR_INIT_SWITCH 

Set to switch initialization or connect to NPU/SDK.

TRUE - Initialize switch/SDK. FALSE - Connect to SDK. This will connect library to the initialized SDK. After this call the capability attributes should be ready for retrieval via sai_get_switch_attribute()

Value Type:
bool
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_SWITCH_ATTR_SWITCH_STATE_CHANGE_NOTIFY 

Operational status change notification callback function passed to the adapter.

Use sai_switch_state_change_notification_fn as notification function.

Value Type:
sai_pointer_t sai_switch_state_change_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_SWITCH_SHUTDOWN_REQUEST_NOTIFY 

Shutdown notification callback function passed to the adapter.

Use sai_switch_shutdown_request_notification_fn as notification function.

Value Type:
sai_pointer_t sai_switch_shutdown_request_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_SHUTDOWN_REQUEST_NOTIFY 
Ignored:
- for backward compatibility
SAI_SWITCH_ATTR_FDB_EVENT_NOTIFY 

FDB event notification callback function passed to the adapter.

Use sai_fdb_event_notification_fn as notification function.

Value Type:
sai_pointer_t sai_fdb_event_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_PORT_STATE_CHANGE_NOTIFY 

Port state change notification callback function passed to the adapter.

In case driver does not support this attribute, The Host adapter should poll port status by SAI_PORT_ATTR_OPER_STATUS.

Use sai_port_state_change_notification_fn as notification function.

Value Type:
sai_pointer_t sai_port_state_change_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_PACKET_EVENT_NOTIFY 

Received packet event notification callback function passed to the adapter.

Use sai_packet_event_notification_fn as notification function.

Value Type:
sai_pointer_t sai_packet_event_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_FAST_API_ENABLE 

Enable SAI function call fast mode, which executes calls very quickly.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_SWITCH_ATTR_MIRROR_TC 

Set TC of mirrored packets.

This setting will apply to all mirror sessions.

Default of 255 = disabled. When this attribute is disabled, the TC of the mirrored frame will be derived from the packet (the DOT1P priority in the VLAN Tag, for example).

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
255
SAI_SWITCH_ATTR_ACL_STAGE_INGRESS 

Ingress ACL stage.

Value Type:
sai_acl_capability_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ACL_STAGE_EGRESS 

Egress ACL stage.

Value Type:
sai_acl_capability_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_SRV6_MAX_SID_DEPTH 

Max number of Segments supported in a single SRV6 SID List.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_SRV6_TLV_TYPE 

List of Type Length Value types supported for source.

Value Type:
sai_s32_list_t sai_tlv_type_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_QOS_NUM_LOSSLESS_QUEUES 

The number of lossless queues per port supported by the switch.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_QUEUE_PFC_DEADLOCK_NOTIFY 

Set Switch PFC deadlock event notification callback function passed to the adapter.

Use sai_queue_pfc_deadlock_notification_fn as notification function.

Value Type:
sai_pointer_t sai_queue_pfc_deadlock_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_PFC_DLR_PACKET_ACTION 

Control for buffered and incoming packets on queue undergoing PFC Deadlock Recovery.

This control applies to all packets on all applicable port/queues. If application wants finer packet action control on per port per queue level then it is expected to set this control to packet forward and install one or more ACL and enable/disable them in the DLD/DLR event callback (SAI_SWITCH_ATTR_PFC_DEADLOCK_EVENT_NOTIFY) respectively.

Value Type:
sai_packet_action_t
Flags:
CREATE_AND_SET
Default value:
SAI_PACKET_ACTION_DROP
SAI_SWITCH_ATTR_PFC_TC_DLD_INTERVAL_RANGE 

PFC Deadlock Detection timer interval range.

Value Type:
sai_u32_range_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_PFC_TC_DLD_INTERVAL 

PFC Deadlock Detection timer interval in milliseconds.

If the monitored queue is in XOFF state for more than this duration then its considered to be in a PFC deadlock state and recovery process is kicked off. Note: Use TC (Traffic Class) value as key and timer interval as value.

Value Type:
sai_map_list_t
Flags:
CREATE_AND_SET
Default value:
empty
SAI_SWITCH_ATTR_PFC_TC_DLR_INTERVAL_RANGE 

PFC Deadlock Recovery timer interval range.

Value Type:
sai_u32_range_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_PFC_TC_DLR_INTERVAL 

PFC Deadlock Recovery timer interval in milliseconds.

The PFC deadlock recovery process will run for this amount of time and then normal state will resume. If the system remains in a deadlock state then the detection and recovery will resume again after the configured detection timer interval. Note: Use TC (Traffic Class) value as key and timer interval as value.

Value Type:
sai_map_list_t
Flags:
CREATE_AND_SET
Default value:
empty
SAI_SWITCH_ATTR_SUPPORTED_PROTECTED_OBJECT_TYPE 

Get the list of supported protected object types. See comment for SAI_NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT for more details.

Value Type:
sai_s32_list_t sai_object_type_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_TPID_OUTER_VLAN 

TPID for Outer vlan id.

Value Type:
sai_uint16_t
Flags:
CREATE_AND_SET
IsVlan:
false
Default value:
0x88A8
SAI_SWITCH_ATTR_TPID_INNER_VLAN 

TPID for Inner vlan id.

Value Type:
sai_uint16_t
Flags:
CREATE_AND_SET
IsVlan:
false
Default value:
0x8100
SAI_SWITCH_ATTR_CRC_CHECK_ENABLE 

Perform CRC check.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
true
SAI_SWITCH_ATTR_CRC_RECALCULATION_ENABLE 

Perform CRC recalculation (overwriting CRC value on egress)

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
true
SAI_SWITCH_ATTR_BFD_SESSION_STATE_CHANGE_NOTIFY 

Set Switch BFD session state change event notification callback function passed to the adapter.

Use sai_bfd_session_state_change_notification_fn as notification function.

Value Type:
sai_pointer_t sai_bfd_session_state_change_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_NUMBER_OF_BFD_SESSION 

Number of BFD session in the NPU.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MAX_BFD_SESSION 

Max number of BFD session NPU supports.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_SUPPORTED_IPV4_BFD_SESSION_OFFLOAD_TYPE 

List of BFD session offloads that are supported for IPv4.

Value Type:
sai_s32_list_t sai_bfd_session_offload_type_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_SUPPORTED_IPV6_BFD_SESSION_OFFLOAD_TYPE 

List of BFD session offloads that are supported for IPv6.

Value Type:
sai_s32_list_t sai_bfd_session_offload_type_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MIN_BFD_RX 

Minimum Receive interval NPU supports in microseconds.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MIN_BFD_TX 

Minimum Transmit interval NPU supports in microseconds.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ECN_ECT_THRESHOLD_ENABLE 

Apply ECN thresholds for ECT traffic. Attribute controls whether ECT traffic needs to subjected to WRED thresholds or be subjected to ECN thresholds.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_SWITCH_ATTR_VXLAN_DEFAULT_ROUTER_MAC 

Default VXLAN router MAC (inner destination MAC for VXLAN encapsulation)

Value Type:
sai_mac_t
Flags:
CREATE_AND_SET
Default value:
vendor
SAI_SWITCH_ATTR_VXLAN_DEFAULT_PORT 

Default VXLAN destination UDP port.

Value Type:
sai_uint16_t
Flags:
CREATE_AND_SET
IsVlan:
false
Default value:
4789
SAI_SWITCH_ATTR_MAX_MIRROR_SESSION 

Max number of mirror session NPU supports.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MAX_SAMPLED_MIRROR_SESSION 

Max number of sampled mirror session NPU supports.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_SUPPORTED_EXTENDED_STATS_MODE 

Get the list of supported get statistics extended modes Empty list should be returned if get statistics extended is not supported at all.

Value Type:
sai_s32_list_t sai_stats_mode_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_UNINIT_DATA_PLANE_ON_REMOVAL 

Uninitialize data plane upon removal of switch object.

Typical use case for tear down of the host adapter, is to remove the switch ID, which will stop all data and control plane, as leaving data plane open without control can be a security risk. However, on some scenarios, such as fast boot, host adapter would like to set this value to false, call remove switch, and have the data plane still running.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
true
SAI_SWITCH_ATTR_TAM_OBJECT_ID 

TAM bind point.

Bind (or unbind) the TAM object. SAI_NULL_OBJECT_ID in the attribute value.

Value Type:
sai_object_list_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_TAM
Default value:
empty
SAI_SWITCH_ATTR_TAM_EVENT_NOTIFY 

Event notification callback function passed to the adapter.

Use sai_tam_event_notification_fn as notification function.

Value Type:
sai_pointer_t sai_tam_event_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_SUPPORTED_OBJECT_TYPE_LIST 

List of supported object types.

A list of object types (sai_object_type_t) that the SAI adapter can support.

Value Type:
sai_s32_list_t sai_object_type_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_PRE_SHUTDOWN 

Instruct SAI to execute switch pre-shutdown.

Indicates controlled switch pre-shutdown as first step of warm shutdown. This hint is optional, SAI application could skip this step and go directly to warm shutdown. This hint should be ignored, if at the time SAI receives this hint, SAI_SWITCH_ATTR_RESTART_WARM is NOT already set to TRUE. The scope of pre-shutdown is to backup SAI/SDK data, but leave CPU port active for some final control plane traffic to go out. TRUE - Execute switch pre-shutdown for warm shutdown FALSE - No-op, does NOT mean cancelling already executed pre-shutdown

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_SWITCH_ATTR_NAT_ZONE_COUNTER_OBJECT_ID 

NAT zone counter bind point.

Bind (or unbind) the NAT zone counter object. SAI_NULL_OBJECT_ID in the attribute value.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_NAT_ZONE_COUNTER
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_NAT_ENABLE 

Enable NAT function.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_SWITCH_ATTR_HARDWARE_ACCESS_BUS 

Switch hardware access bus MDIO/I2C/CPLD.

Value Type:
sai_switch_hardware_access_bus_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Condition:
SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_PHY
SAI_SWITCH_ATTR_PLATFROM_CONTEXT 

Platform context information.

Platform context information provided by the host adapter to driver. This information is Host adapter specific, typically used for maintain synchronization and device information. Driver will give this context back to adapter as part of call back sai_switch_register_read/write_fn API.

Value Type:
sai_uint64_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Condition:
SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_PHY
SAI_SWITCH_ATTR_REGISTER_READ 

Platform adaption device read callback function passed to the adapter. This is mandatory function for driver when device access not supported by file system.

Use sai_switch_register_read_fn as read function.

Value Type:
sai_pointer_t sai_switch_register_read_fn
Flags:
MANDATORY_ON_CREATE | CREATE_AND_SET
Condition:
SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_PHY
SAI_SWITCH_ATTR_REGISTER_WRITE 

Platform adaption device write callback function passed to the adapter. This is mandatory function for driver when device access not supported by file system.

Use sai_switch_register_write_fn as write function.

Value Type:
sai_pointer_t sai_switch_register_write_fn
Flags:
MANDATORY_ON_CREATE | CREATE_AND_SET
Condition:
SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_PHY
SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_BROADCAST 

Enable/disable broadcast firmware download.

TRUE - Enable firmware download as broadcast. FALSE - Enable firmware download as unicast.

Value Type:
bool
Flags:
CREATE_ONLY
Default value:
false
SAI_SWITCH_ATTR_FIRMWARE_LOAD_METHOD 

Firmware load method.

Value Type:
sai_switch_firmware_load_method_t
Flags:
CREATE_ONLY
Default value:
SAI_SWITCH_FIRMWARE_LOAD_METHOD_INTERNAL
SAI_SWITCH_ATTR_FIRMWARE_LOAD_TYPE 

Firmware load type auto/force/skip.

Check firmware version. If it is different from current version load firmware. Otherwise always download the firmware specified by firmware load method.

Value Type:
sai_switch_firmware_load_type_t
Flags:
CREATE_ONLY
Default value:
SAI_SWITCH_FIRMWARE_LOAD_TYPE_AUTO
SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_EXECUTE 

Execute Firmware download.

In case of firmware download method broadcast, Set this attribute on any one of device connected to same bus. As part of execute firmware will broadcast to to all broadcast enabled devices on bus.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
Valid only when:
SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_BROADCAST == true
SAI_SWITCH_ATTR_FIRMWARE_BROADCAST_STOP 

End Broadcast.

Broadcast is enabled for BUS, All configurations will be broadcast. End broadcast before initialize device.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
Valid only when:
SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_BROADCAST == true
SAI_SWITCH_ATTR_FIRMWARE_VERIFY_AND_INIT_SWITCH 

Firmware status verify and complete initialize device.

Host Adapter should mandatory to set attribute to true, switch before doing any other configurations.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
Valid only when:
SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_BROADCAST == true
SAI_SWITCH_ATTR_FIRMWARE_STATUS 

Firmware running status.

Indicates firmware download and running status.

TRUE - Firmware running FALSE - Firmware not running.

Value Type:
bool
Flags:
READ_ONLY
SAI_SWITCH_ATTR_FIRMWARE_MAJOR_VERSION 

Firmware major version number.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_FIRMWARE_MINOR_VERSION 

Firmware minor version number.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_PORT_CONNECTOR_LIST 

Get the port connector list.

validonly SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_PHY

Value Type:
sai_object_list_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_PORT_CONNECTOR
SAI_SWITCH_ATTR_PROPOGATE_PORT_STATE_FROM_LINE_TO_SYSTEM_PORT_SUPPORT 

Propagate line side port state to system side port.

System side port state will reflect the ASIC port state. Host adapter can depends on ASIC port state instead of port states from system side, line side and ASIC port to determine interface operation status to application.

TRUE - Device support for propagate line side port link status to system side port. FALSE - Device does not support propagate port states.

validonly SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_PHY

Value Type:
bool
Flags:
READ_ONLY
SAI_SWITCH_ATTR_TYPE 

Switch type NPU/PHY.

Value Type:
sai_switch_type_t
Flags:
CREATE_ONLY
Default value:
SAI_SWITCH_TYPE_NPU
SAI_SWITCH_ATTR_MACSEC_OBJECT_LIST 

MACsec object list for this switch.

Value Type:
sai_object_list_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_MACSEC
Default value:
empty
SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_TC_MAP 

Enable EXP -> TC MAP on switch.

MAP id = SAI_NULL_OBJECT_ID to disable map on switch. Default no map.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP 

Enable EXP -> COLOR MAP on switch.

MAP id = SAI_NULL_OBJECT_ID to disable map on switch. Default no map in which case all exp values map to green color

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP 

Enable TC + COLOR -> EXP MAP.

Map id = SAI_NULL_OBJECT_ID to disable map on switch. Default no map.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_SWITCH_ID 

Vendor specific switch ID. Identifies switch chip.

Mandatory in VOQ Switch

Value Type:
sai_uint32_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Condition:
SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_VOQ or SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_FABRIC
SAI_SWITCH_ATTR_MAX_SYSTEM_CORES 

Maximum number of cores in the VOQ System (chassis)

Value Type:
sai_uint32_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Condition:
SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_VOQ
SAI_SWITCH_ATTR_SYSTEM_PORT_CONFIG_LIST 

System port configuration list.

Value Type:
sai_system_port_config_list_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Condition:
SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_VOQ
SAI_SWITCH_ATTR_NUMBER_OF_SYSTEM_PORTS 

Number of system ports.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_SYSTEM_PORT_LIST 

Get the system port list.

Value Type:
sai_object_list_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_SYSTEM_PORT
Default value:
internal
SAI_SWITCH_ATTR_NUMBER_OF_FABRIC_PORTS 

Number of fabric ports on the switch.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_FABRIC_PORT_LIST 

Get the fabric port list.

Value Type:
sai_object_list_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_PORT
Default value:
internal
SAI_SWITCH_ATTR_PACKET_DMA_MEMORY_POOL_SIZE 

The size of the packet DMA pool memory in bytes This can be used in conjunction with sai_allocate_hostif_packet_fn to allocate a pool of memory upfront and manage it in the application.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_FAILOVER_CONFIG_MODE 

Failover configuration modes.

Value Type:
sai_switch_failover_config_mode_t
Flags:
CREATE_AND_SET
Default value:
SAI_SWITCH_FAILOVER_CONFIG_MODE_NO_HITLESS
SAI_SWITCH_ATTR_SUPPORTED_FAILOVER_MODE 

Query for Failover mode support.

Value Type:
bool
Flags:
READ_ONLY
SAI_SWITCH_ATTR_TUNNEL_OBJECTS_LIST 

Switch scoped Tunnel objects.

Value Type:
sai_object_list_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_SWITCH_TUNNEL
Default value:
empty
SAI_SWITCH_ATTR_PACKET_AVAILABLE_DMA_MEMORY_POOL_SIZE 

The size of the available packet DMA pool memory in bytes This can be used in conjunction with total packet DMA pool size to account/debug % of memory available.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_PRE_INGRESS_ACL 

Switch/Global bind point for Pre-ingress ACL object.

Bind (or unbind) an Pre-ingress ACL table or ACL group globally. Enable/Update Pre-ingress ACL table or ACL group filtering by assigning a valid object id. Disable pre-ingress filtering by assigning SAI_NULL_OBJECT_ID in the attribute value.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_ACL_TABLE, SAI_OBJECT_TYPE_ACL_TABLE_GROUP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_AVAILABLE_SNAPT_ENTRY 

Available SNAPT entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_DNAPT_ENTRY 

Available DNAPT entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_DOUBLE_NAPT_ENTRY 

Available Double NAPT entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_SLAVE_MDIO_ADDR_LIST 

Slave MDIO Address list.

Configure list of slave MDIO addresses for firmware download in Broadcast mode. The sequence for firmware download in broadcast mode is as follows:

  1. For each MDIO master, call sai_create_switch() and pass the list of slave MDIO addresses. In this step, gearbox will upgrade the firmware on all PHY devices including master and slave.
  2. Call sai_create_switch() on all slave PHY devices with SAI_SWITCH_ATTR_FIRMWARE_LOAD_TYPE = SAI_SWITCH_FIRMWARE_LOAD_TYPE_SKIP, which will already have had their firmware upgraded.
Value Type:
sai_u8_list_t
Flags:
CREATE_ONLY
Default value:
empty
Valid only when:
SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_BROADCAST == true
SAI_SWITCH_ATTR_MY_MAC_TABLE_MINIMUM_PRIORITY 

Minimum priority for My MAC.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MY_MAC_TABLE_MAXIMUM_PRIORITY 

Maximum priority for My MAC.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MY_MAC_LIST 

My MAC entries installed on the switch.

Value Type:
sai_object_list_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_MY_MAC
SAI_SWITCH_ATTR_INSTALLED_MY_MAC_ENTRIES 

Number of My MAC entries installed on the switch.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_MY_MAC_ENTRIES 

Number of available My MAC entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MAX_NUMBER_OF_FORWARDING_CLASSES 

Maximum forwarding classes limit.

Value Type:
sai_uint8_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP 

Enable DSCP -> Forwarding Class MAP on switch.

MAP id = SAI_NULL_OBJECT_ID to disable map on switch. Default no map.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP 

Enable EXP -> Forwarding Class MAP on switch.

MAP id = SAI_NULL_OBJECT_ID to disable map on switch. Default no map.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_IPSEC_OBJECT_ID 

IPsec object for this switch.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_IPSEC
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_IPSEC_SA_TAG_TPID 

TPID in IPsec SA-Tag. This is used only between a Switch ASIC and IPsec-enabled PHY chips and not packets on external network.

Value Type:
sai_uint16_t
Flags:
CREATE_AND_SET
IsVlan:
false
Default value:
0xFFFE
SAI_SWITCH_ATTR_IPSEC_SA_STATUS_CHANGE_NOTIFY 

IPsec SA status change notification callback function.

In case driver does not support this attribute, The Host adapter should poll IPsec SA status by SAI_IPSEC_SA_ATTR_OCTET_COUNT_STATUS and SAI_IPSEC_SA_ATTR_EGRESS_ESN.

Use sai_ipsec_sa_status_change_notification_fn as notification function.

Value Type:
sai_pointer_t sai_ipsec_sa_status_change_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_NAT_EVENT_NOTIFY 

NAT event notification callback function passed to the adapter.

Use sai_nat_event_notification_fn as notification function.

Value Type:
sai_pointer_t sai_nat_event_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_MAX_ECMP_MEMBER_COUNT 

Number of ECMP members supported across the all nexthop groups by switch.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_ECMP_MEMBER_COUNT 

Number of ECMP Members configured. SAI_SWITCH_ATTR_ECMP_MEMBER_COUNT takes precedence over SAI_KEY_NUM_ECMP_GROUPS string. Default value is same as SAI_SWITCH_ATTR_ECMP_MEMBERS.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
64
SAI_SWITCH_ATTR_ARS_PROFILE 

Adaptive routing and switching quality map.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_ARS_PROFILE
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_ATTR_ACL_STAGE_POST_INGRESS 

Post Ingress ACL stage.

Value Type:
sai_acl_capability_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_CREDIT_WD 

Enable or disable credit watchdog.

Credit Watchdog can be enabled or disabled using this attribute for VOQ based system

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
true
Valid only when:
SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_VOQ
SAI_SWITCH_ATTR_CREDIT_WD_TIMER 

Credit watchdog threshold timer in milliseconds Value must be within 10ms - 1000ms range Queue is set to delete state and all packets in queue are deleted after the timer expiry.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
500
Valid only when:
SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_VOQ
SAI_SWITCH_ATTR_SWITCH_ISOLATE 

Fabric chassis isolation setting.

true: Trigger the switch isolate process false: Undo the isolation operation. This attribute is for Fabric or VOQ Chassis only Setting this flag to true will stop data traffic from flowing on local fabric ports. Fabric control traffic like credit grants and control messages will still continue to flow. Setting this flag to false will (re)enable data traffic on fabric ports. If this attribute is set to true, it overrides port level isolation setting.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
Valid only when:
SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_FABRIC or SAI_SWITCH_ATTR_TYPE == SAI_SWITCH_TYPE_VOQ
SAI_SWITCH_ATTR_HOSTIF_OPER_STATUS_UPDATE_MODE 

Set hostif operational status update mode.

This will set layer responsible for updating the operational status of hostif.

Value Type:
sai_switch_hostif_oper_status_update_mode_t
Flags:
CREATE_AND_SET
Default value:
SAI_SWITCH_HOSTIF_OPER_STATUS_UPDATE_MODE_APPLICATION
SAI_SWITCH_ATTR_SWITCH_ASIC_SDK_HEALTH_EVENT_NOTIFY 

Health notification callback function passed to the adapter.

Use sai_switch_asic_sdk_health_event_notification_fn as notification function.

Value Type:
sai_pointer_t sai_switch_asic_sdk_health_event_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_REG_FATAL_SWITCH_ASIC_SDK_HEALTH_CATEGORY 

Registration for health fatal categories.

For specifying categories of causes for severity fatal events

Value Type:
sai_s32_list_t sai_switch_asic_sdk_health_category_t
Flags:
CREATE_AND_SET
Default value:
empty
SAI_SWITCH_ATTR_REG_WARNING_SWITCH_ASIC_SDK_HEALTH_CATEGORY 

Registration for health warning categories.

For specifying categories of causes for severity warning events

Value Type:
sai_s32_list_t sai_switch_asic_sdk_health_category_t
Flags:
CREATE_AND_SET
Default value:
empty
SAI_SWITCH_ATTR_REG_NOTICE_SWITCH_ASIC_SDK_HEALTH_CATEGORY 

Registration for health notice categories.

For specifying categories of causes for severity notice events

Value Type:
sai_s32_list_t sai_switch_asic_sdk_health_category_t
Flags:
CREATE_AND_SET
Default value:
empty
SAI_SWITCH_ATTR_ACL_CHAIN_LIST 

ACL chain capabilities supported by the NPU.

Value Type:
sai_acl_chain_list_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_PORT_HOST_TX_READY_NOTIFY 

Port host tx ready notification callback function passed to the adapter.

Use sai_port_host_tx_ready_notification_fn as notification function.

Value Type:
sai_pointer_t sai_port_host_tx_ready_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_TUNNEL_TERM_TABLE_ENTRY_MINIMUM_PRIORITY 

Minimum priority for Tunnel Term table.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_TUNNEL_TERM_TABLE_ENTRY_MAXIMUM_PRIORITY 

Maximum priority for Tunnel Term table.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_TWAMP_SESSION_EVENT_NOTIFY 

TWAMP session event notification callback function passed to the adapter.

Use sai_twamp_session_event_notification_fn as notification function.

Value Type:
sai_pointer_t sai_twamp_session_event_notification_fn
Flags:
CREATE_AND_SET
Default value:
NULL
SAI_SWITCH_ATTR_AVAILABLE_TWAMP_SESSION 

Number of Two-Way Active Measurement Protocol session.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_MAX_TWAMP_SESSION 

Max number of Two-Way Active Measurement Protocol session supports.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_IP_NEXT_HOP_GROUP_MEMBER_ENTRY 

Available IP Next hop group member entries.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_AVAILABLE_SYSTEM_VOQS 

Available VOQ including unicast and multicast VOQ.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_SWITCH_ATTR_END 

End of attributes.

SAI_SWITCH_ATTR_CUSTOM_RANGE_START 

Custom range base value

SAI_SWITCH_ATTR_CUSTOM_RANGE_END 

End of custom range base

Definition at line 614 of file saiswitch.h.

◆ _sai_switch_failover_config_mode_t

Attribute data for SAI_SWITCH_ATTR_FAILOVER_CONFIG_MODE Used for Failover configuration mode In case of primary port failure, hitless enables the switch over to secondary port without losing link. It allows uninterrupted data transmission.

Enumerator
SAI_SWITCH_FAILOVER_CONFIG_MODE_NO_HITLESS 

Ports are configured but do not operate in hitless mode

SAI_SWITCH_FAILOVER_CONFIG_MODE_HITLESS 

Ports are configured and operate in hitless mode

Definition at line 321 of file saiswitch.h.

◆ _sai_switch_firmware_load_method_t

Attribute data for SAI_SWITCH_ATTR_FIRMWARE_LOAD_METHOD.

Enumerator
SAI_SWITCH_FIRMWARE_LOAD_METHOD_NONE 

Do not download FW. Use already downloaded FW instead

SAI_SWITCH_FIRMWARE_LOAD_METHOD_INTERNAL 

Download FW internally via MDIO

SAI_SWITCH_FIRMWARE_LOAD_METHOD_EEPROM 

Load FW from EEPROM

Definition at line 267 of file saiswitch.h.

◆ _sai_switch_firmware_load_type_t

Attribute data for SAI_SWITCH_ATTR_FIRMWARE_LOAD_TYPE.

Enumerator
SAI_SWITCH_FIRMWARE_LOAD_TYPE_SKIP 

Skip firmware download if firmware is already present

SAI_SWITCH_FIRMWARE_LOAD_TYPE_FORCE 

Always download the firmware specified by firmware load method

SAI_SWITCH_FIRMWARE_LOAD_TYPE_AUTO 

Check the firmware version. If it is different from current version download firmware

Definition at line 283 of file saiswitch.h.

◆ _sai_switch_hardware_access_bus_t

Attribute data for SAI_SWITCH_ATTR_HARDWARE_ACCESS_BUS.

Enumerator
SAI_SWITCH_HARDWARE_ACCESS_BUS_MDIO 

Hardware access bus is MDIO

SAI_SWITCH_HARDWARE_ACCESS_BUS_I2C 

Hardware access bus is I2C

SAI_SWITCH_HARDWARE_ACCESS_BUS_CPLD 

Hardware access bus is CPLD

Definition at line 251 of file saiswitch.h.

◆ _sai_switch_hostif_oper_status_update_mode_t

Attribute data for SAI_SWITCH_ATTR_HOSTIF_OPER_STATUS_UPDATE_MODE.

Enumerator
SAI_SWITCH_HOSTIF_OPER_STATUS_UPDATE_MODE_APPLICATION 

Application mode.

In this mode, operational status of hostif must be updated by application using hostif API with SAI_HOSTIF_ATTR_OPER_STATUS attribute. SAI adapter should not update the hostif operational status internally. When a host interface is created, application must update the operational status if required and should not rely on SAI adapter to update it.

SAI_SWITCH_HOSTIF_OPER_STATUS_UPDATE_MODE_SAI_ADAPTER 

SAI adapter mode.

In this mode, operational status of hostif is updated internally by SAI adapter. Update of hostif operational status by application using hostif API with SAI_HOSTIF_ATTR_OPER_STATUS is ignored.

Definition at line 586 of file saiswitch.h.

◆ _sai_switch_mcast_snooping_capability_t

Attribute data for SAI_SWITCH_ATTR_MCAST_SNOOPING_CAPABILITY.

Enumerator
SAI_SWITCH_MCAST_SNOOPING_CAPABILITY_NONE 

NPU doesn't support IP based L2MC

SAI_SWITCH_MCAST_SNOOPING_CAPABILITY_XG 

*G lookup only

SAI_SWITCH_MCAST_SNOOPING_CAPABILITY_SG 

SG lookup only

SAI_SWITCH_MCAST_SNOOPING_CAPABILITY_XG_AND_SG 

Both *G/SG lookup supported

Definition at line 232 of file saiswitch.h.

◆ _sai_switch_oper_status_t

Attribute data for SAI_SWITCH_ATTR_OPER_STATUS.

Enumerator
SAI_SWITCH_OPER_STATUS_UNKNOWN 

Unknown

SAI_SWITCH_OPER_STATUS_UP 

Up

SAI_SWITCH_OPER_STATUS_DOWN 

Down

SAI_SWITCH_OPER_STATUS_FAILED 

Switch encountered a fatal error

Definition at line 49 of file saiswitch.h.

◆ _sai_switch_restart_type_t

Attribute data for SAI_SWITCH_ATTR_RESTART_TYPE.

Enumerator
SAI_SWITCH_RESTART_TYPE_NONE 

NPU doesn't support warmboot

SAI_SWITCH_RESTART_TYPE_PLANNED 

Planned restart only

SAI_SWITCH_RESTART_TYPE_ANY 

Both planned and unplanned restart

Definition at line 216 of file saiswitch.h.

◆ _sai_switch_stat_t

Switch counter IDs in sai_get_switch_stats() call.

Flags:
ranges
Enumerator
SAI_SWITCH_STAT_IN_DROP_REASON_RANGE_BASE 

Switch stat in drop reasons range start

SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS 

Get in switch packet drops configured by debug counter API at index 0

SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS 

Get in switch packet drops configured by debug counter API at index 1

SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS 

Get in switch packet drops configured by debug counter API at index 2

SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS 

Get in switch packet drops configured by debug counter API at index 3

SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS 

Get in switch packet drops configured by debug counter API at index 4

SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS 

Get in switch packet drops configured by debug counter API at index 5

SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS 

Get in switch packet drops configured by debug counter API at index 6

SAI_SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS 

Get in switch packet drops configured by debug counter API at index 7

SAI_SWITCH_STAT_IN_DROP_REASON_RANGE_END 

Switch stat in drop reasons range end

SAI_SWITCH_STAT_OUT_DROP_REASON_RANGE_BASE 

Switch stat out drop reasons range start

SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS 

Get out switch packet drops configured by debug counter API at index 0

SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS 

Get out switch packet drops configured by debug counter API at index 1

SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS 

Get out switch packet drops configured by debug counter API at index 2

SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS 

Get out switch packet drops configured by debug counter API at index 3

SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS 

Get out switch packet drops configured by debug counter API at index 4

SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS 

Get out switch packet drops configured by debug counter API at index 5

SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS 

Get out switch packet drops configured by debug counter API at index 6

SAI_SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS 

Get out switch packet drops configured by debug counter API at index 7

SAI_SWITCH_STAT_OUT_DROP_REASON_RANGE_END 

Switch stat out drop reasons range end

SAI_SWITCH_STAT_FABRIC_DROP_REASON_RANGE_BASE 

Switch stat fabric drop reasons range start

SAI_SWITCH_STAT_ECC_DROP 

Get ECC discards [fabric]

SAI_SWITCH_STAT_REACHABILITY_DROP 

Get reach-ability discards [switch | fabric]

SAI_SWITCH_STAT_HIGHEST_QUEUE_CONGESTION_LEVEL 

Congestion related high watermark [switch]

SAI_SWITCH_STAT_GLOBAL_DROP 

Discards not counted in other switch stat type [switch | fabric]

SAI_SWITCH_STAT_PACKET_INTEGRITY_DROP 

Get integrity discards [fabric]

SAI_SWITCH_STAT_FABRIC_DROP_REASON_RANGE_END 

Switch stat fabric drop reasons range end

Definition at line 3056 of file saiswitch.h.

◆ _sai_switch_switching_mode_t

Attribute data for SAI_SWITCH_ATTR_SWITCHING_MODE.

Enumerator
SAI_SWITCH_SWITCHING_MODE_CUT_THROUGH 

Cut-through switching mode

SAI_SWITCH_SWITCHING_MODE_STORE_AND_FORWARD 

Store-and-forward switching mode

Definition at line 174 of file saiswitch.h.

◆ _sai_switch_tunnel_attr_t

Defines tunnel attributes at switch level. SAI_OBJECT_TYPE_SWITCH_TUNNEL object provides per tunnel type global configuration. SAI_OBJECT_TYPE_TUNNEL object configuration overrides the switch scoped global configuration.

Enumerator
SAI_SWITCH_TUNNEL_ATTR_START 

Start of attributes.

SAI_SWITCH_TUNNEL_ATTR_TUNNEL_TYPE 

Tunnel type key.

Value Type:
sai_tunnel_type_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY | KEY
IsResourceType:
true
SAI_SWITCH_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION 

Packet action when a packet ingress and gets routed back to same tunnel.

Value Type:
sai_packet_action_t
Flags:
CREATE_AND_SET
Default value:
SAI_PACKET_ACTION_FORWARD
SAI_SWITCH_TUNNEL_ATTR_TUNNEL_ENCAP_ECN_MODE 

Tunnel encap ECN mode.

Value Type:
sai_tunnel_encap_ecn_mode_t
Flags:
CREATE_ONLY
Default value:
SAI_TUNNEL_ENCAP_ECN_MODE_STANDARD
SAI_SWITCH_TUNNEL_ATTR_ENCAP_MAPPERS 

Tunnel encap ECN mappers only.

Value Type:
sai_object_list_t
Flags:
CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_TUNNEL_MAP
Default value:
empty
SAI_SWITCH_TUNNEL_ATTR_TUNNEL_DECAP_ECN_MODE 

Tunnel decap ECN mode.

Value Type:
sai_tunnel_decap_ecn_mode_t
Flags:
CREATE_ONLY
Default value:
SAI_TUNNEL_DECAP_ECN_MODE_STANDARD
SAI_SWITCH_TUNNEL_ATTR_DECAP_MAPPERS 

Tunnel decap ECN mappers only.

Value Type:
sai_object_list_t
Flags:
CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_TUNNEL_MAP
Default value:
empty
SAI_SWITCH_TUNNEL_ATTR_TUNNEL_VXLAN_UDP_SPORT_MODE 

Tunnel VXLAN UDP source port mode.

Value Type:
sai_tunnel_vxlan_udp_sport_mode_t
Flags:
CREATE_AND_SET
Default value:
SAI_TUNNEL_VXLAN_UDP_SPORT_MODE_EPHEMERAL
SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT 

Tunnel UDP source port.

Value Type:
sai_uint16_t
Flags:
CREATE_AND_SET
IsVlan:
false
Default value:
0
Valid only when:
SAI_SWITCH_TUNNEL_ATTR_TUNNEL_TYPE == SAI_TUNNEL_TYPE_VXLAN and SAI_SWITCH_TUNNEL_ATTR_TUNNEL_VXLAN_UDP_SPORT_MODE == SAI_TUNNEL_VXLAN_UDP_SPORT_MODE_USER_DEFINED
SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK 

Tunnel UDP source port mask.

Sport mask defining the number of least significant bits reserved for the calculated hash value. 0 means a fixed value.

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
IsVlan:
false
Default value:
0
Valid only when:
SAI_SWITCH_TUNNEL_ATTR_TUNNEL_TYPE == SAI_TUNNEL_TYPE_VXLAN and SAI_SWITCH_TUNNEL_ATTR_TUNNEL_VXLAN_UDP_SPORT_MODE == SAI_TUNNEL_VXLAN_UDP_SPORT_MODE_USER_DEFINED
SAI_SWITCH_TUNNEL_ATTR_ENCAP_QOS_TC_AND_COLOR_TO_DSCP_MAP 

Enable TC AND COLOR -> DSCP MAP on tunnel at encapsulation (access-to-network) node to remark the DSCP in tunnel header.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_TUNNEL_ATTR_ENCAP_QOS_TC_TO_QUEUE_MAP 

Enable TC -> Queue MAP on tunnel encap.

Map id = SAI_NULL_OBJECT_ID to disable map on tunnel. Default no map, i.e. packets are queued with static mapping.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_TUNNEL_ATTR_DECAP_QOS_DSCP_TO_TC_MAP 

Enable DSCP -> TC MAP on tunnel at termination (Network-to-access) node.

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_TUNNEL_ATTR_DECAP_QOS_TC_TO_PRIORITY_GROUP_MAP 

Enable TC -> Priority Group MAP.

Map id = SAI_NULL_OBJECT_ID to disable map on port. Default no map

Value Type:
sai_object_id_t
Flags:
CREATE_AND_SET
Allowed object types
SAI_OBJECT_TYPE_QOS_MAP
Allows NULL object ID
true
Default value:
SAI_NULL_OBJECT_ID
SAI_SWITCH_TUNNEL_ATTR_END 

End of attributes.

SAI_SWITCH_TUNNEL_ATTR_CUSTOM_RANGE_START 

Custom range base value

SAI_SWITCH_TUNNEL_ATTR_CUSTOM_RANGE_END 

End of custom range base

Definition at line 419 of file saiswitch.h.

◆ _sai_switch_type_t

Attribute data for SAI_SWITCH_ATTR_TYPE.

Enumerator
SAI_SWITCH_TYPE_NPU 

Switch type is Switching Network processing unit

SAI_SWITCH_TYPE_PHY 

Switch type is PHY

SAI_SWITCH_TYPE_VOQ 

Switch type is VOQ based NPU

SAI_SWITCH_TYPE_FABRIC 

Switch type is Fabric switch device

Definition at line 299 of file saiswitch.h.

◆ _sai_tunnel_decap_ecn_mode_t

Defines tunnel decap ECN mode.

Enumerator
SAI_TUNNEL_DECAP_ECN_MODE_STANDARD 

Behavior defined in RFC 6040 section 4.2.

SAI_TUNNEL_DECAP_ECN_MODE_COPY_FROM_OUTER 

Copy from outer ECN.

SAI_TUNNEL_DECAP_ECN_MODE_USER_DEFINED 

User defined behavior.

Definition at line 393 of file saiswitch.h.

◆ _sai_tunnel_encap_ecn_mode_t

Defines tunnel encap ECN mode.

Enumerator
SAI_TUNNEL_ENCAP_ECN_MODE_STANDARD 

Normal mode behavior defined in RFC 6040 section 4.1 copy from inner.

SAI_TUNNEL_ENCAP_ECN_MODE_USER_DEFINED 

User defined behavior.

Definition at line 375 of file saiswitch.h.

◆ _sai_tunnel_type_t

Defines tunnel type.

Definition at line 334 of file saiswitch.h.

◆ _sai_tunnel_vxlan_udp_sport_mode_t

Defines VXLAN tunnel UDP source port mode.

Enumerator
SAI_TUNNEL_VXLAN_UDP_SPORT_MODE_USER_DEFINED 

User define value.

SAI_TUNNEL_VXLAN_UDP_SPORT_MODE_EPHEMERAL 

RFC6335 Computed hash value in range 49152-65535.

Definition at line 359 of file saiswitch.h.