Re: PMTU discovery is broken on kernel 3.7.1 for UDP sockets
From: Yurij M. Plotnikov <hidden>
Date: 2013-01-21 11:31:31
On 01/18/13 12:11, Steffen Klassert wrote:
On Mon, Jan 14, 2013 at 12:26:59PM +0400, Yurij M. Plotnikov wrote:quoted
Could you, please, tell me is there any news about this bug?Ok, I tried to reconstruct your testcase and I can confirm this bug. It happens only on the first pmtu event on a given route. It works if I run this test again. Actually it works sometimes even on the first pmtu event, so it took me quite a while to understand what's ging on. This is because standart routes (no pmtu or redirect events happened on that route) are per cpu, so each cpu has it's own struct rtable. This means that we do not invalidate the socket cached route if the NET_RX_SOFTIRQ (which handles the pmtu event) is not served by the same cpu that the sending socket uses. Exceptional routes (routes where a pmtu or redirect event occured) are not per cpu, so there is no problem. I'll send three patches in reply to this mail. Applying patch one and two should fix the bug you reported. If you use IPsec you need patch three too. The patches are marked as RFC, I'll do proper patch submission if you can confirm that they fix this bug.
Sorry for long delay. I've just checked patches 1+2 and they fix the bug for me. Yurij.