summaryrefslogtreecommitdiff
path: root/ospfd/ospf_sr.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospfd/ospf_sr.c')
-rw-r--r--ospfd/ospf_sr.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/ospfd/ospf_sr.c b/ospfd/ospf_sr.c
index 70a4d93958..2d06ae77fc 100644
--- a/ospfd/ospf_sr.c
+++ b/ospfd/ospf_sr.c
@@ -618,15 +618,20 @@ static int ospf_zebra_send_mpls_labels(int cmd, struct sr_nhlfe nhlfe)
nhlfe.prefv4.prefixlen, nhlfe.ifindex);
zl.type = ZEBRA_LSP_OSPF_SR;
- zl.prefix.family = nhlfe.prefv4.family;
- zl.prefix.prefixlen = nhlfe.prefv4.prefixlen;
- zl.prefix.u.prefix4 = nhlfe.prefv4.prefix;
- zl.nexthop.ipv4 = nhlfe.nexthop;
- zl.ifindex = nhlfe.ifindex;
- zl.route_type = ZEBRA_ROUTE_OSPF;
- zl.route_instance = 0;
zl.local_label = nhlfe.label_in;
- zl.remote_label = nhlfe.label_out;
+
+ SET_FLAG(zl.message, ZAPI_LABELS_FTN);
+ zl.route.prefix.family = nhlfe.prefv4.family;
+ zl.route.prefix.prefixlen = nhlfe.prefv4.prefixlen;
+ zl.route.prefix.u.prefix4 = nhlfe.prefv4.prefix;
+ zl.route.type = ZEBRA_ROUTE_OSPF;
+ zl.route.instance = 0;
+
+ zl.nexthop.type = NEXTHOP_TYPE_IPV4_IFINDEX;
+ zl.nexthop.family = AF_INET;
+ zl.nexthop.address.ipv4 = nhlfe.nexthop;
+ zl.nexthop.ifindex = nhlfe.ifindex;
+ zl.nexthop.label = nhlfe.label_out;
return zebra_send_mpls_labels(zclient, cmd, &zl);
}