<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/net/ip_vs.h, branch v3.0.86</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/include/net/ip_vs.h?h=v3.0.86</id>
<link rel='self' href='https://git.amat.us/linux/atom/include/net/ip_vs.h?h=v3.0.86'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-10-21T16:17:11Z</updated>
<entry>
<title>ipvs: fix oops on NAT reply in br_nf context</title>
<updated>2012-10-21T16:17:11Z</updated>
<author>
<name>Lin Ming</name>
<email>mlin@ss.pku.edu.cn</email>
</author>
<published>2012-07-07T10:26:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4b552154cccd5407bb02a7f17ed5a37939fd821e'/>
<id>urn:sha1:4b552154cccd5407bb02a7f17ed5a37939fd821e</id>
<content type='text'>
commit 9e33ce453f8ac8452649802bee1f410319408f4b upstream.

IPVS should not reset skb-&gt;nf_bridge in FORWARD hook
by calling nf_reset for NAT replies. It triggers oops in
br_nf_forward_finish.

[  579.781508] BUG: unable to handle kernel NULL pointer dereference at 0000000000000004
[  579.781669] IP: [&lt;ffffffff817b1ca5&gt;] br_nf_forward_finish+0x58/0x112
[  579.781792] PGD 218f9067 PUD 0
[  579.781865] Oops: 0000 [#1] SMP
[  579.781945] CPU 0
[  579.781983] Modules linked in:
[  579.782047]
[  579.782080]
[  579.782114] Pid: 4644, comm: qemu Tainted: G        W    3.5.0-rc5-00006-g95e69f9 #282 Hewlett-Packard  /30E8
[  579.782300] RIP: 0010:[&lt;ffffffff817b1ca5&gt;]  [&lt;ffffffff817b1ca5&gt;] br_nf_forward_finish+0x58/0x112
[  579.782455] RSP: 0018:ffff88007b003a98  EFLAGS: 00010287
[  579.782541] RAX: 0000000000000008 RBX: ffff8800762ead00 RCX: 000000000001670a
[  579.782653] RDX: 0000000000000000 RSI: 000000000000000a RDI: ffff8800762ead00
[  579.782845] RBP: ffff88007b003ac8 R08: 0000000000016630 R09: ffff88007b003a90
[  579.782957] R10: ffff88007b0038e8 R11: ffff88002da37540 R12: ffff88002da01a02
[  579.783066] R13: ffff88002da01a80 R14: ffff88002d83c000 R15: ffff88002d82a000
[  579.783177] FS:  0000000000000000(0000) GS:ffff88007b000000(0063) knlGS:00000000f62d1b70
[  579.783306] CS:  0010 DS: 002b ES: 002b CR0: 000000008005003b
[  579.783395] CR2: 0000000000000004 CR3: 00000000218fe000 CR4: 00000000000027f0
[  579.783505] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  579.783684] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[  579.783795] Process qemu (pid: 4644, threadinfo ffff880021b20000, task ffff880021aba760)
[  579.783919] Stack:
[  579.783959]  ffff88007693cedc ffff8800762ead00 ffff88002da01a02 ffff8800762ead00
[  579.784110]  ffff88002da01a02 ffff88002da01a80 ffff88007b003b18 ffffffff817b26c7
[  579.784260]  ffff880080000000 ffffffff81ef59f0 ffff8800762ead00 ffffffff81ef58b0
[  579.784477] Call Trace:
[  579.784523]  &lt;IRQ&gt;
[  579.784562]
[  579.784603]  [&lt;ffffffff817b26c7&gt;] br_nf_forward_ip+0x275/0x2c8
[  579.784707]  [&lt;ffffffff81704b58&gt;] nf_iterate+0x47/0x7d
[  579.784797]  [&lt;ffffffff817ac32e&gt;] ? br_dev_queue_push_xmit+0xae/0xae
[  579.784906]  [&lt;ffffffff81704bfb&gt;] nf_hook_slow+0x6d/0x102
[  579.784995]  [&lt;ffffffff817ac32e&gt;] ? br_dev_queue_push_xmit+0xae/0xae
[  579.785175]  [&lt;ffffffff8187fa95&gt;] ? _raw_write_unlock_bh+0x19/0x1b
[  579.785179]  [&lt;ffffffff817ac417&gt;] __br_forward+0x97/0xa2
[  579.785179]  [&lt;ffffffff817ad366&gt;] br_handle_frame_finish+0x1a6/0x257
[  579.785179]  [&lt;ffffffff817b2386&gt;] br_nf_pre_routing_finish+0x26d/0x2cb
[  579.785179]  [&lt;ffffffff817b2cf0&gt;] br_nf_pre_routing+0x55d/0x5c1
[  579.785179]  [&lt;ffffffff81704b58&gt;] nf_iterate+0x47/0x7d
[  579.785179]  [&lt;ffffffff817ad1c0&gt;] ? br_handle_local_finish+0x44/0x44
[  579.785179]  [&lt;ffffffff81704bfb&gt;] nf_hook_slow+0x6d/0x102
[  579.785179]  [&lt;ffffffff817ad1c0&gt;] ? br_handle_local_finish+0x44/0x44
[  579.785179]  [&lt;ffffffff81551525&gt;] ? sky2_poll+0xb35/0xb54
[  579.785179]  [&lt;ffffffff817ad62a&gt;] br_handle_frame+0x213/0x229
[  579.785179]  [&lt;ffffffff817ad417&gt;] ? br_handle_frame_finish+0x257/0x257
[  579.785179]  [&lt;ffffffff816e3b47&gt;] __netif_receive_skb+0x2b4/0x3f1
[  579.785179]  [&lt;ffffffff816e69fc&gt;] process_backlog+0x99/0x1e2
[  579.785179]  [&lt;ffffffff816e6800&gt;] net_rx_action+0xdf/0x242
[  579.785179]  [&lt;ffffffff8107e8a8&gt;] __do_softirq+0xc1/0x1e0
[  579.785179]  [&lt;ffffffff8135a5ba&gt;] ? trace_hardirqs_off_thunk+0x3a/0x6c
[  579.785179]  [&lt;ffffffff8188812c&gt;] call_softirq+0x1c/0x30

