Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Stop publishing deprecated ZInfoDevice.Network#5283

Merged
OhmSpectator merged 1 commit into
lf-edge:masterfrom
milan-zededa:deprecated-network-info
Oct 10, 2025
Merged

Stop publishing deprecated ZInfoDevice.Network#5283
OhmSpectator merged 1 commit into
lf-edge:masterfrom
milan-zededa:deprecated-network-info

Conversation

@milan-zededa

@milan-zededa milan-zededa commented Oct 6, 2025

Copy link
Copy Markdown
Contributor

Description

ZInfoDevice.Network (ZInfoNetwork) was deprecated more than five years ago in favour of ZInfoDevice.SystemAdapter (SystemAdapterInfo).

Since the deprecation, most newly added network fields have been placed in SystemAdapterInfo. Some fields were duplicated into ZInfoNetwork for backwards compatibility, but a number of newer fields exist only in SystemAdapterInfo.

The API explicitly states:

  // OBSOLETE. The information will be provided by DevicePort instead.
  // Newer versions will not fill in this information. Controller needs
  // to check if this is empty - if yes, use the DevicePortStatus instead.
  repeated ZInfoNetwork network = 13;

The commercial controller implementation follows this guidance: as long as the deprecated ZInfoDevice.Network is published non-empty, it uses it instead of reading the preferred SystemAdapterInfo. As a result, publishing a non-nil ZInfoNetwork can cause controllers to miss fields present only in SystemAdapterInfo (config_source, mtu, domainname).

To ensure controllers observe the up-to-date network information, stop publishing ZInfoDevice.Network. This forces controllers to read SystemAdapterInfo (where current fields live) rather than relying on the deprecated ZInfoNetwork.

How to test and validate this PR

Deploy an edge node and verify that the controller correctly reports (via its API and UI) all network adapter status fields, including IP addresses assigned, MAC address, MTU, configuration source, and DNS information. Ideally, perform this check across all types of network adapters: Ethernet, cellular, Wi-Fi, and VLAN.

Changelog notes

Stop publishing deprecated ZInfoDevice.Network, forcing the controller to switch to SystemAdapterInfo, which contains additional network fields added after the deprecation.

PR Backports

This change is required only for the upcoming LTS release to ensure that the recently added config_source field in SystemAdapterInfo is correctly processed by the controller. For older LTS versions, it is preferable to keep the existing EVE behavior for network info publishing unchanged.

- 14.5-stable: No.
- 13.4-stable: No.

Checklist

  • I've provided a proper description
  • I've added the proper documentation
  • I've tested my PR on amd64 device
  • I've tested my PR on arm64 device
  • I've written the test verification instructions
  • I've set the proper labels to this PR
  • I've checked the boxes above, or I've provided a good reason why I didn't check them.

@milan-zededa milan-zededa self-assigned this Oct 6, 2025
@milan-zededa milan-zededa added the main-quest The fate of the project rests on this PR. Prioritise review to advance the storyline! label Oct 6, 2025
@milan-zededa

Copy link
Copy Markdown
Contributor Author

Keeping this as Draft while we continue testing end-to-end against the commercial controller...

@milan-zededa

Copy link
Copy Markdown
Contributor Author

Tested end-to-end, no issues found, marking as ready for review.

@milan-zededa milan-zededa marked this pull request as ready for review October 7, 2025 10:02
@milan-zededa

milan-zededa commented Oct 7, 2025

Copy link
Copy Markdown
Contributor Author

I need to make a few small changes in Eden, which is currently using and depending on that obsolete network information. Until those changes are made, some tests (actually just info_test from smoke tests) will fail. I’m marking this PR as draft again to prevent accidental merging.

@milan-zededa

Copy link
Copy Markdown
Contributor Author

Keeping this in the draft state until #5299 is merged.
But we definitely need this in the upcoming LTS.

ZInfoDevice.Network (ZInfoNetwork) was deprecated more than five years ago
in favour of ZInfoDevice.SystemAdapter (SystemAdapterInfo).

Since the deprecation, most newly added network fields have been placed in
SystemAdapterInfo. Some fields were duplicated into ZInfoNetwork for
backwards compatibility, but a number of newer fields exist only in
SystemAdapterInfo.

The API explicitly states:

```
  // OBSOLETE. The information will be provided by DevicePort instead.
  // Newer versions will not fill in this information. Controller needs
  // to check if this is empty - if yes, use the DevicePortStatus instead.
  repeated ZInfoNetwork network = 13;
```

The commercial controller implementation follows this guidance: if
ZInfoDevice.Network is non-empty, it uses it **instead of** reading
SystemAdapterInfo. As a result, publishing a non-nil ZInfoNetwork can cause
controllers to miss fields present only in SystemAdapterInfo.

To ensure controllers observe the up-to-date network information, stop
publishing ZInfoDevice.Network. This forces controllers to read
SystemAdapterInfo (where current fields live) rather than relying on the
deprecated ZInfoNetwork.

Signed-off-by: Milan Lenco <[email protected]>
@milan-zededa milan-zededa force-pushed the deprecated-network-info branch from e0b9299 to 6fa6c8c Compare October 10, 2025 13:50
@milan-zededa milan-zededa marked this pull request as ready for review October 10, 2025 13:51
@milan-zededa

Copy link
Copy Markdown
Contributor Author

Returning back to ready-for-merge state, eden tests should now pass...

@uncleDecart

uncleDecart commented Oct 10, 2025

Copy link
Copy Markdown
Member

@milan-zededa , did we bump Eden version in EVE repo?

edit: found PR

@OhmSpectator

Copy link
Copy Markdown
Member

Yetus mumbles something useless again:

pkg/pillar/level=error msg="Running error: can't run linter goanalysis_metalinter\ndepguard: must have an Allow and/or Deny package list"
pkg/pillar/level=warning msg="[runner] Can't run linter goanalysis_metalinter: depguard: must have an Allow and/or Deny package list"

@OhmSpectator OhmSpectator merged commit 81a3ad4 into lf-edge:master Oct 10, 2025
43 of 44 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

main-quest The fate of the project rests on this PR. Prioritise review to advance the storyline!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants