summaryrefslogtreecommitdiffstats
path: root/isisd/isis_sr.h
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2020-08-31 20:24:02 +0200
committerRenato Westphal <renato@opensourcerouting.org>2020-10-14 21:27:37 +0200
commit054fda12f0ca749e39e1b95409a3aac3aebb3dc9 (patch)
treebf7a4d28a11c33dd554ac01cf6d667ff213d8bcf /isisd/isis_sr.h
parentisisd: add support for Topology Independent LFA (TI-LFA) (diff)
downloadfrr-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.h13
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);