diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-07-20 01:52:53 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-20 01:52:53 -0400 |
| commit | 9b4a116cf74b96faed8c94e1587c64ab5ee90e95 (patch) | |
| tree | 95a9c584c6252570ce605f0db6130b832f36e650 | |
| parent | 8eb3cd26999c44b8d0fd0bd1dddc152202cb0142 (diff) | |
| parent | 055ea2b2b55c404e47cfb7639c79aeba91b30de7 (diff) | |
Merge pull request #2673 from opensourcerouting/stable/5.0-fix-isis-issue-2584
Stable/5.0: Fix issue with p2p interfaces on FreeBSD
| -rw-r--r-- | isisd/isis_circuit.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c index 6f4d72cb1f..41723f7316 100644 --- a/isisd/isis_circuit.c +++ b/isisd/isis_circuit.c @@ -638,7 +638,7 @@ int isis_circuit_up(struct isis_circuit *circuit) thread_add_timer(master, isis_run_dr_l2, circuit, 2 * circuit->hello_interval[1], &circuit->u.bc.t_run_dr[1]); - } else { + } else if (circuit->circ_type == CIRCUIT_T_P2P) { /* initializing the hello send threads * for a ptp IF */ @@ -682,9 +682,6 @@ int isis_circuit_up(struct isis_circuit *circuit) void isis_circuit_down(struct isis_circuit *circuit) { - if (circuit->state != C_STATE_UP) - return; - /* Clear the flags for all the lsps of the circuit. */ isis_circuit_update_all_srmflags(circuit, 0); @@ -756,10 +753,12 @@ void isis_circuit_down(struct isis_circuit *circuit) } /* send one gratuitous hello to spead up convergence */ - if (circuit->is_type & IS_LEVEL_1) - send_hello(circuit, IS_LEVEL_1); - if (circuit->is_type & IS_LEVEL_2) - send_hello(circuit, IS_LEVEL_2); + if (circuit->state == C_STATE_UP) { + if (circuit->is_type & IS_LEVEL_1) + send_hello(circuit, IS_LEVEL_1); + if (circuit->is_type & IS_LEVEL_2) + send_hello(circuit, IS_LEVEL_2); + } circuit->upadjcount[0] = 0; circuit->upadjcount[1] = 0; |
