diff options
author | Christian Franke <chris@opensourcerouting.org> | 2018-04-06 13:49:38 +0200 |
---|---|---|
committer | Christian Franke <chris@opensourcerouting.org> | 2018-09-05 11:38:13 +0200 |
commit | 41a145f18d621e24a1c4b8ab17683d14d9190fd3 (patch) | |
tree | 904408654a5d6020d4684a82d8db1e8d5e1dc535 /isisd/isis_tlvs.h | |
parent | isisd: move spf datastructures to a header, to share with fabricd (diff) | |
download | frr-41a145f18d621e24a1c4b8ab17683d14d9190fd3.tar.xz frr-41a145f18d621e24a1c4b8ab17683d14d9190fd3.zip |
fabricd: Add support for TLV 150 (Spine-Leaf-Extension)
To flood the tier calculated by the fabric locality detection,
OpenFabric makes use of TLV 150, defined in
draft-shen-isis-spine-leaf-ext-06, so add support for that TLV.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Diffstat (limited to 'isisd/isis_tlvs.h')
-rw-r--r-- | isisd/isis_tlvs.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/isisd/isis_tlvs.h b/isisd/isis_tlvs.h index bd1fa3e67..451321ea9 100644 --- a/isisd/isis_tlvs.h +++ b/isisd/isis_tlvs.h @@ -103,6 +103,17 @@ struct isis_protocols_supported { uint8_t *protocols; }; +#define ISIS_TIER_UNDEFINED 15 + +struct isis_spine_leaf { + uint8_t tier; + + bool has_tier; + bool is_leaf; + bool is_spine; + bool is_backup; +}; + enum isis_threeway_state { ISIS_THREEWAY_DOWN = 2, ISIS_THREEWAY_INITIALIZING = 1, @@ -205,6 +216,7 @@ struct isis_tlvs { struct isis_item_list ipv6_reach; struct isis_mt_item_list mt_ipv6_reach; struct isis_threeway_adj *threeway_adj; + struct isis_spine_leaf *spine_leaf; }; struct isis_subtlvs { @@ -236,6 +248,7 @@ enum isis_tlv_type { ISIS_TLV_TE_ROUTER_ID = 134, ISIS_TLV_EXTENDED_IP_REACH = 135, ISIS_TLV_DYNAMIC_HOSTNAME = 137, + ISIS_TLV_SPINE_LEAF_EXT = 150, ISIS_TLV_MT_REACH = 222, ISIS_TLV_MT_ROUTER_INFO = 229, ISIS_TLV_IPV6_ADDRESS = 232, @@ -331,6 +344,10 @@ void isis_tlvs_add_threeway_adj(struct isis_tlvs *tlvs, const uint8_t *neighbor_id, uint32_t neighbor_circuit_id); +void isis_tlvs_add_spine_leaf(struct isis_tlvs *tlvs, uint8_t tier, + bool has_tier, bool is_leaf, bool is_spine, + bool is_backup); + struct isis_mt_router_info * isis_tlvs_lookup_mt_router_info(struct isis_tlvs *tlvs, uint16_t mtid); #endif |