diff options
author | Renato Westphal <renato@opensourcerouting.org> | 2020-08-31 20:24:02 +0200 |
---|---|---|
committer | Renato Westphal <renato@opensourcerouting.org> | 2020-10-14 21:27:37 +0200 |
commit | 054fda12f0ca749e39e1b95409a3aac3aebb3dc9 (patch) | |
tree | bf7a4d28a11c33dd554ac01cf6d667ff213d8bcf /isisd/isis_sr.h | |
parent | isisd: add support for Topology Independent LFA (TI-LFA) (diff) | |
download | frr-054fda12f0ca749e39e1b95409a3aac3aebb3dc9.tar.xz frr-054fda12f0ca749e39e1b95409a3aac3aebb3dc9.zip |
isisd: implement TI-LFA protection for Adj-SIDs
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'isisd/isis_sr.h')
-rw-r--r-- | isisd/isis_sr.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/isisd/isis_sr.h b/isisd/isis_sr.h index 4379a1dcb..2e4f3a69f 100644 --- a/isisd/isis_sr.h +++ b/isisd/isis_sr.h @@ -84,13 +84,18 @@ struct sr_adjacency { /* Adjacency type. */ enum sr_adj_type type; + /* Adjacency-SID input label. */ + mpls_label_t input_label; + /* Adjacency-SID nexthop information. */ struct { int family; union g_addr address; - mpls_label_t label; } nexthop; + /* Adjacency-SID TI-LFA backup nexthops. */ + struct list *backup_nexthops; + /* (LAN-)Adjacency-SID Sub-TLV. */ union { struct isis_adj_sid *adj_sid; @@ -277,6 +282,12 @@ extern void isis_sr_prefix_cfg2subtlv(const struct sr_prefix_cfg *pcfg, extern void isis_sr_nexthop_update(struct sr_nexthop_info *srnh, mpls_label_t label); extern void isis_sr_nexthop_reset(struct sr_nexthop_info *srnh); +extern void sr_adj_sid_add_single(struct isis_adjacency *adj, int family, + bool backup, struct list *nexthops); +extern struct sr_adjacency *isis_sr_adj_sid_find(struct isis_adjacency *adj, + int family, + enum sr_adj_type type); +extern void isis_area_delete_backup_adj_sids(struct isis_area *area, int level); extern void isis_area_verify_sr(struct isis_area *area); extern int isis_sr_start(struct isis_area *area); extern void isis_sr_stop(struct isis_area *area); |