sched: Match-all classifier is missing in xenial

Bug #1642514 reported by Nicolas Dichtel
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
iproute2 (Ubuntu)
Fix Released
Undecided
Unassigned
Xenial
Fix Released
Medium
Stefan Bader
linux (Ubuntu)
Fix Released
Undecided
Unassigned
Xenial
Fix Released
Undecided
Tim Gardner

Bug Description

[SRU Justification]

== Impact ==
The Xenial 4.4 kernel already has a patch applied which implements the matchall filter. But in order to actually use it, iproute2 needs to pick up the user-space
side of the implementation.

== Fix ==
Backported a patch from iproute2 upstream which adds the missing support. Tested against the standard 4.4 and the HWE kernel in 16.04 (see testcase).

== Risk of Regression ==
This adds a new filter type which has to be actively selected. This should not impact existing uses. So low.

== Testcase ==
ip link add dev dummy0 type dummy
ip link add dev dummy1 type dummy
ip link set dev dummy0 up
ip link set dev dummy1 up
tc qdisc add dev dummy0 handle 1: root prio
tc filter add dev dummy0 parent 1: matchall skip_hw action mirred egress mirror dev dummy1

at this point, "tc filter show dev dummy0" should spit out something like:

filter parent 1: protocol all pref 49152 matchall
filter parent 1: protocol all pref 49152 matchall handle 0x1
        action order 1: mirred (Egress Mirror to device dummy1) pipe
        index 1 ref 1 bind 1

and the functionality can be tested via

tcpdump -n -i dummy1 &
ping -I dummy0 1.2.3.4

---

This is implemented in linux v4.8 by the following upstream patch:
bf3994d2ed31 ("net/sched: introduce Match-all classifier")

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=bf3994d2ed31

The backport is straightforward. It's useful in combination with clsact qdisc (see bug #1642510).

Related branches

Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1642514

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.

Changed in linux (Ubuntu):
status: New → Incomplete
Revision history for this message
Tim Gardner (timg-tpi) wrote :
Changed in linux (Ubuntu):
status: Incomplete → Fix Released
Changed in linux (Ubuntu Xenial):
assignee: nobody → Tim Gardner (timg-tpi)
status: New → In Progress
Luis Henriques (henrix)
Changed in linux (Ubuntu Xenial):
status: In Progress → Fix Committed
Revision history for this message
Luis Henriques (henrix) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-xenial' to 'verification-done-xenial'. If the problem still exists, change the tag 'verification-needed-xenial' to 'verification-failed-xenial'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-xenial
Revision history for this message
Nicolas Dichtel (nicolas-dichtel) wrote :

Note that the iproute2 patch will be needed to use this filter:

https://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/commit/?id=d5cbf3ff0561
(embedded headers must be updated also).

tags: added: verification-done-xenial
removed: verification-needed-xenial
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (17.0 KiB)

This bug was fixed in the package linux - 4.4.0-57.78

---------------
linux (4.4.0-57.78) xenial; urgency=low

  * Release Tracking Bug
    - LP: #1648867

  * Miscellaneous Ubuntu changes
    - SAUCE: Do not build the xr-usb-serial driver for s390

