<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/include/net/ip6_fib.h, branch linux-2.6.34.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.34.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.34.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2010-02-18T22:30:17+00:00</updated>
<entry>
<title>ipv6: use standard lists for FIB walks</title>
<updated>2010-02-18T22:30:17+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2010-02-18T08:13:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=bbef49daca35d4fd21bf606a10b6980f17d9df5d'/>
<id>urn:sha1:bbef49daca35d4fd21bf606a10b6980f17d9df5d</id>
<content type='text'>
Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: fib: fix crash when changing large fib while dumping it</title>
<updated>2010-02-12T20:06:35+00:00</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2010-02-08T05:19:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2bec5a369ee79576a3eea2c23863325089785a2c'/>
<id>urn:sha1:2bec5a369ee79576a3eea2c23863325089785a2c</id>
<content type='text'>
When the fib size exceeds what can be dumped in a single skb, the
dump is suspended and resumed once the last skb has been received
by userspace. When the fib is changed while the dump is suspended,
the walker might contain stale pointers, causing a crash when the
dump is resumed.

BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
IP: [&lt;ffffffffa01bce04&gt;] fib6_walk_continue+0xbb/0x124 [ipv6]
PGD 5347a067 PUD 65c7067 PMD 0
Oops: 0000 [#1] PREEMPT SMP
...
RIP: 0010:[&lt;ffffffffa01bce04&gt;]
[&lt;ffffffffa01bce04&gt;] fib6_walk_continue+0xbb/0x124 [ipv6]
...
Call Trace:
 [&lt;ffffffff8104aca3&gt;] ? mutex_spin_on_owner+0x59/0x71
 [&lt;ffffffffa01bd105&gt;] inet6_dump_fib+0x11b/0x1b9 [ipv6]
 [&lt;ffffffff81371af4&gt;] netlink_dump+0x5b/0x19e
 [&lt;ffffffff8134f288&gt;] ? consume_skb+0x28/0x2a
 [&lt;ffffffff81373b69&gt;] netlink_recvmsg+0x1ab/0x2c6
 [&lt;ffffffff81372781&gt;] ? netlink_unicast+0xfa/0x151
 [&lt;ffffffff813483e0&gt;] __sock_recvmsg+0x6d/0x79
 [&lt;ffffffff81348a53&gt;] sock_recvmsg+0xca/0xe3
 [&lt;ffffffff81066d4b&gt;] ? autoremove_wake_function+0x0/0x38
 [&lt;ffffffff811ed1f8&gt;] ? radix_tree_lookup_slot+0xe/0x10
 [&lt;ffffffff810b3ed7&gt;] ? find_get_page+0x90/0xa5
 [&lt;ffffffff810b5dc5&gt;] ? filemap_fault+0x201/0x34f
 [&lt;ffffffff810ef152&gt;] ? fget_light+0x2f/0xac
 [&lt;ffffffff813519e7&gt;] ? verify_iovec+0x4f/0x94
 [&lt;ffffffff81349a65&gt;] sys_recvmsg+0x14d/0x223

Store the serial number when beginning to walk the fib and reload
pointers when continuing to walk after a change occured. Similar
to other dumping functions, this might cause unrelated entries to
be missed when entries are deleted.

Tested-by: Ben Greear &lt;greearb@candelatech.com&gt;
Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: cleanup include/net</title>
<updated>2009-11-04T13:06:25+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-11-03T03:26:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=fd2c3ef761fbc5e6c27fa7d40b30cda06bfcd7d8'/>
<id>urn:sha1:fd2c3ef761fbc5e6c27fa7d40b30cda06bfcd7d8</id>
<content type='text'>
This cleanup patch puts struct/union/enum opening braces,
in first line to ease grep games.

struct something
{

becomes :

struct something {

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>xfrm: select sane defaults for xfrm[4|6] gc_thresh</title>
<updated>2009-07-31T01:52:15+00:00</updated>
<author>
<name>Neil Horman</name>
<email>nhorman@tuxdriver.com</email>
</author>
<published>2009-07-31T01:52:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a33bc5c15154c835aae26f16e6a3a7d9ad4acb45'/>
<id>urn:sha1:a33bc5c15154c835aae26f16e6a3a7d9ad4acb45</id>
<content type='text'>
Choose saner defaults for xfrm[4|6] gc_thresh values on init

Currently, the xfrm[4|6] code has hard-coded initial gc_thresh values
(set to 1024).  Given that the ipv4 and ipv6 routing caches are sized
dynamically at boot time, the static selections can be non-sensical.
This patch dynamically selects an appropriate gc threshold based on
the corresponding main routing table size, using the assumption that
we should in the worst case be able to handle as many connections as
the routing table can.

For ipv4, the maximum route cache size is 16 * the number of hash
buckets in the route cache.  Given that xfrm4 starts garbage
collection at the gc_thresh and prevents new allocations at 2 *
gc_thresh, we set gc_thresh to half the maximum route cache size.

For ipv6, its a bit trickier.  there is no maximum route cache size,
but the ipv6 dst_ops gc_thresh is statically set to 1024.  It seems
sane to select a simmilar gc_thresh for the xfrm6 code that is half
the number of hash buckets in the v6 route cache times 16 (like the v4
code does).

Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NETNS][IPV6] rt6_info - move rt6_info structure inside the namespace</title>
<updated>2008-03-04T21:48:30+00:00</updated>
<author>
<name>Daniel Lezcano</name>
<email>dlezcano@fr.ibm.com</email>
</author>
<published>2008-03-04T21:48:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8ed677896752fff056f6cf3d7ce462adc6c464f0'/>
<id>urn:sha1:8ed677896752fff056f6cf3d7ce462adc6c464f0</id>
<content type='text'>
The rt6_info structures are moved inside the network namespace
structure. All references to these structures are now relative to the
initial network namespace.

Signed-off-by: Daniel Lezcano &lt;dlezcano@fr.ibm.com&gt;
Signed-off-by: Benjamin Thery &lt;benjamin.thery@bull.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NETNS][IPV6] ip6_fib - add net to gc timer parameter</title>
<updated>2008-03-04T07:28:58+00:00</updated>
<author>
<name>Daniel Lezcano</name>
<email>dlezcano@fr.ibm.com</email>
</author>
<published>2008-03-04T07:28:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5b7c931dff03621ae7ac524c4fa280d4e5f187a4'/>
<id>urn:sha1:5b7c931dff03621ae7ac524c4fa280d4e5f187a4</id>
<content type='text'>
The fib tables are now relative to the network namespace. When the
garbage collector timer expires, we must have a network namespace
parameter in order to retrieve the tables. For now this is the
init_net, but we should be able to have a timer per namespace and use
the timer callback parameter to pass the network namespace from the
expired timer.

The timer callback, fib6_run_gc, is actually used to be called
synchronously by some functions and asynchronously when the timer
expires.

When the timer expires, the delay specified for fib6_run_gc parameter
is always zero. So, I changed fib6_run_gc to not be a timer callback
but a function called by the timer callback and I added a timer
callback where its work is just to retrieve from the data arg of the
timer the network namespace and call fib6_run_gc with zero expiring
time and the network namespace parameters. That makes the code cleaner
for the fib6_run_gc callers.

Signed-off-by: Daniel Lezcano &lt;dlezcano@fr.ibm.com&gt;
Signed-off-by: Benjamin Thery &lt;benjamin.thery@bull.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NETNS][IPV6] ip6_fib - fib6_clean_all handle several network namespaces</title>
<updated>2008-03-04T07:27:06+00:00</updated>
<author>
<name>Daniel Lezcano</name>
<email>dlezcano@fr.ibm.com</email>
</author>
<published>2008-03-04T07:27:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f3db48517f59133610f558f29de8834d7b007691'/>
<id>urn:sha1:f3db48517f59133610f558f29de8834d7b007691</id>
<content type='text'>
The function fib6_clean_all takes the network namespace as
parameter. That allows to flush the routes related to a specific
network namespace.

