]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
networkd: replace D-Bus with Varlink in networkctl (#40780)
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 23 Mar 2026 05:55:57 +0000 (14:55 +0900)
committerGitHub <noreply@github.com>
Mon, 23 Mar 2026 05:55:57 +0000 (14:55 +0900)
networkctl previously called networkd over D-Bus for several operations.
This replaces all of those calls with Varlink, making it the sole IPC
mechanism between networkctl and networkd.

 New Varlink methods added to networkd:

- io.systemd.Network.Link (new sub-interface for link-specific
operations):

- Link.Describe — replaces Link.BitRates + DHCPServer.Leases D-Bus
properties
- Link.Up — replaces Link.SetUp D-Bus method (moved from
**io.systemd.Network.LinkUp**)
- Link.Down — replaces Link.SetDown D-Bus method (moved from
**io.systemd.Network.LinkDown**)
      - Link.Renew  — replaces Link.Renew D-Bus method
      - Link.ForceRenew   — replaces Link.ForceRenew D-Bus method
      - Link.Reconfigure  — replaces Link.Reconfigure D-Bus method

  - io.systemd.service
     - Reload            — replaces Manager.Reload D-Bus method

  Supporting changes:
- link_get_bit_rates() extracted from networkd-link.c into
networkd-speed-meter.c
- BitRates added to link_build_json() so Link.Describe returns them
inline
alongside the existing interface description, replacing a separate D-Bus
read
- link_reconfigure_full() and manager_reload() extended to accept
sd_varlink*
for deferred async replies (consistent with existing sd_bus_message*
path)
  - DHCP lease display (networkctl status) uses Link.Describe instead of
DHCPServer.Leases; falls back to ClientId when hostname is not present


Trivial merge