Skip to content
This repository was archived by the owner on Aug 1, 2023. It is now read-only.

Commit f9005b4

Browse files
committed
swss: [portsyncd] fix portsyncd restart case
sonic-net/sonic-swss#1019 Signed-off-by: Wataru Ishida <[email protected]>
1 parent d552228 commit f9005b4

File tree

3 files changed

+62
-0
lines changed

3 files changed

+62
-0
lines changed

patches/series

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
sonic-swss/[portsyncd]:_fix_portsyncd_restart_case_(#1019).patch
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
Index: usonic/sm/sonic-swss/portsyncd/linksync.cpp
2+
===================================================================
3+
--- usonic.orig/sm/sonic-swss/portsyncd/linksync.cpp
4+
+++ usonic/sm/sonic-swss/portsyncd/linksync.cpp
5+
@@ -95,20 +95,27 @@ LinkSync::LinkSync(DBConnector *appl_db,
6+
if (!WarmStart::isWarmStart())
7+
{
8+
/* See the comments for g_portSet in portsyncd.cpp */
9+
- for (string port : g_portSet)
10+
+ for (auto port_iter = g_portSet.begin(); port_iter != g_portSet.end();)
11+
{
12+
+ string port = *port_iter;
13+
vector<FieldValueTuple> temp;
14+
+ bool portFound = false;
15+
if (m_portTable.get(port, temp))
16+
{
17+
for (auto it : temp)
18+
{
19+
if (fvField(it) == "admin_status")
20+
{
21+
- g_portSet.erase(port);
22+
+ port_iter = g_portSet.erase(port_iter);
23+
+ portFound = true;
24+
break;
25+
}
26+
}
27+
}
28+
+ if (!portFound)
29+
+ {
30+
+ ++port_iter;
31+
+ }
32+
}
33+
34+
for (idx_p = if_ni;
35+
Index: usonic/sm/sonic-swss/portsyncd/portsyncd.cpp
36+
===================================================================
37+
--- usonic.orig/sm/sonic-swss/portsyncd/portsyncd.cpp
38+
+++ usonic/sm/sonic-swss/portsyncd/portsyncd.cpp
39+
@@ -79,10 +79,6 @@ int main(int argc, char **argv)
40+
WarmStart::checkWarmStart("portsyncd", "swss");
41+
const bool warm = WarmStart::isWarmStart();
42+
43+
- LinkSync sync(&appl_db, &state_db);
44+
- NetDispatcher::getInstance().registerMessageHandler(RTM_NEWLINK, &sync);
45+
- NetDispatcher::getInstance().registerMessageHandler(RTM_DELLINK, &sync);
46+
-
47+
try
48+
{
49+
NetLink netlink;
50+
@@ -102,6 +98,10 @@ int main(int argc, char **argv)
51+
}
52+
}
53+
54+
+ LinkSync sync(&appl_db, &state_db);
55+
+ NetDispatcher::getInstance().registerMessageHandler(RTM_NEWLINK, &sync);
56+
+ NetDispatcher::getInstance().registerMessageHandler(RTM_DELLINK, &sync);
57+
+
58+
s.addSelectable(&netlink);
59+
s.addSelectable(&portCfg);
60+

patches/sonic-swss/series

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
copporch_bug_fix.patch
2+
[portsyncd]:_fix_portsyncd_restart_case_(#1019).patch

0 commit comments

Comments
 (0)