diff --git a/man/networkd.conf.xml b/man/networkd.conf.xml
index f611e244f5..8dd1181508 100644
--- a/man/networkd.conf.xml
+++ b/man/networkd.conf.xml
@@ -393,6 +393,67 @@ DUIDRawData=00:00:ab:11:f9:2a:c2:77:29:f9:5c:00
+
+ [DHCPRelay] Section Options
+ The [DHCPRelay] section contains host-wide settings for the DHCP relay agent.
+
+
+
+
+ ServerAddress=
+
+ Specifies the IPv4 address of the upstream DHCP server. This is required for the host to act
+ as a DHCP relay agent.
+
+
+
+
+
+
+ OverrideServerIdentifier=
+
+ Takes a boolean value. When enabled, the Server Identifier Override sub-option and the Relay
+ Agent Flags sub-option in the Relay Agent Information option will be appended to the DHCP message
+ forwarded to the upstream DHCP server. Defaults to false.
+
+
+
+
+
+
+ RemoteId=
+
+ Specifies the remote ID, which is typically used by DHCP servers to identify the DHCP relay
+ agent. Takes a data type and data separated with a colon
+ (type:value). The type
+ takes one of uint8, uint16, uint32,
+ ipv4address, ipv6address, or string.
+ Special characters in the data string may be escaped using
+ C-style escapes.
+ If unset, a UUID generated from the local machine ID will be used.
+
+
+
+
+
+
+ ExtraOption=
+
+ Specifies an extra sub-option in the Relay Agent Information option, which is appended to
+ DHCP messages forwarded to the upstream DHCP server. Takes a sub-option code, data type, and data
+ separated with a colon
+ (code:type:value).
+ The code is an integer in 1…254. See RemoteId= in the above for the acceptable
+ type and data. This setting can be specified multiple times. When an empty string is specified,
+ all previous assignments are cleared. Defaults to unset, and no extra sub-option will be appended.
+
+
+
+
+
+
+
+
[DHCPServer] Section Options
diff --git a/man/systemd.network.xml b/man/systemd.network.xml
index d62e4d6232..fcb700bff0 100644
--- a/man/systemd.network.xml
+++ b/man/systemd.network.xml
@@ -435,6 +435,26 @@
+
+ DHCPRelay=
+
+ Takes one of upstream or downstream. When specified,
+ the host acts as a DHCP relay agent. When set to upstream, the interface behaves
+ as an upstream interface of the DHCP relay agent. When set to downstream, the
+ interface behaves as a downstream interface of the DHCP relay agent. To make the DHCP relay agent
+ work, at least one upstream interface and one downstream interface must be configured on the host.
+ This requires ServerAddress= in the [DHCPRelay] section to be configured in
+ networkd.conf. If ServerAddress= is not configured, this
+ setting is ignored. See
+ networkd.conf5
+ for more details about ServerAddress= and other host-wide settings.
+ Also, further per-interface settings can be configured in the [DHCPRelay] section described below.
+ Defaults to unset, and the interface is not used for DHCP relay forwarding.
+
+
+
+
+
DHCPServer=
@@ -3868,6 +3888,104 @@ Token=prefixstable:2002:da8:1::
+
+ [DHCPRelay] Section Options
+ The [DHCPRelay] section contains per-interface settings for the DHCP relay agent. The settings in
+ this section are only used when DHCPRelay= in the [Network] section is configured.
+
+
+
+
+
+ AgentAddress=
+
+ Takes an IPv4 address. The specified address is used as the source IP address of packets
+ forwarded to the upstream DHCP server. The address may also be used for the Server Identifier
+ Override sub-option and the Link Selection sub-option in the Relay Agent Information option
+ appended to DHCP messages forwarded to the upstream DHCP server. This setting applies to both
+ upstream and downstream interfaces. Defaults to unset. If unset, a statically configured IPv4
+ address in the .network file is selected automatically. When multiple static IPv4 addresses are
+ configured, it is recommended to specify this setting explicitly.
+
+
+
+
+
+
+ GatewayAddress=
+
+ Takes an IPv4 address. The specified address is set to the giaddr field of
+ the DHCP message header when the DHCP message is forwarded to the upstream DHCP server. This is
+ used only when DHCPRelay=downstream, and ignored otherwise. Defaults to unset,
+ and the same address specified with AgentAddress= will be used.
+
+
+
+
+
+
+ CircuitId=
+
+ Specifies the circuit ID of the downstream interface. This is set as the Circuit ID
+ sub-option in the Relay Agent Information option in the forwarded DHCP message. Takes a data type
+ and data separated with a colon
+ (type:value). The type
+ takes one of uint8, uint16, uint32,
+ ipv4address, ipv6address, or string.
+ Special characters in the data string may be escaped using
+ C-style escapes.
+ This is used only when DHCPRelay=downstream, and ignored otherwise. If unset,
+ the name of the interface will be used.
+
+
+
+
+
+
+ VirtualSubnetSelection=
+
+ Specifies a unique identifier used by the DHCP server to select the downstream subnet
+ independently of giaddr. This value is used as the Virtual Subnet Selection sub-option in the Relay
+ Agent Information option in the forwarded DHCP message. Takes a value in the same format as
+ CircuitId=. This is used only when DHCPRelay=downstream, and
+ ignored otherwise. Defaults to unset, and the sub-option is not set.
+
+
+
+
+
+
+ ExtraOption=
+
+ Specifies an extra sub-option in the Relay Agent Information option, which is appended to
+ DHCP messages forwarded to the upstream DHCP server. Takes a sub-option code, data type, and data
+ separated with a colon
+ (code:type:value).
+ The code is an integer in 1…254. See CircuitId= in the above for the acceptable
+ type and data. This setting can be specified multiple times. When an empty string is specified,
+ all previous assignments are cleared. This is used only when
+ DHCPRelay=downstream, and ignored otherwise. Defaults to unset, and no extra
+ sub-option will be appended.
+
+
+
+
+
+
+ InterfacePriority=
+
+ Specifies the priority of the upstream interface. Takes an integer value. When the host has
+ multiple upstream interfaces, the upstream interface with the highest (largest) priority will be
+ used for forwarding DHCP messages to the upstream DHCP server. When multiple interfaces have the
+ same priority, which interface is used is unspecified. This is used only when
+ DHCPRelay=upstream, and ignored otherwise. Defaults to zero.
+
+
+
+
+
+
+
[DHCPServer] Section Options
The [DHCPServer] section contains settings for the DHCP server, if enabled via the