diff options
| author | Christian Franke <chris@opensourcerouting.org> | 2018-03-05 18:51:17 +0100 | 
|---|---|---|
| committer | Christian Franke <chris@opensourcerouting.org> | 2018-03-10 18:38:03 +0100 | 
| commit | 9fe21208143e9a1ab2fcdc8e782c0de57b4891db (patch) | |
| tree | 691ad466e85ed2d58b17fc140249b7d238ea9800 /isisd/isis_tlvs.h | |
| parent | 97035386217665c3ac4536b32c4edc122266603f (diff) | |
isisd: add support for TLV 240 P2P Three-Way Adjacency
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Diffstat (limited to 'isisd/isis_tlvs.h')
| -rw-r--r-- | isisd/isis_tlvs.h | 24 | 
1 files changed, 24 insertions, 0 deletions
diff --git a/isisd/isis_tlvs.h b/isisd/isis_tlvs.h index 6ade0af28c..98edbf14e7 100644 --- a/isisd/isis_tlvs.h +++ b/isisd/isis_tlvs.h @@ -103,6 +103,20 @@ struct isis_protocols_supported {  	uint8_t *protocols;  }; +enum isis_threeway_state { +	ISIS_THREEWAY_DOWN = 2, +	ISIS_THREEWAY_INITIALIZING = 1, +	ISIS_THREEWAY_UP = 0 +}; + +struct isis_threeway_adj { +	enum isis_threeway_state state; +	uint32_t local_circuit_id; +	bool neighbor_set; +	uint8_t neighbor_id[6]; +	uint32_t neighbor_circuit_id; +}; +  struct isis_item;  struct isis_item {  	struct isis_item *next; @@ -190,6 +204,7 @@ struct isis_tlvs {  	char *hostname;  	struct isis_item_list ipv6_reach;  	struct isis_mt_item_list mt_ipv6_reach; +	struct isis_threeway_adj *threeway_adj;  };  struct isis_subtlvs { @@ -227,6 +242,7 @@ enum isis_tlv_type {  	ISIS_TLV_MT_IP_REACH = 235,  	ISIS_TLV_IPV6_REACH = 236,  	ISIS_TLV_MT_IPV6_REACH = 237, +	ISIS_TLV_THREE_WAY_ADJ = 240,  	ISIS_TLV_MAX = 256,  	ISIS_SUBTLV_IPV6_SOURCE_PREFIX = 22 @@ -303,6 +319,14 @@ void isis_tlvs_add_extended_reach(struct isis_tlvs *tlvs, uint16_t mtid,  				  uint8_t *id, uint32_t metric,  				  uint8_t *subtlvs, uint8_t subtlv_len); +const char *isis_threeway_state_name(enum isis_threeway_state state); + +void isis_tlvs_add_threeway_adj(struct isis_tlvs *tlvs, +				enum isis_threeway_state state, +				uint32_t local_circuit_id, +				const uint8_t *neighbor_id, +				uint32_t neighbor_circuit_id); +  struct isis_mt_router_info *  isis_tlvs_lookup_mt_router_info(struct isis_tlvs *tlvs, uint16_t mtid);  #endif  | 
