From aa5bf640db7b7fca245c1669eeb02198a50cb5c1 Mon Sep 17 00:00:00 2001 From: kram Date: Thu, 2 Nov 2017 17:00:19 -0700 Subject: [PATCH 01/41] initial barefoot checkin october 2017 --- saidiscovery/Makefile.am | 2 +- saisdkdump/Makefile.am | 2 +- syncd/Makefile.am | 2 +- syncd/scripts/syncd_init_common.sh | 10 ++++++++++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/saidiscovery/Makefile.am b/saidiscovery/Makefile.am index 451c2bbb0..8c57ef570 100644 --- a/saidiscovery/Makefile.am +++ b/saidiscovery/Makefile.am @@ -11,7 +11,7 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else -SAILIB=-lsai +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 endif saidiscovery_SOURCES = saidiscovery.cpp diff --git a/saisdkdump/Makefile.am b/saisdkdump/Makefile.am index a7bc6d07d..304f2c394 100644 --- a/saisdkdump/Makefile.am +++ b/saisdkdump/Makefile.am @@ -11,7 +11,7 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else -SAILIB=-lsai +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 endif saisdkdump_SOURCES = saisdkdump.cpp diff --git a/syncd/Makefile.am b/syncd/Makefile.am index de59b3619..c48d3d13d 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -11,7 +11,7 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else -SAILIB=-lsai +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 endif syncd_SOURCES = \ diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index f31d201eb..bcfc20077 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -103,6 +103,14 @@ config_syncd_marvell() [ -e /dev/net/tun ] || ( mkdir -p /dev/net && mknod /dev/net/tun c 10 200 ) } +config_syncd_barefoot() +{ + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/bfn/install/lib:/opt/bfn/install/lib/tofinopd/switch + . /opt/bfn/install/bin/dma_setup.sh + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/bfn/install/lib:/opt/bfn/install/lib/tofinopd/switch + export LD_PRELOAD=libswitchapi.so:libswitchsai.so:libpd.so:libpdcli.so:libdriver.so:libbfsys.so +} + config_syncd() { if [ "$SONIC_ASIC_TYPE" == "broadcom" ]; then @@ -115,6 +123,8 @@ config_syncd() config_syncd_centec elif [ "$SONIC_ASIC_TYPE" == "marvell" ]; then config_syncd_marvell + elif [ "$SONIC_ASIC_TYPE" == "barefoot" ]; then + config_syncd_barefoot else echo "Unknown ASIC type $SONIC_ASIC_TYPE" exit 1 From 29ab3de71f1ec297fd0c79057a4fe5d34e4e62a5 Mon Sep 17 00:00:00 2001 From: kram Date: Fri, 3 Nov 2017 13:10:20 -0700 Subject: [PATCH 02/41] Revert "Merge branch 'master' of https://github.com/Azure/sonic-sairedis into rel_6_0" This reverts commit c48a7a20de2fb9e615535481f8727029440413bc, reversing changes made to aa5bf640db7b7fca245c1669eeb02198a50cb5c1. --- syncd/scripts/syncd_init_common.sh | 2 ++ vslib/src/sai_vs_hostintf.cpp | 6 +----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index 1513f5345..bcfc20077 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -92,6 +92,8 @@ config_syncd_cavium() until [ $(redis-cli ping | grep -c PONG) -gt 0 ]; do sleep 1 done + + redis-cli FLUSHALL } config_syncd_marvell() diff --git a/vslib/src/sai_vs_hostintf.cpp b/vslib/src/sai_vs_hostintf.cpp index 6701c717a..6bdb70ef7 100644 --- a/vslib/src/sai_vs_hostintf.cpp +++ b/vslib/src/sai_vs_hostintf.cpp @@ -314,11 +314,7 @@ sai_status_t vs_create_hostif_int( if (g_vs_hostif_use_tap_device == false) { - return vs_generic_create(object_type, - hostif_id, - switch_id, - attr_count, - attr_list); + return SAI_STATUS_SUCCESS; } // validate SAI_HOSTIF_ATTR_TYPE From e0366e03b884b155bc93751999ae08b961592026 Mon Sep 17 00:00:00 2001 From: kram Date: Sat, 4 Nov 2017 14:12:37 -0700 Subject: [PATCH 03/41] missed integration diffs --- syncd/scripts/syncd_init_common.sh | 2 -- vslib/src/sai_vs_hostintf.cpp | 6 +++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index bcfc20077..1513f5345 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -92,8 +92,6 @@ config_syncd_cavium() until [ $(redis-cli ping | grep -c PONG) -gt 0 ]; do sleep 1 done - - redis-cli FLUSHALL } config_syncd_marvell() diff --git a/vslib/src/sai_vs_hostintf.cpp b/vslib/src/sai_vs_hostintf.cpp index 6bdb70ef7..6701c717a 100644 --- a/vslib/src/sai_vs_hostintf.cpp +++ b/vslib/src/sai_vs_hostintf.cpp @@ -314,7 +314,11 @@ sai_status_t vs_create_hostif_int( if (g_vs_hostif_use_tap_device == false) { - return SAI_STATUS_SUCCESS; + return vs_generic_create(object_type, + hostif_id, + switch_id, + attr_count, + attr_list); } // validate SAI_HOSTIF_ATTR_TYPE From 1b39bc2533ef132e7210e11582496e16440be81f Mon Sep 17 00:00:00 2001 From: bfn Date: Tue, 28 Nov 2017 14:15:02 -0500 Subject: [PATCH 04/41] Added new attr type support to sairedis. Also, some fixes for compilation issues --- .gitmodules | 2 +- SAI | 2 +- meta/sai_meta.cpp | 29 +++++++++++++++++ meta/saiserialize.cpp | 71 +++++++++++++++++++++++++++++++++++++++++ saiplayer/saiplayer.cpp | 4 +++ 5 files changed, 106 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index bff8c0714..3daf6a052 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "SAI"] path = SAI - url = https://github.com/opencomputeproject/SAI.git + url = https://github.com/p4lang/SAI.git ignore = dirty diff --git a/SAI b/SAI index 40d7d66ce..1816d70e3 160000 --- a/SAI +++ b/SAI @@ -1 +1 @@ -Subproject commit 40d7d66ce80fa03db397acd1ab614923a23340dd +Subproject commit 1816d70e3c0de27a1318e43b40f057133e428387 diff --git a/meta/sai_meta.cpp b/meta/sai_meta.cpp index 6dadef9f5..da86977d0 100644 --- a/meta/sai_meta.cpp +++ b/meta/sai_meta.cpp @@ -1192,6 +1192,9 @@ sai_status_t meta_generic_validation_create( // ACL END + case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: + break; + case SAI_ATTR_VALUE_TYPE_UINT8_LIST: VALIDATION_LIST(md, value.u8list); break; @@ -1216,6 +1219,9 @@ sai_status_t meta_generic_validation_create( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: VALIDATION_LIST(md, value.tunnelmap); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + VALIDATION_LIST(md, value.ipaddrlist); + break; case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: @@ -1863,6 +1869,9 @@ sai_status_t meta_generic_validation_set( // ACL END + case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: + break; + case SAI_ATTR_VALUE_TYPE_UINT8_LIST: VALIDATION_LIST(md, value.u8list); break; @@ -1887,6 +1896,9 @@ sai_status_t meta_generic_validation_set( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: VALIDATION_LIST(md, value.tunnelmap); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + VALIDATION_LIST(md, value.ipaddrlist); + break; case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: @@ -2215,6 +2227,9 @@ sai_status_t meta_generic_validation_get( // ACL END + case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: + break; + case SAI_ATTR_VALUE_TYPE_UINT8_LIST: VALIDATION_LIST(md, value.u8list); break; @@ -2239,6 +2254,9 @@ sai_status_t meta_generic_validation_get( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: VALIDATION_LIST(md, value.tunnelmap); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + VALIDATION_LIST(md, value.ipaddrlist); + break; case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_INT32_RANGE: @@ -2520,6 +2538,8 @@ void meta_generic_validation_post_create( case SAI_ATTR_VALUE_TYPE_INT32_LIST: case SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST: case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: + case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: + case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_INT32_RANGE: // no special action required @@ -2655,6 +2675,8 @@ void meta_generic_validation_post_remove( case SAI_ATTR_VALUE_TYPE_INT32_LIST: case SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST: case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: + case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: + case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_INT32_RANGE: // no special action required @@ -2906,6 +2928,8 @@ void meta_generic_validation_post_set( case SAI_ATTR_VALUE_TYPE_INT32_LIST: case SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST: case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: + case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: + case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_INT32_RANGE: // no special action required @@ -3180,6 +3204,8 @@ void meta_generic_validation_post_get( // ACL END + case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: + break; case SAI_ATTR_VALUE_TYPE_UINT8_LIST: VALIDATION_LIST_GET(md, value.u8list); break; @@ -3204,6 +3230,9 @@ void meta_generic_validation_post_get( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: VALIDATION_LIST_GET(md, value.tunnelmap); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDR_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 ebf360558..6bb4cc1ea 100644 --- a/meta/saiserialize.cpp +++ b/meta/saiserialize.cpp @@ -227,6 +227,15 @@ sai_status_t transfer_attribute( RETURN_ON_ERROR(transfer_list(src_attr.value.tunnelmap, dst_attr.value.tunnelmap, countOnly)); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + RETURN_ON_ERROR(transfer_list(src_attr.value.ipaddrlist, dst_attr.value.ipaddrlist, countOnly)); + break; + + case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: + transfer_primitive(src_attr.value.ternaryfield.mask.u8, dst_attr.value.ternaryfield.mask.u8); + transfer_primitive(src_attr.value.ternaryfield.value.u8, dst_attr.value.ternaryfield.value.u8); + break; + /* ACL FIELD DATA */ case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL: @@ -866,6 +875,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, @@ -1018,6 +1036,14 @@ std::string sai_serialize_range( return sai_serialize_number(range.min) + "," + sai_serialize_number(range.max); } +std::string sai_serialize_ternary_field( + _In_ const sai_ternary_field_t& ternary_field) +{ + SWSS_LOG_ENTER(); + + return sai_serialize_number(ternary_field.value.u8) + "/" + sai_serialize_number(ternary_field.mask.u8); +} + std::string sai_serialize_acl_action( _In_ const sai_attr_metadata_t& meta, _In_ const sai_acl_action_data_t& action, @@ -1239,6 +1265,12 @@ std::string sai_serialize_attr_value( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: return sai_serialize_tunnel_map_list(attr.value.tunnelmap, countOnly); + case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + return sai_serialize_ip_address_list(attr.value.ipaddrlist, countOnly); + + case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: + return sai_serialize_ternary_field(attr.value.ternaryfield); + // ACL FIELD DATA case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL: @@ -1962,6 +1994,16 @@ void sai_deserialize_ip_address( throw std::runtime_error("invalid ip address"); } +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, @@ -1981,6 +2023,24 @@ void sai_deserialize_range( sai_deserialize_number(tokens[1], range.max); } +void sai_deserialize_ternary_field( + _In_ const std::string& s, + _Out_ sai_ternary_field_t& field) +{ + SWSS_LOG_ENTER(); + + auto tokens = swss::tokenize(s, '/'); + + if (tokens.size() != 2) + { + SWSS_LOG_ERROR("invalid ternary field %s", s.c_str()); + throw std::runtime_error("invalid ternary field"); + } + + sai_deserialize_number(tokens[0], field.value.u8); + sai_deserialize_number(tokens[1], field.mask.u8); +} + void sai_deserialize_acl_field( _In_ const std::string& s, _In_ const sai_attr_metadata_t& meta, @@ -2230,6 +2290,12 @@ void sai_deserialize_attr_value( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: return sai_deserialize_tunnel_map_list(s, attr.value.tunnelmap, countOnly); + case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + return sai_deserialize_ip_address_list(s, attr.value.ipaddrlist, countOnly); + + case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: + return sai_deserialize_ternary_field(s, attr.value.ternaryfield); + // ACL FIELD DATA case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL: @@ -2643,6 +2709,7 @@ void sai_deserialize_free_attribute_value( case SAI_ATTR_VALUE_TYPE_POINTER: case SAI_ATTR_VALUE_TYPE_IP_ADDRESS: case SAI_ATTR_VALUE_TYPE_OBJECT_ID: + case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: break; case SAI_ATTR_VALUE_TYPE_OBJECT_LIST: @@ -2689,6 +2756,10 @@ void sai_deserialize_free_attribute_value( sai_free_list(attr.value.tunnelmap); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + sai_free_list(attr.value.ipaddrlist); + break; + /* ACL FIELD DATA */ case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL: diff --git a/saiplayer/saiplayer.cpp b/saiplayer/saiplayer.cpp index 87d7ed1a3..12b93eae4 100644 --- a/saiplayer/saiplayer.cpp +++ b/saiplayer/saiplayer.cpp @@ -310,6 +310,10 @@ void match_list_lengths( CHECK_LIST(value.tunnelmap); break; + case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + CHECK_LIST(value.ipaddrlist); + break; + case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_OBJECT_LIST: CHECK_LIST(value.aclfield.data.objlist); break; From 23a5d398f57ef6e2fe6c2237d43c15e2898be69c Mon Sep 17 00:00:00 2001 From: bfn Date: Tue, 28 Nov 2017 22:18:50 -0500 Subject: [PATCH 05/41] Changes to add new DTel api support in sairedis --- SAI | 2 +- lib/inc/sai_redis.h | 1 + lib/src/Makefile.am | 1 + lib/src/sai_redis_interfacequery.cpp | 1 + vslib/inc/sai_vs.h | 1 + vslib/src/Makefile.am | 1 + vslib/src/sai_vs_interfacequery.cpp | 1 + 7 files changed, 7 insertions(+), 1 deletion(-) diff --git a/SAI b/SAI index 1816d70e3..da2c1936b 160000 --- a/SAI +++ b/SAI @@ -1 +1 @@ -Subproject commit 1816d70e3c0de27a1318e43b40f057133e428387 +Subproject commit da2c1936b6bcad42f9153abafaeb7f03157d6ae1 diff --git a/lib/inc/sai_redis.h b/lib/inc/sai_redis.h index 590e2d5bd..8fac65657 100644 --- a/lib/inc/sai_redis.h +++ b/lib/inc/sai_redis.h @@ -95,6 +95,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_interfacequery.cpp b/lib/src/sai_redis_interfacequery.cpp index 61c790f61..71e41438f 100644 --- a/lib/src/sai_redis_interfacequery.cpp +++ b/lib/src/sai_redis_interfacequery.cpp @@ -244,6 +244,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/inc/sai_vs.h b/vslib/inc/sai_vs.h index 9bb1339d0..e291ed1f5 100644 --- a/vslib/inc/sai_vs.h +++ b/vslib/inc/sai_vs.h @@ -70,6 +70,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 ef2b96c30..dcae0bc40 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_interfacequery.cpp b/vslib/src/sai_vs_interfacequery.cpp index 3650fc9fa..f5025f359 100644 --- a/vslib/src/sai_vs_interfacequery.cpp +++ b/vslib/src/sai_vs_interfacequery.cpp @@ -205,6 +205,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); From 81388549573efd59256ae0cde6a9c85a53e46585 Mon Sep 17 00:00:00 2001 From: bfn Date: Thu, 7 Dec 2017 14:37:18 -0500 Subject: [PATCH 06/41] Add new file to generate Dtel specific SAI stub API --- lib/src/sai_redis_dtel.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 lib/src/sai_redis_dtel.cpp diff --git a/lib/src/sai_redis_dtel.cpp b/lib/src/sai_redis_dtel.cpp new file mode 100644 index 000000000..9c62dc638 --- /dev/null +++ b/lib/src/sai_redis_dtel.cpp @@ -0,0 +1,14 @@ +#include "sai_redis.h" + +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_queue_report) + REDIS_GENERIC_QUAD_API(dtel_int_session) + REDIS_GENERIC_QUAD_API(dtel_report_session) + REDIS_GENERIC_QUAD_API(dtel_event) +}; From be10c3f0595a0cf1ab4ff6d32119542448e03e4a Mon Sep 17 00:00:00 2001 From: bfn Date: Thu, 7 Dec 2017 14:43:00 -0500 Subject: [PATCH 07/41] Missed adding a file in the last commit --- vslib/src/sai_vs_dtel.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 vslib/src/sai_vs_dtel.cpp diff --git a/vslib/src/sai_vs_dtel.cpp b/vslib/src/sai_vs_dtel.cpp new file mode 100644 index 000000000..085000159 --- /dev/null +++ b/vslib/src/sai_vs_dtel.cpp @@ -0,0 +1,15 @@ +#include "sai_vs.h" +#include "sai_vs_internal.h" + +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_queue_report) + VS_GENERIC_QUAD_API(dtel_int_session) + VS_GENERIC_QUAD_API(dtel_report_session) + VS_GENERIC_QUAD_API(dtel_event) +}; From b31892bc63aefbec430d1f3e2d7166c042e8bad8 Mon Sep 17 00:00:00 2001 From: shruthi Date: Fri, 15 Dec 2017 11:47:52 -0800 Subject: [PATCH 08/41] Fix ref point for SAI --- SAI | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SAI b/SAI index da2c1936b..bf39158ed 160000 --- a/SAI +++ b/SAI @@ -1 +1 @@ -Subproject commit da2c1936b6bcad42f9153abafaeb7f03157d6ae1 +Subproject commit bf39158ed671b5f0d36aaa29242d407033d735f5 From 1c1d8628a4ef504792f0a5dce879fa04bc459e7f Mon Sep 17 00:00:00 2001 From: shruthi Date: Thu, 21 Dec 2017 12:36:02 -0800 Subject: [PATCH 09/41] Updated SAI repo to point to dtel_exp --- SAI | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SAI b/SAI index bf39158ed..0f7863a31 160000 --- a/SAI +++ b/SAI @@ -1 +1 @@ -Subproject commit bf39158ed671b5f0d36aaa29242d407033d735f5 +Subproject commit 0f7863a311b2752b0cbf8c8ea3fb973d8285669d From 488287d1005e5346a2659794fff9f62e37578444 Mon Sep 17 00:00:00 2001 From: shruthi Date: Thu, 21 Dec 2017 17:52:10 -0800 Subject: [PATCH 10/41] Changes to handle new additions to DTel experimental SAI. Not compiled yet --- lib/src/sai_redis_dtel.cpp | 2 ++ meta/sai_meta.cpp | 28 ++++++----------------- meta/saiserialize.cpp | 46 ++++---------------------------------- saiplayer/saiplayer.cpp | 2 +- vslib/src/sai_vs_dtel.cpp | 2 ++ 5 files changed, 16 insertions(+), 64 deletions(-) diff --git a/lib/src/sai_redis_dtel.cpp b/lib/src/sai_redis_dtel.cpp index 9c62dc638..6ea68267b 100644 --- a/lib/src/sai_redis_dtel.cpp +++ b/lib/src/sai_redis_dtel.cpp @@ -1,5 +1,6 @@ #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); @@ -7,6 +8,7 @@ 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) diff --git a/meta/sai_meta.cpp b/meta/sai_meta.cpp index 6f4f655a8..fd9b3eb41 100644 --- a/meta/sai_meta.cpp +++ b/meta/sai_meta.cpp @@ -1192,9 +1192,6 @@ sai_status_t meta_generic_validation_create( // ACL END - case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: - break; - case SAI_ATTR_VALUE_TYPE_UINT8_LIST: VALIDATION_LIST(md, value.u8list); break; @@ -1219,7 +1216,7 @@ sai_status_t meta_generic_validation_create( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: VALIDATION_LIST(md, value.tunnelmap); break; - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: VALIDATION_LIST(md, value.ipaddrlist); break; @@ -1869,9 +1866,6 @@ sai_status_t meta_generic_validation_set( // ACL END - case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: - break; - case SAI_ATTR_VALUE_TYPE_UINT8_LIST: VALIDATION_LIST(md, value.u8list); break; @@ -1896,7 +1890,7 @@ sai_status_t meta_generic_validation_set( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: VALIDATION_LIST(md, value.tunnelmap); break; - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: VALIDATION_LIST(md, value.ipaddrlist); break; @@ -2227,9 +2221,6 @@ sai_status_t meta_generic_validation_get( // ACL END - case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: - break; - case SAI_ATTR_VALUE_TYPE_UINT8_LIST: VALIDATION_LIST(md, value.u8list); break; @@ -2254,7 +2245,7 @@ sai_status_t meta_generic_validation_get( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: VALIDATION_LIST(md, value.tunnelmap); break; - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: VALIDATION_LIST(md, value.ipaddrlist); break; @@ -2578,8 +2569,7 @@ void meta_generic_validation_post_create( case SAI_ATTR_VALUE_TYPE_INT32_LIST: case SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST: case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: - case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_INT32_RANGE: // no special action required @@ -2715,8 +2705,7 @@ void meta_generic_validation_post_remove( case SAI_ATTR_VALUE_TYPE_INT32_LIST: case SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST: case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: - case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_INT32_RANGE: // no special action required @@ -2968,8 +2957,7 @@ void meta_generic_validation_post_set( case SAI_ATTR_VALUE_TYPE_INT32_LIST: case SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST: case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: - case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_INT32_RANGE: // no special action required @@ -3244,8 +3232,6 @@ void meta_generic_validation_post_get( // ACL END - case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: - break; case SAI_ATTR_VALUE_TYPE_UINT8_LIST: VALIDATION_LIST_GET(md, value.u8list); break; @@ -3270,7 +3256,7 @@ void meta_generic_validation_post_get( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: VALIDATION_LIST_GET(md, value.tunnelmap); break; - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: VALIDATION_LIST_GET(md, value.ipaddrlist); break; diff --git a/meta/saiserialize.cpp b/meta/saiserialize.cpp index 6188ce5c3..58f167eb1 100644 --- a/meta/saiserialize.cpp +++ b/meta/saiserialize.cpp @@ -231,15 +231,10 @@ sai_status_t transfer_attribute( RETURN_ON_ERROR(transfer_list(src_attr.value.tunnelmap, dst_attr.value.tunnelmap, countOnly)); break; - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: RETURN_ON_ERROR(transfer_list(src_attr.value.ipaddrlist, dst_attr.value.ipaddrlist, countOnly)); break; - case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: - transfer_primitive(src_attr.value.ternaryfield.mask.u8, dst_attr.value.ternaryfield.mask.u8); - transfer_primitive(src_attr.value.ternaryfield.value.u8, dst_attr.value.ternaryfield.value.u8); - break; - /* ACL FIELD DATA */ case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL: @@ -1048,14 +1043,6 @@ std::string sai_serialize_range( return sai_serialize_number(range.min) + "," + sai_serialize_number(range.max); } -std::string sai_serialize_ternary_field( - _In_ const sai_ternary_field_t& ternary_field) -{ - SWSS_LOG_ENTER(); - - return sai_serialize_number(ternary_field.value.u8) + "/" + sai_serialize_number(ternary_field.mask.u8); -} - std::string sai_serialize_acl_action( _In_ const sai_attr_metadata_t& meta, _In_ const sai_acl_action_data_t& action, @@ -1277,12 +1264,9 @@ std::string sai_serialize_attr_value( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: return sai_serialize_tunnel_map_list(attr.value.tunnelmap, countOnly); - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: return sai_serialize_ip_address_list(attr.value.ipaddrlist, countOnly); - case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: - return sai_serialize_ternary_field(attr.value.ternaryfield); - // ACL FIELD DATA case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL: @@ -2035,24 +2019,6 @@ void sai_deserialize_range( sai_deserialize_number(tokens[1], range.max); } -void sai_deserialize_ternary_field( - _In_ const std::string& s, - _Out_ sai_ternary_field_t& field) -{ - SWSS_LOG_ENTER(); - - auto tokens = swss::tokenize(s, '/'); - - if (tokens.size() != 2) - { - SWSS_LOG_ERROR("invalid ternary field %s", s.c_str()); - throw std::runtime_error("invalid ternary field"); - } - - sai_deserialize_number(tokens[0], field.value.u8); - sai_deserialize_number(tokens[1], field.mask.u8); -} - void sai_deserialize_acl_field( _In_ const std::string& s, _In_ const sai_attr_metadata_t& meta, @@ -2302,12 +2268,9 @@ void sai_deserialize_attr_value( case SAI_ATTR_VALUE_TYPE_TUNNEL_MAP_LIST: return sai_deserialize_tunnel_map_list(s, attr.value.tunnelmap, countOnly); - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: return sai_deserialize_ip_address_list(s, attr.value.ipaddrlist, countOnly); - case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: - return sai_deserialize_ternary_field(s, attr.value.ternaryfield); - // ACL FIELD DATA case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL: @@ -2721,7 +2684,6 @@ void sai_deserialize_free_attribute_value( case SAI_ATTR_VALUE_TYPE_POINTER: case SAI_ATTR_VALUE_TYPE_IP_ADDRESS: case SAI_ATTR_VALUE_TYPE_OBJECT_ID: - case SAI_ATTR_VALUE_TYPE_TERNARY_FIELD: break; case SAI_ATTR_VALUE_TYPE_OBJECT_LIST: @@ -2768,7 +2730,7 @@ void sai_deserialize_free_attribute_value( sai_free_list(attr.value.tunnelmap); break; - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: sai_free_list(attr.value.ipaddrlist); break; diff --git a/saiplayer/saiplayer.cpp b/saiplayer/saiplayer.cpp index 07bcb3e53..e4eec25d2 100644 --- a/saiplayer/saiplayer.cpp +++ b/saiplayer/saiplayer.cpp @@ -315,7 +315,7 @@ void match_list_lengths( CHECK_LIST(value.tunnelmap); break; - case SAI_ATTR_VALUE_TYPE_IP_ADDR_LIST: + case SAI_ATTR_VALUE_TYPE_IP_ADDRESS_LIST: CHECK_LIST(value.ipaddrlist); break; diff --git a/vslib/src/sai_vs_dtel.cpp b/vslib/src/sai_vs_dtel.cpp index 085000159..154926e57 100644 --- a/vslib/src/sai_vs_dtel.cpp +++ b/vslib/src/sai_vs_dtel.cpp @@ -1,6 +1,7 @@ #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); @@ -8,6 +9,7 @@ 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) From 05048cff147b2147c1f00d5aa4f60a877f4d6924 Mon Sep 17 00:00:00 2001 From: kram Date: Fri, 5 Jan 2018 14:14:29 -0800 Subject: [PATCH 11/41] handle platform specific lins in different directory (@runtime) --- syncd/scripts/syncd_init_common.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index 1513f5345..6e1e44255 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -103,9 +103,9 @@ config_syncd_marvell() config_syncd_barefoot() { - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/bfn/install/lib:/opt/bfn/install/lib/tofinopd/switch + export ONIE_PLATFORM=`grep platform /etc/machine.conf | awk 'BEGIN { FS = "=" } ; { print $2 }'` + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/bfn/install/lib:/opt/bfn/install/lib/tofinopd/switch:/opt/bfn/install/lib/platform/$ONIE_PLATFORM . /opt/bfn/install/bin/dma_setup.sh - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/bfn/install/lib:/opt/bfn/install/lib/tofinopd/switch export LD_PRELOAD=libswitchapi.so:libswitchsai.so:libpd.so:libpdcli.so:libdriver.so:libbfsys.so } From 450ed3bc3f360bf6fe9b66c1e8b34b19cbcc296a Mon Sep 17 00:00:00 2001 From: kram Date: Fri, 5 Jan 2018 15:55:33 -0800 Subject: [PATCH 12/41] force order of library path to look for platform dir before lib dir --- syncd/scripts/syncd_init_common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index 6e1e44255..411827b2f 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -104,7 +104,7 @@ config_syncd_marvell() config_syncd_barefoot() { export ONIE_PLATFORM=`grep platform /etc/machine.conf | awk 'BEGIN { FS = "=" } ; { print $2 }'` - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/bfn/install/lib:/opt/bfn/install/lib/tofinopd/switch:/opt/bfn/install/lib/platform/$ONIE_PLATFORM + 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 } From c97ca984801ad7770b6b6ad863b067ad64e94d39 Mon Sep 17 00:00:00 2001 From: shruthi Date: Wed, 10 Jan 2018 13:24:56 -0800 Subject: [PATCH 13/41] Change SAI branch refpoint --- SAI | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SAI b/SAI index 0f7863a31..9aacaaf44 160000 --- a/SAI +++ b/SAI @@ -1 +1 @@ -Subproject commit 0f7863a311b2752b0cbf8c8ea3fb973d8285669d +Subproject commit 9aacaaf44517ca0e2fab223e7b16a81457049aa5 From f32489b4c371baec878ec46bb8fd1adced8f3c8d Mon Sep 17 00:00:00 2001 From: admin12 Date: Thu, 11 Jan 2018 12:45:37 -0800 Subject: [PATCH 14/41] Update SAI submodule refpoint --- SAI | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SAI b/SAI index 9aacaaf44..e3ad7ca36 160000 --- a/SAI +++ b/SAI @@ -1 +1 @@ -Subproject commit 9aacaaf44517ca0e2fab223e7b16a81457049aa5 +Subproject commit e3ad7ca368c33dddfaa94f427b0763deda3dbfea From 2da73f89ee857dc337d18cdc92ed2042623cbed2 Mon Sep 17 00:00:00 2001 From: kram Date: Thu, 11 Jan 2018 14:27:21 -0800 Subject: [PATCH 15/41] enable fast-boot for barefoot platforms --- syncd/scripts/syncd_init_common.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index 411827b2f..5a6b430f7 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -107,6 +107,10 @@ config_syncd_barefoot() 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 + + if [ $FAST_REBOOT == "yes" ]; then + CMD_ARGS+=" -t fast" + fi } config_syncd() From 2467bc63aa8b317565a8b77516b714bf5be099a9 Mon Sep 17 00:00:00 2001 From: admin12 Date: Tue, 16 Jan 2018 11:04:54 -0800 Subject: [PATCH 16/41] Update ref point for SAI --- SAI | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SAI b/SAI index e3ad7ca36..4edba5a35 160000 --- a/SAI +++ b/SAI @@ -1 +1 @@ -Subproject commit e3ad7ca368c33dddfaa94f427b0763deda3dbfea +Subproject commit 4edba5a35c877a10048dfaf3ea8262e97675cde0 From 216f74538819649c983a2be057207d567b134771 Mon Sep 17 00:00:00 2001 From: admin12 Date: Wed, 3 Jan 2018 17:18:04 -0800 Subject: [PATCH 17/41] SONiC changes due to DTel experimental SAI changes --- meta/sai_meta.cpp | 7 +++++++ meta/saiserialize.cpp | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/meta/sai_meta.cpp b/meta/sai_meta.cpp index fd9b3eb41..bcf77e6c2 100644 --- a/meta/sai_meta.cpp +++ b/meta/sai_meta.cpp @@ -1142,6 +1142,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: @@ -1817,6 +1818,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: @@ -2200,6 +2202,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: @@ -2533,6 +2536,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: @@ -2670,6 +2674,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: @@ -2900,6 +2905,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: @@ -3208,6 +3214,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: diff --git a/meta/saiserialize.cpp b/meta/saiserialize.cpp index 58f167eb1..a4ecee16f 100644 --- a/meta/saiserialize.cpp +++ b/meta/saiserialize.cpp @@ -314,6 +314,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); @@ -1058,6 +1063,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); @@ -1286,6 +1294,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: @@ -2133,6 +2142,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); @@ -2290,6 +2302,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: @@ -2759,6 +2772,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: From d6b0ca34fcf63d0b79c801cd95d7ee2fe58d21ac Mon Sep 17 00:00:00 2001 From: kram Date: Wed, 17 Jan 2018 16:12:07 -0800 Subject: [PATCH 18/41] allow Makefile to build for other platforms - restore it original for non-bfn platforms --- saidiscovery/Makefile.am | 4 ++++ saisdkdump/Makefile.am | 4 ++++ syncd/Makefile.am | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/saidiscovery/Makefile.am b/saidiscovery/Makefile.am index 8c57ef570..15e46057f 100644 --- a/saidiscovery/Makefile.am +++ b/saidiscovery/Makefile.am @@ -11,7 +11,11 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else +ifeq ($(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/saisdkdump/Makefile.am b/saisdkdump/Makefile.am index 304f2c394..1424a09c5 100644 --- a/saisdkdump/Makefile.am +++ b/saisdkdump/Makefile.am @@ -11,7 +11,11 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else +ifeq ($(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 saisdkdump_SOURCES = saisdkdump.cpp diff --git a/syncd/Makefile.am b/syncd/Makefile.am index 7cdba9f22..077af5944 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -11,7 +11,11 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else +ifeq ($(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 syncd_SOURCES = \ From adfdb8642fe0b5dbb4e19d13871172a03a8c883b Mon Sep 17 00:00:00 2001 From: kram Date: Thu, 18 Jan 2018 20:45:33 -0800 Subject: [PATCH 19/41] allow clean build --- saidiscovery/Makefile.am | 2 ++ saisdkdump/Makefile.am | 2 ++ syncd/Makefile.am | 2 ++ 3 files changed, 6 insertions(+) diff --git a/saidiscovery/Makefile.am b/saidiscovery/Makefile.am index 15e46057f..c1ed6160d 100644 --- a/saidiscovery/Makefile.am +++ b/saidiscovery/Makefile.am @@ -11,12 +11,14 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else +if PLATFORM ifeq ($(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 +endif saidiscovery_SOURCES = saidiscovery.cpp diff --git a/saisdkdump/Makefile.am b/saisdkdump/Makefile.am index 1424a09c5..80bc23100 100644 --- a/saisdkdump/Makefile.am +++ b/saisdkdump/Makefile.am @@ -11,12 +11,14 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else +if PLATFORM ifeq ($(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 +endif saisdkdump_SOURCES = saisdkdump.cpp saisdkdump_CPPFLAGS = $(DBGFLAGS) $(AM_CPPFLAGS) $(CFLAGS_COMMON) $(SAIFLAGS) diff --git a/syncd/Makefile.am b/syncd/Makefile.am index 077af5944..1acc532ca 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -11,12 +11,14 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else +if PLATFORM ifeq ($(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 +endif syncd_SOURCES = \ main.cpp \ From 043ac32002560f4bd34c03f02ee9d708adb6c90f Mon Sep 17 00:00:00 2001 From: kram Date: Mon, 22 Jan 2018 10:04:09 -0800 Subject: [PATCH 20/41] Revert "allow clean build" This reverts commit adfdb8642fe0b5dbb4e19d13871172a03a8c883b. --- saidiscovery/Makefile.am | 2 -- saisdkdump/Makefile.am | 2 -- syncd/Makefile.am | 2 -- 3 files changed, 6 deletions(-) diff --git a/saidiscovery/Makefile.am b/saidiscovery/Makefile.am index c1ed6160d..15e46057f 100644 --- a/saidiscovery/Makefile.am +++ b/saidiscovery/Makefile.am @@ -11,14 +11,12 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else -if PLATFORM ifeq ($(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 -endif saidiscovery_SOURCES = saidiscovery.cpp diff --git a/saisdkdump/Makefile.am b/saisdkdump/Makefile.am index 80bc23100..1424a09c5 100644 --- a/saisdkdump/Makefile.am +++ b/saisdkdump/Makefile.am @@ -11,14 +11,12 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else -if PLATFORM ifeq ($(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 -endif saisdkdump_SOURCES = saisdkdump.cpp saisdkdump_CPPFLAGS = $(DBGFLAGS) $(AM_CPPFLAGS) $(CFLAGS_COMMON) $(SAIFLAGS) diff --git a/syncd/Makefile.am b/syncd/Makefile.am index 1acc532ca..077af5944 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -11,14 +11,12 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else -if PLATFORM ifeq ($(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 -endif syncd_SOURCES = \ main.cpp \ From 8d6d4871c32ceb453c5a97781b65b34711ea635d Mon Sep 17 00:00:00 2001 From: kram Date: Mon, 22 Jan 2018 10:04:51 -0800 Subject: [PATCH 21/41] Revert "allow Makefile to build for other platforms - restore it original for non-bfn platforms" This reverts commit d6b0ca34fcf63d0b79c801cd95d7ee2fe58d21ac. --- saidiscovery/Makefile.am | 4 ---- saisdkdump/Makefile.am | 4 ---- syncd/Makefile.am | 4 ---- 3 files changed, 12 deletions(-) diff --git a/saidiscovery/Makefile.am b/saidiscovery/Makefile.am index 15e46057f..8c57ef570 100644 --- a/saidiscovery/Makefile.am +++ b/saidiscovery/Makefile.am @@ -11,11 +11,7 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else -ifeq ($(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/saisdkdump/Makefile.am b/saisdkdump/Makefile.am index 1424a09c5..304f2c394 100644 --- a/saisdkdump/Makefile.am +++ b/saisdkdump/Makefile.am @@ -11,11 +11,7 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else -ifeq ($(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 saisdkdump_SOURCES = saisdkdump.cpp diff --git a/syncd/Makefile.am b/syncd/Makefile.am index 077af5944..7cdba9f22 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -11,11 +11,7 @@ endif if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else -ifeq ($(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 syncd_SOURCES = \ From fb55ef78e5ec624d54bebe5f60ccdea94e5940b0 Mon Sep 17 00:00:00 2001 From: kram Date: Tue, 23 Jan 2018 11:31:46 -0800 Subject: [PATCH 22/41] makefile cleanup towards upstream --- configure.ac | 2 ++ saidiscovery/Makefile.am | 4 ++++ saisdkdump/Makefile.am | 5 +++++ syncd/Makefile.am | 4 ++++ 4 files changed, 15 insertions(+) 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/saidiscovery/Makefile.am b/saidiscovery/Makefile.am index 8c57ef570..04c49968b 100644 --- a/saidiscovery/Makefile.am +++ b/saidiscovery/Makefile.am @@ -11,7 +11,11 @@ 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/saisdkdump/Makefile.am b/saisdkdump/Makefile.am index 304f2c394..1ce8efca5 100644 --- a/saisdkdump/Makefile.am +++ b/saisdkdump/Makefile.am @@ -8,10 +8,15 @@ else DBGFLAGS = -g 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 saisdkdump_SOURCES = saisdkdump.cpp diff --git a/syncd/Makefile.am b/syncd/Makefile.am index 7cdba9f22..e9849eb63 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -11,7 +11,11 @@ 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 syncd_SOURCES = \ From c591e384408ed778414840abd0c4d8d18a8ad2a3 Mon Sep 17 00:00:00 2001 From: rsunkad Date: Wed, 14 Mar 2018 12:15:39 -0700 Subject: [PATCH 23/41] Support for platforms based on Barefoot Networks' device (#304) --- configure.ac | 2 ++ saidiscovery/Makefile.am | 4 ++++ saisdkdump/Makefile.am | 5 +++++ syncd/Makefile.am | 4 ++++ syncd/scripts/syncd_init_common.sh | 11 ++++++++++- 5 files changed, 25 insertions(+), 1 deletion(-) 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/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/saisdkdump/Makefile.am b/saisdkdump/Makefile.am index a7bc6d07d..1ce8efca5 100644 --- a/saisdkdump/Makefile.am +++ b/saisdkdump/Makefile.am @@ -8,11 +8,16 @@ else DBGFLAGS = -g 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 saisdkdump_SOURCES = saisdkdump.cpp saisdkdump_CPPFLAGS = $(DBGFLAGS) $(AM_CPPFLAGS) $(CFLAGS_COMMON) $(SAIFLAGS) diff --git a/syncd/Makefile.am b/syncd/Makefile.am index 6652e466f..e9849eb63 100644 --- a/syncd/Makefile.am +++ b/syncd/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 syncd_SOURCES = \ main.cpp \ diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index c170c486a..70f7b27ce 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -101,10 +101,17 @@ config_syncd_marvell() [ -e /dev/net/tun ] || ( mkdir -p /dev/net && mknod /dev/net/tun c 10 200 ) } +config_syncd_barefoot() +{ + export ONIE_PLATFORM=`grep 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 +} + config_syncd_nephos() { CMD_ARGS+=" -p $HWSKU_DIR/sai.profile" - if [ $FAST_REBOOT == "yes" ]; then CMD_ARGS+=" -t fast" fi @@ -122,6 +129,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 From 226dc4d390d6c84ff20a2b17a9310d8260fc0638 Mon Sep 17 00:00:00 2001 From: kram Date: Fri, 13 Apr 2018 15:38:58 -0700 Subject: [PATCH 24/41] search for exact string - newer onie versions match multiple lines --- syncd/scripts/syncd_init_common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index 70f7b27ce..36ab6e76e 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -103,7 +103,7 @@ config_syncd_marvell() config_syncd_barefoot() { - export ONIE_PLATFORM=`grep platform /etc/machine.conf | awk 'BEGIN { FS = "=" } ; { print $2 }'` + 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 From b68ee146115bc01c623dc10fff13f860e7f66ca7 Mon Sep 17 00:00:00 2001 From: mkbalani Date: Wed, 30 May 2018 18:11:06 -0700 Subject: [PATCH 25/41] Will need to revert this Should work without this change. Untested for now --- syncd/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/syncd/Makefile.am b/syncd/Makefile.am index e9849eb63..83f31e00d 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -1,4 +1,4 @@ -AM_CPPFLAGS = -I$(top_srcdir)/vslib/inc -I$(top_srcdir)/lib/inc -I$(top_srcdir)/SAI/inc -I$(top_srcdir)/SAI/meta +AM_CPPFLAGS = -I$(top_srcdir)/vslib/inc -I$(top_srcdir)/lib/inc -I$(top_srcdir)/SAI/inc -I$(top_srcdir)/SAI/meta -I$(top_srcdir)/SAI/test/saithrift/src bin_PROGRAMS = syncd syncd_request_shutdown tests @@ -33,6 +33,7 @@ syncd_LDADD = -lhiredis -lswsscommon $(SAILIB) -lpthread -L$(top_srcdir)/meta/.l if SAITHRIFT syncd_CPPFLAGS += -DSAITHRIFT=yes syncd_LDADD += -lrpcserver -lthrift +#syncd_LDADD += -lthrift endif syncd_request_shutdown_SOURCES = syncd_request_shutdown.cpp From 39975ba04a9a63170192c4bac5891032eb7241c0 Mon Sep 17 00:00:00 2001 From: shruthi Date: Tue, 5 Jun 2018 11:33:44 -0700 Subject: [PATCH 26/41] SONiC sairedis changes needed to work with SAIv1.3 --- SAI | 2 +- lib/src/sai_redis_bridge.cpp | 30 ++++++++++++++++++++++++++++++ lib/src/sai_redis_buffer.cpp | 30 ++++++++++++++++++++++++++++++ lib/src/sai_redis_hostintf.cpp | 6 +++--- lib/src/sai_redis_policer.cpp | 15 +++++++++++++++ lib/src/sai_redis_port.cpp | 30 ++++++++++++++++++++++++++++++ lib/src/sai_redis_queue.cpp | 15 +++++++++++++++ lib/src/sai_redis_tunnel.cpp | 15 +++++++++++++++ lib/src/sai_redis_vlan.cpp | 15 +++++++++++++++ syncd/syncd_notifications.cpp | 10 +++++----- vslib/src/sai_vs_bridge.cpp | 30 ++++++++++++++++++++++++++++++ vslib/src/sai_vs_buffer.cpp | 30 ++++++++++++++++++++++++++++++ vslib/src/sai_vs_hostintf.cpp | 6 +++--- vslib/src/sai_vs_policer.cpp | 15 +++++++++++++++ vslib/src/sai_vs_port.cpp | 30 ++++++++++++++++++++++++++++++ vslib/src/sai_vs_queue.cpp | 15 +++++++++++++++ vslib/src/sai_vs_tunnel.cpp | 14 ++++++++++++++ vslib/src/sai_vs_vlan.cpp | 15 +++++++++++++++ 18 files changed, 311 insertions(+), 12 deletions(-) diff --git a/SAI b/SAI index e8decbef1..dc1ac4f8b 160000 --- a/SAI +++ b/SAI @@ -1 +1 @@ -Subproject commit e8decbef1560cb24c9ce110fba9f6e431573b49b +Subproject commit dc1ac4f8b2bd08f606da78323e9678fe2b72fab2 diff --git a/lib/src/sai_redis_bridge.cpp b/lib/src/sai_redis_bridge.cpp index 0303a2380..fd7197a4a 100644 --- a/lib/src/sai_redis_bridge.cpp +++ b/lib/src/sai_redis_bridge.cpp @@ -13,6 +13,20 @@ sai_status_t redis_get_bridge_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t redis_get_bridge_stats_ext( + _In_ sai_object_id_t bridge_id, + _In_ uint32_t number_of_counters, + _In_ const sai_bridge_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t redis_clear_bridge_stats( _In_ sai_object_id_t bridge_id, _In_ uint32_t number_of_counters, @@ -38,6 +52,20 @@ sai_status_t redis_get_bridge_port_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t redis_get_bridge_port_stats_ext( + _In_ sai_object_id_t bridge_port_id, + _In_ uint32_t number_of_counters, + _In_ const sai_bridge_port_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t redis_clear_bridge_port_stats( _In_ sai_object_id_t bridge_port_id, _In_ uint32_t number_of_counters, @@ -58,10 +86,12 @@ const sai_bridge_api_t redis_bridge_api = REDIS_GENERIC_QUAD_API(bridge) redis_get_bridge_stats, + redis_get_bridge_stats_ext, redis_clear_bridge_stats, REDIS_GENERIC_QUAD_API(bridge_port) redis_get_bridge_port_stats, + redis_get_bridge_port_stats_ext, redis_clear_bridge_port_stats, }; diff --git a/lib/src/sai_redis_buffer.cpp b/lib/src/sai_redis_buffer.cpp index 5d4bfa95f..d94051401 100644 --- a/lib/src/sai_redis_buffer.cpp +++ b/lib/src/sai_redis_buffer.cpp @@ -12,6 +12,20 @@ sai_status_t redis_clear_ingress_priority_group_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t redis_get_ingress_priority_group_stats_ext( + _In_ sai_object_id_t ingress_pg_id, + _In_ uint32_t number_of_counters, + _In_ const sai_ingress_priority_group_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t redis_get_buffer_pool_stats( _In_ sai_object_id_t pool_id, _In_ uint32_t number_of_counters, @@ -37,6 +51,20 @@ sai_status_t redis_clear_buffer_pool_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t redis_get_buffer_pool_stats_ext( + _In_ sai_object_id_t pool_id, + _In_ uint32_t number_of_counters, + _In_ const sai_buffer_pool_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + REDIS_GENERIC_QUAD(BUFFER_POOL,buffer_pool); REDIS_GENERIC_QUAD(INGRESS_PRIORITY_GROUP,ingress_priority_group); REDIS_GENERIC_QUAD(BUFFER_PROFILE,buffer_profile); @@ -48,11 +76,13 @@ const sai_buffer_api_t redis_buffer_api = { REDIS_GENERIC_QUAD_API(buffer_pool) redis_get_buffer_pool_stats, + redis_get_buffer_pool_stats_ext, redis_clear_buffer_pool_stats, REDIS_GENERIC_QUAD_API(ingress_priority_group) redis_get_ingress_priority_group_stats, + redis_get_ingress_priority_group_stats_ext, redis_clear_ingress_priority_group_stats, REDIS_GENERIC_QUAD_API(buffer_profile) diff --git a/lib/src/sai_redis_hostintf.cpp b/lib/src/sai_redis_hostintf.cpp index de7028e78..6d3ff8ddb 100644 --- a/lib/src/sai_redis_hostintf.cpp +++ b/lib/src/sai_redis_hostintf.cpp @@ -2,8 +2,8 @@ sai_status_t redis_recv_hostif_packet( _In_ sai_object_id_t hif_id, - _Out_ void *buffer, _Inout_ sai_size_t *buffer_size, + _Out_ void *buffer, _Inout_ uint32_t *attr_count, _Out_ sai_attribute_t *attr_list) { @@ -16,10 +16,10 @@ sai_status_t redis_recv_hostif_packet( sai_status_t redis_send_hostif_packet( _In_ sai_object_id_t hif_id, - _In_ void *buffer, _In_ sai_size_t buffer_size, + _In_ const void *buffer, _In_ uint32_t attr_count, - _In_ sai_attribute_t *attr_list) + _In_ const sai_attribute_t *attr_list) { MUTEX(); diff --git a/lib/src/sai_redis_policer.cpp b/lib/src/sai_redis_policer.cpp index 56e4197af..7b1263e1a 100644 --- a/lib/src/sai_redis_policer.cpp +++ b/lib/src/sai_redis_policer.cpp @@ -13,6 +13,20 @@ sai_status_t redis_get_policer_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t redis_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_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t redis_clear_policer_stats( _In_ sai_object_id_t policer_id, _In_ uint32_t number_of_counters, @@ -32,5 +46,6 @@ const sai_policer_api_t redis_policer_api = { REDIS_GENERIC_QUAD_API(policer) redis_get_policer_stats, + redis_get_policer_stats_ext, redis_clear_policer_stats, }; diff --git a/lib/src/sai_redis_port.cpp b/lib/src/sai_redis_port.cpp index dae79038e..386725767 100644 --- a/lib/src/sai_redis_port.cpp +++ b/lib/src/sai_redis_port.cpp @@ -12,6 +12,20 @@ sai_status_t redis_clear_port_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t redis_get_port_stats_ext( + _In_ sai_object_id_t port_id, + _In_ uint32_t number_of_counters, + _In_ const sai_port_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t redis_clear_port_all_stats( _In_ sai_object_id_t port_id) { @@ -34,6 +48,20 @@ sai_status_t redis_clear_port_pool_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t redis_get_port_pool_stats_ext( + _In_ sai_object_id_t port_pool_id, + _In_ uint32_t number_of_counters, + _In_ const sai_port_pool_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + REDIS_GENERIC_QUAD(PORT,port); REDIS_GENERIC_QUAD(PORT_POOL,port_pool); @@ -46,11 +74,13 @@ const sai_port_api_t redis_port_api = { REDIS_GENERIC_QUAD_API(port) redis_get_port_stats, + redis_get_port_stats_ext, redis_clear_port_stats, redis_clear_port_all_stats, REDIS_GENERIC_QUAD_API(port_pool) redis_get_port_pool_stats, + redis_get_port_pool_stats_ext, redis_clear_port_pool_stats }; diff --git a/lib/src/sai_redis_queue.cpp b/lib/src/sai_redis_queue.cpp index d0efabce4..9fb6944f9 100644 --- a/lib/src/sai_redis_queue.cpp +++ b/lib/src/sai_redis_queue.cpp @@ -13,6 +13,20 @@ sai_status_t redis_clear_queue_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t redis_get_queue_stats_ext( + _In_ sai_object_id_t queue_id, + _In_ uint32_t number_of_counters, + _In_ const sai_queue_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + REDIS_GENERIC_QUAD(QUEUE,queue); REDIS_GENERIC_GET_STATS(QUEUE, queue); @@ -22,5 +36,6 @@ const sai_queue_api_t redis_queue_api = { REDIS_GENERIC_QUAD_API(queue) redis_get_queue_stats, + redis_get_queue_stats_ext, redis_clear_queue_stats, }; diff --git a/lib/src/sai_redis_tunnel.cpp b/lib/src/sai_redis_tunnel.cpp index 05fdf00c6..13e3116fe 100644 --- a/lib/src/sai_redis_tunnel.cpp +++ b/lib/src/sai_redis_tunnel.cpp @@ -12,6 +12,20 @@ sai_status_t redis_clear_tunnel_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t redis_get_tunnel_stats_ext( + _In_ sai_object_id_t tunnel_id, + _In_ uint32_t number_of_counters, + _In_ const sai_tunnel_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + REDIS_GENERIC_QUAD(TUNNEL_MAP,tunnel_map); REDIS_GENERIC_QUAD(TUNNEL,tunnel); @@ -25,6 +39,7 @@ const sai_tunnel_api_t redis_tunnel_api = { REDIS_GENERIC_QUAD_API(tunnel) redis_get_tunnel_stats, + redis_get_tunnel_stats_ext, redis_clear_tunnel_stats, REDIS_GENERIC_QUAD_API(tunnel_term_table_entry) diff --git a/lib/src/sai_redis_vlan.cpp b/lib/src/sai_redis_vlan.cpp index 12ab0bf74..7202e379b 100644 --- a/lib/src/sai_redis_vlan.cpp +++ b/lib/src/sai_redis_vlan.cpp @@ -42,6 +42,20 @@ sai_status_t redis_get_vlan_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t redis_get_vlan_stats_ext( + _In_ sai_object_id_t vlan_id, + _In_ uint32_t number_of_counters, + _In_ const sai_vlan_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t redis_clear_vlan_stats( _In_ sai_object_id_t vlan_id, _In_ uint32_t number_of_counters, @@ -65,5 +79,6 @@ const sai_vlan_api_t redis_vlan_api = { redis_create_vlan_members, redis_remove_vlan_members, redis_get_vlan_stats, + redis_get_vlan_stats_ext, redis_clear_vlan_stats, }; diff --git a/syncd/syncd_notifications.cpp b/syncd/syncd_notifications.cpp index 7bc8ee161..f7fe7ff29 100644 --- a/syncd/syncd_notifications.cpp +++ b/syncd/syncd_notifications.cpp @@ -460,7 +460,7 @@ void on_switch_state_change( void on_fdb_event( _In_ uint32_t count, - _In_ sai_fdb_event_notification_data_t *data) + _In_ const sai_fdb_event_notification_data_t *data) { SWSS_LOG_ENTER(); @@ -471,7 +471,7 @@ void on_fdb_event( void on_port_state_change( _In_ uint32_t count, - _In_ sai_port_oper_status_notification_t *data) + _In_ const sai_port_oper_status_notification_t *data) { SWSS_LOG_ENTER(); @@ -492,8 +492,8 @@ void on_switch_shutdown_request( void on_packet_event( _In_ sai_object_id_t switch_id, - _In_ const void *buffer, _In_ sai_size_t buffer_size, + _In_ const void *buffer, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list) { @@ -581,7 +581,7 @@ void stopNotificationsProcessingThread() void on_queue_deadlock( _In_ uint32_t count, - _In_ sai_queue_deadlock_notification_data_t *data) + _In_ const sai_queue_deadlock_notification_data_t *data) { std::lock_guard lock(g_mutex); @@ -591,7 +591,7 @@ void on_queue_deadlock( for (uint32_t i = 0; i < count; i++) { - sai_queue_deadlock_notification_data_t *deadlock_data = &data[i]; + sai_queue_deadlock_notification_data_t *deadlock_data = const_cast(&data[i]); /* * We are using switch_rid as null, since queue should be already diff --git a/vslib/src/sai_vs_bridge.cpp b/vslib/src/sai_vs_bridge.cpp index bd2b94d38..a8b0104ae 100644 --- a/vslib/src/sai_vs_bridge.cpp +++ b/vslib/src/sai_vs_bridge.cpp @@ -14,6 +14,20 @@ sai_status_t vs_get_bridge_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t vs_get_bridge_stats_ext( + _In_ sai_object_id_t bridge_id, + _In_ uint32_t number_of_counters, + _In_ const sai_bridge_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t vs_clear_bridge_stats( _In_ sai_object_id_t bridge_id, _In_ uint32_t number_of_counters, @@ -39,6 +53,20 @@ sai_status_t vs_get_bridge_port_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t vs_get_bridge_port_stats_ext( + _In_ sai_object_id_t bridge_port_id, + _In_ uint32_t number_of_counters, + _In_ const sai_bridge_port_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t vs_clear_bridge_port_stats( _In_ sai_object_id_t bridge_port_id, _In_ uint32_t number_of_counters, @@ -59,10 +87,12 @@ const sai_bridge_api_t vs_bridge_api = VS_GENERIC_QUAD_API(bridge) vs_get_bridge_stats, + vs_get_bridge_stats_ext, vs_clear_bridge_stats, VS_GENERIC_QUAD_API(bridge_port) vs_get_bridge_port_stats, + vs_get_bridge_port_stats_ext, vs_clear_bridge_port_stats, }; diff --git a/vslib/src/sai_vs_buffer.cpp b/vslib/src/sai_vs_buffer.cpp index ece5bcda0..96ccf9df7 100644 --- a/vslib/src/sai_vs_buffer.cpp +++ b/vslib/src/sai_vs_buffer.cpp @@ -13,6 +13,20 @@ sai_status_t vs_clear_ingress_priority_group_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t vs_get_ingress_priority_group_stats_ext( + _In_ sai_object_id_t ingress_pg_id, + _In_ uint32_t number_of_counters, + _In_ const sai_ingress_priority_group_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t vs_get_buffer_pool_stats( _In_ sai_object_id_t pool_id, _In_ uint32_t number_of_counters, @@ -26,6 +40,20 @@ sai_status_t vs_get_buffer_pool_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t vs_get_buffer_pool_stats_ext( + _In_ sai_object_id_t pool_id, + _In_ uint32_t number_of_counters, + _In_ const sai_buffer_pool_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t vs_clear_buffer_pool_stats( _In_ sai_object_id_t pool_id, _In_ uint32_t number_of_counters, @@ -49,11 +77,13 @@ const sai_buffer_api_t vs_buffer_api = { VS_GENERIC_QUAD_API(buffer_pool) vs_get_buffer_pool_stats, + vs_get_buffer_pool_stats_ext, vs_clear_buffer_pool_stats, VS_GENERIC_QUAD_API(ingress_priority_group) vs_get_ingress_priority_group_stats, + vs_get_ingress_priority_group_stats_ext, vs_clear_ingress_priority_group_stats, VS_GENERIC_QUAD_API(buffer_profile) diff --git a/vslib/src/sai_vs_hostintf.cpp b/vslib/src/sai_vs_hostintf.cpp index 44c153542..f6e70bfed 100644 --- a/vslib/src/sai_vs_hostintf.cpp +++ b/vslib/src/sai_vs_hostintf.cpp @@ -552,8 +552,8 @@ void process_packet_for_fdb_event( sai_status_t vs_recv_hostif_packet( _In_ sai_object_id_t hif_id, - _Out_ void *buffer, _Inout_ sai_size_t *buffer_size, + _Out_ void *buffer, _Inout_ uint32_t *attr_count, _Out_ sai_attribute_t *attr_list) { @@ -566,10 +566,10 @@ sai_status_t vs_recv_hostif_packet( sai_status_t vs_send_hostif_packet( _In_ sai_object_id_t hif_id, - _In_ void *buffer, _In_ sai_size_t buffer_size, + _In_ const void *buffer, _In_ uint32_t attr_count, - _In_ sai_attribute_t *attr_list) + _In_ const sai_attribute_t *attr_list) { MUTEX(); diff --git a/vslib/src/sai_vs_policer.cpp b/vslib/src/sai_vs_policer.cpp index 0ba459b02..e81521fc5 100644 --- a/vslib/src/sai_vs_policer.cpp +++ b/vslib/src/sai_vs_policer.cpp @@ -26,6 +26,20 @@ sai_status_t vs_clear_policer_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +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_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + VS_GENERIC_QUAD(POLICER,policer); const sai_policer_api_t vs_policer_api = { @@ -33,5 +47,6 @@ const sai_policer_api_t vs_policer_api = { VS_GENERIC_QUAD_API(policer) vs_get_policer_stats, + 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 6b91dc68f..745c699dd 100644 --- a/vslib/src/sai_vs_port.cpp +++ b/vslib/src/sai_vs_port.cpp @@ -23,6 +23,20 @@ sai_status_t vs_clear_port_all_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t vs_get_port_stats_ext( + _In_ sai_object_id_t port_id, + _In_ uint32_t number_of_counters, + _In_ const sai_port_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t vs_clear_port_pool_stats( _In_ sai_object_id_t port_pool_id, _In_ uint32_t number_of_counters, @@ -35,6 +49,20 @@ sai_status_t vs_clear_port_pool_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t vs_get_port_pool_stats_ext( + _In_ sai_object_id_t port_pool_id, + _In_ uint32_t number_of_counters, + _In_ const sai_port_pool_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + VS_GENERIC_GET_STATS(PORT,port); VS_GENERIC_GET_STATS(PORT_POOL,port_pool); @@ -47,11 +75,13 @@ const sai_port_api_t vs_port_api = { VS_GENERIC_QUAD_API(port) vs_get_port_stats, + vs_get_port_stats_ext, vs_clear_port_stats, vs_clear_port_all_stats, VS_GENERIC_QUAD_API(port_pool) vs_get_port_pool_stats, + vs_get_port_pool_stats_ext, vs_clear_port_pool_stats }; diff --git a/vslib/src/sai_vs_queue.cpp b/vslib/src/sai_vs_queue.cpp index b281a8a31..dec93a346 100644 --- a/vslib/src/sai_vs_queue.cpp +++ b/vslib/src/sai_vs_queue.cpp @@ -13,6 +13,20 @@ sai_status_t vs_clear_queue_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t vs_get_queue_stats_ext( + _In_ sai_object_id_t queue_id, + _In_ uint32_t number_of_counters, + _In_ const sai_queue_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + VS_GENERIC_GET_STATS(QUEUE,queue); VS_GENERIC_QUAD(QUEUE,queue); @@ -22,5 +36,6 @@ const sai_queue_api_t vs_queue_api = { VS_GENERIC_QUAD_API(queue) vs_get_queue_stats, + vs_get_queue_stats_ext, vs_clear_queue_stats, }; diff --git a/vslib/src/sai_vs_tunnel.cpp b/vslib/src/sai_vs_tunnel.cpp index 3d0197022..a4a50f8af 100644 --- a/vslib/src/sai_vs_tunnel.cpp +++ b/vslib/src/sai_vs_tunnel.cpp @@ -14,6 +14,19 @@ sai_status_t vs_get_tunnel_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t vs_get_tunnel_stats_ext( + _In_ sai_object_id_t tunnel_id, + _In_ uint32_t number_of_counters, + _In_ const sai_tunnel_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} sai_status_t vs_clear_tunnel_stats( _In_ sai_object_id_t tunnel_id, @@ -39,6 +52,7 @@ const sai_tunnel_api_t vs_tunnel_api = { VS_GENERIC_QUAD_API(tunnel) vs_get_tunnel_stats, + vs_get_tunnel_stats_ext, vs_clear_tunnel_stats, VS_GENERIC_QUAD_API(tunnel_term_table_entry) diff --git a/vslib/src/sai_vs_vlan.cpp b/vslib/src/sai_vs_vlan.cpp index 5ca05fbd2..d48f74624 100644 --- a/vslib/src/sai_vs_vlan.cpp +++ b/vslib/src/sai_vs_vlan.cpp @@ -43,6 +43,20 @@ sai_status_t vs_get_vlan_stats( return SAI_STATUS_NOT_IMPLEMENTED; } +sai_status_t vs_get_vlan_stats_ext( + _In_ sai_object_id_t vlan_id, + _In_ uint32_t number_of_counters, + _In_ const sai_vlan_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, + _Out_ uint64_t *counters) +{ + MUTEX(); + + SWSS_LOG_ENTER(); + + return SAI_STATUS_NOT_IMPLEMENTED; +} + sai_status_t vs_clear_vlan_stats( _In_ sai_object_id_t vlan_id, _In_ uint32_t number_of_counters, @@ -66,5 +80,6 @@ const sai_vlan_api_t vs_vlan_api = { vs_create_vlan_members, vs_remove_vlan_members, vs_get_vlan_stats, + vs_get_vlan_stats_ext, vs_clear_vlan_stats, }; From d1be87a7c3d7b5d5bbc5a5e8a6cb4c9a3f43f58d Mon Sep 17 00:00:00 2001 From: shruthi Date: Fri, 8 Jun 2018 15:57:45 -0700 Subject: [PATCH 27/41] Fix SAI path in gitmodules and add a comment --- .gitmodules | 2 +- syncd/syncd_notifications.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index df886ae1e..8c5bd9358 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,5 +1,5 @@ [submodule "SAI"] path = SAI - url = https://github.com/p4lang/SAI.git + url = https://github.com/opencomputeproject/SAI.git ignore = dirty branch = v1.2 diff --git a/syncd/syncd_notifications.cpp b/syncd/syncd_notifications.cpp index f7fe7ff29..55e1803b8 100644 --- a/syncd/syncd_notifications.cpp +++ b/syncd/syncd_notifications.cpp @@ -591,6 +591,7 @@ void on_queue_deadlock( for (uint32_t i = 0; i < count; i++) { + /* Removing constness for now until proper SAI v1.3 support is added to SONiC*/ sai_queue_deadlock_notification_data_t *deadlock_data = const_cast(&data[i]); /* From e2c7d9b7ac227984765328a23275e96610be37be Mon Sep 17 00:00:00 2001 From: mkbalani Date: Tue, 12 Jun 2018 23:32:00 -0700 Subject: [PATCH 28/41] Remove sai thrift build hack --- syncd/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syncd/Makefile.am b/syncd/Makefile.am index 83f31e00d..a7fd5e067 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -1,4 +1,4 @@ -AM_CPPFLAGS = -I$(top_srcdir)/vslib/inc -I$(top_srcdir)/lib/inc -I$(top_srcdir)/SAI/inc -I$(top_srcdir)/SAI/meta -I$(top_srcdir)/SAI/test/saithrift/src +AM_CPPFLAGS = -I$(top_srcdir)/vslib/inc -I$(top_srcdir)/lib/inc -I$(top_srcdir)/SAI/inc -I$(top_srcdir)/SAI/meta bin_PROGRAMS = syncd syncd_request_shutdown tests From 6849eb3c80eb9c35c56c439043524da1674193a7 Mon Sep 17 00:00:00 2001 From: kram Date: Thu, 11 Jan 2018 14:27:21 -0800 Subject: [PATCH 29/41] enable fast-boot for barefoot platforms --- syncd/scripts/syncd_init_common.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index 56a04c41c..b01a437c7 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -111,6 +111,10 @@ config_syncd_barefoot() 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 + + if [ $FAST_REBOOT == "yes" ]; then + CMD_ARGS+=" -t fast" + fi } config_syncd_nephos() From 1cf8724f81f76e5538d3de72bff032dc2418535b Mon Sep 17 00:00:00 2001 From: kram Date: Thu, 11 Jan 2018 14:27:21 -0800 Subject: [PATCH 30/41] enable fast-boot for barefoot platforms --- syncd/scripts/syncd_init_common.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index 56a04c41c..b01a437c7 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -111,6 +111,10 @@ config_syncd_barefoot() 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 + + if [ $FAST_REBOOT == "yes" ]; then + CMD_ARGS+=" -t fast" + fi } config_syncd_nephos() From 8be553e6e93aec299913a6c5d11016a268853be9 Mon Sep 17 00:00:00 2001 From: mkbalani Date: Fri, 22 Jun 2018 16:34:51 -0700 Subject: [PATCH 31/41] Add missing sai rpc hdr file path for bfn --- syncd/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/syncd/Makefile.am b/syncd/Makefile.am index a7fd5e067..fa1485d52 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -12,6 +12,7 @@ if SAIVS SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else if sonic_asic_platform_barefoot +AM_CPPFLAGS += -I/opt/bfn/install/include 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 From 4b98411f4066ac0d1e5ee7e525a49a8b2e6fc05f Mon Sep 17 00:00:00 2001 From: admin12 Date: Tue, 26 Jun 2018 11:03:56 -0700 Subject: [PATCH 32/41] Update SAI ref points --- .gitmodules | 2 +- SAI | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 8c5bd9358..1d075ba3a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,4 +2,4 @@ path = SAI url = https://github.com/opencomputeproject/SAI.git ignore = dirty - branch = v1.2 + branch = v1.3 diff --git a/SAI b/SAI index dc1ac4f8b..90add5ce4 160000 --- a/SAI +++ b/SAI @@ -1 +1 @@ -Subproject commit dc1ac4f8b2bd08f606da78323e9678fe2b72fab2 +Subproject commit 90add5ce4cc528d48822624eb82f46e3490f5249 From 73c9611ed1c77ca9d5f64b8f450d20561fb76268 Mon Sep 17 00:00:00 2001 From: Sagar Balani Date: Thu, 5 Jul 2018 18:38:20 -0700 Subject: [PATCH 33/41] Multi p4 profile support for bfn sde (#5) --- syncd/scripts/syncd_init_common.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index b01a437c7..b47dafdd4 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -107,6 +107,13 @@ config_syncd_marvell() 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 From 96adf563c30022b01f9b5fef86ecede40f677919 Mon Sep 17 00:00:00 2001 From: mkbalani Date: Tue, 10 Jul 2018 11:29:11 -0700 Subject: [PATCH 34/41] Remove code duplicated in merge --- lib/src/sai_redis_buffer.cpp | 14 -------------- lib/src/sai_redis_port.cpp | 15 --------------- vslib/src/sai_vs_port.cpp | 15 --------------- 3 files changed, 44 deletions(-) diff --git a/lib/src/sai_redis_buffer.cpp b/lib/src/sai_redis_buffer.cpp index 82b6f1ab2..73679f2d0 100644 --- a/lib/src/sai_redis_buffer.cpp +++ b/lib/src/sai_redis_buffer.cpp @@ -65,20 +65,6 @@ sai_status_t redis_clear_buffer_pool_stats( return SAI_STATUS_NOT_IMPLEMENTED; } -sai_status_t redis_get_buffer_pool_stats_ext( - _In_ sai_object_id_t pool_id, - _In_ uint32_t number_of_counters, - _In_ const sai_buffer_pool_stat_t *counter_ids, - _In_ sai_stats_mode_t mode, - _Out_ uint64_t *counters) -{ - MUTEX(); - - SWSS_LOG_ENTER(); - - return SAI_STATUS_NOT_IMPLEMENTED; -} - REDIS_GENERIC_QUAD(BUFFER_POOL,buffer_pool); REDIS_GENERIC_QUAD(INGRESS_PRIORITY_GROUP,ingress_priority_group); REDIS_GENERIC_QUAD(BUFFER_PROFILE,buffer_profile); diff --git a/lib/src/sai_redis_port.cpp b/lib/src/sai_redis_port.cpp index 6e5009bf1..5f05bbfd8 100644 --- a/lib/src/sai_redis_port.cpp +++ b/lib/src/sai_redis_port.cpp @@ -62,21 +62,6 @@ sai_status_t redis_clear_port_pool_stats( return SAI_STATUS_NOT_IMPLEMENTED; } -sai_status_t redis_get_port_pool_stats_ext( - _In_ sai_object_id_t port_pool_id, - _In_ uint32_t number_of_counters, - _In_ const sai_port_pool_stat_t *counter_ids, - _In_ sai_stats_mode_t mode, - _Out_ uint64_t *counters) -{ - MUTEX(); - - SWSS_LOG_ENTER(); - - return SAI_STATUS_NOT_IMPLEMENTED; -} - - REDIS_GENERIC_QUAD(PORT,port); REDIS_GENERIC_QUAD(PORT_POOL,port_pool); diff --git a/vslib/src/sai_vs_port.cpp b/vslib/src/sai_vs_port.cpp index cd847b598..32fa2cb52 100644 --- a/vslib/src/sai_vs_port.cpp +++ b/vslib/src/sai_vs_port.cpp @@ -63,21 +63,6 @@ sai_status_t vs_clear_port_pool_stats( return SAI_STATUS_NOT_IMPLEMENTED; } -sai_status_t vs_get_port_pool_stats_ext( - _In_ sai_object_id_t port_pool_id, - _In_ uint32_t number_of_counters, - _In_ const sai_port_pool_stat_t *counter_ids, - _In_ sai_stats_mode_t mode, - _Out_ uint64_t *counters) -{ - MUTEX(); - - SWSS_LOG_ENTER(); - - return SAI_STATUS_NOT_IMPLEMENTED; -} - - VS_GENERIC_GET_STATS(PORT,port); VS_GENERIC_GET_STATS(PORT_POOL,port_pool); From c19b02aaa4e8bd42f15d48540b9f7cd2d37a36cc Mon Sep 17 00:00:00 2001 From: Sagar Balani Date: Tue, 10 Jul 2018 13:48:04 -0700 Subject: [PATCH 35/41] Keep fn in same order as azure master (#8) --- lib/src/sai_redis_bridge.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/src/sai_redis_bridge.cpp b/lib/src/sai_redis_bridge.cpp index 711da5234..4e4f5a4f1 100644 --- a/lib/src/sai_redis_bridge.cpp +++ b/lib/src/sai_redis_bridge.cpp @@ -13,12 +13,10 @@ sai_status_t redis_get_bridge_stats( return SAI_STATUS_NOT_IMPLEMENTED; } -sai_status_t redis_get_bridge_stats_ext( +sai_status_t redis_clear_bridge_stats( _In_ sai_object_id_t bridge_id, _In_ uint32_t number_of_counters, - _In_ const sai_bridge_stat_t *counter_ids, - _In_ sai_stats_mode_t mode, - _Out_ uint64_t *counters) + _In_ const sai_bridge_stat_t *counter_ids) { MUTEX(); @@ -27,10 +25,11 @@ sai_status_t redis_get_bridge_stats_ext( return SAI_STATUS_NOT_IMPLEMENTED; } -sai_status_t redis_clear_bridge_stats( - _In_ sai_object_id_t bridge_id, +sai_status_t redis_get_bridge_port_stats( + _In_ sai_object_id_t bridge_port_id, _In_ uint32_t number_of_counters, - _In_ const sai_bridge_stat_t *counter_ids) + _In_ const sai_bridge_port_stat_t *counter_ids, + _Out_ uint64_t *counters) { MUTEX(); @@ -39,10 +38,11 @@ sai_status_t redis_clear_bridge_stats( return SAI_STATUS_NOT_IMPLEMENTED; } -sai_status_t redis_get_bridge_port_stats( +sai_status_t redis_get_bridge_port_stats_ext( _In_ sai_object_id_t bridge_port_id, _In_ uint32_t number_of_counters, _In_ const sai_bridge_port_stat_t *counter_ids, + _In_ sai_stats_mode_t mode, _Out_ uint64_t *counters) { MUTEX(); @@ -52,10 +52,10 @@ sai_status_t redis_get_bridge_port_stats( return SAI_STATUS_NOT_IMPLEMENTED; } -sai_status_t redis_get_bridge_port_stats_ext( - _In_ sai_object_id_t bridge_port_id, +sai_status_t redis_get_bridge_stats_ext( + _In_ sai_object_id_t bridge_id, _In_ uint32_t number_of_counters, - _In_ const sai_bridge_port_stat_t *counter_ids, + _In_ const sai_bridge_stat_t *counter_ids, _In_ sai_stats_mode_t mode, _Out_ uint64_t *counters) { From befaed130f730f90e0d3dc1a0d7000260fc4f4fe Mon Sep 17 00:00:00 2001 From: Shruthi Krishnan Date: Tue, 10 Jul 2018 17:24:19 -0700 Subject: [PATCH 36/41] Address review comment --- vslib/src/sai_vs_dtel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vslib/src/sai_vs_dtel.cpp b/vslib/src/sai_vs_dtel.cpp index 154926e57..a9049369f 100644 --- a/vslib/src/sai_vs_dtel.cpp +++ b/vslib/src/sai_vs_dtel.cpp @@ -9,7 +9,7 @@ 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) VS_GENERIC_QUAD_API(dtel_queue_report) VS_GENERIC_QUAD_API(dtel_int_session) VS_GENERIC_QUAD_API(dtel_report_session) From 82760ffda212db6a0d0e3c073e387ef72167677a Mon Sep 17 00:00:00 2001 From: Sagar Balani Date: Tue, 10 Jul 2018 18:30:20 -0700 Subject: [PATCH 37/41] Link just bfn sai lib and shorten linking command by removing other libraries linked at compile time (#6) * Link only bfn sai lib * all unresolved symbols resolved at runtime * Preload some bfn libraries on syncd startup * Build fix * also remove commented code --- syncd/Makefile.am | 4 ++-- syncd/scripts/syncd_init_common.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/syncd/Makefile.am b/syncd/Makefile.am index fa1485d52..619befac9 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -13,7 +13,8 @@ SAILIB=-L$(top_srcdir)/vslib/src/.libs -lsaivs else if sonic_asic_platform_barefoot AM_CPPFLAGS += -I/opt/bfn/install/include -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 +AM_LDFLAGS = -Wl,-unresolved-symbols=ignore-in-shared-libs +SAILIB=-L/opt/bfn/install/lib -lswitchsai else SAILIB=-lsai endif @@ -34,7 +35,6 @@ syncd_LDADD = -lhiredis -lswsscommon $(SAILIB) -lpthread -L$(top_srcdir)/meta/.l if SAITHRIFT syncd_CPPFLAGS += -DSAITHRIFT=yes syncd_LDADD += -lrpcserver -lthrift -#syncd_LDADD += -lthrift endif syncd_request_shutdown_SOURCES = syncd_request_shutdown.cpp diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index 05979e632..153d33861 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -115,7 +115,7 @@ config_syncd_barefoot() 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 + 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" From 14902a5690fc22664df27601d4e77a7b5557626a Mon Sep 17 00:00:00 2001 From: Shruthi Krishnan Date: Wed, 11 Jul 2018 12:07:52 -0700 Subject: [PATCH 38/41] Convert tabs to spaces --- lib/src/sai_redis_dtel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/sai_redis_dtel.cpp b/lib/src/sai_redis_dtel.cpp index 6ea68267b..c429cf3dd 100644 --- a/lib/src/sai_redis_dtel.cpp +++ b/lib/src/sai_redis_dtel.cpp @@ -8,7 +8,7 @@ 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) REDIS_GENERIC_QUAD_API(dtel_queue_report) REDIS_GENERIC_QUAD_API(dtel_int_session) REDIS_GENERIC_QUAD_API(dtel_report_session) From 5d914e56a711157ff342ba05413a71c1b30a701a Mon Sep 17 00:00:00 2001 From: mkbalani Date: Thu, 12 Jul 2018 11:53:29 -0700 Subject: [PATCH 39/41] Fix alignment --- syncd/scripts/syncd_init_common.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index 153d33861..28a52dbe4 100755 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -114,8 +114,8 @@ config_syncd_barefoot() 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 + ./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" From fc15c56ad66f8a6eb9145cbd6826e501608b8607 Mon Sep 17 00:00:00 2001 From: mkbalani Date: Thu, 12 Jul 2018 13:46:31 -0700 Subject: [PATCH 40/41] Address upstream comment * BFN: link with just sai library for saisdkdump --- saisdkdump/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/saisdkdump/Makefile.am b/saisdkdump/Makefile.am index 1ce8efca5..938d076ef 100644 --- a/saisdkdump/Makefile.am +++ b/saisdkdump/Makefile.am @@ -13,7 +13,8 @@ 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 +AM_LDFLAGS = -Wl,-unresolved-symbols=ignore-in-shared-libs +SAILIB=-L/opt/bfn/install/lib -lswitchsai else SAILIB=-lsai endif From 14cbaefaea72e1c33146071a256e573553a1724b Mon Sep 17 00:00:00 2001 From: Shruthi Krishnan Date: Thu, 12 Jul 2018 14:00:04 -0700 Subject: [PATCH 41/41] Address review comments --- vslib/src/sai_vs_policer.cpp | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/vslib/src/sai_vs_policer.cpp b/vslib/src/sai_vs_policer.cpp index 624c18562..e81521fc5 100644 --- a/vslib/src/sai_vs_policer.cpp +++ b/vslib/src/sai_vs_policer.cpp @@ -14,20 +14,6 @@ sai_status_t vs_get_policer_stats( return SAI_STATUS_NOT_IMPLEMENTED; } -sai_status_t vs_sai_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_ sai_stats_mode_t mode, - _Out_ uint64_t *counters) -{ - MUTEX(); - - SWSS_LOG_ENTER(); - - return SAI_STATUS_NOT_IMPLEMENTED; -} - sai_status_t vs_clear_policer_stats( _In_ sai_object_id_t policer_id, _In_ uint32_t number_of_counters, @@ -61,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, };