diff options
author | Christian Franke <chris@opensourcerouting.org> | 2012-12-13 16:11:16 +0100 |
---|---|---|
committer | David Lamparter <equinox@opensourcerouting.org> | 2014-03-18 08:45:20 +0100 |
commit | b13c1d9299d6426f48f074545f3e403e5a9b8a61 (patch) | |
tree | b313288f60c8d76a16e4f9f1796e934c0c8fefc0 /ospf6d/ospf6_zebra.c | |
parent | d9628728e0924ae13ef6e8f8a67a2c9802745184 (diff) | |
download | quagga-b13c1d9299d6426f48f074545f3e403e5a9b8a61.tar.bz2 quagga-b13c1d9299d6426f48f074545f3e403e5a9b8a61.tar.xz |
ospf6d: handle missing link local address more gracefully
ospf6 can't run on an interface without a link local address.
Don't start the state machine when an interface comes up without
such an ip and bring it up later, when a usable link local
address is added.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'ospf6d/ospf6_zebra.c')
-rw-r--r-- | ospf6d/ospf6_zebra.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ospf6d/ospf6_zebra.c b/ospf6d/ospf6_zebra.c index 50ecc170..cffd7675 100644 --- a/ospf6d/ospf6_zebra.c +++ b/ospf6d/ospf6_zebra.c @@ -165,8 +165,10 @@ ospf6_zebra_if_address_update_add (int command, struct zclient *zclient, buf, sizeof (buf)), c->address->prefixlen); if (c->address->family == AF_INET6) - ospf6_interface_connected_route_update (c->ifp); - + { + ospf6_interface_state_update (c->ifp); + ospf6_interface_connected_route_update (c->ifp); + } return 0; } @@ -188,7 +190,10 @@ ospf6_zebra_if_address_update_delete (int command, struct zclient *zclient, buf, sizeof (buf)), c->address->prefixlen); if (c->address->family == AF_INET6) - ospf6_interface_connected_route_update (c->ifp); + { + ospf6_interface_connected_route_update (c->ifp); + ospf6_interface_state_update (c->ifp); + } return 0; } |