Add ID_NET_NAME_INCLUDE_DOMAIN property support to systemd
| Affects | Status | Importance | Assigned to | Milestone | ||
|---|---|---|---|---|---|---|
| systemd (Ubuntu) | Status tracked in Resolute | |||||
| Jammy |
New
|
Undecided
|
Unassigned | |||
| Noble |
New
|
Undecided
|
Unassigned | |||
| Plucky |
Won't Fix
|
Undecided
|
Unassigned | |||
| Questing |
Fix Released
|
Undecided
|
Unassigned | |||
| Resolute |
Fix Released
|
Undecided
|
Unassigned | |||
Bug Description
[Impact]
* This SRU back ports support for the new udev property ID_NET_
* In current Ubuntu LTS releases, systemd-udevd always includes the PCI domain in network interface names whenever the PCI domain index is greater than 0. This results in interface names such as:
With domain: enP2p0s0
Without domain: enp0s0
* There is no mechanism in Jammy/Noble/
* On Microsoft Azure, MANA devices commonly appear under non-zero PCI domains. However, Azure platform expectations and tooling assume interface names do not include the PCI domain segment. As a result, MANA interfaces currently receive unstable or unexpected names on Ubuntu LTS.
* As part of this change corresponding hwdb entry is added for MANA devices (PCI Vendor 0x1414, Device 0x00ba) which explicitly sets:
ID_NET_
* This SRU consists of four components:
- Core Support (net_id), upstream 19491cc:
Add recognition of ID_NET_
- MANA Enablement (hwdb), upstream 9311c28:
Add a new hwdb entry matching the MANA PCI ID to set ID_NET_
- udev/rules.d ordering fix, upstream a7deadd:
Ensure hwdb properties are imported before the net_id builtin runs, so the new property is honored.
- jammy-only helper, upstream 15345fc:
Backport device_
* Upstream patches which are back ported as part of this SRU are already available in Resolute and partially in Questing
[Test Plan]
Test 1: MANA enablement on Azure
Provision an Ubuntu Jammy or Noble VM with MANA support (e.g., Standard_D*v5).
Verify the MANA NIC is assigned a non-zero PCI domain.
Install the updated systemd package and reboot.
Run:
udevadm info /sys/class/
Verify:
ID_NET_
Verify:
The interface name does not include the domain segment.
Example expected transformation:
Before: enP2p0s0
After: enp0s0
Confirm normal network connectivity after rename.
Test 2: Mock virtio_net device on PCI domain > 0
Goal of this test is to mock virtio_net device on PCI domain 1 and verify if ID_NET_NAME_PATH is set accordingly.
For this test umockdev can be used to modify PCI domain on already existing device.
1. Add virtio_net to hwdb
sudo nano /usr/lib/
# Disable inclusion of PCI domain in interface names on Azure MANA
pci:v00001414d0
ID_NET_
pci:v00001AF4d0
ID_NET_
2. Update hwdb
sudo systemd-hwdb update
3. Check current settings:
systemd-hwdb query "pci:v00001AF4d
ID_VENDOR_
ID_MODEL_
ID_NET_
4. Mock virtio device on PCI domain 1
umockdev-run --device domain1.umockdev -- bash
5. test net_id and check ID_NET_NAME_PATH
udevadm test-builtin net_id /sys/devices/
expected output:
ID_NET_
[Where Problems Could Occur]
1. Interface renaming due to overly broad hwdb matching
If the hwdb entry incorrectly matches non-MANA devices, those devices could receive ID_NET_
2. Rule ordering changes
Commit a7deadd ensures hwdb is imported before running the net_id builtin.
Any custom site rules relying on the previous order may behave differently, although upstream considers the new ordering correct.
3. Jammy Backport Risk
Jammy carries the most technical risk because it predates all upstream changes related to device_
This manual backporting increases the chance of subtle issues in property parsing, fallback logic, boolean evaluation, and overall consistency. Any such error could cause system-wide misinterpretation of udev properties, not just for network devices. This is the most significant risk area of the SRU.
[Other Info]
* Backport Strategy
- Noble:
Core net_id support + MANA hwdb entry + ordering fix.
- Jammy:
Everything required for Noble plus the helper function device_
- Questing:
Only requires the core support patch (19491cc), as the other components are already present.
* domain1.umockdev file used in Test2 added as attachment
* noble systemd with patches applied is available in ppa: https:/
* Upstream Commits Included
https:/
https:/
https:/
https:/
| tags: | added: systemd-sru-next |
| Changed in systemd (Ubuntu Plucky): | |
| status: | New → Won't Fix |
| Changed in systemd (Ubuntu Questing): | |
| status: | New → In Progress |
| tags: | removed: block-proposed-questing |

umockdev dummy file