<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/ipv6/ndisc.c, branch linux-2.6.23.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.23.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.23.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2007-10-08T07:12:05Z</updated>
<entry>
<title>[IPv6]: Fix ICMPv6 redirect handling with target multicast address</title>
<updated>2007-10-08T07:12:05Z</updated>
<author>
<name>Brian Haley</name>
</author>
<published>2007-10-08T07:12:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bf0b48dfc368c07c42b5a3a5658c8ee81b4283ac'/>
<id>urn:sha1:bf0b48dfc368c07c42b5a3a5658c8ee81b4283ac</id>
<content type='text'>
When the ICMPv6 Target address is multicast, Linux processes the 
redirect instead of dropping it.  The problem is in this code in 
ndisc_redirect_rcv():

         if (ipv6_addr_equal(dest, target)) {
                 on_link = 1;
         } else if (!(ipv6_addr_type(target) &amp; IPV6_ADDR_LINKLOCAL)) {
                 ND_PRINTK2(KERN_WARNING
                            "ICMPv6 Redirect: target address is not 
link-local.\n");
                 return;
         }

This second check will succeed if the Target address is, for example, 
FF02::1 because it has link-local scope.  Instead, it should be checking 
if it's a unicast link-local address, as stated in RFC 2461/4861 Section 
8.1:

       - The ICMP Target Address is either a link-local address (when
         redirected to a router) or the same as the ICMP Destination
         Address (when redirected to the on-link destination).

I know this doesn't explicitly say unicast link-local address, but it's 
implied.

This bug is preventing Linux kernels from achieving IPv6 Logo Phase II 
certification because of a recent error that was found in the TAHI test 
suite - Neighbor Disovery suite test 206 (v6LC.2.3.6_G) had the 
multicast address in the Destination field instead of Target field, so 
we were passing the test.  This won't be the case anymore.

The patch below fixes this problem, and also fixes ndisc_send_redirect() 
to not send an invalid redirect with a multicast address in the Target 
field.  I re-ran the TAHI Neighbor Discovery section to make sure Linux 
passes all 245 tests now.

Signed-off-by: Brian Haley &lt;brian.haley@hp.com&gt;
Acked-by: David L Stevens &lt;dlstevens@us.ibm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[IPV6]: Freeing alive inet6 address</title>
<updated>2007-09-11T09:04:49Z</updated>
<author>
<name>Denis V. Lunev</name>
</author>
<published>2007-09-11T09:04:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9e3be4b34364a670bd6e57d2e8c3caabdd8d89f8'/>
<id>urn:sha1:9e3be4b34364a670bd6e57d2e8c3caabdd8d89f8</id>
<content type='text'>
From: Denis V. Lunev &lt;den@openvz.org&gt;

addrconf_dad_failure calls addrconf_dad_stop which takes referenced address
and drops the count. So, in6_ifa_put perrformed at out: is extra. This
results in message: "Freeing alive inet6 address" and not released dst entries.

Signed-off-by: Denis V. Lunev &lt;den@openvz.org&gt;
Signed-off-by: Alexey Dobriyan &lt;adobriyan@openvz.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[IPV6] NDISC: Fix thinko to control Router Preference support.</title>
<updated>2007-06-22T23:07:04Z</updated>
<author>
<name>YOSHIFUJI Hideaki</name>
</author>
<published>2007-06-22T23:07:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6d5b78cdd5a17665674429400b3ed10e3ec60684'/>
<id>urn:sha1:6d5b78cdd5a17665674429400b3ed10e3ec60684</id>
<content type='text'>
Bug reported by Haruhito Watanabe &lt;haruhito@sfc.keio.ac.jp&gt;.

Signed-off-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[IPV6] NDISC: Unify main process of sending ND messages.</title>
<updated>2007-04-26T05:29:59Z</updated>
<author>
<name>YOSHIFUJI Hideaki</name>
</author>
<published>2007-04-24T11:44:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e1ec7842df5db897516d73c76bd2a568b4abc33b'/>
<id>urn:sha1:e1ec7842df5db897516d73c76bd2a568b4abc33b</id>
<content type='text'>
Because ndisc_send_na(), ndisc_send_ns() and ndisc_send_rs()
are almost identical, so let's unify their common part.

With gcc (GCC) 3.3.5 (Debian 1:3.3.5-13) on i386,
	Before:
	   text	   data	    bss	    dec	    hex	filename
	  14689	    364	     24	  15077	   3ae5	net/ipv6/ndisc.o
	After:
	   text	   data	    bss	    dec	    hex	filename
	  12317	    364	     24	  12705	   31a1	net/ipv6/ndisc.o

Signed-off-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
</content>
</entry>
<entry>
<title>[NET]: cleanup extra semicolons</title>
<updated>2007-04-26T05:29:24Z</updated>
<author>
<name>Stephen Hemminger</name>
</author>
<published>2007-04-21T00:09:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3ff50b7997fe06cd5d276b229967bb52d6b3b6c1'/>
<id>urn:sha1:3ff50b7997fe06cd5d276b229967bb52d6b3b6c1</id>
<content type='text'>
Spring cleaning time...

There seems to be a lot of places in the network code that have
extra bogus semicolons after conditionals.  Most commonly is a
bogus semicolon after: switch() { }

Signed-off-by: Stephen Hemminger &lt;shemminger@linux-foundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SK_BUFF]: Convert skb-&gt;tail to sk_buff_data_t</title>
<updated>2007-04-26T05:26:28Z</updated>
<author>
<name>Arnaldo Carvalho de Melo</name>
</author>
<published>2007-04-20T03:29:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26'/>
<id>urn:sha1:27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26</id>
<content type='text'>
So that it is also an offset from skb-&gt;head, reduces its size from 8 to 4 bytes
on 64bit architectures, allowing us to combine the 4 bytes hole left by the
layer headers conversion, reducing struct sk_buff size to 256 bytes, i.e. 4
64byte cachelines, and since the sk_buff slab cache is SLAB_HWCACHE_ALIGN...
:-)