The steps to reproduce as follow,

1. On Host1, setup brige br0(192.168.1.106)
2. Boot a kvm guest(192.168.1.105) on Host1 and start httpd
3. Start IPVS service on Host1
   ipvsadm -A -t 192.168.1.106:80 -s rr
   ipvsadm -a -t 192.168.1.106:80 -r 192.168.1.105:80 -m
4. Run apache benchmark on Host2(192.168.1.101)
   ab -n 1000 http://192.168.1.106/

ip_vs_reply4
  ip_vs_out
    handle_response
      ip_vs_notrack
        nf_reset()
        {
          skb-&gt;nf_bridge = NULL;
        }

Actually, IPVS wants in this case just to replace nfct
with untracked version. So replace the nf_reset(skb) call
in ip_vs_notrack() with a nf_conntrack_put(skb-&gt;nfct) call.

Signed-off-by: Lin Ming &lt;mlin@ss.pku.edu.cn&gt;
Signed-off-by: Julian Anastasov &lt;ja@ssi.bg&gt;
Signed-off-by: Simon Horman &lt;horms@verge.net.au&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
Acked-by: David Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>IPVS: bug in ip_vs_ftp, same list heaad used in all netns.</title>
<updated>2011-05-27T11:37:46Z</updated>
<author>
<name>Hans Schillstrom</name>
<email>hans.schillstrom@ericsson.com</email>
</author>
<published>2011-05-24T12:11:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c74c0bfe0b61cf41a897c2444c038e0d3f600556'/>
<id>urn:sha1:c74c0bfe0b61cf41a897c2444c038e0d3f600556</id>
<content type='text'>
When ip_vs was adapted to netns the ftp application was not adapted
in a correct way.
However this is a fix to avoid kernel errors. In the long term another solution
might be chosen.  I.e the ports that the ftp appl, uses should be per netns.

Signed-off-by: Hans Schillstrom &lt;hans.schillstrom@ericsson.com&gt;
Acked-by: Julian Anastasov &lt;ja@ssi.bg&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
</entry>
<entry>
<title>ipvs: Remove all remaining references to rt-&gt;rt_{src,dst}</title>
<updated>2011-05-12T22:24:46Z</updated>
<author>
<name>Julian Anastasov</name>
<email>ja@ssi.bg</email>
</author>
<published>2011-05-10T12:46:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c92f5ca2e5120796c56455e0a4b7cc0dfd6ceb49'/>
<id>urn:sha1:c92f5ca2e5120796c56455e0a4b7cc0dfd6ceb49</id>
<content type='text'>
Remove all remaining references to rt-&gt;rt_{src,dst}
by using dest-&gt;dst_saddr to cache saddr (used for TUN mode).
For ICMP in FORWARD hook just restrict the rt_mode for NAT
to disable LOCALNODE. All other modes do not allow
IP_VS_RT_MODE_RDR, so we should be safe with the ICMP
forwarding. Using cp-&gt;daddr as replacement for rt_dst
is safe for all modes except BYPASS, even when cp-&gt;dest is
NULL because it is cp-&gt;daddr that is used to assign cp-&gt;dest
for sync-ed connections.

