org.freedesktop.network1 - Man Page

The D-Bus interface of systemd-networkd

Introduction

systemd-networkd.service(8) is a system service that manages and configures network interfaces​. This page describes the D-Bus interface​.

The Manager Object

The service exposes the following interfaces on the Manager object on the bus:

node /org/freedesktop/network1 {
  interface org​.freedesktop​.network1​.Manager {
    methods:
      ListLinks(out a(iso) links);
      GetLinkByName(in  s name,
                    out i ifindex,
                    out o path);
      GetLinkByIndex(in  i ifindex,
                     out s name,
                     out o path);
      SetLinkNTP(in  i ifindex,
                 in  as servers);
      SetLinkDNS(in  i ifindex,
                 in  a(iay) addresses);
      SetLinkDNSEx(in  i ifindex,
                   in  a(iayqs) addresses);
      SetLinkDomains(in  i ifindex,
                     in  a(sb) domains);
      SetLinkDefaultRoute(in  i ifindex,
                          in  b enable);
      SetLinkLLMNR(in  i ifindex,
                   in  s mode);
      SetLinkMulticastDNS(in  i ifindex,
                          in  s mode);
      SetLinkDNSOverTLS(in  i ifindex,
                        in  s mode);
      SetLinkDNSSEC(in  i ifindex,
                    in  s mode);
      SetLinkDNSSECNegativeTrustAnchors(in  i ifindex,
                                        in  as names);
      RevertLinkNTP(in  i ifindex);
      RevertLinkDNS(in  i ifindex);
      RenewLink(in  i ifindex);
      ForceRenewLink(in  i ifindex);
      ReconfigureLink(in  i ifindex);
      Reload();
      DescribeLink(in  i ifindex,
                   out s json);
      Describe(out s json);
    properties:
      readonly s OperationalState = '​.​.​.';
      readonly s CarrierState = '​.​.​.';
      readonly s AddressState = '​.​.​.';
      readonly s IPv4AddressState = '​.​.​.';
      readonly s IPv6AddressState = '​.​.​.';
      readonly s OnlineState = '​.​.​.';
      @org​.freedesktop​.DBus​.Property​.EmitsChangedSignal("const")
      readonly t NamespaceId = ​.​.​.;
      @org​.freedesktop​.DBus​.Property​.EmitsChangedSignal("false")
      readonly u NamespaceNSID = ​.​.​.;
  };
  interface org​.freedesktop​.DBus​.Peer { ​.​.​. };
  interface org​.freedesktop​.DBus​.Introspectable { ​.​.​. };
  interface org​.freedesktop​.DBus​.Properties { ​.​.​. };
};

Provides information about the manager​.

Properties

NamespaceId contains the inode number of the network namespace that the network service runs in​. A client may compare this with the inode number of its own network namespace to verify whether the service manages the same network namespace​.

NamespaceNSID contains the "nsid" identifier the kernel maintains for the network namespace, if there's one assigned​.

Network Object

node /org/freedesktop/network1/network/_1 {
  interface org​.freedesktop​.network1​.Network {
    properties:
      @org​.freedesktop​.DBus​.Property​.EmitsChangedSignal("const")
      readonly s Description = '​.​.​.';
      @org​.freedesktop​.DBus​.Property​.EmitsChangedSignal("const")
      readonly s SourcePath = '​.​.​.';
      @org​.freedesktop​.DBus​.Property​.EmitsChangedSignal("const")
      readonly as MatchMAC = ['​.​.​.', ​.​.​.];
      @org​.freedesktop​.DBus​.Property​.EmitsChangedSignal("const")
      readonly as MatchPath = ['​.​.​.', ​.​.​.];
      @org​.freedesktop​.DBus​.Property​.EmitsChangedSignal("const")
      readonly as MatchDriver = ['​.​.​.', ​.​.​.];
      @org​.freedesktop​.DBus​.Property​.EmitsChangedSignal("const")
      readonly as MatchType = ['​.​.​.', ​.​.​.];
      @org​.freedesktop​.DBus​.Property​.EmitsChangedSignal("const")
      readonly as MatchName = ['​.​.​.', ​.​.​.];
  };
  interface org​.freedesktop​.DBus​.Peer { ​.​.​. };
  interface org​.freedesktop​.DBus​.Introspectable { ​.​.​. };
  interface org​.freedesktop​.DBus​.Properties { ​.​.​. };
};

