summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2018-07-20 01:52:53 -0400
committerGitHub <noreply@github.com>2018-07-20 01:52:53 -0400
commit9b4a116cf74b96faed8c94e1587c64ab5ee90e95 (patch)
tree95a9c584c6252570ce605f0db6130b832f36e650
parent8eb3cd26999c44b8d0fd0bd1dddc152202cb0142 (diff)
parent055ea2b2b55c404e47cfb7639c79aeba91b30de7 (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.c15
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;