@@ -325,6 +325,177 @@ typedef enum _sai_switch_failover_config_mode_t
325325
326326} sai_switch_failover_config_mode_t ;
327327
328+ /**
329+ * @brief Defines tunnel attributes at switch level.
330+ * SAI_OBJECT_TYPE_SWITCH_TUNNEL object provides
331+ * per tunnel type global configuration.
332+ * SAI_OBJECT_TYPE_TUNNEL object configuration
333+ * overrides the switch scoped global configuration.
334+ */
335+ typedef enum _sai_switch_tunnel_attr_t
336+ {
337+ /**
338+ * @brief Start of attributes
339+ */
340+ SAI_SWITCH_TUNNEL_ATTR_START ,
341+
342+ /**
343+ * @brief Tunnel type key
344+ *
345+ * @type sai_tunnel_type_t
346+ * @flags MANDATORY_ON_CREATE | CREATE_ONLY | KEY
347+ * @isresourcetype true
348+ */
349+ SAI_SWITCH_TUNNEL_ATTR_TUNNEL_TYPE = SAI_SWITCH_TUNNEL_ATTR_START ,
350+
351+ /**
352+ * @brief Packet action when a packet ingress and gets routed back to same tunnel
353+ *
354+ * @type sai_packet_action_t
355+ * @flags CREATE_AND_SET
356+ * @default SAI_PACKET_ACTION_FORWARD
357+ */
358+ SAI_SWITCH_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION ,
359+
360+ /* Tunnel encap attributes */
361+
362+ /**
363+ * @brief Tunnel encap ECN mode
364+ *
365+ * @type sai_tunnel_encap_ecn_mode_t
366+ * @flags CREATE_ONLY
367+ * @default SAI_TUNNEL_ENCAP_ECN_MODE_STANDARD
368+ */
369+ SAI_SWITCH_TUNNEL_ATTR_TUNNEL_ENCAP_ECN_MODE ,
370+
371+ /**
372+ * @brief Tunnel encap ECN mappers only
373+ *
374+ * @type sai_object_list_t
375+ * @flags CREATE_ONLY
376+ * @objects SAI_OBJECT_TYPE_TUNNEL_MAP
377+ * @default empty
378+ */
379+ SAI_SWITCH_TUNNEL_ATTR_ENCAP_MAPPERS ,
380+
381+ /* Tunnel decap attributes */
382+
383+ /**
384+ * @brief Tunnel decap ECN mode
385+ *
386+ * @type sai_tunnel_decap_ecn_mode_t
387+ * @flags CREATE_ONLY
388+ * @default SAI_TUNNEL_DECAP_ECN_MODE_STANDARD
389+ */
390+ SAI_SWITCH_TUNNEL_ATTR_TUNNEL_DECAP_ECN_MODE ,
391+
392+ /**
393+ * @brief Tunnel decap ECN mappers only
394+ *
395+ * @type sai_object_list_t
396+ * @flags CREATE_ONLY
397+ * @objects SAI_OBJECT_TYPE_TUNNEL_MAP
398+ * @default empty
399+ */
400+ SAI_SWITCH_TUNNEL_ATTR_DECAP_MAPPERS ,
401+
402+ /**
403+ * @brief Tunnel VXLAN UDP source port mode
404+ *
405+ * @type sai_tunnel_vxlan_udp_sport_mode_t
406+ * @flags CREATE_AND_SET
407+ * @default SAI_TUNNEL_VXLAN_UDP_SPORT_MODE_EPHEMERAL
408+ */
409+ SAI_SWITCH_TUNNEL_ATTR_TUNNEL_VXLAN_UDP_SPORT_MODE ,
410+
411+ /**
412+ * @brief Tunnel UDP source port
413+ *
414+ * @type sai_uint16_t
415+ * @flags CREATE_AND_SET
416+ * @isvlan false
417+ * @default 0
418+ * @validonly 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
419+ */
420+ SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT ,
421+
422+ /**
423+ * @brief Tunnel UDP source port mask
424+ *
425+ * Sport mask defining the number of least significant bits
426+ * reserved for the calculated hash value. 0 means a fixed value.
427+ *
428+ * @type sai_uint8_t
429+ * @flags CREATE_AND_SET
430+ * @isvlan false
431+ * @default 0
432+ * @validonly 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
433+ */
434+ SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK ,
435+
436+ /**
437+ * @brief Enable TC AND COLOR -> DSCP MAP on tunnel at encapsulation (access-to-network) node to remark the DSCP in tunnel header
438+ *
439+ * @type sai_object_id_t
440+ * @flags CREATE_AND_SET
441+ * @objects SAI_OBJECT_TYPE_QOS_MAP
442+ * @allownull true
443+ * @default SAI_NULL_OBJECT_ID
444+ */
445+ SAI_SWITCH_TUNNEL_ATTR_ENCAP_QOS_TC_AND_COLOR_TO_DSCP_MAP ,
446+
447+ /**
448+ * @brief Enable TC -> Queue MAP on tunnel encap
449+ *
450+ * Map id = #SAI_NULL_OBJECT_ID to disable map on tunnel.
451+ * Default no map, i.e. packets are queued with static mapping.
452+ *
453+ * @type sai_object_id_t
454+ * @flags CREATE_AND_SET
455+ * @objects SAI_OBJECT_TYPE_QOS_MAP
456+ * @allownull true
457+ * @default SAI_NULL_OBJECT_ID
458+ */
459+ SAI_SWITCH_TUNNEL_ATTR_ENCAP_QOS_TC_TO_QUEUE_MAP ,
460+
461+ /**
462+ * @brief Enable DSCP -> TC MAP on tunnel at termination (Network-to-access) node.
463+ *
464+ * @type sai_object_id_t
465+ * @flags CREATE_AND_SET
466+ * @objects SAI_OBJECT_TYPE_QOS_MAP
467+ * @allownull true
468+ * @default SAI_NULL_OBJECT_ID
469+ */
470+ SAI_SWITCH_TUNNEL_ATTR_DECAP_QOS_DSCP_TO_TC_MAP ,
471+
472+ /**
473+ * @brief Enable TC -> Priority Group MAP
474+ *
475+ * Map id = #SAI_NULL_OBJECT_ID to disable map on port.
476+ * Default no map
477+ *
478+ * @type sai_object_id_t
479+ * @flags CREATE_AND_SET
480+ * @objects SAI_OBJECT_TYPE_QOS_MAP
481+ * @allownull true
482+ * @default SAI_NULL_OBJECT_ID
483+ */
484+ SAI_SWITCH_TUNNEL_ATTR_DECAP_QOS_TC_TO_PRIORITY_GROUP_MAP ,
485+
486+ /**
487+ * @brief End of attributes
488+ */
489+ SAI_SWITCH_TUNNEL_ATTR_END ,
490+
491+ /** Custom range base value */
492+ SAI_SWITCH_TUNNEL_ATTR_CUSTOM_RANGE_START = 0x10000000 ,
493+
494+ /** End of custom range base */
495+ SAI_SWITCH_TUNNEL_ATTR_CUSTOM_RANGE_END
496+
497+ } sai_switch_tunnel_attr_t ;
498+
328499/**
329500 * @brief Attribute Id in sai_set_switch_attribute() and
330501 * sai_get_switch_attribute() calls
0 commit comments