[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(usagi-users 00454) [Patch] RS Count



linux-2.4.x send too many (more than 3) RS packets.
This fixes the problem.

USAGI Branch: bFIX_2_4_3-20010501a

Reference: RFC2461

6.3.7.  Sending Router Solicitations
:
   routers or learn prefixes.  To obtain Router Advertisements quickly,
   a host SHOULD transmit up to MAX_RTR_SOLICITATIONS Router
   Solicitation messages each separated by at least
   RTR_SOLICITATION_INTERVAL seconds.  Router Solicitations may be sent
   after any of the following events:
:

10.  PROTOCOL CONSTANTS
:
            MAX_RTR_SOLICITATIONS             3 transmissions

Index: net/ipv6/addrconf.c
===================================================================
RCS file: /cvsroot/usagi/kernel/linux24/net/ipv6/addrconf.c,v
retrieving revision 1.1.1.4
retrieving revision 1.1.1.4.4.1
diff -u -r1.1.1.4 -r1.1.1.4.4.1
--- net/ipv6/addrconf.c	2001/02/22 12:04:36	1.1.1.4
+++ net/ipv6/addrconf.c	2001/04/30 16:12:59	1.1.1.4.4.1
@@ -22,6 +22,8 @@
  *	Andi Kleen			:	kill doube kfree on module
  *						unload.
  *	Maciej W. Rozycki		:	FDDI support
+ *	sekiya@USAGI			:	Don't send too many RS
+ *						packets.
  */
 
 #include <linux/config.h>
@@ -1415,7 +1417,7 @@
 	}
 
 	spin_lock(&ifp->lock);
-	if (ifp->probes++ <= ifp->idev->cnf.rtr_solicits) {
+	if (ifp->probes++ < ifp->idev->cnf.rtr_solicits) {
 		struct in6_addr all_routers;
 
 		addrconf_mod_timer(ifp, AC_RS,

--
yoshfuji@USAGI Project