SAI Metadata
Loading...
Searching...
No Matches
SAI - Router interface specific API definitions

Classes

struct  _sai_router_interface_api_t
 Routing interface methods table retrieved with sai_api_query() More...
 

Typedefs

typedef enum _sai_router_interface_type_t sai_router_interface_type_t
 Attribute data for SAI_ROUTER_INTERFACE_ATTR_TYPE.
 
typedef enum _sai_router_interface_attr_t sai_router_interface_attr_t
 Routing interface attribute IDs.
 
typedef enum _sai_router_interface_stat_t sai_router_interface_stat_t
 Router interface counter IDs in sai_get_router_interface_stats() call.
 
typedef sai_status_t(* sai_create_router_interface_fn) (_Out_ sai_object_id_t *router_interface_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create router interface.
 
typedef sai_status_t(* sai_remove_router_interface_fn) (_In_ sai_object_id_t router_interface_id)
 Remove router interface.
 
typedef sai_status_t(* sai_set_router_interface_attribute_fn) (_In_ sai_object_id_t router_interface_id, _In_ const sai_attribute_t *attr)
 Set router interface attribute.
 
typedef sai_status_t(* sai_get_router_interface_attribute_fn) (_In_ sai_object_id_t router_interface_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get router interface attribute.
 
typedef sai_status_t(* sai_get_router_interface_stats_fn) (_In_ sai_object_id_t router_interface_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
 Get router interface statistics counters. Deprecated for backward compatibility.
 
typedef sai_status_t(* sai_get_router_interface_stats_ext_fn) (_In_ sai_object_id_t router_interface_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 router interface statistics counters extended.
 
typedef sai_status_t(* sai_clear_router_interface_stats_fn) (_In_ sai_object_id_t router_interface_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
 Clear router interface statistics counters.
 
typedef struct _sai_router_interface_api_t sai_router_interface_api_t
 Routing interface methods table retrieved with sai_api_query()
 

Enumerations

enum  _sai_router_interface_type_t {
  SAI_ROUTER_INTERFACE_TYPE_PORT , SAI_ROUTER_INTERFACE_TYPE_VLAN , SAI_ROUTER_INTERFACE_TYPE_LOOPBACK , SAI_ROUTER_INTERFACE_TYPE_MPLS_ROUTER ,
  SAI_ROUTER_INTERFACE_TYPE_SUB_PORT , SAI_ROUTER_INTERFACE_TYPE_BRIDGE , SAI_ROUTER_INTERFACE_TYPE_QINQ_PORT
}
 Attribute data for SAI_ROUTER_INTERFACE_ATTR_TYPE. More...
 
enum  _sai_router_interface_attr_t {
  SAI_ROUTER_INTERFACE_ATTR_START , SAI_ROUTER_INTERFACE_ATTR_VIRTUAL_ROUTER_ID = SAI_ROUTER_INTERFACE_ATTR_START , SAI_ROUTER_INTERFACE_ATTR_TYPE , SAI_ROUTER_INTERFACE_ATTR_PORT_ID ,
  SAI_ROUTER_INTERFACE_ATTR_VLAN_ID , SAI_ROUTER_INTERFACE_ATTR_OUTER_VLAN_ID , SAI_ROUTER_INTERFACE_ATTR_INNER_VLAN_ID , SAI_ROUTER_INTERFACE_ATTR_BRIDGE_ID ,
  SAI_ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS , SAI_ROUTER_INTERFACE_ATTR_ADMIN_V4_STATE , SAI_ROUTER_INTERFACE_ATTR_ADMIN_V6_STATE , SAI_ROUTER_INTERFACE_ATTR_MTU ,
  SAI_ROUTER_INTERFACE_ATTR_INGRESS_ACL , SAI_ROUTER_INTERFACE_ATTR_EGRESS_ACL , SAI_ROUTER_INTERFACE_ATTR_NEIGHBOR_MISS_PACKET_ACTION , SAI_ROUTER_INTERFACE_ATTR_V4_MCAST_ENABLE ,
  SAI_ROUTER_INTERFACE_ATTR_V6_MCAST_ENABLE , SAI_ROUTER_INTERFACE_ATTR_LOOPBACK_PACKET_ACTION , SAI_ROUTER_INTERFACE_ATTR_IS_VIRTUAL , SAI_ROUTER_INTERFACE_ATTR_NAT_ZONE_ID ,
  SAI_ROUTER_INTERFACE_ATTR_DISABLE_DECREMENT_TTL , SAI_ROUTER_INTERFACE_ATTR_ADMIN_MPLS_STATE , SAI_ROUTER_INTERFACE_ATTR_END , SAI_ROUTER_INTERFACE_ATTR_CUSTOM_RANGE_START = 0x10000000 ,
  SAI_ROUTER_INTERFACE_ATTR_CUSTOM_RANGE_END
}
 Routing interface attribute IDs. More...
 
enum  _sai_router_interface_stat_t {
  SAI_ROUTER_INTERFACE_STAT_IN_OCTETS , SAI_ROUTER_INTERFACE_STAT_IN_PACKETS , SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS , SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS ,
  SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS , SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS , SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS , SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS
}
 Router interface counter IDs in sai_get_router_interface_stats() call. More...
 

Detailed Description

Typedef Documentation

◆ sai_clear_router_interface_stats_fn

typedef sai_status_t(* sai_clear_router_interface_stats_fn) (_In_ sai_object_id_t router_interface_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)

Clear router interface statistics counters.

Parameters
[in]router_interface_idRouter interface 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 436 of file sairouterinterface.h.

◆ sai_create_router_interface_fn

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

Create router interface.

Parameters
[out]router_interface_idRouter interface 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 351 of file sairouterinterface.h.

◆ sai_get_router_interface_attribute_fn

typedef sai_status_t(* sai_get_router_interface_attribute_fn) (_In_ sai_object_id_t router_interface_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get router interface attribute.

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

Definition at line 388 of file sairouterinterface.h.

◆ sai_get_router_interface_stats_ext_fn

typedef sai_status_t(* sai_get_router_interface_stats_ext_fn) (_In_ sai_object_id_t router_interface_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 router interface statistics counters extended.

Parameters
[in]router_interface_idRouter interface 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 420 of file sairouterinterface.h.

◆ sai_get_router_interface_stats_fn

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

Get router interface statistics counters. Deprecated for backward compatibility.

Parameters
[in]router_interface_idRouter interface 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 403 of file sairouterinterface.h.

◆ sai_remove_router_interface_fn

typedef sai_status_t(* sai_remove_router_interface_fn) (_In_ sai_object_id_t router_interface_id)

Remove router interface.

Parameters
[in]router_interface_idRouter interface id
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 364 of file sairouterinterface.h.

◆ sai_set_router_interface_attribute_fn

typedef sai_status_t(* sai_set_router_interface_attribute_fn) (_In_ sai_object_id_t router_interface_id, _In_ const sai_attribute_t *attr)

Set router interface attribute.

Parameters
[in]router_interface_idRouter interface id
[in]attrAttribute
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 375 of file sairouterinterface.h.

Enumeration Type Documentation

◆ _sai_router_interface_attr_t

Routing interface attribute IDs.

Enumerator
SAI_ROUTER_INTERFACE_ATTR_START 

Start of attributes.

SAI_ROUTER_INTERFACE_ATTR_VIRTUAL_ROUTER_ID 

Virtual router id.

Value Type:
sai_object_id_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_VIRTUAL_ROUTER
SAI_ROUTER_INTERFACE_ATTR_TYPE 

Router interface type.

Value Type:
sai_router_interface_type_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_ROUTER_INTERFACE_ATTR_PORT_ID 

Associated Port, System Port or LAG object id.

Value Type:
sai_object_id_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_PORT, SAI_OBJECT_TYPE_LAG, SAI_OBJECT_TYPE_SYSTEM_PORT
Condition:
SAI_ROUTER_INTERFACE_ATTR_TYPE == SAI_ROUTER_INTERFACE_TYPE_PORT or SAI_ROUTER_INTERFACE_ATTR_TYPE == SAI_ROUTER_INTERFACE_TYPE_SUB_PORT
SAI_ROUTER_INTERFACE_ATTR_VLAN_ID 

Associated Vlan.

Value Type:
sai_object_id_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_VLAN
Condition:
SAI_ROUTER_INTERFACE_ATTR_TYPE == SAI_ROUTER_INTERFACE_TYPE_VLAN
SAI_ROUTER_INTERFACE_ATTR_OUTER_VLAN_ID 

Outer Vlan.

Value Type:
sai_uint16_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
IsVlan:
true
Condition:
SAI_ROUTER_INTERFACE_ATTR_TYPE == SAI_ROUTER_INTERFACE_TYPE_QINQ_PORT or SAI_ROUTER_INTERFACE_ATTR_TYPE == SAI_ROUTER_INTERFACE_TYPE_SUB_PORT
SAI_ROUTER_INTERFACE_ATTR_INNER_VLAN_ID 

Inner Vlan.

Value Type:
sai_uint16_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
IsVlan:
true
Condition:
SAI_ROUTER_INTERFACE_ATTR_TYPE == SAI_ROUTER_INTERFACE_TYPE_QINQ_PORT
SAI_ROUTER_INTERFACE_ATTR_BRIDGE_ID 

Associated 1D Bridge.

Value Type:
sai_object_id_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_BRIDGE
Condition:
SAI_ROUTER_INTERFACE_ATTR_TYPE == SAI_ROUTER_INTERFACE_TYPE_BRIDGE
SAI_ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS 

MAC Address.

Not valid when SAI_ROUTER_INTERFACE_ATTR_TYPE == SAI_ROUTER_INTERFACE_TYPE_LOOPBACK

Value Type:
sai_mac_t
Flags:
CREATE_AND_SET
Default value:
attrvalue SAI_VIRTUAL_ROUTER_ATTR_SRC_MAC_ADDRESS
SAI_ROUTER_INTERFACE_ATTR_ADMIN_V4_STATE 

Admin V4 state.

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

Admin V6 state.

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

MTU.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
1514
SAI_ROUTER_INTERFACE_ATTR_INGRESS_ACL 

RIF bind point for ingress ACL object.

Bind (or unbind) an ingress ACL table or ACL group on a RIF. 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_ROUTER_INTERFACE_ATTR_EGRESS_ACL 

RIF bind point for egress ACL object.

Bind (or unbind) an egress ACL table or ACL group on a RIF. 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_ROUTER_INTERFACE_ATTR_NEIGHBOR_MISS_PACKET_ACTION 

Packet action when neighbor table lookup miss for this router interface.

Value Type:
sai_packet_action_t
Flags:
CREATE_AND_SET
Default value:
SAI_PACKET_ACTION_TRAP
SAI_ROUTER_INTERFACE_ATTR_V4_MCAST_ENABLE 

V4 mcast enable.

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

V6 mcast enable.

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

Packet action when a packet ingress and gets routed on the same RIF.

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

RIF creation is a virtual RIF.

Create a Virtual RIF object, which only programs the ingress router MAC. This simplifies the management of VRRP master router's configuration in SAI adapter, as defined by RFC 5798 (or similar proprietary protocols). Using a Virtual RIF allows SAI to optimize resources, so neighbor entries cannot be learned on a Virtual RIF. On a virtual RIF following attributes are invalid: ADMIN state, MTU size, packet action and multicast enable. Alternatively VRRP can also be configured using native RIF objects without using VIRTUAL attribute, with the expectation that SAI adapter will consume resources that will not be used.

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

NAT Zone ID.

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

To enable/disable Decrement TTL.

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

Admin MPLS state.

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

End of attributes.

SAI_ROUTER_INTERFACE_ATTR_CUSTOM_RANGE_START 

Custom range base value

SAI_ROUTER_INTERFACE_ATTR_CUSTOM_RANGE_END 

End of custom range base

Definition at line 67 of file sairouterinterface.h.

◆ _sai_router_interface_stat_t

Router interface counter IDs in sai_get_router_interface_stats() call.

Enumerator
SAI_ROUTER_INTERFACE_STAT_IN_OCTETS 

Ingress byte stat count

SAI_ROUTER_INTERFACE_STAT_IN_PACKETS 

Ingress packet stat count

SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS 

Egress byte stat count

SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS 

Egress packet stat count

SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS 

Byte stat count for packets having errors on router ingress

SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS 

Packet stat count for packets having errors on router ingress

SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS 

Byte stat count for packets having errors on router egress

SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS 

Packet stat count for packets having errors on router egress

Definition at line 313 of file sairouterinterface.h.

◆ _sai_router_interface_type_t

Attribute data for SAI_ROUTER_INTERFACE_ATTR_TYPE.

Enumerator
SAI_ROUTER_INTERFACE_TYPE_PORT 

Port or LAG or System Port Router Interface Type

SAI_ROUTER_INTERFACE_TYPE_VLAN 

VLAN Router Interface Type

SAI_ROUTER_INTERFACE_TYPE_LOOPBACK 

Loopback Router Interface Type

SAI_ROUTER_INTERFACE_TYPE_MPLS_ROUTER 

MPLS Router Interface Type

SAI_ROUTER_INTERFACE_TYPE_SUB_PORT 

Sub port Router Interface Type

SAI_ROUTER_INTERFACE_TYPE_BRIDGE 

.1D Bridge Router Interface Type

SAI_ROUTER_INTERFACE_TYPE_QINQ_PORT 

Q-in-Q Router Interface Type

Definition at line 39 of file sairouterinterface.h.