Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions teamsyncd/teamsync.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@ using namespace swss;
/* Taken from drivers/net/team/team.c */
#define TEAM_DRV_NAME "team"

TeamSync::TeamSync(DBConnector *db, Select *select) :
TeamSync::TeamSync(DBConnector *db, DBConnector *stateDb, Select *select) :
m_select(select),
m_lagTable(db, APP_LAG_TABLE_NAME),
m_lagMemberTable(db, APP_LAG_MEMBER_TABLE_NAME)
m_lagMemberTable(db, APP_LAG_MEMBER_TABLE_NAME),
m_stateLagTable(stateDb, STATE_LAG_TABLE_NAME, CONFIGDB_TABLE_NAME_SEPARATOR)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{
}

Expand Down Expand Up @@ -72,6 +73,11 @@ void TeamSync::addLag(const string &lagName, int ifindex, bool admin_state,
auto sync = make_shared<TeamPortSync>(lagName, ifindex, &m_lagMemberTable);
m_select->addSelectable(sync.get());
m_teamPorts[lagName] = sync;

fvVector.clear();
FieldValueTuple s("state", "ok");
fvVector.push_back(s);
m_stateLagTable.set(lagName, fvVector);
}

void TeamSync::removeLag(const string &lagName)
Expand All @@ -88,6 +94,7 @@ void TeamSync::removeLag(const string &lagName)
/* No longer track the current team instance */
m_select->removeSelectable(m_teamPorts[lagName].get());
m_teamPorts.erase(lagName);
m_stateLagTable.del(lagName);
}

const struct team_change_handler TeamSync::TeamPortSync::gPortChangeHandler = {
Expand Down
3 changes: 2 additions & 1 deletion teamsyncd/teamsync.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ namespace swss {
class TeamSync : public NetMsg
{
public:
TeamSync(DBConnector *db, Select *select);
TeamSync(DBConnector *db, DBConnector *stateDb, Select *select);

/*
* Listens to RTM_NEWLINK and RTM_DELLINK to undestand if there is a new
Expand Down Expand Up @@ -59,6 +59,7 @@ class TeamSync : public NetMsg
Select *m_select;
ProducerStateTable m_lagTable;
ProducerStateTable m_lagMemberTable;
Table m_stateLagTable;
std::map<std::string, std::shared_ptr<TeamPortSync> > m_teamPorts;
};

Expand Down
3 changes: 2 additions & 1 deletion teamsyncd/teamsyncd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ int main(int argc, char **argv)
{
swss::Logger::linkToDbNative("teamsyncd");
DBConnector db(APPL_DB, DBConnector::DEFAULT_UNIXSOCKET, 0);
DBConnector stateDb(STATE_DB, DBConnector::DEFAULT_UNIXSOCKET, 0);
Select s;
TeamSync sync(&db, &s);
TeamSync sync(&db, &stateDb, &s);

NetDispatcher::getInstance().registerMessageHandler(RTM_NEWLINK, &sync);
NetDispatcher::getInstance().registerMessageHandler(RTM_DELLINK, &sync);
Expand Down