Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions experimental/saiextensions.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include "saitypesextensions.h"
#include "saiswitchextensions.h"
#include "saiportextensions.h"
#include "sairouterinterfaceextensions.h"

/* new experimental object type includes */
#include "saiexperimentaldashtrustedvni.h"
Expand Down
83 changes: 83 additions & 0 deletions experimental/sairouterinterfaceextensions.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
/**
* Copyright (c) 2026 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.
*
* @file sairouterinterfaceextensions.h
*
* @brief This module defines router interface extensions of the Switch Abstraction Interface (SAI)
*/

#ifndef __SAIROUTERINTERFACEEXTENSIONS_H_
#define __SAIROUTERINTERFACEEXTENSIONS_H_

#include <saitypes.h>
#include <sairouterinterface.h>

/**
* @brief SAI router interface attribute extensions.
*
* @flags free
*/
typedef enum _sai_router_interface_attr_extensions_t
{
/**
* @brief SAG support
*
* @type bool
* @flags CREATE_AND_SET
* @default false
*/
SAI_ROUTER_INTERFACE_ATTR_ANYCAST_MAC_SUPPORT = SAI_ROUTER_INTERFACE_ATTR_END,

/**
* @brief MAC Address
*
* valid when SAI_ROUTER_INTERFACE_ATTR_TYPE != SAI_ROUTER_INTERFACE_TYPE_LOOPBACK
*
* @type sai_mac_t
* @flags CREATE_AND_SET
* @default attrvalue SAI_VIRTUAL_ROUTER_ATTR_SRC_MAC_ADDRESS
*/
SAI_ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS_RIF_UPDATE,

/**
* @brief MAC Address
*
* valid when SAI_ROUTER_INTERFACE_ATTR_TYPE != SAI_ROUTER_INTERFACE_TYPE_LOOPBACK
*
* @type sai_mac_t
* @flags CREATE_AND_SET
* @default attrvalue SAI_VIRTUAL_ROUTER_ATTR_SRC_MAC_ADDRESS
*/
SAI_ROUTER_INTERFACE_ATTR_PEER_SRC_MAC_ADDRESS,

/**
* @brief Disable VLAN and port-VLAN membership programming
*
* valid when SAI_ROUTER_INTERFACE_ATTR_TYPE == SAI_ROUTER_INTERFACE_TYPE_SUB_PORT
*
* @type bool
* @flags CREATE_ONLY
* @default false
*/
SAI_ROUTER_INTERFACE_ATTR_DISABLE_SUB_PORT_VLAN_CONFIG

} sai_router_interface_attr_extensions_t;

#endif /* __SAIROUTERINTERFACEEXTENSIONS_H_ */

11 changes: 11 additions & 0 deletions inc/sainexthopgroup.h
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,17 @@ typedef enum _sai_next_hop_group_attr_t
*/
SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE,

/**
* @brief Weighted multi path configuration mode.
* false: Nexthop group is programmed with repeated member entries proportional to their weight
* true: Nexthop group is programmed with switch native configuration
*
* @type bool
* @flags CREATE_AND_SET
* @default false
*/
SAI_NEXT_HOP_GROUP_ATTR_NATIVE_WCMP,

/**
* @brief End of attributes
*/
Expand Down
Loading