From 8123e32819666e9ecbccbb3a941677beae3dc2b1 Mon Sep 17 00:00:00 2001 From: Kamil Cudnik Date: Tue, 13 Jul 2021 14:39:02 +0200 Subject: [PATCH] [VS] Fix context config guid on RealObjectIdManager (#847) Will help using multiple switches in VS with multiple contextes. --- vslib/inc/VirtualSwitchSaiInterface.h | 6 +++--- vslib/src/Sai.cpp | 2 +- vslib/src/VirtualSwitchSaiInterface.cpp | 11 ++++++----- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/vslib/inc/VirtualSwitchSaiInterface.h b/vslib/inc/VirtualSwitchSaiInterface.h index 508159042d22..12c8abeefe57 100644 --- a/vslib/inc/VirtualSwitchSaiInterface.h +++ b/vslib/inc/VirtualSwitchSaiInterface.h @@ -2,12 +2,12 @@ #include "SwitchStateBase.h" #include "WarmBootState.h" -#include "SwitchConfigContainer.h" #include "RealObjectIdManager.h" #include "SwitchStateBase.h" #include "EventQueue.h" #include "EventPayloadPacket.h" #include "EventPayloadNetLinkMsg.h" +#include "ContextConfig.h" #include "lib/inc/SaiInterface.h" @@ -70,7 +70,7 @@ namespace saivs public: VirtualSwitchSaiInterface( - _In_ const std::shared_ptr scc); + _In_ std::shared_ptr contextConfig); virtual ~VirtualSwitchSaiInterface(); @@ -394,7 +394,7 @@ namespace saivs std::map m_warmBootState; - std::shared_ptr m_switchConfigContainer; + std::shared_ptr m_contextConfig; std::shared_ptr m_realObjectIdManager; diff --git a/vslib/src/Sai.cpp b/vslib/src/Sai.cpp index 2a0f84fd0e80..605991172b78 100644 --- a/vslib/src/Sai.cpp +++ b/vslib/src/Sai.cpp @@ -232,7 +232,7 @@ sai_status_t Sai::initialize( // TODO move to Context class - m_vsSai = std::make_shared(scc); + m_vsSai = std::make_shared(contextConfig); m_meta = std::make_shared(m_vsSai); diff --git a/vslib/src/VirtualSwitchSaiInterface.cpp b/vslib/src/VirtualSwitchSaiInterface.cpp index 0de2c626a5bd..56a6423529e7 100644 --- a/vslib/src/VirtualSwitchSaiInterface.cpp +++ b/vslib/src/VirtualSwitchSaiInterface.cpp @@ -30,13 +30,14 @@ using namespace saimeta; using namespace sairediscommon; VirtualSwitchSaiInterface::VirtualSwitchSaiInterface( - _In_ const std::shared_ptr scc) + _In_ std::shared_ptr contextConfig): + m_contextConfig(contextConfig) { SWSS_LOG_ENTER(); - m_realObjectIdManager = std::make_shared(0, scc); // TODO fix global context - - m_switchConfigContainer = scc; + m_realObjectIdManager = std::make_shared( + m_contextConfig->m_guid, + m_contextConfig->m_scc); } VirtualSwitchSaiInterface::~VirtualSwitchSaiInterface() @@ -625,7 +626,7 @@ sai_status_t VirtualSwitchSaiInterface::create( { auto switchIndex = RealObjectIdManager::getSwitchIndex(switchId); - auto config = m_switchConfigContainer->getConfig(switchIndex); + auto config = m_contextConfig->m_scc->getConfig(switchIndex); if (config == nullptr) {