summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_intra.h
diff options
context:
space:
mode:
authorChristian Franke <chris@opensourcerouting.org>2013-03-08 21:47:35 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2014-03-18 08:44:05 +0100
commitd9628728e0924ae13ef6e8f8a67a2c9802745184 (patch)
treeaf4cee6c7018580655cb53a0900471128cc0a8bb /ospf6d/ospf6_intra.h
parent37531a7ec380554b18c004bcae9f5a070385d132 (diff)
downloadquagga-d9628728e0924ae13ef6e8f8a67a2c9802745184.tar.bz2
quagga-d9628728e0924ae13ef6e8f8a67a2c9802745184.tar.xz
ospf6d: improve ordered shutdown
Improve the _disable/_enable infrastructure so it gets into a more usable shape and make 'no router ospf6' actually work. Signed-off-by: Christian Franke <chris@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'ospf6d/ospf6_intra.h')
-rw-r--r--ospf6d/ospf6_intra.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/ospf6d/ospf6_intra.h b/ospf6d/ospf6_intra.h
index a25efa12..e909da23 100644
--- a/ospf6d/ospf6_intra.h
+++ b/ospf6d/ospf6_intra.h
@@ -156,32 +156,37 @@ struct ospf6_intra_prefix_lsa
#define OSPF6_ROUTER_LSA_SCHEDULE(oa) \
do { \
- if (! (oa)->thread_router_lsa) \
+ if (! (oa)->thread_router_lsa \
+ && CHECK_FLAG((oa)->flag, OSPF6_AREA_ENABLE)) \
(oa)->thread_router_lsa = \
thread_add_event (master, ospf6_router_lsa_originate, oa, 0); \
} while (0)
#define OSPF6_NETWORK_LSA_SCHEDULE(oi) \
do { \
- if (! (oi)->thread_network_lsa) \
+ if (! (oi)->thread_network_lsa \
+ && ! CHECK_FLAG((oi)->flag, OSPF6_INTERFACE_DISABLE)) \
(oi)->thread_network_lsa = \
thread_add_event (master, ospf6_network_lsa_originate, oi, 0); \
} while (0)
#define OSPF6_LINK_LSA_SCHEDULE(oi) \
do { \
- if (! (oi)->thread_link_lsa) \
+ if (! (oi)->thread_link_lsa \
+ && ! CHECK_FLAG((oi)->flag, OSPF6_INTERFACE_DISABLE)) \
(oi)->thread_link_lsa = \
thread_add_event (master, ospf6_link_lsa_originate, oi, 0); \
} while (0)
#define OSPF6_INTRA_PREFIX_LSA_SCHEDULE_STUB(oa) \
do { \
- if (! (oa)->thread_intra_prefix_lsa) \
+ if (! (oa)->thread_intra_prefix_lsa \
+ && CHECK_FLAG((oa)->flag, OSPF6_AREA_ENABLE)) \
(oa)->thread_intra_prefix_lsa = \
thread_add_event (master, ospf6_intra_prefix_lsa_originate_stub, \
oa, 0); \
} while (0)
#define OSPF6_INTRA_PREFIX_LSA_SCHEDULE_TRANSIT(oi) \
do { \
- if (! (oi)->thread_intra_prefix_lsa) \
+ if (! (oi)->thread_intra_prefix_lsa \
+ && ! CHECK_FLAG((oi)->flag, OSPF6_INTERFACE_DISABLE)) \
(oi)->thread_intra_prefix_lsa = \
thread_add_event (master, ospf6_intra_prefix_lsa_originate_transit, \
oi, 0); \