diff options
| author | Christian Franke <nobody@nowhere.ws> | 2016-08-15 13:36:59 +0200 |
|---|---|---|
| committer | David Lamparter <equinox@opensourcerouting.org> | 2016-08-16 16:10:17 +0200 |
| commit | eb735f6774b12172b41b41b12459f91722143e9e (patch) | |
| tree | 9ce4c0cc699cf07109e30ff3dedf4fd9bf9dc3e4 | |
| parent | ab1f20e60797c6dc31eb537b0018ab375c9ce3cd (diff) | |
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 <equinox@opensourcerouting.org>
| -rw-r--r-- | isisd/isis_circuit.c | 3 | ||||
| -rw-r--r-- | 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; |
