Thread (41 messages) 41 messages, 5 authors, 2008-03-24

Re: [PATCH 01/01] ipv6: RFC4214 Support (v2.0)

From: Vlad Yasevich <hidden>
Date: 2007-11-13 16:59:37

Hi Fred

Templin, Fred L wrote: 
quoted
quoted
+		return;
+	}
+
 	sit_add_v4_addrs(idev);
 
 	if (dev->flags&IFF_POINTOPOINT) {
@@ -2531,6 +2570,18 @@ static void addrconf_rs_timer(unsigned l
 		 *	Announcement received after solicitation
 		 *	was sent
 		 */
+
+		/* ISATAP (RFC4214) - schedule next RS/RA */
+		if (ifp->idev->dev->priv_flags & IFF_ISATAP) {
+			struct ip_tunnel *t  = 
netdev_priv(ifp->idev->dev);
quoted
+			if (t->parms.i_key != INADDR_NONE) {
+				spin_lock(&ifp->lock);
+				ifp->probes = 0;
+				ifp->idev->if_flags &= 
~(IF_RS_SENT|IF_RA_RCVD);
quoted
+				addrconf_mod_timer(ifp, AC_DAD, 
t->parms.o_key*HZ);

You are using a DAD timer to schedule RS?
I am using the DAD timer to re-DAD the link local, which
in turn schedules RS.
Why?  Seems to me that using the RS timer (AC_RS) gets you everything you
want and nothing you don't.  You set probes to 0, which marks DAD complete,
thus you don't do DAD.  You already have code in the addrconf_rs_timer() to
properly send the RS.  So, your patch to sending the RS is much shorter if
you use the AC_RS timer.

Am I missing something?

Thanks
-vlad

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help