Signed-off-by: Daniel Lezcano &lt;dlezcano@fr.ibm.com&gt;
Signed-off-by: Benjamin Thery &lt;benjamin.thery@bull.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NETNS][IPV6] ip6_fib - make it per network namespace</title>
<updated>2008-03-04T07:25:27+00:00</updated>
<author>
<name>Daniel Lezcano</name>
<email>dlezcano@fr.ibm.com</email>
</author>
<published>2008-03-04T07:25:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=58f09b78b730cf0d936597272bf35b3d615e967c'/>
<id>urn:sha1:58f09b78b730cf0d936597272bf35b3d615e967c</id>
<content type='text'>
The fib table for ipv6 are moved to the network namespace structure.
All references to them are made relatively to the network namespace.

All external calls to the ip6_fib functions taking the network
namespace parameter are made using the init_net variable, so the
ip6_fib engine is ready for the namespaces but the callers not yet.

Signed-off-by: Daniel Lezcano &lt;dlezcano@fr.ibm.com&gt;
Signed-off-by: Benjamin Thery &lt;benjamin.thery@bull.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[IPV6] Minor cleanup: remove unused definitions in net/ip6_fib.h</title>
<updated>2008-02-08T02:11:49+00:00</updated>
<author>
<name>Rami Rosen</name>
<email>ramirose@gmail.com</email>
</author>
<published>2008-02-08T02:11:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4e881a217bd1403960eb8f32297ba9d226c6d5ae'/>
<id>urn:sha1:4e881a217bd1403960eb8f32297ba9d226c6d5ae</id>
<content type='text'>
This patch removes some unused definitions and one method typedef
declaration (f_pnode)
in include/net/ip6_fib.h, as they are not used in the kernel.

Signed-off-by: Rami Rosen &lt;ramirose@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[XFRM] IPv6: Fix dst/routing check at transformation.</title>
<updated>2008-01-28T22:59:36+00:00</updated>
<author>
<name>Masahide NAKAMURA</name>
<email>nakam@linux-ipv6.org</email>
</author>
<published>2007-12-21T04:41:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a1b051405bc16222d92c73b0c26d65b333a154ee'/>
<id>urn:sha1:a1b051405bc16222d92c73b0c26d65b333a154ee</id>
<content type='text'>
IPv6 specific thing is wrongly removed from transformation at net-2.6.25.
This patch recovers it with current design.

o Update "path" of xfrm_dst since IPv6 transformation should
  care about routing changes. It is required by MIPv6 and
  off-link destined IPsec.
o Rename nfheader_len which is for non-fragment transformation used by
  MIPv6 to rt6i_nfheader_len as IPv6 name space.

Signed-off-by: Masahide NAKAMURA &lt;nakam@linux-ipv6.org&gt;
Acked-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
