Skip to content

Commit

Permalink
[orchagent] Add separate next hop table and orch
Browse files Browse the repository at this point in the history
**What I did**
Added a new next hop group table to APP_DB, and orchagent support
to use this as an alternative to including next hop information in
the route table

**Why I did it**
Improves performance and occupancy usage when using the new table

**How I verified it**
Extended SWSS unit tests to cover new code, and ran existing tests

Signed-off-by: Thomas Cappleman <[email protected]>
  • Loading branch information
TACappleman committed Aug 11, 2021
1 parent 0217b66 commit fb54b25
Show file tree
Hide file tree
Showing 14 changed files with 3,886 additions and 661 deletions.
24 changes: 23 additions & 1 deletion doc/swss-schema.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,30 @@ and reflects the LAG ports into the redis under: `LAG_TABLE:<team0>:port`
;Status: Mandatory
key = ROUTE_TABLE:prefix
nexthop = *prefix, ;IP addresses separated “,” (empty indicates no gateway)
intf = ifindex? PORT_TABLE.key ; zero or more separated by “,” (zero indicates no interface)
ifname = ifindex? PORT_TABLE.key ; zero or more separated by “,” (zero indicates no interface)
blackhole = BIT ; Set to 1 if this route is a blackhole (or null0)
weight = weight_list ; List of weights.
nexthop_group = string ; index within the NEXTHOP_GROUP_TABLE, used instead of nexthop and intf fields

---------------------------------------------

###### LABEL_ROUTE_TABLE
; Defines schema for MPLS label route table attributes
key = LABEL_ROUTE_TABLE:mpls_label ; MPLS label
; field = value
nexthop = STRING ; Comma-separated list of nexthops.
ifname = STRING ; Comma-separated list of interfaces.
weight = STRING ; Comma-separated list of weights.
nexthop_group = string ; index within the NEXTHOP_GROUP_TABLE, used instead of nexthop and intf fields

---------------------------------------------
### NEXTHOP_GROUP_TABLE
;Stores a list of groups of one or more next hops
;Status: Mandatory
key = NEXTHOP_GROUP_TABLE:string ; arbitrary index for the next hop group
nexthop = *prefix, ;IP addresses separated “,” (empty indicates no gateway)
ifname = ifindex? PORT_TABLE.key ; zero or more separated by “,” (zero indicates no interface)
weight = weight_list ; List of weights.

---------------------------------------------
### NEIGH_TABLE
Expand Down
1 change: 1 addition & 0 deletions orchagent/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ orchagent_SOURCES = \
orchdaemon.cpp \
orch.cpp \
notifications.cpp \
nhgorch.cpp \
routeorch.cpp \
mplsrouteorch.cpp \
neighorch.cpp \
Expand Down
Loading

0 comments on commit fb54b25

Please sign in to comment.