From 83cd1f1aab571b479000a50d0d322a8c44ab409f Mon Sep 17 00:00:00 2001 From: Christian Franke Date: Mon, 15 Aug 2016 13:36:59 +0200 Subject: [PATCH] isisd: warn if there is an MTU issue on circuits Instead of later tripping over an assert, add a proper warning for interfaces whose MTU is too low. Signed-off-by: David Lamparter --- isisd/isis_circuit.c | 3 ++- isisd/isis_vty.c | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c index efed420161..728cbdc67d 100644 --- a/isisd/isis_circuit.c +++ b/isisd/isis_circuit.c @@ -1230,7 +1230,8 @@ isis_circuit_create (struct isis_area *area, struct interface *ifp) if (circuit && circuit->area) return NULL; circuit = isis_csm_state_change (ISIS_ENABLE, circuit, area); - assert (circuit->state == C_STATE_CONF || circuit->state == C_STATE_UP); + if (circuit->state != C_STATE_CONF && circuit->state != C_STATE_UP) + return circuit; isis_circuit_if_bind (circuit, ifp); return circuit; } diff --git a/isisd/isis_vty.c b/isisd/isis_vty.c index f9b96a42d8..4148eb55b9 100644 --- a/isisd/isis_vty.c +++ b/isisd/isis_vty.c @@ -86,9 +86,16 @@ DEFUN (ip_router_isis, if (!area) area = isis_area_create (area_tag); - if (!circuit || !circuit->area) + if (!circuit || !circuit->area) { circuit = isis_circuit_create (area, ifp); + if (circuit->state != C_STATE_CONF && circuit->state != C_STATE_UP) + { + vty_out(vty, "Couldn't bring up interface, please check log.%s", VTY_NEWLINE); + return CMD_WARNING; + } + } + bool ip = circuit->ip_router, ipv6 = circuit->ipv6_router; if (af[2] != '\0') ipv6 = true; -- 2.39.5