@@ -30,18 +30,19 @@ extern set<string> g_portSet;
30
30
extern map<string, set<string>> g_vlanMap;
31
31
extern bool g_init;
32
32
33
- LinkSync::LinkSync (DBConnector *db) :
34
- m_portTableProducer(db, APP_PORT_TABLE_NAME),
35
- m_vlanTableProducer(db, APP_VLAN_TABLE_NAME),
36
- m_vlanMemberTableProducer(db, APP_VLAN_MEMBER_TABLE_NAME),
37
- m_portTableConsumer(db, APP_PORT_TABLE_NAME),
38
- m_vlanMemberTableConsumer(db, APP_VLAN_MEMBER_TABLE_NAME)
33
+ LinkSync::LinkSync (DBConnector *appl_db, DBConnector *state_db) :
34
+ m_portTableProducer(appl_db, APP_PORT_TABLE_NAME),
35
+ m_vlanTableProducer(appl_db, APP_VLAN_TABLE_NAME),
36
+ m_vlanMemberTableProducer(appl_db, APP_VLAN_MEMBER_TABLE_NAME),
37
+ m_portTable(appl_db, APP_PORT_TABLE_NAME),
38
+ m_vlanMemberTable(appl_db, APP_VLAN_MEMBER_TABLE_NAME),
39
+ m_statePortTable(state_db, STATE_PORT_TABLE_NAME, CONFIGDB_TABLE_NAME_SEPARATOR)
39
40
{
40
41
/* See the comments for g_portSet in portsyncd.cpp */
41
42
for (string port : g_portSet)
42
43
{
43
44
vector<FieldValueTuple> temp;
44
- if (m_portTableConsumer .get (port, temp))
45
+ if (m_portTable .get (port, temp))
45
46
{
46
47
for (auto it : temp)
47
48
{
@@ -55,7 +56,7 @@ LinkSync::LinkSync(DBConnector *db) :
55
56
}
56
57
57
58
vector<KeyOpFieldsValuesTuple> tuples;
58
- m_vlanMemberTableConsumer .getTableContent (tuples);
59
+ m_vlanMemberTable .getTableContent (tuples);
59
60
60
61
for (auto tuple : tuples)
61
62
{
@@ -183,7 +184,7 @@ void LinkSync::onMsg(int nlmsg_type, struct nl_object *obj)
183
184
* non-front panel interfaces such as eth0, lo which are not in the
184
185
* PORT_TABLE are ignored. */
185
186
vector<FieldValueTuple> temp;
186
- if (m_portTableConsumer .get (key, temp))
187
+ if (m_portTable .get (key, temp))
187
188
{
188
189
/* TODO: When port is removed from the kernel */
189
190
if (nlmsg_type == RTM_DELLINK)
@@ -195,6 +196,10 @@ void LinkSync::onMsg(int nlmsg_type, struct nl_object *obj)
195
196
if (!g_init && g_portSet.find (key) != g_portSet.end ())
196
197
{
197
198
g_portSet.erase (key);
199
+ FieldValueTuple tuple (" state" , " ok" );
200
+ vector<FieldValueTuple> vector;
201
+ vector.push_back (tuple);
202
+ m_statePortTable.set (key, vector);
198
203
}
199
204
200
205
m_portTableProducer.set (key, fvVector);
0 commit comments