diff --git a/cfgmgr/teammgr.cpp b/cfgmgr/teammgr.cpp index c68e0bcaaca1..5d526e79df13 100644 --- a/cfgmgr/teammgr.cpp +++ b/cfgmgr/teammgr.cpp @@ -5,6 +5,7 @@ #include "logger.h" #include "shellcmd.h" #include "tokenize.h" +#include "warm_restart.h" #include #include @@ -380,7 +381,15 @@ bool TeamMgr::addLag(const string &alias, int min_links, bool fallback) SWSS_LOG_INFO("Port channel %s teamd configuration: %s", alias.c_str(), conf.str().c_str()); - cmd << TEAMD_CMD << " -r -t " << alias << " -c " << conf.str() << " -d"; + string warmstart_flag = WarmStart::isWarmStart() ? " -w " : ""; + const string dump_path = "/var/warmboot/teamd/"; + + cmd << TEAMD_CMD + << warmstart_flag + << " -r -t " << alias + << " -c " << conf.str() + << " -L " << dump_path + << " -d"; EXEC_WITH_ERROR_THROW(cmd.str(), res); SWSS_LOG_NOTICE("Start port channel %s with teamd", alias.c_str()); diff --git a/cfgmgr/teammgrd.cpp b/cfgmgr/teammgrd.cpp index d8aeca455b49..cb9590e92a7c 100644 --- a/cfgmgr/teammgrd.cpp +++ b/cfgmgr/teammgrd.cpp @@ -4,6 +4,7 @@ #include "netdispatcher.h" #include "netlink.h" #include "select.h" +#include "warm_restart.h" using namespace std; using namespace swss; @@ -29,6 +30,9 @@ int main(int argc, char **argv) DBConnector app_db(APPL_DB, DBConnector::DEFAULT_UNIXSOCKET, 0); DBConnector state_db(STATE_DB, DBConnector::DEFAULT_UNIXSOCKET, 0); + WarmStart::initialize("teammgrd"); + WarmStart::checkWarmStart("teammgrd"); + TableConnector conf_lag_table(&conf_db, CFG_LAG_TABLE_NAME); TableConnector conf_lag_member_table(&conf_db, CFG_LAG_MEMBER_TABLE_NAME); TableConnector state_port_table(&state_db, STATE_PORT_TABLE_NAME);