Signed-off-by: Julian Anastasov &lt;ja@ssi.bg&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-3.6</title>
<updated>2011-05-11T18:26:58Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-05-11T18:26:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3c709f8fb43e07a0403bba4a8ca7ba00ab874994'/>
<id>urn:sha1:3c709f8fb43e07a0403bba4a8ca7ba00ab874994</id>
<content type='text'>
Conflicts:
	drivers/net/benet/be_main.c
</content>
</entry>
<entry>
<title>IPVS: init and cleanup restructuring</title>
<updated>2011-05-10T07:52:47Z</updated>
<author>
<name>Hans Schillstrom</name>
<email>hans@schillstrom.com</email>
</author>
<published>2011-05-03T20:09:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7a4f0761fce32ff4918a7c23b08db564ad33092d'/>
<id>urn:sha1:7a4f0761fce32ff4918a7c23b08db564ad33092d</id>
<content type='text'>
DESCRIPTION
This patch tries to restore the initial init and cleanup
sequences that was before namspace patch.
Netns also requires action when net devices unregister
which has never been implemented. I.e this patch also
covers when a device moves into a network namespace,
and has to be released.

IMPLEMENTATION
The number of calls to register_pernet_device have been
reduced to one for the ip_vs.ko
Schedulers still have their own calls.

This patch adds a function __ip_vs_service_cleanup()
and an enable flag for the netfilter hooks.

The nf hooks will be enabled when the first service is loaded
and never disabled again, except when a namespace exit starts.

Signed-off-by: Hans Schillstrom &lt;hans@schillstrom.com&gt;
Acked-by: Julian Anastasov &lt;ja@ssi.bg&gt;
[horms@verge.net.au: minor edit to changelog]
Signed-off-by: Simon Horman &lt;horms@verge.net.au&gt;
</content>
</entry>
<entry>
<title>net: Remove __KERNEL__ cpp checks from include/net</title>
<updated>2011-04-24T17:54:56Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-04-24T17:54:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2a9e9507011440a57d6356ded630ba0c0f5d4b77'/>
<id>urn:sha1:2a9e9507011440a57d6356ded630ba0c0f5d4b77</id>
<content type='text'>
These header files are never installed to user consumption, so any
__KERNEL__ cpp checks are superfluous.

Projects should also not copy these files into their userland utility
sources and try to use them there.  If they insist on doing so, the
onus is on them to sanitize the headers as needed.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2011-04-11T14:27:24Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-04-11T14:27:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c44eaf41a5a423993932c9a9ad279ee132779b48'/>
<id>urn:sha1:c44eaf41a5a423993932c9a9ad279ee132779b48</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (34 commits)
  net: Add support for SMSC LAN9530, LAN9730 and LAN89530
  mlx4_en: Restoring RX buffer pointer in case of failure
  mlx4: Sensing link type at device initialization
  ipv4: Fix "Set rt-&gt;rt_iif more sanely on output routes."
  MAINTAINERS: add entry for Xen network backend
  be2net: Fix suspend/resume operation
  be2net: Rename some struct members for clarity
  pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev
  dsa/mv88e6131: add support for mv88e6085 switch
  ipv6: Enable RFS sk_rxhash tracking for ipv6 sockets (v2)
  be2net: Fix a potential crash during shutdown.
  bna: Fix for handling firmware heartbeat failure
  can: mcp251x: Allow pass IRQ flags through platform data.
  smsc911x: fix mac_lock acquision before calling smsc911x_mac_read
  iwlwifi: accept EEPROM version 0x423 for iwl6000
  rt2x00: fix cancelling uninitialized work
  rtlwifi: Fix some warnings/bugs
  p54usb: IDs for two new devices
  wl12xx: fix potential buffer overflow in testmode nvs push
  zd1211rw: reset rx idle timer from tasklet
  ...
</content>
</entry>
<entry>
<title>IPVS: fix NULL ptr dereference in ip_vs_ctl.c ip_vs_genl_dump_daemons()</title>
<updated>2011-04-04T13:25:18Z</updated>
<author>
<name>Hans Schillstrom</name>
<email>hans.schillstrom@ericsson.com</email>
</author>
<published>2011-04-04T13:25:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a09d19779f3ffac6e16821accc2c1cc4df1b643a'/>
<id>urn:sha1:a09d19779f3ffac6e16821accc2c1cc4df1b643a</id>
<content type='text'>
ipvsadm -ln --daemon will trigger a Null pointer exception because
ip_vs_genl_dump_daemons() uses skb_net() instead of skb_sknet().

To prevent others from NULL ptr a check is made in ip_vs.h skb_net().

