From: Hannes Frederic Sowa <hannes@stressinduktion•org>
To: "François-Xavier Le Bail" <fx.lebail@yahoo•com>
Cc: David Miller <davem@davemloft•net>,
netdev@vger•kernel.org, kuznet@ms2•inr.ac.ru, jmorris@namei•org,
yoshfuji@linux-ipv6•org, kaber@trash•net
Subject: Re: [PATCH net-next v4] IPv6: use anycast addresses as source addresses in echo reply
Date: Tue, 7 Jan 2014 14:01:01 +0100 [thread overview]
Message-ID: <20140107130101.GD24730@order.stressinduktion.org> (raw)
In-Reply-To: <1389098302.90053.YahooMailBasic@web125504.mail.ne1.yahoo.com>
On Tue, Jan 07, 2014 at 04:38:22AM -0800, François-Xavier Le Bail wrote:
> On Mon, 1/6/14, Hannes Frederic Sowa <hannes@stressinduktion•org> wrote:
>
>
> > > > I think we should pass a valid device in unless it
> > > > breaks something obvious.
>
> > > The problem is that "saddr" is not necessarily an address on "skb->dev"
> > > in icmpv6_echo_reply(). It may be an address on another interface.
>
> > Maybe you're right, but then I don't get it. Could you make
> > an example?
>
> Yes :
> box with eth1, eth2, forwarding enable.
>
> echo request arrives on eth2
> -------------------------------> eth2 (2a01:3::1) {forwarding enable} eth1 (2a01:2::1)
>
> if dest == 2a01:3::
> Jan 7 10:36:36 localhost kernel: [ 59.155376] icmpv6_echo_reply: saddr == 2a01:3::
> Jan 7 10:36:36 localhost kernel: [ 59.155395] icmpv6_echo_reply: skb->dev->name == eth2
> Jan 7 10:36:36 localhost kernel: [ 59.155398] icmpv6_echo_reply: ipv6_chk_acast_addr(net, skb->dev, saddr) == 1
> Jan 7 10:36:36 localhost kernel: [ 59.155400] icmpv6_echo_reply: ipv6_chk_acast_addr(net, NULL, saddr) == 1
> if dest == 2a01:2::
> Jan 7 10:36:46 localhost kernel: [ 68.807565] icmpv6_echo_reply: saddr == 2a01:2::
> Jan 7 10:36:46 localhost kernel: [ 68.807580] icmpv6_echo_reply: skb->dev->name == eth2
> Jan 7 10:36:46 localhost kernel: [ 68.807583] icmpv6_echo_reply: ipv6_chk_acast_addr(net, skb->dev, saddr) == 0
> Jan 7 10:36:46 localhost kernel: [ 68.807586] icmpv6_echo_reply: ipv6_chk_acast_addr(net, NULL, saddr) == 1
>
> So, as 2a01:2:: is a address on eth1, ipv6_chk_acast_addr(net, skb->dev, saddr) with dev == eth2 return 0.
>
> It is the reason why I use dev == NULL.
>
> Do your tests show something different ?
I haven't tested this particular setup.
>
> Anyway, although I think that this solution is valid, I am testing another way to do this change.
Ok, thanks for explaining, I see now, of course.
Maybe we could just do (ipv6_addr_type(addr) & IPV6_ADDR_LINKLOCAL) ? skb->dev
: NULL?
I guess the NULL solution would be ok now, too. You can decide. I just
think we can be a bit more defensive here with no additional cost. Routing
table behaviour is pretty complicated and maybe can change in future.
Thank you,
Hannes
next prev parent reply other threads:[~2014-01-07 13:01 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-07 12:38 [PATCH net-next v4] IPv6: use anycast addresses as source addresses in echo reply François-Xavier Le Bail
2014-01-07 13:01 ` Hannes Frederic Sowa [this message]
2014-01-07 14:03 ` François-Xavier Le Bail
-- strict thread matches above, loose matches on Subject: below --
2014-01-07 12:38 François-Xavier Le Bail
2014-01-07 13:09 ` Hannes Frederic Sowa
2014-01-06 21:53 François-Xavier Le Bail
2014-01-06 23:05 ` Hannes Frederic Sowa
2014-01-03 16:43 Francois-Xavier Le Bail
2014-01-05 23:05 ` Hannes Frederic Sowa
2014-01-06 10:41 ` François-Xavier Le Bail
2014-01-06 10:56 ` Hannes Frederic Sowa
2014-01-06 13:48 ` François-Xavier Le Bail
2014-01-06 15:52 ` Hannes Frederic Sowa
2014-01-06 20:11 ` David Miller
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=20140107130101.GD24730@order.stressinduktion.org \
--to=hannes@stressinduktion$(echo .)org \
--cc=davem@davemloft$(echo .)net \
--cc=fx.lebail@yahoo$(echo .)com \
--cc=jmorris@namei$(echo .)org \
--cc=kaber@trash$(echo .)net \
--cc=kuznet@ms2$(echo .)inr.ac.ru \
--cc=netdev@vger$(echo .)kernel.org \
--cc=yoshfuji@linux-ipv6$(echo .)org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox