@@ -172,12 +172,13 @@ func lookup(route *netlink.Route) *netlink.Route {
172172 return nil
173173}
174174
175- func createNexthopRoute (link netlink.Link , routerNet * net.IPNet ) * netlink.Route {
175+ func createNexthopRoute (route Route , link netlink.Link , routerNet * net.IPNet ) * netlink.Route {
176176 // This is the L2 route which makes router IP available behind the
177177 // interface.
178178 rt := & netlink.Route {
179179 LinkIndex : link .Attrs ().Index ,
180180 Dst : routerNet ,
181+ Table : route .Table ,
181182 }
182183
183184 // Known issue: scope for IPv6 routes is not propagated correctly. If
@@ -193,19 +194,17 @@ func createNexthopRoute(link netlink.Link, routerNet *net.IPNet) *netlink.Route
193194// replaceNexthopRoute verifies that the L2 route for the router IP which is
194195// used as nexthop for all node routes is properly installed. If unavailable or
195196// incorrect, it will be replaced with the proper L2 route.
196- func replaceNexthopRoute (link netlink.Link , routerNet * net.IPNet ) (bool , error ) {
197- route := createNexthopRoute (link , routerNet )
198- if err := netlink .RouteReplace (route ); err != nil {
197+ func replaceNexthopRoute (route Route , link netlink.Link , routerNet * net.IPNet ) (bool , error ) {
198+ if err := netlink .RouteReplace (createNexthopRoute (route , link , routerNet )); err != nil {
199199 return false , fmt .Errorf ("unable to add L2 nexthop route: %s" , err )
200200 }
201201
202202 return true , nil
203203}
204204
205205// deleteNexthopRoute deletes
206- func deleteNexthopRoute (link netlink.Link , routerNet * net.IPNet ) error {
207- route := createNexthopRoute (link , routerNet )
208- if err := netlink .RouteDel (route ); err != nil {
206+ func deleteNexthopRoute (route Route , link netlink.Link , routerNet * net.IPNet ) error {
207+ if err := netlink .RouteDel (createNexthopRoute (route , link , routerNet )); err != nil {
209208 return fmt .Errorf ("unable to delete L2 nexthop route: %s" , err )
210209 }
211210
@@ -245,7 +244,7 @@ func Upsert(route Route, mtuConfig *mtu.Configuration) (bool, error) {
245244
246245 routerNet := route .getNexthopAsIPNet ()
247246 if routerNet != nil {
248- if _ , err := replaceNexthopRoute (link , routerNet ); err != nil {
247+ if _ , err := replaceNexthopRoute (route , link , routerNet ); err != nil {
249248 return false , fmt .Errorf ("unable to add nexthop route: %s" , err )
250249 }
251250
@@ -279,7 +278,7 @@ func Upsert(route Route, mtuConfig *mtu.Configuration) (bool, error) {
279278
280279 if err != nil {
281280 if nexthopRouteCreated {
282- deleteNexthopRoute (link , routerNet )
281+ deleteNexthopRoute (route , link , routerNet )
283282 }
284283 return false , err
285284 }
0 commit comments