summaryrefslogtreecommitdiffstats
path: root/isisd/isis_tlvs.h
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2019-08-04 03:02:37 +0200
committerOlivier Dugeon <olivier.dugeon@orange.com>2020-04-30 12:15:47 +0200
commit26f6acafc369f1c126870b4282d5e252cc830f26 (patch)
treea61a225ed9eddcd972abf6216e533606e559789c /isisd/isis_tlvs.h
parentisisd: add segment-routing CLI commands (diff)
downloadfrr-26f6acafc369f1c126870b4282d5e252cc830f26.tar.xz
frr-26f6acafc369f1c126870b4282d5e252cc830f26.zip
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_tlvs.h')
-rw-r--r--isisd/isis_tlvs.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/isisd/isis_tlvs.h b/isisd/isis_tlvs.h
index 2948728e2..c3b25669b 100644
--- a/isisd/isis_tlvs.h
+++ b/isisd/isis_tlvs.h
@@ -28,8 +28,11 @@
#include "openbsd-tree.h"
#include "prefix.h"
+DECLARE_MTYPE(ISIS_SUBTLV)
+
struct lspdb_head;
struct isis_subtlvs;
+struct sr_prefix_cfg;
struct isis_area_address;
struct isis_area_address {
@@ -580,9 +583,11 @@ void isis_tlvs_set_te_router_id(struct isis_tlvs *tlvs,
void isis_tlvs_add_oldstyle_ip_reach(struct isis_tlvs *tlvs,
struct prefix_ipv4 *dest, uint8_t metric);
void isis_tlvs_add_extended_ip_reach(struct isis_tlvs *tlvs,
- struct prefix_ipv4 *dest, uint32_t metric);
+ struct prefix_ipv4 *dest, uint32_t metric,
+ bool external, struct sr_prefix_cfg *pcfg);
void isis_tlvs_add_ipv6_reach(struct isis_tlvs *tlvs, uint16_t mtid,
- struct prefix_ipv6 *dest, uint32_t metric);
+ struct prefix_ipv6 *dest, uint32_t metric,
+ bool external, struct sr_prefix_cfg *pcfg);
void isis_tlvs_add_ipv6_dstsrc_reach(struct isis_tlvs *tlvs, uint16_t mtid,
struct prefix_ipv6 *dest,
struct prefix_ipv6 *src,