<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/src/system/vyos-net-name-resolve.py, branch rolling</title>
<subtitle>VyOS command definitions, scripts, and utilities (mirror of https://github.com/vyos/vyos-1x.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/'/>
<updated>2026-09-09T19:29:06+00:00</updated>
<entry>
<title>interfaces: T9269: do not run the hw-id naming pass in a container</title>
<updated>2026-09-09T19:29:06+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-09-09T19:29:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=fdc0c4f48e6839142db30c2fb9c6d5c84b9eba90'/>
<id>urn:sha1:fdc0c4f48e6839142db30c2fb9c6d5c84b9eba90</id>
<content type='text'>
Container interfaces are veth pairs created by the runtime. They have no
backing bus device in sysfs, so discover_physical_interfaces() never
considers them, and their MAC is assigned by the host and regenerated on
every start.

A pending node could thus never be resolved. The pass only spent both
bounded hardware waits and then asked for an hw-id that would not
survive a restart:

  interface 'eth0' still has no hw-id configured after this boot's
  naming pass - bind it manually, e.g. ...

Returning before write_status() leaves no status file behind, so
warn_missing_interface_hardware() in vyos-router stays quiet by itself.

setUpModule() pins the detection off for the test module - the build
container would otherwise short-circuit every existing main() test.
</content>
</entry>
<entry>
<title>Merge pull request #5338 from ritika0313/T8329-azure-interface-naming-fix</title>
<updated>2026-08-20T14:24:38+00:00</updated>
<author>
<name>John Estabrook</name>
<email>jestabro@vyos.io</email>
</author>
<published>2026-08-20T14:24:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=b30ccbf4a5fdcc2240664d9b6d3814c90f7b1868'/>
<id>urn:sha1:b30ccbf4a5fdcc2240664d9b6d3814c90f7b1868</id>
<content type='text'>
T8329: Fix interface naming for Azure VF interfaces with Accelerated Networking enabled</content>
</entry>
<entry>
<title>T3871: never guess a pending node's hardware when ambiguous</title>
<updated>2026-08-15T16:10:24+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-13T06:11:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=4b92c2fe6f9928a1ff126c92e89e993de17fb0f5'/>
<id>urn:sha1:4b92c2fe6f9928a1ff126c92e89e993de17fb0f5</id>
<content type='text'>
Reported against the previous PCIe/MAC-sorted replacement fill: on a
real, already-provisioned box (hw-id from historical probe-order
rescan, unrelated to any PCIe/MAC sort), a configured node's address
ended up silently applied to a different physical NIC. Deleting one
interface's hw-id (keeping its settings) while a different, unrelated
interface's config was fully removed in the same boot was enough - the
two freed candidates' MAC order didn't match their old name order, so
the deterministic sort swapped them. Once written back by the rescan
helper, the wrong binding became permanent and self-reinforcing on
every later boot.

There's no way to verify, from MAC and PCIe position alone, which of
several unconfigured candidates is genuinely a given node's own
hardware once its hw-id is gone. Restore strict matching: a node only
recovers its hw-id automatically when it's the sole pending node of its
type this boot and exactly one candidate exists - any other count
leaves it pending and reported rather than guessed. A candidate that
isn't matched this way is not otherwise held back - it still gets an
ordinary, settings-free bootstrap name instead of being lost, just
never inherits another node's configuration.

This necessarily changes what a combined "delete one interface fully,
clear a different one's hw-id" reboot can auto-resolve; the accompanying
test-harness change acknowledges that trade-off explicitly.
</content>
</entry>
<entry>
<title>T8329: Skip enslaved interfaces to be considered as independent physical interfaces during hw-id naming</title>
<updated>2026-08-14T19:03:26+00:00</updated>
<author>
<name>Ritika Chopra</name>
<email>r.chopra@vyos.io</email>
</author>
<published>2026-08-14T19:03:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=a1360d645df8a82cd593d55ca592a8a1d60b34b3'/>
<id>urn:sha1:a1360d645df8a82cd593d55ca592a8a1d60b34b3</id>
<content type='text'>
These interfaces include the Azure VF interfaces which share the same mac address with their master synthetic interface
</content>
</entry>
<entry>
<title>T3871: make boot-time interface naming deterministic and hw-id aware</title>
<updated>2026-08-08T16:33:38+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-06T19:59:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=22cfee116c9935f4a33da4923eff189f2f646371'/>
<id>urn:sha1:22cfee116c9935f4a33da4923eff189f2f646371</id>
<content type='text'>
Multi-vendor PCIe NIC systems could lose or rename Ethernet/wireless
interfaces on boot, because naming was decided from a single per-device
udev event before all hardware had a chance to enumerate.

Replace that with one authoritative pass, run once configuration is
available during router startup: wait for configured hardware, apply
every hw-id binding, and name whatever has none yet by PCIe distance
from the root complex and MAC address - the same result every boot.

A node with its hw-id deleted (NIC replacement) or its whole
configuration removed is treated as an ordinary open slot, filled the
same way - recovering its original hardware whenever the interfaces
that vacated slots this boot also show up as candidates.

Boot now reports any interface still unresolved, and the pass is covered
by a new test suite in vyos-build named: make testifname

Assisted-by: Claude:claude-sonnet-5
</content>
</entry>
</feed>
