Skip to content

Commit

Permalink
[vnetorch] ECMP for vnet tunnel routes with endpoint health monitor (s…
Browse files Browse the repository at this point in the history
…onic-net#1955)

What I did
Add functions to create/remove next hop groups for vnet tunnel routes.
Count the reference count of next hop groups to create and remove as needed.
Share the counter of next hop groups with routeorch.
Adapt route endpoint according to the BFD state of endpoints.

Why I did it
To add support for overlay ECMP.

How I verified it
Verify ECMP groups are properly created and removed with the functions.
  • Loading branch information
shi-su committed Dec 1, 2021
1 parent bcb7d61 commit e9b05a3
Show file tree
Hide file tree
Showing 4 changed files with 949 additions and 18 deletions.
5 changes: 2 additions & 3 deletions orchagent/orchdaemon.cpp
Expand Up @@ -122,6 +122,8 @@ bool OrchDaemon::init()
TableConnector stateDbFdb(m_stateDb, STATE_FDB_TABLE_NAME);
TableConnector stateMclagDbFdb(m_stateDb, STATE_MCLAG_REMOTE_FDB_TABLE_NAME);
gFdbOrch = new FdbOrch(m_applDb, app_fdb_tables, stateDbFdb, stateMclagDbFdb, gPortsOrch);
TableConnector stateDbBfdSessionTable(m_stateDb, STATE_BFD_SESSION_TABLE_NAME);
gBfdOrch = new BfdOrch(m_applDb, APP_BFD_SESSION_TABLE_NAME, stateDbBfdSessionTable);

vector<string> vnet_tables = {
APP_VNET_RT_TABLE_NAME,
Expand Down Expand Up @@ -309,9 +311,6 @@ bool OrchDaemon::init()

gMacsecOrch = new MACsecOrch(m_applDb, m_stateDb, macsec_app_tables, gPortsOrch);

TableConnector stateDbBfdSessionTable(m_stateDb, STATE_BFD_SESSION_TABLE_NAME);
gBfdOrch = new BfdOrch(m_applDb, APP_BFD_SESSION_TABLE_NAME, stateDbBfdSessionTable);

gNhgMapOrch = new NhgMapOrch(m_applDb, APP_FC_TO_NHG_INDEX_MAP_TABLE_NAME);

/*
Expand Down

0 comments on commit e9b05a3

Please sign in to comment.