diff --git a/man/systemd.network.xml b/man/systemd.network.xml
index 53221cbd5e..c3836b0446 100644
--- a/man/systemd.network.xml
+++ b/man/systemd.network.xml
@@ -2603,6 +2603,16 @@ NFTSet=prefix:netdev:filter:eth_ipv4_prefix
+
+ BOOTP=
+
+ Takes a boolean. When enabled, the DHCPv4 client will be configured to communicate with BOOTP
+ servers, rather than with DHCP servers. Defaults to off.
+
+
+
+
+
diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
index 7bb203e70a..981b28b777 100644
--- a/src/network/networkd-dhcp4.c
+++ b/src/network/networkd-dhcp4.c
@@ -1498,6 +1498,11 @@ static int dhcp4_configure(Link *link) {
if (r < 0)
return log_link_debug_errno(link, r, "DHCPv4 CLIENT: Failed to allocate DHCPv4 client: %m");
+ r = sd_dhcp_client_set_bootp(link->dhcp_client, link->network->dhcp_use_bootp);
+ if (r < 0)
+ return log_link_debug_errno(link, r, "DHCPv4 CLIENT: Failed to %s BOOTP: %m",
+ enable_disable(link->network->dhcp_use_bootp));
+
r = sd_dhcp_client_attach_event(link->dhcp_client, link->manager->event, 0);
if (r < 0)
return log_link_debug_errno(link, r, "DHCPv4 CLIENT: Failed to attach event to DHCPv4 client: %m");
diff --git a/src/network/networkd-network-gperf.gperf b/src/network/networkd-network-gperf.gperf
index 54d2783c80..36b833ef36 100644
--- a/src/network/networkd-network-gperf.gperf
+++ b/src/network/networkd-network-gperf.gperf
@@ -269,6 +269,7 @@ DHCPv4.QuickAck, config_parse_bool,
DHCPv4.RequestOptions, config_parse_dhcp_request_options, AF_INET, 0
DHCPv4.Anonymize, config_parse_bool, 0, offsetof(Network, dhcp_anonymize)
DHCPv4.SendHostname, config_parse_dhcp_send_hostname, AF_INET, 0
+DHCPv4.BOOTP, config_parse_bool, 0, offsetof(Network, dhcp_use_bootp)
DHCPv4.Hostname, config_parse_hostname, 0, offsetof(Network, dhcp_hostname)
DHCPv4.Label, config_parse_dhcp_label, 0, offsetof(Network, dhcp_label)
DHCPv4.RequestBroadcast, config_parse_tristate, 0, offsetof(Network, dhcp_broadcast)
diff --git a/src/network/networkd-network.h b/src/network/networkd-network.h
index 0808fee694..51c9160760 100644
--- a/src/network/networkd-network.h
+++ b/src/network/networkd-network.h
@@ -114,6 +114,7 @@ typedef struct Network {
/* DHCP Client Support */
AddressFamily dhcp;
struct in_addr dhcp_request_address;
+ bool dhcp_use_bootp;
DHCPClientIdentifier dhcp_client_identifier;
DUID dhcp_duid;
uint32_t dhcp_iaid;