From 843b10c8b0c28ed3bea9a37b166500aabf5e930f Mon Sep 17 00:00:00 2001 From: "Ondrej Zajicek (work)" Date: Thu, 10 Oct 2019 15:25:36 +0200 Subject: Nest: Handle non-MPLS on MPLS case in recursive route update When non-MPLS recursive route resolves to MPLS underlying route, then it should get MPLS labels from the the underlying route. --- nest/rt-table.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'nest/rt-table.c') diff --git a/nest/rt-table.c b/nest/rt-table.c index d99953e5..0844070d 100644 --- a/nest/rt-table.c +++ b/nest/rt-table.c @@ -2115,6 +2115,7 @@ no_nexthop: memset(nhp, 0, NEXTHOP_MAX_SIZE); nhp->iface = nh->iface; nhp->weight = nh->weight; + if (mls) { nhp->labels = nh->labels + mls->len; @@ -2132,6 +2133,13 @@ no_nexthop: continue; } } + else if (nh->labels) + { + nhp->labels = nh->labels; + nhp->labels_orig = 0; + memcpy(nhp->label, nh->label, nh->labels * sizeof(u32)); + } + if (ipa_nonzero(nh->gw)) { nhp->gw = nh->gw; /* Router nexthop */ -- cgit v1.2.3