summaryrefslogtreecommitdiff
path: root/isisd/isis_route.c
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2019-08-03 22:02:37 -0300
committerOlivier Dugeon <olivier.dugeon@orange.com>2020-04-30 12:15:47 +0200
commit26f6acafc369f1c126870b4282d5e252cc830f26 (patch)
treea61a225ed9eddcd972abf6216e533606e559789c /isisd/isis_route.c
parent8f6c893629f609c2313150ef9ceaecd8125a3357 (diff)
isisd: add support for segment routing
This is an implementation of the IS-IS SR draft [1] for FRR. The following features are supported: * IPv4 and IPv6 Prefix-SIDs; * IPv4 and IPv6 Adj-SIDs and LAN-Adj-SIDs; * Index and absolute labels; * The no-php and explicit-null Prefix-SID flags; * Full integration with the Label Manager. Known limitations: * No support for Anycast-SIDs; * No support for the SID/Label Binding TLV (required for LDP interop). * No support for persistent Adj-SIDs; * No support for multiple SRGBs. [1] draft-ietf-isis-segment-routing-extensions-25 Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com> Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'isisd/isis_route.c')
-rw-r--r--isisd/isis_route.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/isisd/isis_route.c b/isisd/isis_route.c
index 516e3f90b9..fa6af6c216 100644
--- a/isisd/isis_route.c
+++ b/isisd/isis_route.c
@@ -70,6 +70,7 @@ static struct isis_nexthop *isis_nexthop_create(int family, union g_addr *ip,
nexthop->family = family;
nexthop->ifindex = ifindex;
nexthop->ip = *ip;
+ isis_sr_nexthop_reset(&nexthop->sr);
return nexthop;
}
@@ -129,6 +130,7 @@ static void adjinfo2nexthop(int family, struct list *nexthops,
nh = isis_nexthop_create(
AF_INET, &ip,
adj->circuit->interface->ifindex);
+ memcpy(nh->sysid, adj->sysid, sizeof(nh->sysid));
listnode_add(nexthops, nh);
break;
}
@@ -143,6 +145,7 @@ static void adjinfo2nexthop(int family, struct list *nexthops,
nh = isis_nexthop_create(
AF_INET6, &ip,
adj->circuit->interface->ifindex);
+ memcpy(nh->sysid, adj->sysid, sizeof(nh->sysid));
listnode_add(nexthops, nh);
break;
}