From: Ondrej Zajicek (work) Date: Thu, 10 Oct 2019 13:25:36 +0000 (+0200) Subject: Nest: Handle non-MPLS on MPLS case in recursive route update X-Git-Tag: v2.0.7~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=843b10c8b0c28ed3bea9a37b166500aabf5e930f;p=thirdparty%2Fbird.git 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. --- diff --git a/nest/rt-table.c b/nest/rt-table.c index d99953e52..0844070d7 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 */