Signed-off-by: Hans Schillstrom &lt;hans.schillstrom@ericsson.com&gt;
Signed-off-by: Simon Horman &lt;horms@verge.net.au&gt;
Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
</content>
</entry>
<entry>
<title>Fix common misspellings</title>
<updated>2011-03-31T14:26:23Z</updated>
<author>
<name>Lucas De Marchi</name>
<email>lucas.demarchi@profusion.mobi</email>
</author>
<published>2011-03-31T01:57:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=25985edcedea6396277003854657b5f3cb31a628'/>
<id>urn:sha1:25985edcedea6396277003854657b5f3cb31a628</id>
<content type='text'>
Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
</content>
</entry>
<entry>
<title>IPVS: Use global mutex in ip_vs_app.c</title>
<updated>2011-03-22T03:39:24Z</updated>
<author>
<name>Simon Horman</name>
<email>horms@verge.net.au</email>
</author>
<published>2011-03-21T15:18:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=736561a01f11114146b1b7f82d486fa9c95828ef'/>
<id>urn:sha1:736561a01f11114146b1b7f82d486fa9c95828ef</id>
<content type='text'>
As part of the work to make IPVS network namespace aware
__ip_vs_app_mutex was replaced by a per-namespace lock,
ipvs-&gt;app_mutex. ipvs-&gt;app_key is also supplied for debugging purposes.

Unfortunately this implementation results in ipvs-&gt;app_key residing
in non-static storage which at the very least causes a lockdep warning.

This patch takes the rather heavy-handed approach of reinstating
__ip_vs_app_mutex which will cover access to the ipvs-&gt;list_head
of all network namespaces.

[   12.610000] IPVS: Creating netns size=2456 id=0
[   12.630000] IPVS: Registered protocols (TCP, UDP, SCTP, AH, ESP)
[   12.640000] BUG: key ffff880003bbf1a0 not in .data!
[   12.640000] ------------[ cut here ]------------
[   12.640000] WARNING: at kernel/lockdep.c:2701 lockdep_init_map+0x37b/0x570()
[   12.640000] Hardware name: Bochs
[   12.640000] Pid: 1, comm: swapper Tainted: G        W 2.6.38-kexec-06330-g69b7efe-dirty #122
[   12.650000] Call Trace:
[   12.650000]  [&lt;ffffffff8102e685&gt;] warn_slowpath_common+0x75/0xb0
[   12.650000]  [&lt;ffffffff8102e6d5&gt;] warn_slowpath_null+0x15/0x20
[   12.650000]  [&lt;ffffffff8105967b&gt;] lockdep_init_map+0x37b/0x570
[   12.650000]  [&lt;ffffffff8105829d&gt;] ? trace_hardirqs_on+0xd/0x10
[   12.650000]  [&lt;ffffffff81055ad8&gt;] debug_mutex_init+0x38/0x50
[   12.650000]  [&lt;ffffffff8104bc4c&gt;] __mutex_init+0x5c/0x70
[   12.650000]  [&lt;ffffffff81685ee7&gt;] __ip_vs_app_init+0x64/0x86
[   12.660000]  [&lt;ffffffff81685a3b&gt;] ? ip_vs_init+0x0/0xff
[   12.660000]  [&lt;ffffffff811b1c33&gt;] T.620+0x43/0x170
[   12.660000]  [&lt;ffffffff811b1e9a&gt;] ? register_pernet_subsys+0x1a/0x40
[   12.660000]  [&lt;ffffffff81685a3b&gt;] ? ip_vs_init+0x0/0xff
[   12.660000]  [&lt;ffffffff81685a3b&gt;] ? ip_vs_init+0x0/0xff
[   12.660000]  [&lt;ffffffff811b1db7&gt;] register_pernet_operations+0x57/0xb0
[   12.660000]  [&lt;ffffffff81685a3b&gt;] ? ip_vs_init+0x0/0xff
[   12.670000]  [&lt;ffffffff811b1ea9&gt;] register_pernet_subsys+0x29/0x40
[   12.670000]  [&lt;ffffffff81685f19&gt;] ip_vs_app_init+0x10/0x12
[   12.670000]  [&lt;ffffffff81685a87&gt;] ip_vs_init+0x4c/0xff
[   12.670000]  [&lt;ffffffff8166562c&gt;] do_one_initcall+0x7a/0x12e
[   12.670000]  [&lt;ffffffff8166583e&gt;] kernel_init+0x13e/0x1c2
[   12.670000]  [&lt;ffffffff8128c134&gt;] kernel_thread_helper+0x4/0x10
[   12.670000]  [&lt;ffffffff8128ad40&gt;] ? restore_args+0x0/0x30
[   12.680000]  [&lt;ffffffff81665700&gt;] ? kernel_init+0x0/0x1c2
[   12.680000]  [&lt;ffffffff8128c130&gt;] ? kernel_thread_helper+0x0/0x1global0

Signed-off-by: Simon Horman &lt;horms@verge.net.au&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: Julian Anastasov &lt;ja@ssi.bg&gt;
Cc: Hans Schillstrom &lt;hans@schillstrom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
