SAI Metadata
Loading...
Searching...
No Matches
saiswitch.h File Reference

This module defines SAI Switch interface. More...

#include <saitypes.h>

Go to the source code of this file.

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

This module defines SAI Switch interface.

Copyright (c) 2014 Microsoft Open Technologies, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions and limitations under the License.

Microsoft would like to thank the following companies for their review and assistance with these files: Intel Corporation, Mellanox Technologies Ltd, Dell Products, L.P., Facebook, Inc., Marvell International Ltd.

Definition in file saiswitch.h.