per route mtu settings are broken in linux kernel 3.2
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Invalid
|
Medium
|
Unassigned |
Bug Description
Hello,
Looks like setting per route mtu (as described in [1]) is broken in linux kernel 3.2 (default kernel from ubuntu 12.04).
I made script to illustrate this:
root@germany7:~# cat route-mtu
#!/bin/bash
uname -a
ip tuntap add dev test mode tun
ifconfig test 10.1.1.1/16 mtu 1500
echo =======
echo No per route mtu entry
ping -c1 -Mdo -s2000 10.1.1.2
echo =======
echo Per route MTU is set to 800
ip route add 10.1.1.2 dev test proto static src 10.1.1.1 mtu lock 800
ip route flush cache
ping -c1 -Mdo -s2000 10.1.1.2
ip route del 10.1.1.2 dev test proto static src 10.1.1.1 mtu lock 800
echo =======
echo Per route MTU is set to 600
ip route add 10.1.1.2 dev test proto static src 10.1.1.1 mtu lock 600
ip route flush cache
ping -c1 -Mdo -s2000 10.1.1.2
ip route del 10.1.1.2 dev test proto static src 10.1.1.1 mtu lock 600
echo =======
echo No per route mtu entry
ip route flush cache
ping -c1 -Mdo -s2000 10.1.1.2
ip tuntap del dev test mode tun
With kernel 3.2 I get following output:
Linux germany7 3.2.0-41-
=======
No per route mtu entry
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 1500)
--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors
=======
Per route MTU is set to 800
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 800)
--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors
=======
Per route MTU is set to 600
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 800)
--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors
=======
No per route mtu entry
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 800)
--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors
After once set to 800, MTU is always 800, even if you add different route and clean routing cache.
It looks like that problem is fixed in ubuntu kernel 3.5. With it, everything works like expected:
root@germany7:~# ./route-mtu
Linux germany7 3.5.0-28-generic #48~precise1-Ubuntu SMP Wed Apr 24 21:43:05 UTC 2013 i686 i686 i386 GNU/Linux
=======
No per route mtu entry
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 1500)
--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors
=======
Per route MTU is set to 800
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 800)
--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors
=======
Per route MTU is set to 600
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 600)
--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors
=======
No per route mtu entry
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 1500)
--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors
I also tested with kernels 2.6.35 (in lucid) and 3.8 (in precise), results are same to 3.5.
Is there any chance to get fixes from 3.5/3.8 backported to the default precise kernel 3.2?
1. http://
---
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
ApportVersion: 2.0.1-0ubuntu17.2
Architecture: i386
ArecordDevices:
**** List of CAPTURE Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC268 Analog [ALC268 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
AudioDevicesInUse:
USER PID ACCESS COMMAND
/dev/snd/
Card0.Amixer.info:
Card hw:0 'Intel'/'HDA Intel at 0xf4800000 irq 45'
Mixer name : 'Intel Cantiga HDMI'
Components : 'HDA:10ec0268,
Controls : 23
Simple ctrls : 10
CheckboxSubmission: 02f685f3381c534
CheckboxSystem: 8278c9e6a57f684
DistroRelease: Ubuntu 12.04
HibernationDevice: RESUME=
MachineType: Acer Extensa 5630
MarkForUpload: True
Package: linux (not installed)
PccardctlIdent:
Socket 0:
no product info available
PccardctlStatus:
Socket 0:
no card
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: root=UUID=
ProcVersionSign
RelatedPackageV
linux-
linux-
linux-firmware 1.79.4
Tags: precise
Uname: Linux 3.2.0-41-generic i686
UpgradeStatus: Upgraded to precise on 2013-05-09 (0 days ago)
UserGroups: adm admin disk fuse pulse-access src sudo users wireshark
WpaSupplicantLog:
dmi.bios.date: 08/05/2008
dmi.bios.vendor: Phoenix Technologies LTD
dmi.bios.version: V1.19
dmi.board.name: Homa
dmi.board.vendor: Acer
dmi.board.version: Rev
dmi.chassis.type: 10
dmi.chassis.vendor: Acer
dmi.chassis.
dmi.modalias: dmi:bvnPhoenixT
dmi.product.name: Extensa 5630
dmi.product.
dmi.sys.vendor: Acer
description: | updated |
affects: | linux-meta (Ubuntu) → linux (Ubuntu) |
Changed in linux (Ubuntu): | |
importance: | Undecided → Medium |
status: | Incomplete → Triaged |
tags: | added: kernel-da-key kernel-fixed-upstream |
Changed in linux (Ubuntu): | |
status: | Triaged → Confirmed |
tags: | added: refused-troubleshooting |
This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:
apport-collect 1177507
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.