diff --git a/orchagent/intfsorch.cpp b/orchagent/intfsorch.cpp index e97aed019266..a49b52ec4eb5 100644 --- a/orchagent/intfsorch.cpp +++ b/orchagent/intfsorch.cpp @@ -10,6 +10,7 @@ #include "swssnet.h" #include "tokenize.h" #include "crmorch.h" +#include "bufferorch.h" extern sai_object_id_t gVirtualRouterId; @@ -20,6 +21,7 @@ extern sai_neighbor_api_t* sai_neighbor_api; extern PortsOrch *gPortsOrch; extern sai_object_id_t gSwitchId; extern CrmOrch *gCrmOrch; +extern BufferOrch *gBufferOrch; const int intfsorch_pri = 35; @@ -97,6 +99,13 @@ void IntfsOrch::doTask(Consumer &consumer) continue; } + // buffer configuration hasn't been applied yet, hold from intf config. + if (!gBufferOrch->isPortReady(alias)) + { + it++; + continue; + } + auto it_intfs = m_syncdIntfses.find(alias); if (it_intfs == m_syncdIntfses.end()) { diff --git a/orchagent/orchdaemon.cpp b/orchagent/orchdaemon.cpp index b0a0b64c340c..26bd446da279 100644 --- a/orchagent/orchdaemon.cpp +++ b/orchagent/orchdaemon.cpp @@ -116,7 +116,7 @@ bool OrchDaemon::init() CFG_DTEL_EVENT_TABLE_NAME }; - m_orchList = { switch_orch, gCrmOrch, gPortsOrch, intfs_orch, gNeighOrch, gRouteOrch, copp_orch, tunnel_decap_orch, qos_orch, gBufferOrch, mirror_orch }; + m_orchList = { switch_orch, gCrmOrch, gBufferOrch, gPortsOrch, intfs_orch, gNeighOrch, gRouteOrch, copp_orch, tunnel_decap_orch, qos_orch, mirror_orch }; bool initialize_dtel = false; if (platform == BFN_PLATFORM_SUBSTRING || platform == VS_PLATFORM_SUBSTRING) @@ -155,7 +155,7 @@ bool OrchDaemon::init() m_orchList.push_back(gAclOrch); m_orchList.push_back(gFdbOrch); m_orchList.push_back(vrf_orch); - + m_select = new Select();