Many calculations that previously required that skb-&gt;{transport,network,
mac}_header be first converted to a pointer now can be done directly, being
meaningful as offsets or pointers.

Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SK_BUFF]: More skb_put related skb_reset_transport_header</title>
<updated>2007-04-26T05:26:01Z</updated>
<author>
<name>Arnaldo Carvalho de Melo</name>
</author>
<published>2007-03-15T00:05:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d10ba34b001944a8d1c8adb5646140ef089c432b'/>
<id>urn:sha1:d10ba34b001944a8d1c8adb5646140ef089c432b</id>
<content type='text'>
This time we have to set it to skb-&gt;tail that is not anymore equal to
skb-&gt;data, so we either add a new helper or just add the skb-&gt;tail - skb-&gt;data
offset, for now do the later.

Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SK_BUFF]: Introduce skb_transport_header(skb)</title>
<updated>2007-04-26T05:25:31Z</updated>
<author>
<name>Arnaldo Carvalho de Melo</name>
</author>
<published>2007-04-26T01:04:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9c70220b73908f64792422a2c39c593c4792f2c5'/>
<id>urn:sha1:9c70220b73908f64792422a2c39c593c4792f2c5</id>
<content type='text'>
For the places where we need a pointer to the transport header, it is
still legal to touch skb-&gt;h.raw directly if just adding to,
subtracting from or setting it to another layer header.

Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[ICMP6]: Introduce icmp6_hdr()</title>
<updated>2007-04-26T05:25:20Z</updated>
<author>
<name>Arnaldo Carvalho de Melo</name>
</author>
<published>2007-03-13T17:03:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cc70ab261c9f997589546100ddec5da6bfd89c4e'/>
<id>urn:sha1:cc70ab261c9f997589546100ddec5da6bfd89c4e</id>
<content type='text'>
For consistency with all the other skb-&gt;h.raw accessors.

Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SK_BUFF]: Introduce ipv6_hdr(), remove skb-&gt;nh.ipv6h</title>
<updated>2007-04-26T05:25:14Z</updated>
<author>
<name>Arnaldo Carvalho de Melo</name>
</author>
<published>2007-04-26T00:54:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0660e03f6b18f19b6bbafe7583265a51b90daf36'/>
<id>urn:sha1:0660e03f6b18f19b6bbafe7583265a51b90daf36</id>
<content type='text'>
Now the skb-&gt;nh union has just one member, .raw, i.e. it is just like the
skb-&gt;mac union, strange, no? I'm just leaving it like that till the transport
layer is done with, when we'll rename skb-&gt;mac.raw to skb-&gt;mac_header (or
-&gt;mac_header_offset?), ditto for -&gt;{h,nh}.

Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
