Skip to content

Commit 2cb70a3

Browse files
NdancejicUbuntu
and
Ubuntu
authored
[muxorch] return true if the nbr IP is in the skip_neighbors list (sonic-net#2407)
Orchagent was not programming neighbor IP to h/w L3 host table during initialization because they were set as Standby. When the links became active, SoC IPs were added to the skip_neighbors_ list and never programmed. fix: - Added public method MuxCable::getSkipNeighborsSet() - check if nbr is in skip_neighbors_ when checking if cable is Active Signed-off-by: Nikola Dancejic <ndancejic@microsoft.com> Co-authored-by: Ubuntu <dancejic@dancejic-vm.tmcjvzftiwdebn3deov5sqribb.xx.internal.cloudapp.net>
1 parent d36c17d commit 2cb70a3

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

orchagent/muxorch.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -962,6 +962,10 @@ bool MuxOrch::isNeighborActive(const IpAddress& nbr, const MacAddress& mac, stri
962962

963963
if (ptr)
964964
{
965+
if (ptr->getSkipNeighborsSet().find(nbr) != ptr->getSkipNeighborsSet().end())
966+
{
967+
return true;
968+
}
965969
return ptr->isActive();
966970
}
967971

orchagent/muxorch.h

+4
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,10 @@ class MuxCable
9797
{
9898
return nbr_handler_->getNextHopId(nh);
9999
}
100+
std::set<IpAddress> getSkipNeighborsSet()
101+
{
102+
return skip_neighbors_;
103+
}
100104

101105
private:
102106
bool stateActive();

0 commit comments

Comments
 (0)