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.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ospfd/ospf_sr.c b/ospfd/ospf_sr.c
index 9827eac71b..1560977ae8 100644
--- a/ospfd/ospf_sr.c
+++ b/ospfd/ospf_sr.c
@@ -491,6 +491,12 @@ static int compute_link_nhlfe(struct sr_link *srl)
srl->nhlfe[0].ifindex = nh->oi->ifp->ifindex;
srl->nhlfe[1].ifindex = nh->oi->ifp->ifindex;
+ /* Update neighbor address for LAN_ADJ_SID */
+ if (srl->type == LAN_ADJ_SID) {
+ IPV4_ADDR_COPY(&srl->nhlfe[0].nexthop, &nh->src);
+ IPV4_ADDR_COPY(&srl->nhlfe[1].nexthop, &nh->src);
+ }
+
/* Set Input & Output Label */
if (CHECK_FLAG(srl->flags[0], EXT_SUBTLV_LINK_ADJ_SID_VFLG))
srl->nhlfe[0].label_in = srl->sid[0];