Skip to content

Commit 71d7692

Browse files
committed
[orchagent] Add separate next hop table and orch
**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]>
1 parent 0217b66 commit 71d7692

14 files changed

+3886
-661
lines changed

doc/swss-schema.md

+23-1
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,30 @@ and reflects the LAG ports into the redis under: `LAG_TABLE:<team0>:port`
159159
;Status: Mandatory
160160
key = ROUTE_TABLE:prefix
161161
nexthop = *prefix, ;IP addresses separated “,” (empty indicates no gateway)
162-
intf = ifindex? PORT_TABLE.key ; zero or more separated by “,” (zero indicates no interface)
162+
ifname = ifindex? PORT_TABLE.key ; zero or more separated by “,” (zero indicates no interface)
163163
blackhole = BIT ; Set to 1 if this route is a blackhole (or null0)
164+
weight = weight_list ; List of weights.
165+
nexthop_group = string ; index within the NEXT_HOP_GROUP_TABLE, used instead of nexthop and intf fields
166+
167+
---------------------------------------------
168+
169+
###### LABEL_ROUTE_TABLE
170+
; Defines schema for MPLS label route table attributes
171+
key = LABEL_ROUTE_TABLE:mpls_label ; MPLS label
172+
; field = value
173+
nexthop = STRING ; Comma-separated list of nexthops.
174+
ifname = STRING ; Comma-separated list of interfaces.
175+
weight = STRING ; Comma-separated list of weights.
176+
nexthop_group = string ; index within the NEXT_HOP_GROUP_TABLE, used instead of nexthop and intf fields
177+
178+
---------------------------------------------
179+
### NEXT_HOP_GROUP_TABLE
180+
;Stores a list of groups of one or more next hops
181+
;Status: Mandatory
182+
key = NEXT_HOP_GROUP_TABLE:string ; arbitrary index for the next hop group
183+
nexthop = *prefix, ;IP addresses separated “,” (empty indicates no gateway)
184+
ifname = ifindex? PORT_TABLE.key ; zero or more separated by “,” (zero indicates no interface)
185+
weight = weight_list ; List of weights.
164186

165187
---------------------------------------------
166188
### NEIGH_TABLE

orchagent/Makefile.am

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ orchagent_SOURCES = \
3232
orchdaemon.cpp \
3333
orch.cpp \
3434
notifications.cpp \
35+
nhgorch.cpp \
3536
routeorch.cpp \
3637
mplsrouteorch.cpp \
3738
neighorch.cpp \

0 commit comments

Comments
 (0)