netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vlad Yasevich <vladislav.yasevich@hp.com>
To: Rick Jones <rick.jones2@hp.com>
Cc: Bill Fink <billfink@mindspring.com>,
	Linux Network Development list <netdev@vger.kernel.org>
Subject: Re: specifying scopid's for link-local IPv6 addrs
Date: Wed, 01 Aug 2007 10:25:28 -0400	[thread overview]
Message-ID: <46B097D8.5060002@hp.com> (raw)
In-Reply-To: <46A63327.6010705@hp.com>

Rick Jones wrote:
>> Rick,
>>
>> I don't see any way around this.  For example, on one of my test
>> systems, I have the following link local routes:
>>
>> chance% netstat -A inet6 -rn | grep fe80::/64
>> fe80::/64                                  
>> ::                                      U     256    0        0 eth0
>> fe80::/64                                  
>> ::                                      U     256    0        0 eth2
>> fe80::/64                                  
>> ::                                      U     256    0        0 eth3
>> fe80::/64                                  
>> ::                                      U     256    0        0 eth4
>> fe80::/64                                  
>> ::                                      U     256    0        0 eth5
>> fe80::/64                                  
>> ::                                      U     256    0        0 eth6
>>
>> So if I want to run a link local test to fe80::202:b3ff:fed4:cd1,
>> the system has no way to choose which is the correct interface to
>> use for the test, and will give an error if the interface isn't
>> specified. 
> 
> Yeah, I was wondering about that.  I'm not sure if the attempts on
> "those other OSes" happened to involve multiple interfaces or not.

Yes, there have been attempts.   BSD has a concept of default interface.
The default interface is used when the user did not specify the interface/
scope_id.

Other OSs do different things.  For example, Tru64 (to pick on a dead system)
would try to find the right interface base on the preferences you could
set up.

But, in the end the whole thing is really utterly broken since no-one has
truly implemented scoped address architecture for link-local addresses.
The concept of the link is so closely tied to the 'interface' that I don't
know anyone who has separated the two.


>  Even
> so, it "feels" unpleasant for an application to deal with and I wonder
> if there is a way for a stack to deal with it on the application's
> behalf.  I guess that might involve some sort of layer violation between
> neightbor discovery and routing (typing while I think about things I
> know little about...)
> 
> Is there RFC chapter and verse I might read about routing with multiple
> link-local's on a system?

See RFC 4007 for the concepts.  

> 
>> You must explicitly specify the desired interface.  For example,
>> on my test system, the correct interface is eth6 which is interface 8
>> (lo eth0 eth1 eth2 ... eth5 eth6).  Here is an example nuttcp test
>> specifying interface 8:
>>
>> chance% nuttcp -P5100 fe80::202:b3ff:fed4:cd1%8
>>  1178.5809 MB /  10.02 sec =  986.2728 Mbps 12 %TX 15 %RX
>>
>> nuttcp uses getaddrinfo() which parses the "%<ifindex>" field,
>> and then copies the sin6_scope_id from the res structure to the
>> server's sockaddr_in6 structure before initiating the connect().
> 
> OK, I'll give that a quick try with netperf:
> 
> [root@hpcpc106 ~]# netperf -H 192.168.2.107 -c -C -i 30,3 -- -s 1M -S 1M
> -m 64K -H fe80::207:43ff:fe05:9d%2
> TCP STREAM TEST from ::0 (::) port 0 AF_INET6 to
> fe80::207:43ff:fe05:9d%2 (fe80::207:43ff:fe05:9d) port 0 AF_INET6 :
> +/-2.5% @ 99% conf.
> 
> Cool - it establishes the data connection just fine.
> 
> 
> To further demonstrate my ignorance :)  is that %n suffix something one
> might expect in most/all getaddrinfo()'s or is that unique to the one in
> Linux?

This is becoming more generic.  I believe HP-UX supports it (if the don't
you should kick them :).

-vlad

      parent reply	other threads:[~2007-08-01 14:25 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-23 19:01 specifying scopid's for link-local IPv6 addrs Rick Jones
2007-07-24  7:01 ` Bill Fink
2007-07-24 17:13   ` Rick Jones
2007-07-24 17:23     ` Rick Jones
2007-07-24 17:28     ` Sridhar Samudrala
2007-07-25  6:15       ` Bill Fink
2007-08-01 14:25     ` Vlad Yasevich [this message]

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=46B097D8.5060002@hp.com \
    --to=vladislav.yasevich@hp.com \
    --cc=billfink@mindspring.com \
    --cc=netdev@vger.kernel.org \
    --cc=rick.jones2@hp.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).