Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

implements MLD Startup Query (RFC2710 7.6 & 7.7)

  • Loading branch information...
commit 64564f0f50c6bef58c130399296a620884a238eb 1 parent 65d63c5
suz authored
View
8 kame/kame/pim6sd/mld6_proto.c
@@ -1,4 +1,4 @@
-/* $KAME: mld6_proto.c,v 1.26 2002/09/17 09:57:19 suz Exp $ */
+/* $KAME: mld6_proto.c,v 1.27 2002/10/11 14:26:29 suz Exp $ */
/*
* Copyright (C) 1998 WIDE Project.
@@ -143,6 +143,12 @@ query_groups(v)
v->uv_gq_timer = MLD6_QUERY_INTERVAL;
if (v->uv_flags & VIFF_QUERIER &&
(v->uv_flags & VIFF_NOLISTENER) == 0) {
+ if (v->uv_stquery_cnt)
+ v->uv_stquery_cnt--;
+ if (v->uv_stquery_cnt)
+ v->uv_gq_timer = MLD6_STARTUP_QUERY_INTERVAL;
+ else
+ v->uv_gq_timer = MLD6_QUERY_INTERVAL;
send_mld6(MLD_LISTENER_QUERY, 0, &v->uv_linklocal->pa_addr,
NULL, (struct in6_addr *)&in6addr_any, v->uv_ifindex,
MLD6_QUERY_RESPONSE_INTERVAL, 0, 1);
View
4 kame/kame/pim6sd/mld6_proto.h
@@ -1,4 +1,4 @@
-/* $KAME: mld6_proto.h,v 1.7 2001/09/18 04:28:22 suz Exp $ */
+/* $KAME: mld6_proto.h,v 1.8 2002/10/11 14:26:29 suz Exp $ */
/*
* Copyright (C) 1999 LSIIT Laboratory.
@@ -67,6 +67,8 @@ typedef struct
#define MLD6_DEFAULT_QUERY_INTERVAL 125 /* in seconds */
#define MLD6_DEFAULT_QUERY_RESPONSE_INTERVAL 10000 /* in milliseconds */
#define MLD6_DEFAULT_LAST_LISTENER_QUERY_INTERVAL 1000 /* in milliseconds */
+#define MLD6_STARTUP_QUERY_INTERVAL 30 /* in seconds */
+#define MLD6_STARTUP_QUERY_COUNT MLD6_ROBUSTNESS_VARIABLE
#define MLD6_ROBUSTNESS_VARIABLE v->uv_mld_robustness
#define MLD6_QUERY_INTERVAL v->uv_mld_query_interval
View
4 kame/kame/pim6sd/vif.c
@@ -1,4 +1,4 @@
-/* $KAME: vif.c,v 1.28 2002/10/02 06:27:24 suz Exp $ */
+/* $KAME: vif.c,v 1.29 2002/10/11 14:26:29 suz Exp $ */
/*
* Copyright (c) 1998-2001
@@ -360,6 +360,8 @@ void start_vif (mifi_t vifi)
v->uv_querier->al_addr = v->uv_linklocal->pa_addr;
v->uv_querier->al_timer = MLD6_OTHER_QUERIER_PRESENT_INTERVAL;
time(&v->uv_querier->al_ctime); /* reset timestamp */
+ v->uv_stquery_cnt = MLD6_STARTUP_QUERY_COUNT;
+
#ifdef MLD6V2_LISTENER_REPORT
if (v->uv_mld_version & MLDv2)
query_groupsV2(v);
View
3  kame/kame/pim6sd/vif.h
@@ -1,4 +1,4 @@
-/* $KAME: vif.h,v 1.20 2002/06/28 09:03:13 jinmei Exp $ */
+/* $KAME: vif.h,v 1.21 2002/10/11 14:26:29 suz Exp $ */
/*
* Copyright (c) 1998-2001
@@ -192,6 +192,7 @@ struct uvif {
u_int16 uv_pim_hello_timer; /* timer for sending PIM hello msgs */
u_int16 uv_gq_timer; /* Group Query timer */
u_int16 uv_jp_timer; /* Join/Prune timer */
+ u_int16 uv_stquery_cnt; /* Startup Query Count */
u_int16 uv_mld_version; /* mld version of this mif */
u_int16 uv_mld_robustness; /* robustness variable of this vif (mld6 protocol) */
u_int32 uv_mld_query_interval; /* query interval of this vif (mld6 protocol) */
Please sign in to comment.
Something went wrong with that request. Please try again.