SAI Metadata
Loading...
Searching...
No Matches
SAI - Next hop specific API definitions.

Classes

struct  _sai_next_hop_api_t
 Next Hop methods table retrieved with sai_api_query() More...
 

Typedefs

typedef enum _sai_next_hop_type_t sai_next_hop_type_t
 Next hop type.
 
typedef enum _sai_next_hop_attr_t sai_next_hop_attr_t
 Attribute id for next hop.
 
typedef sai_status_t(* sai_create_next_hop_fn) (_Out_ sai_object_id_t *next_hop_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create next hop.
 
typedef sai_status_t(* sai_remove_next_hop_fn) (_In_ sai_object_id_t next_hop_id)
 Remove next hop.
 
typedef sai_status_t(* sai_set_next_hop_attribute_fn) (_In_ sai_object_id_t next_hop_id, _In_ const sai_attribute_t *attr)
 Set Next Hop attribute.
 
typedef sai_status_t(* sai_get_next_hop_attribute_fn) (_In_ sai_object_id_t next_hop_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get Next Hop attribute.
 
typedef struct _sai_next_hop_api_t sai_next_hop_api_t
 Next Hop methods table retrieved with sai_api_query()
 

Enumerations

enum  _sai_next_hop_type_t { SAI_NEXT_HOP_TYPE_IP , SAI_NEXT_HOP_TYPE_MPLS , SAI_NEXT_HOP_TYPE_TUNNEL_ENCAP , SAI_NEXT_HOP_TYPE_SRV6_SIDLIST }
 Next hop type. More...
 
enum  _sai_next_hop_attr_t {
  SAI_NEXT_HOP_ATTR_START , SAI_NEXT_HOP_ATTR_TYPE = SAI_NEXT_HOP_ATTR_START , SAI_NEXT_HOP_ATTR_IP , SAI_NEXT_HOP_ATTR_ROUTER_INTERFACE_ID ,
  SAI_NEXT_HOP_ATTR_TUNNEL_ID , SAI_NEXT_HOP_ATTR_TUNNEL_VNI , SAI_NEXT_HOP_ATTR_TUNNEL_MAC , SAI_NEXT_HOP_ATTR_SRV6_SIDLIST_ID ,
  SAI_NEXT_HOP_ATTR_LABELSTACK , SAI_NEXT_HOP_ATTR_COUNTER_ID , SAI_NEXT_HOP_ATTR_DISABLE_DECREMENT_TTL , SAI_NEXT_HOP_ATTR_OUTSEG_TYPE ,
  SAI_NEXT_HOP_ATTR_OUTSEG_TTL_MODE , SAI_NEXT_HOP_ATTR_OUTSEG_TTL_VALUE , SAI_NEXT_HOP_ATTR_OUTSEG_EXP_MODE , SAI_NEXT_HOP_ATTR_OUTSEG_EXP_VALUE ,
  SAI_NEXT_HOP_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP , SAI_NEXT_HOP_ATTR_DISABLE_SRC_MAC_REWRITE , SAI_NEXT_HOP_ATTR_DISABLE_DST_MAC_REWRITE , SAI_NEXT_HOP_ATTR_DISABLE_VLAN_REWRITE ,
  SAI_NEXT_HOP_ATTR_END , SAI_NEXT_HOP_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_NEXT_HOP_ATTR_CUSTOM_RANGE_END
}
 Attribute id for next hop. More...
 

Detailed Description

Typedef Documentation

◆ sai_create_next_hop_fn

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

Create next hop.

Note: IP address expected in Network Byte Order.

Parameters
[out]next_hop_idNext hop 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 281 of file sainexthop.h.

◆ sai_get_next_hop_attribute_fn

typedef sai_status_t(* sai_get_next_hop_attribute_fn) (_In_ sai_object_id_t next_hop_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get Next Hop attribute.

Parameters
[in]next_hop_idNext hop 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 318 of file sainexthop.h.

◆ sai_remove_next_hop_fn

typedef sai_status_t(* sai_remove_next_hop_fn) (_In_ sai_object_id_t next_hop_id)

Remove next hop.

Parameters
[in]next_hop_idNext hop id
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 294 of file sainexthop.h.

◆ sai_set_next_hop_attribute_fn

typedef sai_status_t(* sai_set_next_hop_attribute_fn) (_In_ sai_object_id_t next_hop_id, _In_ const sai_attribute_t *attr)

Set Next Hop attribute.

Parameters
[in]next_hop_idNext hop id
[in]attrAttribute
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 305 of file sainexthop.h.

Enumeration Type Documentation

◆ _sai_next_hop_attr_t

Attribute id for next hop.

Enumerator
SAI_NEXT_HOP_ATTR_START 

Start of attributes.

SAI_NEXT_HOP_ATTR_TYPE 

Next hop entry type.

Value Type:
sai_next_hop_type_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
IsResourceType:
true
SAI_NEXT_HOP_ATTR_IP 

Next hop entry IPv4 address.

Value Type:
sai_ip_address_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Condition:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_IP or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_MPLS or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_TUNNEL_ENCAP
SAI_NEXT_HOP_ATTR_ROUTER_INTERFACE_ID 

Next hop entry router interface id.

Value Type:
sai_object_id_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_ROUTER_INTERFACE
Condition:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_IP or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_MPLS
SAI_NEXT_HOP_ATTR_TUNNEL_ID 

Next hop entry tunnel-id.

Value Type:
sai_object_id_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_TUNNEL
Condition:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_TUNNEL_ENCAP or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_SRV6_SIDLIST
SAI_NEXT_HOP_ATTR_TUNNEL_VNI 

Next hop entry VNI (override tunnel mapper)

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
Valid only when:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_TUNNEL_ENCAP
SAI_NEXT_HOP_ATTR_TUNNEL_MAC 

Inner destination MAC address.

Value Type:
sai_mac_t
Flags:
CREATE_AND_SET
Default value:
attrvalue SAI_SWITCH_ATTR_VXLAN_DEFAULT_ROUTER_MAC
Valid only when:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_TUNNEL_ENCAP
SAI_NEXT_HOP_ATTR_SRV6_SIDLIST_ID 

Next hop entry SRV6 SID List.

Value Type:
sai_object_id_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_SRV6_SIDLIST
Allows NULL object ID
true
Condition:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_SRV6_SIDLIST
SAI_NEXT_HOP_ATTR_LABELSTACK 

Push label.

Value Type:
sai_u32_list_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Condition:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_MPLS
SAI_NEXT_HOP_ATTR_COUNTER_ID 

Attach a counter.

When it is empty, then packet hits won't be counted

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

To enable/disable Decrement TTL.

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

MPLS Outsegment type.

Value Type:
sai_outseg_type_t
Flags:
CREATE_AND_SET
Default value:
SAI_OUTSEG_TYPE_SWAP
Valid only when:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_MPLS
SAI_NEXT_HOP_ATTR_OUTSEG_TTL_MODE 

MPLS Outsegment TTL mode.

Value Type:
sai_outseg_ttl_mode_t
Flags:
CREATE_AND_SET
Default value:
SAI_OUTSEG_TTL_MODE_UNIFORM
Valid only when:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_MPLS and SAI_NEXT_HOP_ATTR_OUTSEG_TYPE == SAI_OUTSEG_TYPE_PUSH
SAI_NEXT_HOP_ATTR_OUTSEG_TTL_VALUE 

MPLS Outsegment TTL value for pipe mode.

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
255
Valid only when:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_MPLS and SAI_NEXT_HOP_ATTR_OUTSEG_TYPE == SAI_OUTSEG_TYPE_PUSH and SAI_NEXT_HOP_ATTR_OUTSEG_TTL_MODE == SAI_OUTSEG_TTL_MODE_PIPE
SAI_NEXT_HOP_ATTR_OUTSEG_EXP_MODE 

MPLS Outsegment MPLS EXP mode.

Value Type:
sai_outseg_exp_mode_t
Flags:
CREATE_AND_SET
Default value:
SAI_OUTSEG_EXP_MODE_UNIFORM
Valid only when:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_MPLS and SAI_NEXT_HOP_ATTR_OUTSEG_TYPE == SAI_OUTSEG_TYPE_PUSH
SAI_NEXT_HOP_ATTR_OUTSEG_EXP_VALUE 

MPLS Outsegment EXP value for pipe mode.

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
0
Valid only when:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_MPLS and SAI_NEXT_HOP_ATTR_OUTSEG_TYPE == SAI_OUTSEG_TYPE_PUSH and SAI_NEXT_HOP_ATTR_OUTSEG_TTL_MODE == SAI_OUTSEG_TTL_MODE_PIPE
SAI_NEXT_HOP_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP 

TC AND COLOR -> MPLS EXP MAP for Uniform Mode.

If present overrides SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP and SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_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
Valid only when:
SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_MPLS and SAI_NEXT_HOP_ATTR_OUTSEG_TYPE == SAI_OUTSEG_TYPE_PUSH and SAI_NEXT_HOP_ATTR_OUTSEG_TTL_MODE == SAI_OUTSEG_TTL_MODE_UNIFORM
SAI_NEXT_HOP_ATTR_DISABLE_SRC_MAC_REWRITE 

To enable/disable source MAC rewrite.

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

To enable/disable destination MAC rewrite.

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

To enable/disable VLAN rewrite.

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

End of attributes.

SAI_NEXT_HOP_ATTR_CUSTOM_RANGE_START 

Custom range base value

SAI_NEXT_HOP_ATTR_CUSTOM_RANGE_END 

End of custom range base

Definition at line 58 of file sainexthop.h.

◆ _sai_next_hop_type_t

Next hop type.

Enumerator
SAI_NEXT_HOP_TYPE_IP 

IP next hop

SAI_NEXT_HOP_TYPE_MPLS 

MPLS(outsegment) next hop

SAI_NEXT_HOP_TYPE_TUNNEL_ENCAP 

Tunnel next hop

SAI_NEXT_HOP_TYPE_SRV6_SIDLIST 

SRV6 SID List

Definition at line 39 of file sainexthop.h.