diff options
author | Renato Westphal <renato@opensourcerouting.org> | 2019-08-04 03:02:37 +0200 |
---|---|---|
committer | Olivier Dugeon <olivier.dugeon@orange.com> | 2020-04-30 12:15:47 +0200 |
commit | 26f6acafc369f1c126870b4282d5e252cc830f26 (patch) | |
tree | a61a225ed9eddcd972abf6216e533606e559789c /isisd/isis_tlvs.h | |
parent | isisd: add segment-routing CLI commands (diff) | |
download | frr-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.h | 9 |
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, |