The route metrics added "ip route" are not being inherited by route cache entries
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Medium
|
Unassigned |
Bug Description
There is a bug in the the management of inet peers which prevents route metrics like initcwnd from being inherited by route
cache entries. An example:
$ ip route show
default via 172.16.231.2 dev eth0 metric 100
172.16.231.0/24 dev eth0 proto kernel scope link src 172.16.231.26
$ ip route show cache
local 172.16.231.26 from 172.16.231.1 dev lo src 172.16.231.26
cache <local,src-direct> iif eth0
172.16.231.1 from 172.16.231.26 dev eth0
cache ipid 0xa13f
$ ip route change 172.16.231.0/24 dev eth0 proto kernel scope link src 172.16.231.26 initcwnd lock 100
$ ip route show
default via 172.16.231.2 dev eth0 metric 100
172.16.231.0/24 dev eth0 proto kernel scope link src 172.16.231.26 initcwnd
lock 100
$ ip route show cache
172.16.231.1 from 172.16.231.26 dev eth0
cache ipid 0xa13f rtt 4ms rttvar 4ms cwnd 40
local 172.16.231.26 from 172.16.231.1 dev lo src 172.16.231.26
cache <local,src-direct> iif eth0
Note that the initcwnd metric is not being inherited by the cache entry for 172.16.231.1. The problem is that the
inetpeer cache is not flushed when the "ip route change" occurs. Without this the metrics in the inetpeer are used
to build the metrics of the route cache entry even though they are stale.
A fix for this bug is in the 3.5.0 kernel from quantal. It is a simple fix and could be easily applied to the 3.2.0 line of kernels.
---
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
AplayDevices: Error: [Errno 2] No such file or directory
ApportVersion: 2.0.1-0ubuntu17.3
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/by-path', '/dev/snd/
CRDA: Error: [Errno 2] No such file or directory
Card0.Amixer.info: Error: [Errno 2] No such file or directory
Card0.Amixer.
DistroRelease: Ubuntu 12.04
HibernationDevice: RESUME=
InstallationMedia: Ubuntu-Server 12.04 LTS "Precise Pangolin" - Release amd64 (20120424.1)
IwConfig: Error: [Errno 2] No such file or directory
Lsusb:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
MachineType: VMware, Inc. VMware Virtual Platform
MarkForUpload: True
Package: linux (not installed)
ProcEnviron:
LANGUAGE=en_US:en
TERM=vt102
PATH=(custom, no user)
LANG=en_US.UTF-8
SHELL=/bin/ksh
ProcFB:
ProcKernelCmdLine: BOOT_IMAGE=
ProcVersionSign
RelatedPackageV
linux-
linux-
linux-firmware 1.79.4
RfKill: Error: [Errno 2] No such file or directory
Tags: precise
Uname: Linux 3.2.0-49-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
dmi.bios.date: 07/02/2012
dmi.bios.vendor: Phoenix Technologies LTD
dmi.bios.version: 6.00
dmi.board.name: 440BX Desktop Reference Platform
dmi.board.vendor: Intel Corporation
dmi.board.version: None
dmi.chassis.
dmi.chassis.type: 1
dmi.chassis.vendor: No Enclosure
dmi.chassis.
dmi.modalias: dmi:bvnPhoenixT
dmi.product.name: VMware Virtual Platform
dmi.product.
dmi.sys.vendor: VMware, Inc.
Related branches
affects: | ubuntu → linux (Ubuntu) |
Changed in linux (Ubuntu): | |
status: | Incomplete → Fix Committed |
tags: | added: verification-failed |
tags: |
added: verification-done-precise removed: verification-done verification-needed-precise |
This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:
apport-collect 1205741
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.