Skip to content

Commit 75fc965

Browse files
authored
[DualToR] Handle race condition between tunnel_decap and mux orchestrator (sonic-net#2397)
*Change orch list to make sure mux_orch and mux_cb_orch are placed after tunnel_decap_orch
1 parent dc88d55 commit 75fc965

File tree

2 files changed

+2
-3
lines changed

2 files changed

+2
-3
lines changed

orchagent/muxorch.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -1280,8 +1280,6 @@ bool MuxOrch::handlePeerSwitch(const Request& request)
12801280

12811281
if (op == SET_COMMAND)
12821282
{
1283-
mux_peer_switch_ = peer_ip;
1284-
12851283
// Create P2P tunnel when peer_ip is available.
12861284
IpAddresses dst_ips = decap_orch_->getDstIpAddresses(MUX_TUNNEL);
12871285
if (!dst_ips.getSize())
@@ -1316,6 +1314,7 @@ bool MuxOrch::handlePeerSwitch(const Request& request)
13161314
}
13171315

13181316
mux_tunnel_id_ = create_tunnel(&peer_ip, &dst_ip, tc_to_dscp_map_id, tc_to_queue_map_id, dscp_mode_name);
1317+
mux_peer_switch_ = peer_ip;
13191318
SWSS_LOG_NOTICE("Mux peer ip '%s' was added, peer name '%s'",
13201319
peer_ip.to_string().c_str(), peer_name.c_str());
13211320
}

orchagent/orchdaemon.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ bool OrchDaemon::init()
346346
* when iterating ConsumerMap. This is ensured implicitly by the order of keys in ordered map.
347347
* For cases when Orch has to process tables in specific order, like PortsOrch during warm start, it has to override Orch::doTask()
348348
*/
349-
m_orchList = { gSwitchOrch, gCrmOrch, gPortsOrch, gBufferOrch, gFlowCounterRouteOrch, mux_orch, mux_cb_orch, gIntfsOrch, gNeighOrch, gNhgMapOrch, gNhgOrch, gCbfNhgOrch, gRouteOrch, gCoppOrch, gQosOrch, wm_orch, gPolicerOrch, tunnel_decap_orch, sflow_orch, gDebugCounterOrch, gMacsecOrch, gBfdOrch, gSrv6Orch};
349+
m_orchList = { gSwitchOrch, gCrmOrch, gPortsOrch, gBufferOrch, gFlowCounterRouteOrch, gIntfsOrch, gNeighOrch, gNhgMapOrch, gNhgOrch, gCbfNhgOrch, gRouteOrch, gCoppOrch, gQosOrch, wm_orch, gPolicerOrch, tunnel_decap_orch, sflow_orch, gDebugCounterOrch, gMacsecOrch, gBfdOrch, gSrv6Orch, mux_orch, mux_cb_orch};
350350

351351
bool initialize_dtel = false;
352352
if (platform == BFN_PLATFORM_SUBSTRING || platform == VS_PLATFORM_SUBSTRING)

0 commit comments

Comments
 (0)