qeth: utilize virtual MAC for Layer2 OSD devices

Bug #1880834 reported by bugproxy on 2020-05-27
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu on IBM z Systems
High
Skipper Bug Screeners
linux (Ubuntu)
Status tracked in Groovy
Bionic
Undecided
Unassigned
Eoan
Undecided
Unassigned
Focal
Undecided
Unassigned
Groovy
Undecided
Canonical Kernel Team

Bug Description

SRU Justification:
==================

[Impact]

* A qeth device on a DPM-managed (HMC) IBM Z machine does not obtain its MAC address for layer2 OSD interfaces from the OSA Network Adapter, instead it uses a random MAC address.

* This can cause connectivity issues in environments where reliable and pre-determined MAC addresses are required, ie. when doing network configuration based on DHCP.

[Fix]

* Backport 1: https://launchpadlibrarian.net/481647649/0001-s390-qeth-improve-fallback-to-random-MAC-address.patch

* Backport 2: https://launchpadlibrarian.net/481647657/0002-s390-qeth-utilize-virtual-MAC-for-Layer2-OSD-devices.patch

[Test Case]

* Bring up a qeth L2 OSD interface in DPM-managed (HMC) LPAR

* Inspect the interface's MAC address. It should be the same as displayed in the HMC DPM panels.

* Due to the fact that a system is needed where the HMC is in DPM moce (rather than in classic mode) this needs to be tested by IBM.

[Regression Potential]

* There is a certain risk for a regression, since OSA devices are the standard netweork devices on s390x.

* But static network configurations are still more popular for the usually long running workload on s390x and not dynamic assignments.

* On the other hand qeth devices are s390x only, so this will at least not affect common code or code for other architectures.

* The modifications are limited to drivers/s390/net/qeth_*.

* The patches are upstream since quite a while, which speaks for their stability.

[Other Info]

* The upstream patch 21b1702af12e "s390/qeth: improve fallback to random MAC address" got upstream accepted with 4.18, hence is already in all Ubuntu release that are newer than bionic

* And the upstream patch b144b99fff69 "s390/qeth: utilize virtual MAC for Layer2 OSD devices" got upstream accepted with 5.0, hence is also already in all Ubuntu release that are newer than bionic.

__________

---Problem Description---
qeth on a DPM-managed IBM Z machine does not obtain its MAC Address for L2 OSD interfaces from the OSA Network Adapter. Instead it uses a random MAC Address.

This causes connectivity issues in setups where a reliable & pre-determined MAC Address is required - ie. when doing network configuration via DHCP.

---uname output---
Ubuntu 18.04 / vmlinuz-4.15.0-101-generic

Machine Type = IBM z14 GA2

---Debugger---
A debugger is not configured

---Steps to Reproduce---
 - Bring up a qeth L2 OSD interface in DPM-managed LPAR.
- Inspect the interface's MAC Address. It should be the same as displayed in the DPM Panels.

Stack trace output:
 no

Oops output:
 no

System Dump Info:
  The system is not configured to capture a system dump.

-Attach sysctl -a output output to the bug.

Backport of "s390/qeth: improve fallback to random MAC address"

Backport of "s390/qeth: utilize virtual MAC for Layer2 OSD devices"

This ticket is for 18.04 only. Already available with 20.04

bugproxy (bugproxy) on 2020-05-27
tags: added: architecture-s39064 bugnameltc-185982 severity-high targetmilestone-inin18044
Changed in ubuntu:
assignee: nobody → Skipper Bug Screeners (skipper-screen-team)
affects: ubuntu → linux (Ubuntu)
Frank Heimes (fheimes) on 2020-05-27
Changed in linux (Ubuntu):
assignee: Skipper Bug Screeners (skipper-screen-team) → Canonical Kernel Team (canonical-kernel-team)
Changed in ubuntu-z-systems:
assignee: nobody → Skipper Bug Screeners (skipper-screen-team)
status: New → Incomplete
Changed in linux (Ubuntu):
status: New → Incomplete

------- Comment (attachment only) From <email address hidden> 2020-05-27 12:51 EDT-------

------- Comment (attachment only) From <email address hidden> 2020-05-27 12:52 EDT-------

Frank Heimes (fheimes) wrote :

Thanks for sharing the two backports, they apply nicely on bionic master-next.
Unblocking ticket ...

Changed in linux (Ubuntu):
status: Incomplete → Triaged
Changed in ubuntu-z-systems:
status: Incomplete → Triaged
importance: Undecided → High
Frank Heimes (fheimes) wrote :

I found one little issue in the backports (Julian).
They contain a cherry-pick line, but I expected a backport line.

If it's okay for you I just change from:
(cherry picked from commit 21b1702af12eb62bb40d994c9c1546ecacfc8456)
to
(backported from commit 21b1702af12eb62bb40d994c9c1546ecacfc8456)

(same for the 2nd backport).

Frank Heimes (fheimes) wrote :

Kernel SRU request submitted:
https://lists.ubuntu.com/archives/kernel-team/2020-May/thread.html#110417
Updating status to 'In Progress'.

