diff --git a/configure.ac b/configure.ac index 08ad419cc..acbd8716a 100644 --- a/configure.ac +++ b/configure.ac @@ -11,6 +11,8 @@ AC_PROG_CXX AC_PROG_LIBTOOL AC_HEADER_STDC +AM_CONDITIONAL(sonic_asic_platform_barefoot, test x$CONFIGURED_PLATFORM = xbarefoot) + AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging], [case "${enableval}" in diff --git a/lib/inc/sai_redis.h b/lib/inc/sai_redis.h index 09b68388a..d6021dc45 100644 --- a/lib/inc/sai_redis.h +++ b/lib/inc/sai_redis.h @@ -96,6 +96,7 @@ extern const sai_udf_api_t redis_udf_api; extern const sai_virtual_router_api_t redis_virtual_router_api; extern const sai_vlan_api_t redis_vlan_api; extern const sai_wred_api_t redis_wred_api; +extern const sai_dtel_api_t redis_dtel_api; #define UNREFERENCED_PARAMETER(X) diff --git a/lib/src/Makefile.am b/lib/src/Makefile.am index 1b94f5f04..6dc26deae 100644 --- a/lib/src/Makefile.am +++ b/lib/src/Makefile.am @@ -15,6 +15,7 @@ libsairedis_la_SOURCES = \ sai_redis_fdb.cpp \ sai_redis_hash.cpp \ sai_redis_hostintf.cpp \ + sai_redis_dtel.cpp \ sai_redis_interfacequery.cpp \ sai_redis_lag.cpp \ sai_redis_mirror.cpp \ diff --git a/lib/src/sai_redis_dtel.cpp b/lib/src/sai_redis_dtel.cpp new file mode 100644 index 000000000..c429cf3dd --- /dev/null +++ b/lib/src/sai_redis_dtel.cpp @@ -0,0 +1,16 @@ +#include "sai_redis.h" + +REDIS_GENERIC_QUAD(DTEL,dtel); +REDIS_GENERIC_QUAD(DTEL_QUEUE_REPORT,dtel_queue_report); +REDIS_GENERIC_QUAD(DTEL_INT_SESSION,dtel_int_session); +REDIS_GENERIC_QUAD(DTEL_REPORT_SESSION,dtel_report_session); +REDIS_GENERIC_QUAD(DTEL_EVENT,dtel_event); + +const sai_dtel_api_t redis_dtel_api = { + + REDIS_GENERIC_QUAD_API(dtel) + REDIS_GENERIC_QUAD_API(dtel_queue_report) + REDIS_GENERIC_QUAD_API(dtel_int_session) + REDIS_GENERIC_QUAD_API(dtel_report_session) + REDIS_GENERIC_QUAD_API(dtel_event) +}; diff --git a/lib/src/sai_redis_interfacequery.cpp b/lib/src/sai_redis_interfacequery.cpp index 365c37144..3548b1067 100644 --- a/lib/src/sai_redis_interfacequery.cpp +++ b/lib/src/sai_redis_interfacequery.cpp @@ -242,6 +242,7 @@ sai_status_t sai_api_query( API_CASE(VIRTUAL_ROUTER,virtual_router); API_CASE(VLAN,vlan); API_CASE(WRED,wred); + API_CASE(DTEL,dtel); default: SWSS_LOG_ERROR("Invalid API type %d", sai_api_id); diff --git a/lib/src/sai_redis_port.cpp b/lib/src/sai_redis_port.cpp index 33a1a6be4..5f05bbfd8 100644 --- a/lib/src/sai_redis_port.cpp +++ b/lib/src/sai_redis_port.cpp @@ -62,7 +62,6 @@ sai_status_t redis_clear_port_pool_stats( return SAI_STATUS_NOT_IMPLEMENTED; } - REDIS_GENERIC_QUAD(PORT,port); REDIS_GENERIC_QUAD(PORT_POOL,port_pool); diff --git a/meta/sai_meta.cpp b/meta/sai_meta.cpp index 122e48547..5cbb04368 100644 --- a/meta/sai_meta.cpp +++ b/meta/sai_meta.cpp @@ -1231,6 +1231,7 @@ sai_status_t meta_generic_validation_create( // ACL ACTION + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16: @@ -1305,6 +1306,9 @@ sai_status_t meta_generic_validation_create( case SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST: VALIDATION_LIST(md, value.aclresource); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: + VALIDATION_LIST(md, value.ipaddrlist); + break; case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: @@ -1910,6 +1914,7 @@ sai_status_t meta_generic_validation_set( // ACL ACTION + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16: @@ -1983,6 +1988,9 @@ sai_status_t meta_generic_validation_set( case SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST: VALIDATION_LIST(md, value.aclresource); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: + VALIDATION_LIST(md, value.ipaddrlist); + break; case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: @@ -2308,6 +2316,7 @@ sai_status_t meta_generic_validation_get( // ACL ACTION + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16: @@ -2353,6 +2362,9 @@ sai_status_t meta_generic_validation_get( case SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST: VALIDATION_LIST(md, value.aclresource); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: + VALIDATION_LIST(md, value.ipaddrlist); + break; case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_INT32_RANGE: @@ -2647,6 +2659,7 @@ void meta_generic_validation_post_create( // ACL ACTION + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16: @@ -2682,6 +2695,7 @@ void meta_generic_validation_post_create( case SAI_ATTR_VALUE_TYPE_UINT32_LIST: case SAI_ATTR_VALUE_TYPE_INT32_LIST: case SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_INT32_RANGE: case SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST: @@ -2783,6 +2797,7 @@ void meta_generic_validation_post_remove( // ACL ACTION + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16: @@ -2817,6 +2832,7 @@ void meta_generic_validation_post_remove( case SAI_ATTR_VALUE_TYPE_UINT32_LIST: case SAI_ATTR_VALUE_TYPE_INT32_LIST: case SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_INT32_RANGE: case SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST: @@ -3012,6 +3028,7 @@ void meta_generic_validation_post_set( // ACL ACTION + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16: @@ -3068,6 +3085,7 @@ void meta_generic_validation_post_set( case SAI_ATTR_VALUE_TYPE_UINT32_LIST: case SAI_ATTR_VALUE_TYPE_INT32_LIST: case SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_INT32_RANGE: case SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST: @@ -3319,6 +3337,7 @@ void meta_generic_validation_post_get( // ACL ACTION + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16: @@ -3367,6 +3386,9 @@ void meta_generic_validation_post_get( case SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST: VALIDATION_LIST_GET(md, value.aclresource); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: + VALIDATION_LIST_GET(md, value.ipaddrlist); + break; case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: diff --git a/meta/saiserialize.cpp b/meta/saiserialize.cpp index a6d52aa20..155d693cd 100644 --- a/meta/saiserialize.cpp +++ b/meta/saiserialize.cpp @@ -243,6 +243,9 @@ sai_status_t transfer_attribute( RETURN_ON_ERROR(transfer_list(src_attr.value.aclresource, dst_attr.value.aclresource, countOnly)); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: + RETURN_ON_ERROR(transfer_list(src_attr.value.ipaddrlist, dst_attr.value.ipaddrlist, countOnly)); + break; /* ACL FIELD DATA */ @@ -323,6 +326,11 @@ sai_status_t transfer_attribute( /* ACL ACTION DATA */ + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: + transfer_primitive(src_attr.value.aclaction.enable, dst_attr.value.aclaction.enable); + transfer_primitive(src_attr.value.aclaction.parameter.booldata, dst_attr.value.aclaction.parameter.booldata); + break; + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: transfer_primitive(src_attr.value.aclaction.enable, dst_attr.value.aclaction.enable); transfer_primitive(src_attr.value.aclaction.parameter.u8, dst_attr.value.aclaction.parameter.u8); @@ -904,6 +912,15 @@ std::string sai_serialize_list( } +std::string sai_serialize_ip_address_list( + _In_ const sai_ip_address_list_t& list, + _In_ bool countOnly) +{ + SWSS_LOG_ENTER(); + + return sai_serialize_list(list, countOnly, [&](sai_ip_address_t item) { return sai_serialize_ip_address(item);} ); +} + std::string sai_serialize_enum_list( _In_ const sai_s32_list_t& list, _In_ const sai_enum_metadata_t* meta, @@ -1065,6 +1082,9 @@ std::string sai_serialize_acl_action( switch (meta.attrvaluetype) { + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: + return sai_serialize_bool(action.parameter.booldata); + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: return sai_serialize_number(action.parameter.u8); @@ -1269,6 +1289,9 @@ std::string sai_serialize_attr_value( case SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST: return sai_serialize_acl_resource_list(attr.value.aclresource, countOnly); + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: + return sai_serialize_ip_address_list(attr.value.ipaddrlist, countOnly); + // ACL FIELD DATA case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL: @@ -1288,6 +1311,7 @@ std::string sai_serialize_attr_value( // ACL ACTION DATA + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16: @@ -1982,6 +2006,16 @@ void sai_deserialize_ip_address( SWSS_LOG_THROW("invalid ip address %s", s.c_str()); } +void sai_deserialize_ip_address_list( + _In_ const std::string& s, + _Out_ sai_ip_address_list_t& list, + _In_ bool countOnly) +{ + SWSS_LOG_ENTER(); + + sai_deserialize_list(s, list, countOnly, [&](const std::string sitem, sai_ip_address_t& item) { sai_deserialize_ip_address(sitem, item);} ); +} + template void sai_deserialize_range( _In_ const std::string& s, @@ -2113,6 +2147,9 @@ void sai_deserialize_acl_action( switch (meta.attrvaluetype) { + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: + return sai_deserialize_bool(s, action.parameter.booldata); + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: return sai_deserialize_number(s, action.parameter.u8); @@ -2247,6 +2284,9 @@ void sai_deserialize_attr_value( case SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST: return sai_deserialize_acl_resource_list(s, attr.value.aclresource, countOnly); + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: + return sai_deserialize_ip_address_list(s, attr.value.ipaddrlist, countOnly); + // ACL FIELD DATA case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL: @@ -2266,6 +2306,7 @@ void sai_deserialize_attr_value( // ACL ACTION DATA + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16: @@ -2688,6 +2729,10 @@ void sai_deserialize_free_attribute_value( sai_free_list(attr.value.aclresource); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: + sai_free_list(attr.value.ipaddrlist); + break; + /* ACL FIELD DATA */ case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL: @@ -2713,6 +2758,7 @@ void sai_deserialize_free_attribute_value( /* ACL ACTION DATA */ + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_BOOL: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_INT8: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_UINT16: diff --git a/saidiscovery/Makefile.am b/saidiscovery/Makefile.am index 451c2bbb0..04c49968b 100644 --- a/saidiscovery/Makefile.am +++ b/saidiscovery/Makefile.am @@ -11,8 +11,12 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else +if sonic_asic_platform_barefoot +SAILIB=-L/opt/bfn/install/lib -lswitchsai -lswitchapi -lbf_switchd_lib -ltofinopdfixed_thrift -ldriver -lbfutils -lbfsys -lbfutils -L/opt/bfn/install/lib/tofinopd/switch -lpd -lpdcli -lpdthrift +else SAILIB=-lsai endif +endif saidiscovery_SOURCES = saidiscovery.cpp diff --git a/saiplayer/saiplayer.cpp b/saiplayer/saiplayer.cpp index 9321b19f4..8d2faa6fa 100644 --- a/saiplayer/saiplayer.cpp +++ b/saiplayer/saiplayer.cpp @@ -315,6 +315,10 @@ void match_list_lengths( CHECK_LIST(value.qosmap); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: + CHECK_LIST(value.ipaddrlist); + break; + case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_OBJECT_LIST: CHECK_LIST(value.aclfield.data.objlist); break; diff --git a/saisdkdump/Makefile.am b/saisdkdump/Makefile.am index a7bc6d07d..938d076ef 100644 --- a/saisdkdump/Makefile.am +++ b/saisdkdump/Makefile.am @@ -8,11 +8,17 @@ else DBGFLAGS = -g endif + if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else +if sonic_asic_platform_barefoot +AM_LDFLAGS = -Wl,-unresolved-symbols=ignore-in-shared-libs +SAILIB=-L/opt/bfn/install/lib -lswitchsai +else SAILIB=-lsai endif +endif saisdkdump_SOURCES = saisdkdump.cpp saisdkdump_CPPFLAGS = $(DBGFLAGS) $(AM_CPPFLAGS) $(CFLAGS_COMMON) $(SAIFLAGS) diff --git a/syncd/Makefile.am b/syncd/Makefile.am index 6652e466f..619befac9 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -11,8 +11,14 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else +if sonic_asic_platform_barefoot +AM_CPPFLAGS += -I/opt/bfn/install/include +AM_LDFLAGS = -Wl,-unresolved-symbols=ignore-in-shared-libs +SAILIB=-L/opt/bfn/install/lib -lswitchsai +else SAILIB=-lsai endif +endif syncd_SOURCES = \ main.cpp \ diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index 37eb1916e..28a52dbe4 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -103,10 +103,28 @@ config_syncd_marvell() [ -e /dev/net/tun ] || ( mkdir -p /dev/net && mknod /dev/net/tun c 10 200 ) } +config_syncd_barefoot() +{ + # Check and load SDE profile + P4_PROFILE=$(sonic-cfggen -d -v 'DEVICE_METADATA["localhost"]["p4_profile"]') + if [[ -n "$P4_PROFILE" ]]; then + if [[ ( -d /opt/bfn/install_${P4_PROFILE} ) && ( -L /opt/bfn/install || ! -e /opt/bfn/install ) ]]; then + ln -srfn /opt/bfn/install_${P4_PROFILE} /opt/bfn/install + fi + fi + export ONIE_PLATFORM=`grep onie_platform /etc/machine.conf | awk 'BEGIN { FS = "=" } ; { print $2 }'` + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/bfn/install/lib/platform/$ONIE_PLATFORM:/opt/bfn/install/lib:/opt/bfn/install/lib/tofinopd/switch + ./opt/bfn/install/bin/dma_setup.sh + export LD_PRELOAD=libswitchapi.so:libswitchsai.so:libpd.so:libpdcli.so:libdriver.so:libbfsys.so:libbfutils.so:libbf_switchd_lib.so:libtofinopdfixed_thrift.so:libpdthrift.so + + if [ $FAST_REBOOT == "yes" ]; then + CMD_ARGS+=" -t fast" + fi +} + config_syncd_nephos() { CMD_ARGS+=" -p $HWSKU_DIR/sai.profile" - if [ $FAST_REBOOT == "yes" ]; then CMD_ARGS+=" -t fast" fi @@ -124,6 +142,8 @@ config_syncd() config_syncd_centec elif [ "$SONIC_ASIC_TYPE" == "marvell" ]; then config_syncd_marvell + elif [ "$SONIC_ASIC_TYPE" == "barefoot" ]; then + config_syncd_barefoot elif [ "$SONIC_ASIC_TYPE" == "nephos" ]; then config_syncd_nephos else diff --git a/vslib/inc/sai_vs.h b/vslib/inc/sai_vs.h index d5a0e2fce..0a1e30991 100644 --- a/vslib/inc/sai_vs.h +++ b/vslib/inc/sai_vs.h @@ -91,6 +91,7 @@ extern const sai_udf_api_t vs_udf_api; extern const sai_virtual_router_api_t vs_virtual_router_api; extern const sai_vlan_api_t vs_vlan_api; extern const sai_wred_api_t vs_wred_api; +extern const sai_dtel_api_t vs_dtel_api; // CREATE diff --git a/vslib/src/Makefile.am b/vslib/src/Makefile.am index 9e1d44023..6acc41c94 100644 --- a/vslib/src/Makefile.am +++ b/vslib/src/Makefile.am @@ -15,6 +15,7 @@ libsaivs_la_SOURCES = \ sai_vs_fdb.cpp \ sai_vs_hash.cpp \ sai_vs_hostintf.cpp \ + sai_vs_dtel.cpp \ sai_vs_interfacequery.cpp \ sai_vs_lag.cpp \ sai_vs_mirror.cpp \ diff --git a/vslib/src/sai_vs_dtel.cpp b/vslib/src/sai_vs_dtel.cpp new file mode 100644 index 000000000..a9049369f --- /dev/null +++ b/vslib/src/sai_vs_dtel.cpp @@ -0,0 +1,17 @@ +#include "sai_vs.h" +#include "sai_vs_internal.h" + +VS_GENERIC_QUAD(DTEL,dtel); +VS_GENERIC_QUAD(DTEL_QUEUE_REPORT,dtel_queue_report); +VS_GENERIC_QUAD(DTEL_INT_SESSION,dtel_int_session); +VS_GENERIC_QUAD(DTEL_REPORT_SESSION,dtel_report_session); +VS_GENERIC_QUAD(DTEL_EVENT,dtel_event); + +const sai_dtel_api_t vs_dtel_api = { + + VS_GENERIC_QUAD_API(dtel) + VS_GENERIC_QUAD_API(dtel_queue_report) + VS_GENERIC_QUAD_API(dtel_int_session) + VS_GENERIC_QUAD_API(dtel_report_session) + VS_GENERIC_QUAD_API(dtel_event) +}; diff --git a/vslib/src/sai_vs_interfacequery.cpp b/vslib/src/sai_vs_interfacequery.cpp index bb9efaf90..1be3a3a12 100644 --- a/vslib/src/sai_vs_interfacequery.cpp +++ b/vslib/src/sai_vs_interfacequery.cpp @@ -497,6 +497,7 @@ sai_status_t sai_api_query( API_CASE(VIRTUAL_ROUTER,virtual_router); API_CASE(VLAN,vlan); API_CASE(WRED,wred); + API_CASE(DTEL,dtel); default: SWSS_LOG_ERROR("Invalid API type %d", sai_api_id); diff --git a/vslib/src/sai_vs_policer.cpp b/vslib/src/sai_vs_policer.cpp index 075797ae7..e81521fc5 100644 --- a/vslib/src/sai_vs_policer.cpp +++ b/vslib/src/sai_vs_policer.cpp @@ -14,12 +14,10 @@ sai_status_t vs_get_policer_stats( return SAI_STATUS_NOT_IMPLEMENTED; } -sai_status_t vs_sai_get_policer_stats_ext( +sai_status_t vs_clear_policer_stats( _In_ sai_object_id_t policer_id, _In_ uint32_t number_of_counters, - _In_ const sai_policer_stat_t *counter_ids, - _In_ sai_stats_mode_t mode, - _Out_ uint64_t *counters) + _In_ const sai_policer_stat_t *counter_ids) { MUTEX(); @@ -28,10 +26,12 @@ sai_status_t vs_sai_get_policer_stats_ext( return SAI_STATUS_NOT_IMPLEMENTED; } -sai_status_t vs_clear_policer_stats( +sai_status_t vs_get_policer_stats_ext( _In_ sai_object_id_t policer_id, _In_ uint32_t number_of_counters, - _In_ const sai_policer_stat_t *counter_ids) + _In_ const sai_policer_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) { MUTEX(); @@ -47,6 +47,6 @@ const sai_policer_api_t vs_policer_api = { VS_GENERIC_QUAD_API(policer) vs_get_policer_stats, - vs_sai_get_policer_stats_ext, + vs_get_policer_stats_ext, vs_clear_policer_stats, }; diff --git a/vslib/src/sai_vs_port.cpp b/vslib/src/sai_vs_port.cpp index 9ef952e34..32fa2cb52 100644 --- a/vslib/src/sai_vs_port.cpp +++ b/vslib/src/sai_vs_port.cpp @@ -63,7 +63,6 @@ sai_status_t vs_clear_port_pool_stats( return SAI_STATUS_NOT_IMPLEMENTED; } - VS_GENERIC_GET_STATS(PORT,port); VS_GENERIC_GET_STATS(PORT_POOL,port_pool);