summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--isisd/isis_circuit.c2
-rw-r--r--isisd/isis_circuit.h6
2 files changed, 8 insertions, 0 deletions
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 74488a1fcd..4c095c26d1 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -89,6 +89,8 @@ struct isis_circuit *isis_circuit_new()
circuit->priority[i] = DEFAULT_PRIORITY;
circuit->metric[i] = DEFAULT_CIRCUIT_METRIC;
circuit->te_metric[i] = DEFAULT_CIRCUIT_METRIC;
+ circuit->level_arg[i].level = i + 1;
+ circuit->level_arg[i].circuit = circuit;
}
circuit->mtc = mpls_te_circuit_new();
diff --git a/isisd/isis_circuit.h b/isisd/isis_circuit.h
index e83424a4ad..7d7b25b92f 100644
--- a/isisd/isis_circuit.h
+++ b/isisd/isis_circuit.h
@@ -67,6 +67,11 @@ struct isis_p2p_info {
struct bfd_info;
+struct isis_circuit_arg {
+ int level;
+ struct isis_circuit *circuit;
+};
+
struct isis_circuit {
int state;
uint8_t circuit_id; /* l1/l2 bcast CircuitID */
@@ -83,6 +88,7 @@ struct isis_circuit {
struct thread *t_send_psnp[2];
struct thread *t_send_lsp;
struct isis_tx_queue *tx_queue;
+ struct isis_circuit_arg level_arg[2]; /* used as argument for threads */
/* there is no real point in two streams, just for programming kicker */
int (*rx)(struct isis_circuit *circuit, uint8_t *ssnpa);