]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/netinet6/mld6_var.h
xnu-2422.115.4.tar.gz
[apple/xnu.git] / bsd / netinet6 / mld6_var.h
index 7ccbcbf0b30635b7c0f871750a639cc145fbb20f..249506b8545edfaddfd696b8865646a95e282478 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000-2010 Apple Inc. All rights reserved.
+ * Copyright (c) 2000-2012 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
@@ -99,7 +99,7 @@ struct mld_ifinfo_u {
 #define MLD_VERSION_2                  2 /* Default */
 #endif /* PRIVATE */
 
-#ifdef XNU_KERNEL_PRIVATE
+#ifdef BSD_KERNEL_PRIVATE
 #include <sys/syslog.h>
 
 #define MLD_DEBUG 1
@@ -110,7 +110,7 @@ extern int mld_debug;
 #define        MLD_PRINTF(x)
 #endif
 
-#define MLD_RANDOM_DELAY(X)            (random() % (X) + 1)
+#define MLD_RANDOM_DELAY(X)            (RandomULong() % (X) + 1)
 #define MLD_MAX_STATE_CHANGES          24 /* Max pending changes per group */
 
 /*
@@ -151,7 +151,7 @@ extern int mld_debug;
 #define MLD_MAX_STATE_CHANGE_PACKETS   8 /* # of packets per state change */
 #define MLD_MAX_RESPONSE_PACKETS       16 /* # of packets for general query */
 #define MLD_MAX_RESPONSE_BURST         4 /* # of responses to send at once */
-#define MLD_RESPONSE_BURST_INTERVAL    (PR_SLOWHZ)     /* 500ms */
+#define MLD_RESPONSE_BURST_INTERVAL    1 /* 1 second */
 
 /*
  * MLD-specific mbuf flags.
@@ -226,15 +226,26 @@ struct mld_ifinfo {
  */
 #define MLD_IFINFO(ifp)        ((ifp)->if_mli)
 
-extern int mld_change_state(struct in6_multi *, const int);
+/*
+ * MLD timer schedule parameters
+ */
+struct mld_tparams {
+       int     qpt;    /* querier_present_timers_running6 */
+       int     it;     /* interface_timers_running6 */
+       int     cst;    /* current_state_timers_running6 */
+       int     sct;    /* state_change_timers_running6 */
+};
+
+extern int mld_change_state(struct in6_multi *, struct mld_tparams *,
+    const int);
 extern struct mld_ifinfo *mld_domifattach(struct ifnet *, int);
 extern void mld_domifreattach(struct mld_ifinfo *);
 extern void mld_domifdetach(struct ifnet *);
 extern void mld_fasttimo(void);
 extern void mld_ifdetach(struct ifnet *);
 extern int mld_input(struct mbuf *, int, int);
-extern void mld_slowtimo(void);
 extern void mld_init(void);
+extern void mld_set_timeout(struct mld_tparams *);
 extern void mli_addref(struct mld_ifinfo *, int);
 extern void mli_remref(struct mld_ifinfo *);
 __private_extern__ void mld6_initsilent(struct ifnet *, struct mld_ifinfo *);
@@ -243,6 +254,5 @@ __private_extern__ void mld6_initsilent(struct ifnet *, struct mld_ifinfo *);
 SYSCTL_DECL(_net_inet6_mld);
 #endif
 
-#endif /* XNU_KERNEL_PRIVATE */
-
+#endif /* BSD_KERNEL_PRIVATE */
 #endif /* _NETINET6_MLD6_VAR_H_ */