Provides information about ​.network files​.

DHCP Server Object

node /org/freedesktop/network1/link/_1 {
  interface org​.freedesktop​.network1​.DHCPServer {
    properties:
      readonly a(uayayayayt) Leases = [​.​.​.];
      @org​.freedesktop​.DBus​.Property​.EmitsChangedSignal("const")
      readonly u PoolSize = ​.​.​.;
      @org​.freedesktop​.DBus​.Property​.EmitsChangedSignal("const")
      readonly u PoolOffset = ​.​.​.;
  };
  interface org​.freedesktop​.DBus​.Peer { ​.​.​. };
  interface org​.freedesktop​.DBus​.Introspectable { ​.​.​. };
  interface org​.freedesktop​.DBus​.Properties { ​.​.​. };
  interface org​.freedesktop​.network1​.Link { ​.​.​. };
};

Provides information about the DHCP server​. The Leases property contains the currently active leases​. The PoolSize property contains the total number of addresses in the dynamic address pool​. The PoolOffset property contains the offset from the subnet base address where the pool starts​. These correspond to the PoolSize= and PoolOffset= settings in systemd.network(5)​. UINT32_MAX is used as a sentinel value for PoolSize and PoolOffset to indicate that the information is unavailable (i​.e​. no DHCP server is configured or the link is in relay mode), rather than a valid pool size or offset​.

DHCPV4 Client Object

node /org/freedesktop/network1/link/_1 {
  interface org​.freedesktop​.network1​.DHCPv4Client {
    properties:
      readonly s State = '​.​.​.';
  };
  interface org​.freedesktop​.DBus​.Peer { ​.​.​. };
  interface org​.freedesktop​.DBus​.Introspectable { ​.​.​. };
  interface org​.freedesktop​.DBus​.Properties { ​.​.​. };
  interface org​.freedesktop​.network1​.Link { ​.​.​. };
};

Provides information about DHCPv4 client status​.

DHCPV6 Client Object

node /org/freedesktop/network1/link/_1 {
  interface org​.freedesktop​.network1​.DHCPv6Client {
    properties:
      readonly s State = '​.​.​.';
  };
  interface org​.freedesktop​.DBus​.Peer { ​.​.​. };
  interface org​.freedesktop​.DBus​.Introspectable { ​.​.​. };
  interface org​.freedesktop​.DBus​.Properties { ​.​.​. };
  interface org​.freedesktop​.network1​.Link { ​.​.​. };
};

Provides information about DHCPv6 client status​.

Examples

Example ​1. ​Introspect org​.freedesktop​.network1​.Manager on the bus

$ gdbus introspect --system \
  --dest org​.freedesktop​.network1 \
  --object-path /org/freedesktop/network1

Example ​2. ​Introspect org​.freedesktop​.network1​.Link on the bus

$ gdbus introspect --system \
  --dest org​.freedesktop​.network1 \
  --object-path /org/freedesktop/network1/link/_11

Versioning

These D-Bus interfaces follow the usual interface versioning guidelines[1]​.

History

DHCP Server Object

PoolSize and PoolOffset were added in version 261​.

DHCPv4 Client Object

State was added in version 255​.

DHCPv6 Client Object

State was added in version 255​.

Manager Object

NamespaceNSID was added in version 256​.

See Also

systemd(1), systemd-networkd.service(8), networkctl(1)

Notes

1.

the usual interface versioning guidelines
https://0pointer.de/blog/projects/versioning-dbus.html

Referenced By

systemd.directives(7), systemd.index(7), systemd-networkd.service(8).

systemd 262~rc2