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

This module defines SAI Tunnel interface. More...

#include <saitypes.h>

Go to the source code of this file.

Classes

struct  _sai_tunnel_api_t
 Tunnel methods table retrieved with sai_api_query() More...
 

Typedefs

typedef enum _sai_tunnel_map_type_t sai_tunnel_map_type_t
 Enum defining tunnel map types.
 
typedef enum _sai_tunnel_map_entry_attr_t sai_tunnel_map_entry_attr_t
 
typedef enum _sai_tunnel_map_attr_t sai_tunnel_map_attr_t
 Defines tunnel map attributes.
 
typedef sai_status_t(* sai_create_tunnel_map_fn) (_Out_ sai_object_id_t *tunnel_map_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create tunnel Map.
 
typedef sai_status_t(* sai_remove_tunnel_map_fn) (_In_ sai_object_id_t tunnel_map_id)
 Remove tunnel Map.
 
typedef sai_status_t(* sai_set_tunnel_map_attribute_fn) (_In_ sai_object_id_t tunnel_map_id, _In_ const sai_attribute_t *attr)
 Set attributes for tunnel map.
 
typedef sai_status_t(* sai_get_tunnel_map_attribute_fn) (_In_ sai_object_id_t tunnel_map_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get attributes of tunnel map.
 
typedef enum _sai_tunnel_ttl_mode_t sai_tunnel_ttl_mode_t
 Defines tunnel TTL mode.
 
typedef enum _sai_tunnel_dscp_mode_t sai_tunnel_dscp_mode_t
 Defines tunnel DSCP mode.
 
typedef enum _sai_tunnel_peer_mode_t sai_tunnel_peer_mode_t
 Defines tunnel peer mode.
 
typedef enum _sai_tunnel_attr_t sai_tunnel_attr_t
 Defines tunnel attributes.
 
typedef enum _sai_tunnel_stat_t sai_tunnel_stat_t
 Tunnel counter IDs in sai_get_tunnel_stats() call.
 
typedef sai_status_t(* sai_create_tunnel_fn) (_Out_ sai_object_id_t *tunnel_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create tunnel.
 
typedef sai_status_t(* sai_remove_tunnel_fn) (_In_ sai_object_id_t tunnel_id)
 Remove tunnel.
 
typedef sai_status_t(* sai_set_tunnel_attribute_fn) (_In_ sai_object_id_t tunnel_id, _In_ const sai_attribute_t *attr)
 Set tunnel attribute.
 
typedef sai_status_t(* sai_get_tunnel_attribute_fn) (_In_ sai_object_id_t tunnel_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get tunnel attributes.
 
typedef sai_status_t(* sai_get_tunnel_stats_fn) (_In_ sai_object_id_t tunnel_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
 Get tunnel statistics counters. Deprecated for backward compatibility.
 
typedef sai_status_t(* sai_get_tunnel_stats_ext_fn) (_In_ sai_object_id_t tunnel_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 tunnel statistics counters extended.
 
typedef sai_status_t(* sai_clear_tunnel_stats_fn) (_In_ sai_object_id_t tunnel_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
 Clear tunnel statistics counters.
 
typedef enum _sai_tunnel_term_table_entry_type_t sai_tunnel_term_table_entry_type_t
 Defines tunnel termination table entry type.
 
typedef enum _sai_tunnel_term_table_entry_attr_t sai_tunnel_term_table_entry_attr_t
 Defines tunnel termination table entry attributes.
 
typedef sai_status_t(* sai_create_tunnel_term_table_entry_fn) (_Out_ sai_object_id_t *tunnel_term_table_entry_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create tunnel termination table entry.
 
typedef sai_status_t(* sai_remove_tunnel_term_table_entry_fn) (_In_ sai_object_id_t tunnel_term_table_entry_id)
 Remove tunnel termination table entry.
 
typedef sai_status_t(* sai_set_tunnel_term_table_entry_attribute_fn) (_In_ sai_object_id_t tunnel_term_table_entry_id, _In_ const sai_attribute_t *attr)
 Set tunnel termination table entry attribute.
 
typedef sai_status_t(* sai_get_tunnel_term_table_entry_attribute_fn) (_In_ sai_object_id_t tunnel_term_table_entry_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get tunnel termination table entry attributes.
 
typedef sai_status_t(* sai_create_tunnel_map_entry_fn) (_Out_ sai_object_id_t *tunnel_map_entry_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create tunnel map item.
 
typedef sai_status_t(* sai_remove_tunnel_map_entry_fn) (_In_ sai_object_id_t tunnel_map_entry_id)
 Remove tunnel map item.
 
typedef sai_status_t(* sai_set_tunnel_map_entry_attribute_fn) (_In_ sai_object_id_t tunnel_map_entry_id, _In_ const sai_attribute_t *attr)
 Set tunnel map item attribute.
 
typedef sai_status_t(* sai_get_tunnel_map_entry_attribute_fn) (_In_ sai_object_id_t tunnel_map_entry_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get tunnel map item attributes.
 
typedef struct _sai_tunnel_api_t sai_tunnel_api_t
 Tunnel methods table retrieved with sai_api_query()
 

Enumerations

enum  _sai_tunnel_map_type_t {
  SAI_TUNNEL_MAP_TYPE_OECN_TO_UECN = 0x00000000 , SAI_TUNNEL_MAP_TYPE_UECN_OECN_TO_OECN = 0x00000001 , SAI_TUNNEL_MAP_TYPE_VNI_TO_VLAN_ID = 0x00000002 , SAI_TUNNEL_MAP_TYPE_VLAN_ID_TO_VNI = 0x00000003 ,
  SAI_TUNNEL_MAP_TYPE_VNI_TO_BRIDGE_IF = 0x00000004 , SAI_TUNNEL_MAP_TYPE_BRIDGE_IF_TO_VNI = 0x00000005 , SAI_TUNNEL_MAP_TYPE_VNI_TO_VIRTUAL_ROUTER_ID = 0x00000006 , SAI_TUNNEL_MAP_TYPE_VIRTUAL_ROUTER_ID_TO_VNI = 0x00000007 ,
  SAI_TUNNEL_MAP_TYPE_VSID_TO_VLAN_ID = 0x00000008 , SAI_TUNNEL_MAP_TYPE_VLAN_ID_TO_VSID = 0x00000009 , SAI_TUNNEL_MAP_TYPE_VSID_TO_BRIDGE_IF = 0x0000000a , SAI_TUNNEL_MAP_TYPE_BRIDGE_IF_TO_VSID = 0x0000000b ,
  SAI_TUNNEL_MAP_TYPE_VIRTUAL_ROUTER_ID_TO_VPN_SID = 0x0000000c , SAI_TUNNEL_MAP_TYPE_PREFIX_AGG_ID_TO_SRV6_VPN_SID = 0x0000000d , SAI_TUNNEL_MAP_TYPE_CUSTOM_RANGE_BASE = 0x10000000
}
 Enum defining tunnel map types. More...
 
enum  _sai_tunnel_map_entry_attr_t {
  SAI_TUNNEL_MAP_ENTRY_ATTR_START = 0x00000000 , SAI_TUNNEL_MAP_ENTRY_ATTR_TUNNEL_MAP_TYPE = SAI_TUNNEL_MAP_ENTRY_ATTR_START , SAI_TUNNEL_MAP_ENTRY_ATTR_TUNNEL_MAP = 0x00000001 , SAI_TUNNEL_MAP_ENTRY_ATTR_OECN_KEY = 0x00000002 ,
  SAI_TUNNEL_MAP_ENTRY_ATTR_OECN_VALUE = 0x00000003 , SAI_TUNNEL_MAP_ENTRY_ATTR_UECN_KEY = 0x00000004 , SAI_TUNNEL_MAP_ENTRY_ATTR_UECN_VALUE = 0x00000005 , SAI_TUNNEL_MAP_ENTRY_ATTR_VLAN_ID_KEY = 0x00000006 ,
  SAI_TUNNEL_MAP_ENTRY_ATTR_VLAN_ID_VALUE = 0x00000007 , SAI_TUNNEL_MAP_ENTRY_ATTR_VNI_ID_KEY = 0x00000008 , SAI_TUNNEL_MAP_ENTRY_ATTR_VNI_ID_VALUE = 0x00000009 , SAI_TUNNEL_MAP_ENTRY_ATTR_BRIDGE_ID_KEY = 0x0000000a ,
  SAI_TUNNEL_MAP_ENTRY_ATTR_BRIDGE_ID_VALUE = 0x0000000b , SAI_TUNNEL_MAP_ENTRY_ATTR_VIRTUAL_ROUTER_ID_KEY = 0x0000000c , SAI_TUNNEL_MAP_ENTRY_ATTR_VIRTUAL_ROUTER_ID_VALUE = 0x0000000d , SAI_TUNNEL_MAP_ENTRY_ATTR_VSID_ID_KEY = 0x0000000e ,
  SAI_TUNNEL_MAP_ENTRY_ATTR_VSID_ID_VALUE = 0x0000000f , SAI_TUNNEL_MAP_ENTRY_ATTR_PREFIX_AGG_ID_KEY = 0x00000010 , SAI_TUNNEL_MAP_ENTRY_ATTR_SRV6_VPN_SID_VALUE = 0x00000011 , SAI_TUNNEL_MAP_ENTRY_ATTR_END ,
  SAI_TUNNEL_MAP_ENTRY_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_TUNNEL_MAP_ENTRY_ATTR_CUSTOM_RANGE_END
}
 
enum  _sai_tunnel_map_attr_t {
  SAI_TUNNEL_MAP_ATTR_START = 0x00000000 , SAI_TUNNEL_MAP_ATTR_TYPE = SAI_TUNNEL_MAP_ATTR_START , SAI_TUNNEL_MAP_ATTR_ENTRY_LIST , SAI_TUNNEL_MAP_ATTR_END ,
  SAI_TUNNEL_MAP_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_TUNNEL_MAP_ATTR_CUSTOM_RANGE_END
}
 Defines tunnel map attributes. More...
 
enum  _sai_tunnel_ttl_mode_t { SAI_TUNNEL_TTL_MODE_UNIFORM_MODEL , SAI_TUNNEL_TTL_MODE_PIPE_MODEL }
 Defines tunnel TTL mode. More...
 
enum  _sai_tunnel_dscp_mode_t { SAI_TUNNEL_DSCP_MODE_UNIFORM_MODEL , SAI_TUNNEL_DSCP_MODE_PIPE_MODEL }
 Defines tunnel DSCP mode. More...
 
enum  _sai_tunnel_peer_mode_t { SAI_TUNNEL_PEER_MODE_P2P , SAI_TUNNEL_PEER_MODE_P2MP }
 Defines tunnel peer mode. More...
 
enum  _sai_tunnel_attr_t {
  SAI_TUNNEL_ATTR_START , SAI_TUNNEL_ATTR_TYPE = SAI_TUNNEL_ATTR_START , SAI_TUNNEL_ATTR_UNDERLAY_INTERFACE , SAI_TUNNEL_ATTR_OVERLAY_INTERFACE ,
  SAI_TUNNEL_ATTR_PEER_MODE , SAI_TUNNEL_ATTR_ENCAP_SRC_IP , SAI_TUNNEL_ATTR_ENCAP_DST_IP , SAI_TUNNEL_ATTR_ENCAP_TTL_MODE ,
  SAI_TUNNEL_ATTR_ENCAP_TTL_VAL , SAI_TUNNEL_ATTR_ENCAP_DSCP_MODE , SAI_TUNNEL_ATTR_ENCAP_DSCP_VAL , SAI_TUNNEL_ATTR_ENCAP_GRE_KEY_VALID ,
  SAI_TUNNEL_ATTR_ENCAP_GRE_KEY , SAI_TUNNEL_ATTR_ENCAP_ECN_MODE , SAI_TUNNEL_ATTR_ENCAP_MAPPERS , SAI_TUNNEL_ATTR_DECAP_ECN_MODE ,
  SAI_TUNNEL_ATTR_DECAP_MAPPERS , SAI_TUNNEL_ATTR_DECAP_TTL_MODE , SAI_TUNNEL_ATTR_DECAP_DSCP_MODE , SAI_TUNNEL_ATTR_TERM_TABLE_ENTRY_LIST ,
  SAI_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION , SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT_MODE , SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT , SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK ,
  SAI_TUNNEL_ATTR_SA_INDEX , SAI_TUNNEL_ATTR_IPSEC_SA_PORT_LIST , SAI_TUNNEL_ATTR_ENCAP_QOS_TC_AND_COLOR_TO_DSCP_MAP , SAI_TUNNEL_ATTR_ENCAP_QOS_TC_TO_QUEUE_MAP ,
  SAI_TUNNEL_ATTR_DECAP_QOS_DSCP_TO_TC_MAP , SAI_TUNNEL_ATTR_DECAP_QOS_TC_TO_PRIORITY_GROUP_MAP , SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT_SECURITY , SAI_TUNNEL_ATTR_END ,
  SAI_TUNNEL_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_TUNNEL_ATTR_CUSTOM_RANGE_END
}
 Defines tunnel attributes. More...
 
enum  _sai_tunnel_stat_t { SAI_TUNNEL_STAT_IN_OCTETS , SAI_TUNNEL_STAT_IN_PACKETS , SAI_TUNNEL_STAT_OUT_OCTETS , SAI_TUNNEL_STAT_OUT_PACKETS }
 Tunnel counter IDs in sai_get_tunnel_stats() call. More...
 
enum  _sai_tunnel_term_table_entry_type_t { SAI_TUNNEL_TERM_TABLE_ENTRY_TYPE_P2P , SAI_TUNNEL_TERM_TABLE_ENTRY_TYPE_P2MP , SAI_TUNNEL_TERM_TABLE_ENTRY_TYPE_MP2P , SAI_TUNNEL_TERM_TABLE_ENTRY_TYPE_MP2MP }
 Defines tunnel termination table entry type. More...
 
enum  _sai_tunnel_term_table_entry_attr_t {
  SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_START , SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_VR_ID = SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_START , SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TYPE , SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP ,
  SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP_MASK , SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP , SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP_MASK , SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TUNNEL_TYPE ,
  SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_ACTION_TUNNEL_ID , SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_IP_ADDR_FAMILY , SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_IPSEC_VERIFIED , SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_PRIORITY ,
  SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_END , SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_CUSTOM_RANGE_END
}
 Defines tunnel termination table entry attributes. More...
 

Detailed Description

This module defines SAI Tunnel 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 saitunnel.h.