summaryrefslogtreecommitdiff
path: root/isisd/isis_adjacency.h
diff options
context:
space:
mode:
authorChristian Franke <chris@opensourcerouting.org>2018-03-05 21:00:40 +0100
committerChristian Franke <chris@opensourcerouting.org>2018-03-10 18:38:03 +0100
commit42fe2621979edcfee30f9bf3f794f66f73f3e71e (patch)
tree4acee8d5fabeb327226a11bc36a7f040fac16261 /isisd/isis_adjacency.h
parent9fe21208143e9a1ab2fcdc8e782c0de57b4891db (diff)
isisd: implement threeway adjacencies
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Diffstat (limited to 'isisd/isis_adjacency.h')
-rw-r--r--isisd/isis_adjacency.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/isisd/isis_adjacency.h b/isisd/isis_adjacency.h
index 98bb9838fa..2c3bd19af8 100644
--- a/isisd/isis_adjacency.h
+++ b/isisd/isis_adjacency.h
@@ -25,6 +25,8 @@
#ifndef _ZEBRA_ISIS_ADJACENCY_H
#define _ZEBRA_ISIS_ADJACENCY_H
+#include "isisd/isis_tlvs.h"
+
enum isis_adj_usage {
ISIS_ADJ_NONE,
ISIS_ADJ_LEVEL1,
@@ -91,6 +93,8 @@ struct isis_adjacency {
u_int16_t hold_time; /* entryRemainingTime */
u_int32_t last_upd;
u_int32_t last_flap; /* last time the adj flapped */
+ enum isis_threeway_state threeway_state;
+ uint32_t ext_circuit_id;
int flaps; /* number of adjacency flaps */
struct thread *t_expire; /* expire after hold_time */
struct isis_circuit *circuit; /* back pointer */
@@ -98,12 +102,17 @@ struct isis_adjacency {
unsigned int mt_count; /* Number of entries in mt_set */
};
+struct isis_threeway_adj;
+
struct isis_adjacency *isis_adj_lookup(const u_char *sysid, struct list *adjdb);
struct isis_adjacency *isis_adj_lookup_snpa(const u_char *ssnpa,
struct list *adjdb);
struct isis_adjacency *isis_new_adj(const u_char *id, const u_char *snpa,
int level, struct isis_circuit *circuit);
void isis_delete_adj(void *adj);
+void isis_adj_process_threeway(struct isis_adjacency *adj,
+ struct isis_threeway_adj *tw_adj,
+ enum isis_adj_usage adj_usage);
void isis_adj_state_change(struct isis_adjacency *adj,
enum isis_adj_state state, const char *reason);
void isis_adj_print(struct isis_adjacency *adj);