From 07b9e00d0f69984ed6bc46262e6629adf9579d6e Mon Sep 17 00:00:00 2001 From: AndriiS Date: Sat, 24 Feb 2018 09:10:25 +0200 Subject: [PATCH] [Bug #1405] Export correct gSwitchId for SAI thrift (#300) --- syncd/syncd.cpp | 5 +++++ syncd/syncd_hard_reinit.cpp | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/syncd/syncd.cpp b/syncd/syncd.cpp index 7671efdd62e..e7fff1903f3 100644 --- a/syncd/syncd.cpp +++ b/syncd/syncd.cpp @@ -1234,6 +1234,10 @@ sai_status_t handle_generic( if (object_type == SAI_OBJECT_TYPE_SWITCH) { on_switch_create(switch_id); +#ifdef SAITHRIFT + gSwitchId = real_object_id; + SWSS_LOG_NOTICE("Initialize gSwitchId with ID = 0x%lx", gSwitchId); +#endif } } @@ -1762,6 +1766,7 @@ void on_switch_create_in_init_view( #ifdef SAITHRIFT gSwitchId = switch_rid; + SWSS_LOG_NOTICE("Initialize gSwitchId with ID = 0x%lx", gSwitchId); #endif /* diff --git a/syncd/syncd_hard_reinit.cpp b/syncd/syncd_hard_reinit.cpp index a63123dc61e..58b8ac67b90 100644 --- a/syncd/syncd_hard_reinit.cpp +++ b/syncd/syncd_hard_reinit.cpp @@ -47,6 +47,13 @@ static sai_object_id_t g_switch_vid = SAI_NULL_OBJECT_ID; static std::shared_ptr g_sw; +#ifdef SAITHRIFT +/* + * SAI switch global needed for RPC server + */ +extern sai_object_id_t gSwitchId; +#endif + void processAttributesForOids( _In_ sai_object_type_t objectType, _In_ uint32_t attr_count, @@ -418,6 +425,11 @@ void processSwitches() sai_status_t status = sai_metadata_sai_switch_api->create_switch(&switch_rid, attr_count, attr_list); +#ifdef SAITHRIFT + gSwitchId = switch_rid; + SWSS_LOG_NOTICE("Initialize gSwitchId with ID = 0x%lx", gSwitchId); +#endif + if (status != SAI_STATUS_SUCCESS) { SWSS_LOG_THROW("failed to create switch RID: %s",