All of lore.kernel.org
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@tuxdriver.com>
To: "YOSHIFUJI Hideaki / 吉藤英明" <yoshfuji@linux-ipv6.org>
Cc: vladislav.yasevich@hp.com, sri@us.ibm.com, davem@davemloft.net,
	kuznet@ms2.inr.ac.ru, pekkas@netcore.fi, jmorris@namei.org,
	kaber@coreworks.de, netdev@vger.kernel.org
Subject: Re: [PATCH] IPv6: Implement RFC 4429 Optimistic Duplicate Address Detection
Date: Thu, 8 Feb 2007 08:07:15 -0500	[thread overview]
Message-ID: <20070208130715.GA27267@hmsreliant.homelinux.net> (raw)
In-Reply-To: <20070208.065206.107341055.yoshfuji@linux-ipv6.org>

On Thu, Feb 08, 2007 at 06:52:06AM +0900, YOSHIFUJI Hideaki / 吉藤英明 wrote:
> In article <20070207205503.GB20804@hmsreliant.homelinux.net> (at Wed, 7 Feb 2007 15:55:03 -0500), Neil Horman <nhorman@tuxdriver.com> says:
> 
> > diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
> > index 7b7bd44..8a1ea96 100644
> > --- a/net/ipv6/ip6_output.c
> > +++ b/net/ipv6/ip6_output.c
> > @@ -859,6 +859,34 @@ static int ip6_dst_lookup_tail(struct sock *sk,
> >  		err = ipv6_get_saddr(*dst, &fl->fl6_dst, &fl->fl6_src);
> >  		if (err)
> >  			goto out_err_release;
> > +#ifdef CONFIG_IPV6_OPTIMISTIC_DAD
> > +		/*
> > +		 * Here if the dst entry we've looked up 
> > +		 * has a neighbour entry that is in the INCOMPLETE
> > +		 * state and the src address from the flow is 
> > +		 * marked as OPTIMISTIC, we release the found 
> > +		 * dst entry and replace it instead with the 
> > +		 * dst entry of the nexthop router
> > +		 */
> > +		if (!((*dst)->neighbour->nud_state & NUD_VALID)) {
> > +			struct inet6_ifaddr *ifp;
> > +			struct flowi fl_gw;
> > +			ifp = ipv6_get_ifaddr(&fl->fl6_src, (*dst)->dev, 1);
> > +
> > +			if (ifp && ifp->flags & IFA_F_OPTIMISTIC) {
> > +				/*
> > +				 * We need to get the dst entry for the 
> > +				 * default router instead
> > +				 */
> > +				dst_release(*dst);
> > +				memcpy(&fl_gw, fl, sizeof(struct flowi));
> > +				memset(&fl_gw.fl6_dst, 0, sizeof(struct in6_addr));
> > +				*dst = ip6_route_output(sk, &fl_gw);
> > +				if ((err = (*dst)->error))
> > +					goto out_err_release;				
> > +			}
> > +		}
> > +#endif
> >  	}
> >  
> >  	return 0;
> 
> Sorry, this is still not correct if the source address is already
> specified.  I think they should be placed just betwee laste "}" and
> "return 0;", no?
> 
I think moving it would be no more correct or incorrect, but it would be less
efficient.  ipv6_addr_any will only return true if the source address is the
anycast address (::).  That address will never be optimistic.  So we could
certainly move  the optimistic code to where you indicate, but then we'd be
checking the code for optimistic address without any need?  Or is there
something I'm missing?

