summaryrefslogtreecommitdiff
path: root/ospfd/ospf_interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'ospfd/ospf_interface.h')
-rw-r--r--ospfd/ospf_interface.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/ospfd/ospf_interface.h b/ospfd/ospf_interface.h
index 60ee1650..ca22c1a0 100644
--- a/ospfd/ospf_interface.h
+++ b/ospfd/ospf_interface.h
@@ -44,7 +44,7 @@ struct ospf_if_params
DECLARE_IF_PARAM (u_int32_t, transmit_delay); /* Interface Transmisson Delay */
DECLARE_IF_PARAM (u_int32_t, output_cost_cmd);/* Command Interface Output Cost */
DECLARE_IF_PARAM (u_int32_t, retransmit_interval); /* Retransmission Interval */
- DECLARE_IF_PARAM (u_char, passive_interface); /* OSPF Interface is passive */
+ DECLARE_IF_PARAM (u_char, passive_interface); /* OSPF Interface is passive: no sending or receiving (no need to join multicast groups) */
DECLARE_IF_PARAM (u_char, priority); /* OSPF Interface priority */
DECLARE_IF_PARAM (u_char, type); /* type of interface */
#define OSPF_IF_ACTIVE 0
@@ -126,6 +126,11 @@ struct ospf_interface
struct prefix *address; /* Interface prefix */
struct connected *connected; /* Pointer to connected */
+ /* To which multicast groups do we currently belong? */
+ u_char multicast_memberships;
+#define MEMBER_ALLROUTERS 0x1
+#define MEMBER_DROUTERS 0x2
+
/* Configured varables. */
struct ospf_if_params *params;
u_int32_t crypt_seqnum; /* Cryptographic Sequence Number */
@@ -248,4 +253,8 @@ int ospf_crypt_key_delete (struct list *, u_char);
u_char ospf_default_iftype(struct interface *ifp);
+/* Set all multicast memberships appropriately based on the type and
+ state of the interface. */
+extern void ospf_if_set_multicast(struct ospf_interface *);
+
#endif /* _ZEBRA_OSPF_INTERFACE_H */