description: updated
Changed in linux (Ubuntu):
status: Triaged → In Progress
Changed in ubuntu-z-systems:
status: Triaged → In Progress
Frank Heimes (fheimes) on 2020-06-03
Changed in linux (Ubuntu Bionic):
status: New → In Progress
Changed in linux (Ubuntu):
status: In Progress → Fix Released
Changed in linux (Ubuntu Focal):
status: New → Fix Released
Changed in linux (Ubuntu Eoan):
status: New → Fix Committed
Frank Heimes (fheimes) wrote :

Patches became upstream accepted with kernel 5.0, hence they are in (Disco) Eoan and newer.
Added all nominations and marked the ones that incl. the fixes as Fix Release.

Changed in linux (Ubuntu Eoan):
status: Fix Committed → Fix Released
Changed in linux (Ubuntu Bionic):
status: In Progress → Fix Committed
Frank Heimes (fheimes) on 2020-06-05
Changed in ubuntu-z-systems:
status: In Progress → Fix Committed

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-bionic' to 'verification-done-bionic'. If the problem still exists, change the tag 'verification-needed-bionic' to 'verification-failed-bionic'.

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-bionic

------- Comment From <email address hidden> 2020-06-10 14:28 EDT-------
Looks good with 4.15.0-107.108, thanks!

Frank Heimes (fheimes) on 2020-06-10
tags: added: verification-done-bionic
removed: verification-needed-bionic
Launchpad Janitor (janitor) wrote :
Download full text (17.7 KiB)

This bug was fixed in the package linux - 4.15.0-109.110

---------------
linux (4.15.0-109.110) bionic; urgency=medium

  * Packaging resync (LP: #1786013)
    - [Packaging] update helper scripts
    - update dkms package versions

  * Build and ship a signed wireguard.ko (LP: #1861284)
    - [Packaging] wireguard -- add support for building signed .ko

  * CVE-2019-16089
    - SAUCE: nbd_genl_status: null check for nla_nest_start

  * CVE-2019-19642
    - kernel/relay.c: handle alloc_percpu returning NULL in relay_open

  * CVE-2019-12380
    - efi/x86/Add missing error handling to old_memmap 1:1 mapping code

  * CVE-2019-19039 // CVE-2019-19377
    - btrfs: sink flush_fn to extent_write_cache_pages
    - btrfs: extent_io: Move the BUG_ON() in flush_write_bio() one level up
    - btrfs: Don't submit any btree write bio if the fs has errors

  * CVE-2019-19036
    - btrfs: volumes: Use more straightforward way to calculate map length
    - btrfs: tree-checker: Try to detect missing INODE_ITEM
    - Btrfs: tree-checker: detect file extent items with overlapping ranges
    - Btrfs: make tree checker detect checksum items with overlapping ranges
    - btrfs: harden agaist duplicate fsid on scanned devices
    - Btrfs: fix missing data checksums after replaying a log tree
    - btrfs: reloc: fix reloc root leak and NULL pointer dereference
    - btrfs: Validate child tree block's level and first key
    - btrfs: Detect unbalanced tree with empty leaf before crashing btree
      operations

  * CVE-2019-19318
    - btrfs: tree-checker: Replace root parameter with fs_info
    - btrfs: tree-checker: Check level for leaves and nodes
    - btrfs: tree-checker: get fs_info from eb in generic_err
    - btrfs: tree-checker: get fs_info from eb in file_extent_err
    - btrfs: tree-checker: get fs_info from eb in check_csum_item
    - btrfs: tree-checker: get fs_info from eb in dir_item_err
    - btrfs: tree-checker: get fs_info from eb in check_dir_item
    - btrfs: tree-checker: get fs_info from eb in block_group_err
    - btrfs: tree-checker: get fs_info from eb in check_block_group_item
    - btrfs: tree-checker: get fs_info from eb in check_extent_data_item
    - btrfs: tree-checker: get fs_info from eb in check_leaf_item
    - btrfs: tree-checker: get fs_info from eb in check_leaf
    - btrfs: tree-checker: get fs_info from eb in chunk_err
    - btrfs: tree-checker: get fs_info from eb in dev_item_err
    - btrfs: tree-checker: get fs_info from eb in check_dev_item
    - btrfs: tree-checker: get fs_info from eb in check_inode_item
    - btrfs: tree-checker: Add ROOT_ITEM check
    - btrfs: tree-checker: Add EXTENT_ITEM and METADATA_ITEM check
    - btrfs: tree-checker: Add simple keyed refs check
    - btrfs: tree-checker: Add EXTENT_DATA_REF check
    - btrfs: tree-checker: Fix wrong check on max devid
    - Btrfs: fix selftests failure due to uninitialized i_mode in test inodes

  * CVE-2019-19813 // CVE-2019-19816
    - btrfs: Refactor parameter of BTRFS_MAX_DEVS() from root to fs_info
    - btrfs: Move btrfs_check_chunk_valid() to tree-check.[ch] and export it
    - btrfs: tree-checker: Make chunk item checker messages more readable
    - btrfs...

Changed in linux (Ubuntu Bionic):
status: Fix Committed → Fix Released
Frank Heimes (fheimes) on 2020-07-01
Changed in ubuntu-z-systems:
status: Fix Committed → Fix Released
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2020-07-02 07:14 EDT-------
IBM bugzilla status-> closed, Fix Released with 18.04

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers