summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/systemd-networkd.service.xml27
-rw-r--r--src/network/networkd-address.c7
2 files changed, 28 insertions, 6 deletions
diff --git a/man/systemd-networkd.service.xml b/man/systemd-networkd.service.xml
index 527742cea3..9c7ca83438 100644
--- a/man/systemd-networkd.service.xml
+++ b/man/systemd-networkd.service.xml
@@ -61,11 +61,16 @@
network devices as they appear, as well as creating virtual
network devices.</para>
+ <para>To configure low-level link settings independently of
+ networks, see
+ <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+ .</para>
+
<para>Network configurations applied before networkd is started
- are not removed, and configuration applied by networkd are not
- removed when networkd exits. This ensures restarting networkd
- does not cut the network connection, and, in particular, that
- it is safe to transition between the initrd and the real root,
+ are not removed, and static configuration applied by networkd
+ are not removed when networkd exits. This ensures restarting
+ networkd does not cut the network connection, and, in particular,
+ that it is safe to transition between the initrd and the real root,
and back.</para>
</refsect1>
@@ -105,14 +110,15 @@
<varlistentry>
<term><varname>Kind</varname></term>
<listitem>
- <para>The netdev kind. Currently, <literal>bridge</literal>, <literal>bond</literal> and <literal>vlan</literal>
+ <para>The netdev kind. Currently, <literal>bridge</literal>,
+ <literal>bond</literal> and <literal>vlan</literal>
are supported. This option is compulsory.</para>
</listitem>
</varlistentry>
</variablelist>
<para>The <literal>[VLAN]</literal> section only applies for netdevs of kind <literal>vlan</literal>,
- and accepts the following keys:</para>
+ and accepts the following key:</para>
<variablelist class='network-directives'>
<varlistentry>
@@ -252,6 +258,15 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><varname>Broadcast</varname></term>
+ <listitem>
+ <para>The broadcast address, which must be in the format described in
+ <citerefentry><refentrytitle>inet_pton</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ . This key only applies to IPv4 addresses. If it is not given, it is
+ derived from the <literal>Address</literal> key.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><varname>Label</varname></term>
<listitem>
<para>An address label.</para>
diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c
index 560605408f..28dcf14c6e 100644
--- a/src/network/networkd-address.c
+++ b/src/network/networkd-address.c
@@ -275,6 +275,13 @@ int config_parse_broadcast(const char *unit,
if (r < 0)
return r;
+ if (n->family == AF_INET6) {
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL,
+ "Broadcast is not valid for IPv6 addresses, "
+ "ignoring assignment: %s", address);
+ return 0;
+ }
+
r = net_parse_inaddr(address, &n->family, &n->broadcast);
if (r < 0) {
log_syntax(unit, LOG_ERR, filename, line, EINVAL,