linux (4.4.0-56.77) xenial; urgency=low

  * Release Tracking Bug
    - LP: #1648867

  * Release Tracking Bug
    - LP: #1648579

  * CONFIG_NR_CPUS=256 is too low (LP: #1579205)
    - [Config] Increase the NR_CPUS to 512 for amd64 to support systems with a
      large number of cores.

  * NVMe drives in Amazon AWS instance fail to initialize (LP: #1648449)
    - SAUCE: (no-up) NVMe: only setup MSIX once

linux (4.4.0-55.76) xenial; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1648503

  * NVMe driver accidentally reverted to use GSI instead of MSIX (LP: #1647887)
    - (fix) NVMe: restore code to always use MSI/MSI-x interrupts

linux (4.4.0-54.75) xenial; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1648017

  * Update hio driver to 2.1.0.28 (LP: #1646643)
    - SAUCE: hio: update to Huawei ES3000_V2 (2.1.0.28)

  * linux: Enable live patching for all supported architectures (LP: #1633577)
    - [Config] CONFIG_LIVEPATCH=y for s390x

  * Botched backport breaks level triggered EOIs in QEMU guests with --machine
    kernel_irqchip=split (LP: #1644394)
    - kvm/irqchip: kvm_arch_irq_routing_update renaming split

  * Xenial update to v4.4.35 stable release (LP: #1645453)
    - x86/cpu/AMD: Fix cpu_llc_id for AMD Fam17h systems
    - KVM: x86: fix missed SRCU usage in kvm_lapic_set_vapic_addr
    - KVM: Disable irq while unregistering user notifier
    - fuse: fix fuse_write_end() if zero bytes were copied
    - mfd: intel-lpss: Do not put device in reset state on suspend
    - can: bcm: fix warning in bcm_connect/proc_register
    - i2c: mux: fix up dependencies
    - kbuild: add -fno-PIE
    - scripts/has-stack-protector: add -fno-PIE
    - x86/kexec: add -fno-PIE
    - kbuild: Steal gcc's pie from the very beginning
    - ext4: sanity check the block and cluster size at mount time
    - crypto: caam - do not register AES-XTS mode on LP units
    - drm/amdgpu: Attach exclusive fence to prime exported bo's. (v5)
    - clk: mmp: pxa910: fix return value check in pxa910_clk_init()
    - clk: mmp: pxa168: fix return value check in pxa168_clk_init()
    - clk: mmp: mmp2: fix return value check in mmp2_clk_init()
    - rtc: omap: Fix selecting external osc
    - iwlwifi: pcie: fix SPLC structure parsing
    - mfd: core: Fix device reference leak in mfd_clone_cell
    - uwb: fix device reference leaks
    - PM / sleep: fix device reference leak in test_suspend
    - PM / sleep: don't suspend parent when async child suspend_{noirq, late}
      fails
    - IB/mlx4: Check gid_index return value
    - IB/mlx4: Fix create CQ error flow
    - IB/mlx5: Use cache line size to select CQE stride
    - IB/mlx5: Fix fatal error dispatching
    - IB/core: Avoid unsigned int overflow in sg_alloc_table
    - IB/uverbs: Fix leak of XRC target QPs
    - IB/cm: Mark stale CM id's whenever the mad agent was unregistered
    - netfilter: nft_dynset: fix element timeou...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Nicolas Dichtel (nicolas-dichtel) wrote :

Any news for the iproute2 part?

Revision history for this message
Michel Galle (itsystem) wrote : Re: [Bug 1642514] Re: sched: Match-all classifier is missing in xenial

Do you have a device impacted by that bug ?

On 18/05/2018 11:27, Nicolas Dichtel wrote:
> Any news for the iproute2 part?
>

--
Michel Galle
IT
tel: +33 6 03 05 51 47
http://www.6wind.com/

Revision history for this message
Michel Galle (itsystem) wrote :

my previous comment is a mail mistake. sorry.

Revision history for this message
Nicolas Dichtel (nicolas-dichtel) wrote :

> Note that the iproute2 patch will be needed to use this filter:
>
> https://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/commit/?id=d5cbf3ff0561
> (embedded headers must be updated also).

This link is dead, here is another one:
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=d5cbf3ff0561

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

iproute2 is handled by the kernel team nowadays, due to its close ties with the kernel itself. Unsubscribing ubuntu-server for that reason.

Stefan Bader (smb)
Changed in iproute2 (Ubuntu):
status: New → Invalid
Changed in iproute2 (Ubuntu Xenial):
assignee: nobody → Stefan Bader (smb)
importance: Undecided → Medium
status: New → In Progress
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

This is in all newer versions of iproute2 (newer than Xenial), setting the general task to Fix Released

Changed in iproute2 (Ubuntu):
status: Invalid → Fix Released
Revision history for this message
Andy Whitcroft (apw) wrote : Please test proposed package

Hello Nicolas, or anyone else affected,

Accepted iproute2 into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/iproute2/4.3.0-1ubuntu3.16.04.5 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-xenial to verification-done-xenial. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-xenial. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in iproute2 (Ubuntu Xenial):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-xenial
removed: verification-done-xenial
Stefan Bader (smb)
description: updated
Revision history for this message
Nicolas Dichtel (nicolas-dichtel) wrote :

root@ubuntu1604:~# dpkg --list | grep iproute2
ii iproute2 4.3.0-1ubuntu3.16.04.4 amd64 networking and traffic control tools
root@ubuntu1604:~# apt-get install iproute2/xenial-proposed
Reading package lists... Done
Building dependency tree
Reading state information... Done
Selected version '4.3.0-1ubuntu3.16.04.5' (Ubuntu:16.04/xenial-proposed [amd64]) for 'iproute2'
Suggested packages:
  iproute2-doc
The following packages will be upgraded:
  iproute2
1 upgraded, 0 newly installed, 0 to remove and 38 not upgraded.
Need to get 523 kB of archives.
After this operation, 1,024 B of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial-proposed/main amd64 iproute2 amd64 4.3.0-1ubuntu3.16.04.5 [523 kB]
Fetched 523 kB in 0s (6,782 kB/s)
(Reading database ... 85262 files and directories currently installed.)
Preparing to unpack .../iproute2_4.3.0-1ubuntu3.16.04.5_amd64.deb ...
Unpacking iproute2 (4.3.0-1ubuntu3.16.04.5) over (4.3.0-1ubuntu3.16.04.4) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up iproute2 (4.3.0-1ubuntu3.16.04.5) ...
root@ubuntu1604:~# dpkg --list | grep iproute2
ii iproute2 4.3.0-1ubuntu3.16.04.5 amd64 networking and traffic control tools
root@ubuntu1604:~# ip link add dev dummy0 type dummy
RTNETLINK answers: File exists
root@ubuntu1604:~# ip link add dev dummy1 type dummy
root@ubuntu1604:~# ip link set dev dummy0 up
root@ubuntu1604:~# ip link set dev dummy1 up
root@ubuntu1604:~# tc qdisc add dev dummy0 handle 1: root prio
root@ubuntu1604:~# tc filter add dev dummy0 parent 1: matchall skip_hw action mirred egress mirror dev dummy1
root@ubuntu1604:~# tc filter show dev dummy0
filter parent 1: protocol all pref 49152 matchall
filter parent 1: protocol all pref 49152 matchall handle 0x1
        action order 1: mirred (Egress Mirror to device dummy1) pipe
        index 1 ref 1 bind 1

root@ubuntu1604:~#

=> test is OK.

tags: added: verification-done-xenial
removed: verification-needed-xenial
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

The ubuntu-fan autopkgtest regressions are unrelated and a fix for them has just been accepted into xenial-proposed (ignoring stderr output). Ignoring the failure for now and releasing.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package iproute2 - 4.3.0-1ubuntu3.16.04.5

---------------
iproute2 (4.3.0-1ubuntu3.16.04.5) xenial; urgency=medium

  * sched: Match-all classifier is missing in xenial (LP: #1642514)
    - d/p/1011-tc-Add-support-for-the-matchall-traffic-classifier.patch

 -- Stefan Bader <email address hidden> Thu, 04 Apr 2019 15:47:07 +0200

Changed in iproute2 (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Łukasz Zemczak (sil2100) wrote : Update Released

The verification of the Stable Release Update for iproute2 has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Brad Figg (brad-figg)
tags: added: cscc
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.