> 
> I still have a question.  Now, who will install the kernel route for
> the incoming packet?  Can we get packet for our unicast address during
> optimistic DAD period?
> 
Not sure what you're getting at here.  RFC 4429 makes no distinction between
optimistic and non-optimistic packets for recevied frames, so routes for
received packets will be added by the same code that does it currently (which I
admittedly haven't looked into to closely).  Packets received for our unicast
address (even if it is optimistic) are handled just as any other packet is (same
as it is for TENTATIVE addresses, as I understand it). 

Regards
Neil

> --yoshfuji
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2007-02-08 13:09 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-19 21:23 [PATCH] IPv6: Implement RFC 4429 Optimistic Duplicate Address Detection Neil Horman
2007-01-19 23:05 ` YOSHIFUJI Hideaki / 吉藤英明
2007-01-20  1:41   ` Neil Horman
2007-01-22 18:15   ` Neil Horman
2007-01-22 18:39     ` Mika Penttilä
2007-01-22 19:45       ` Neil Horman
2007-01-22 20:25         ` Vlad Yasevich
2007-01-23 18:36           ` Neil Horman
2007-01-23 19:27             ` Vlad Yasevich
2007-01-23  0:18     ` YOSHIFUJI Hideaki / 吉藤英明
2007-01-23 20:51       ` Neil Horman
2007-01-25  1:54         ` Sridhar Samudrala
2007-01-25 13:33           ` Neil Horman
2007-01-25 17:16             ` Vlad Yasevich
2007-01-25 19:45               ` Neil Horman
2007-01-25 20:18                 ` Vlad Yasevich
2007-01-25 21:26                   ` Neil Horman
2007-01-25 22:13                     ` Vlad Yasevich
2007-01-26 14:27                       ` Neil Horman
2007-01-26 15:44                         ` YOSHIFUJI Hideaki / 吉藤英明
2007-01-26 19:03                           ` Neil Horman
2007-01-25 22:34                     ` Vlad Yasevich
2007-01-26  0:13                 ` YOSHIFUJI Hideaki / 吉藤英明
2007-01-26 14:20                   ` Vlad Yasevich
2007-01-26 19:18                   ` Neil Horman
2007-01-26 20:28                     ` Vlad Yasevich
2007-01-26 21:35                       ` Neil Horman
2007-01-26 21:42                         ` Vlad Yasevich
2007-01-29 16:34                           ` Neil Horman
2007-01-29 21:30                             ` Neil Horman
2007-01-29 22:25                               ` YOSHIFUJI Hideaki / 吉藤英明
2007-01-30 13:02                                 ` Neil Horman
2007-01-30 16:16                                   ` YOSHIFUJI Hideaki / 吉藤英明
2007-01-31 20:54                                     ` Neil Horman
2007-02-02 19:06                                       ` Neil Horman
2007-02-02 19:46                                         ` David Miller
2007-02-02 20:13                                           ` Neil Horman
2007-02-02 22:22                                             ` Vlad Yasevich
2007-02-03 15:06                                               ` Neil Horman
2007-02-02 21:28                                         ` Brian Haley
2007-02-02 22:05                                           ` Vlad Yasevich
2007-02-02 23:57                                             ` Brian Haley
2007-02-03 15:05                                               ` Neil Horman
2007-02-05 17:33                                                 ` Brian Haley
2007-02-05 18:37                                                   ` Neil Horman
2007-02-02 21:50                                         ` Vlad Yasevich
2007-02-03 15:03                                           ` Neil Horman
     [not found]                                             ` <20070205205651.GB484@hmsreliant.homelinux.net>
2007-02-06  1:24                                               ` YOSHIFUJI Hideaki / 吉藤英明
2007-02-06  1:32                                                 ` David Miller
2007-02-06  1:44                                                   ` YOSHIFUJI Hideaki / 吉藤英明
2007-02-06  1:43                                                     ` David Miller
2007-02-06 12:51                                                 ` Neil Horman
2007-02-06 20:09                                                   ` Neil Horman
2007-02-06 21:13                                                     ` Vlad Yasevich
2007-02-07 20:55                                                       ` Neil Horman
2007-02-07 21:19                                                         ` Vlad Yasevich
2007-02-07 21:52                                                         ` YOSHIFUJI Hideaki / 吉藤英明
2007-02-08 13:07                                                           ` Neil Horman [this message]
2007-02-12 23:27                                                             ` YOSHIFUJI Hideaki / 吉藤英明
2007-02-13 18:22                                                               ` Neil Horman
2007-02-07 22:26                                                         ` YOSHIFUJI Hideaki / 吉藤英明
2007-02-08 16:41                                                           ` Neil Horman
2007-02-08 17:10                                                             ` YOSHIFUJI Hideaki / 吉藤英明
2007-02-08 19:32                                                               ` Neil Horman
2007-02-12 21:20                                                                 ` Neil Horman
2007-02-13 20:45                                                                   ` Neil Horman
2007-02-13 21:46                                                                     ` YOSHIFUJI Hideaki / 吉藤英明
2007-02-13 21:53                                                                       ` David Miller
     [not found]                                                                       ` <20070221.040259.60395625.yoshfuji@linux-ipv6.org>
     [not found]                                                                         ` <20070221.000222.71087924.davem@davemloft.net>
2007-02-21  8:15                                                                           ` YOSHIFUJI Hideaki / 吉藤英明
2007-02-21  9:30                                                                             ` David Miller
2007-02-21 13:37                                                                               ` Neil Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070208130715.GA27267@hmsreliant.homelinux.net \
    --to=nhorman@tuxdriver.com \
    --cc=davem@davemloft.net \
    --cc=jmorris@namei.org \
    --cc=kaber@coreworks.de \
    --cc=kuznet@ms2.inr.ac.ru \
    --cc=netdev@vger.kernel.org \
    --cc=pekkas@netcore.fi \
    --cc=sri@us.ibm.com \
    --cc=vladislav.yasevich@hp.com \
    --cc=yoshfuji@linux-ipv6.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.