summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_intra.h
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2014-03-18 17:04:25 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2014-03-18 17:04:25 +0100
commite708ed69aa0b993527f48b1f31b645c00750927f (patch)
tree8f33d73b2a85b51c042318d58a1750eeb8019616 /ospf6d/ospf6_intra.h
parenta11e012e8661629d665e992e765741a5eaa7d017 (diff)
parent424cc3bd48da0f417c9056c5c2ade697a3386cd4 (diff)
downloadquagga-e708ed69aa0b993527f48b1f31b645c00750927f.tar.bz2
quagga-e708ed69aa0b993527f48b1f31b645c00750927f.tar.xz
Merge volatile/cumulus_ospf6d
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'ospf6d/ospf6_intra.h')
-rw-r--r--ospf6d/ospf6_intra.h23
1 files changed, 18 insertions, 5 deletions
diff --git a/ospf6d/ospf6_intra.h b/ospf6d/ospf6_intra.h
index 3810174e..e909da23 100644
--- a/ospf6d/ospf6_intra.h
+++ b/ospf6d/ospf6_intra.h
@@ -94,6 +94,13 @@ struct ospf6_router_lsdesc
#define OSPF6_ROUTER_LSDESC_STUB_NETWORK 3
#define OSPF6_ROUTER_LSDESC_VIRTUAL_LINK 4
+enum stub_router_mode
+ {
+ OSPF6_NOT_STUB_ROUTER,
+ OSPF6_IS_STUB_ROUTER,
+ OSPF6_IS_STUB_ROUTER_V6,
+ };
+
#define ROUTER_LSDESC_IS_TYPE(t,x) \
((((struct ospf6_router_lsdesc *)(x))->type == \
OSPF6_ROUTER_LSDESC_ ## t) ? 1 : 0)
@@ -149,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); \
@@ -200,6 +212,7 @@ extern char *ospf6_router_lsdesc_lookup (u_char type, u_int32_t interface_id,
extern char *ospf6_network_lsdesc_lookup (u_int32_t router_id,
struct ospf6_lsa *lsa);
+extern int ospf6_router_is_stub_router (struct ospf6_lsa *lsa);
extern int ospf6_router_lsa_originate (struct thread *);
extern int ospf6_network_lsa_originate (struct thread *);
extern int ospf6_link_lsa_originate (struct thread *);