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 authored and Shi Su committed Jan 21, 2022
1 parent edd2e61 commit 677c010
Show file tree
Hide file tree
Showing 4 changed files with 953 additions and 19 deletions.
5 changes: 2 additions & 3 deletions orchagent/orchdaemon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ bool OrchDaemon::init()
gPortsOrch = new PortsOrch(m_applDb, ports_tables);
TableConnector stateDbFdb(m_stateDb, STATE_FDB_TABLE_NAME);
gFdbOrch = new FdbOrch(m_applDb, app_fdb_tables, stateDbFdb, 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 @@ -264,9 +266,6 @@ bool OrchDaemon::init()
MuxStateOrch *mux_st_orch = new MuxStateOrch(m_stateDb, STATE_HW_MUX_CABLE_TABLE_NAME);
gDirectory.set(mux_st_orch);

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

/*
* The order of the orch list is important for state restore of warm start and
* the queued processing in m_toSync map after gPortsOrch->allPortsReady() is set.
Expand Down
Loading

0 comments on commit 677c010

Please sign in to comment.