diff --git a/man/systemd.network.xml b/man/systemd.network.xml
index abd0abbf9b..bcc86417c6 100644
--- a/man/systemd.network.xml
+++ b/man/systemd.network.xml
@@ -2100,19 +2100,6 @@ Table=1234
information-request. Defaults to unset.
-
-
- RapidCommit=
-
- Takes a boolean. The DHCPv6 client can obtain configuration parameters from a DHCPv6 server through
- a rapid two-message exchange (solicit and reply). When the rapid commit option is enabled by both
- the DHCPv6 client and the DHCPv6 server, the two-message exchange is used, rather than the default
- four-message exchange (solicit, advertise, request, and reply). The two-message exchange provides
- faster client configuration and is beneficial in environments in which networks are under a heavy load.
- See RFC 3315 for details.
- Defaults to true.
-
-
diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
index b42c8487ba..da8a882072 100644
--- a/src/network/networkd-dhcp6.c
+++ b/src/network/networkd-dhcp6.c
@@ -1459,12 +1459,6 @@ static int dhcp6_configure(Link *link) {
if (r < 0)
return log_link_debug_errno(link, r, "DHCPv6 CLIENT: Failed to set ifindex: %m");
- if (link->network->dhcp6_rapid_commit) {
- r = sd_dhcp6_client_set_request_option(client, SD_DHCP6_OPTION_RAPID_COMMIT);
- if (r < 0)
- return log_link_debug_errno(link, r, "DHCPv6 CLIENT: Failed to set request flag for rapid commit: %m");
- }
-
if (link->network->dhcp6_mudurl) {
r = sd_dhcp6_client_set_request_mud_url(client, link->network->dhcp6_mudurl);
if (r < 0)
diff --git a/src/network/networkd-network-gperf.gperf b/src/network/networkd-network-gperf.gperf
index a207e374d5..2a75a98bee 100644
--- a/src/network/networkd-network-gperf.gperf
+++ b/src/network/networkd-network-gperf.gperf
@@ -242,7 +242,6 @@ DHCPv6.UseDNS, config_parse_dhcp_use_dns,
DHCPv6.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp6_use_hostname)
DHCPv6.UseDomains, config_parse_dhcp_use_domains, AF_INET6, 0
DHCPv6.UseNTP, config_parse_dhcp_use_ntp, AF_INET6, 0
-DHCPv6.RapidCommit, config_parse_bool, 0, offsetof(Network, dhcp6_rapid_commit)
DHCPv6.MUDURL, config_parse_mud_url, 0, offsetof(Network, dhcp6_mudurl)
DHCPv6.RequestOptions, config_parse_dhcp_request_options, AF_INET6, 0
DHCPv6.UserClass, config_parse_dhcp_user_or_vendor_class, AF_INET6, offsetof(Network, dhcp6_user_class)
@@ -528,11 +527,12 @@ DHCP.RouteMetric, config_parse_dhcp_or_ra_route_metri
DHCP.RouteTable, config_parse_dhcp_or_ra_route_table, (RTPROT_DHCP<<16) | AF_UNSPEC, 0
DHCP.UseTimezone, config_parse_bool, 0, offsetof(Network, dhcp_use_timezone)
DHCP.ListenPort, config_parse_uint16, 0, offsetof(Network, dhcp_client_port)
-DHCP.RapidCommit, config_parse_bool, 0, offsetof(Network, dhcp6_rapid_commit)
+DHCP.RapidCommit, config_parse_warn_compat, DISABLED_LEGACY, 0
DHCP.ForceDHCPv6PDOtherInformation, config_parse_bool, 0, offsetof(Network, dhcp6_force_pd_other_information)
DHCPv4.UseDomainName, config_parse_dhcp_use_domains, AF_INET, 0
DHCPv4.CriticalConnection, config_parse_tristate, 0, offsetof(Network, dhcp_critical)
DHCPv6.RouteMetric, config_parse_dhcp_or_ra_route_metric, AF_INET6, 0
+DHCPv6.RapidCommit, config_parse_warn_compat, DISABLED_LEGACY, 0
IPv6AcceptRA.DenyList, config_parse_in_addr_prefixes, AF_INET6, offsetof(Network, ndisc_deny_listed_prefix)
IPv6AcceptRA.BlackList, config_parse_in_addr_prefixes, AF_INET6, offsetof(Network, ndisc_deny_listed_prefix)
TrafficControlQueueingDiscipline.Parent, config_parse_qdisc_parent, _QDISC_KIND_INVALID, 0
diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
index c3b408c4e9..a367041e99 100644
--- a/src/network/networkd-network.c
+++ b/src/network/networkd-network.c
@@ -403,7 +403,6 @@ int network_load_one(Manager *manager, OrderedHashmap **networks, const char *fi
.dhcp6_use_dns = true,
.dhcp6_use_hostname = true,
.dhcp6_use_ntp = true,
- .dhcp6_rapid_commit = true,
.dhcp6_duid.type = _DUID_TYPE_INVALID,
.dhcp6_pd = -1,
diff --git a/src/network/networkd-network.h b/src/network/networkd-network.h
index ff9d1338fd..bea882019a 100644
--- a/src/network/networkd-network.h
+++ b/src/network/networkd-network.h
@@ -174,7 +174,6 @@ struct Network {
bool dhcp6_use_hostname;
bool dhcp6_use_ntp;
bool dhcp6_use_ntp_set;
- bool dhcp6_rapid_commit;
bool dhcp6_route_table;
bool dhcp6_route_table_set;
bool dhcp6_route_table_set_explicitly;
diff --git a/test/test-network/conf/dhcp-client-ipv6-rapid-commit.network b/test/test-network/conf/dhcp-client-ipv6-rapid-commit.network
deleted file mode 100644
index 72dfbf1389..0000000000
--- a/test/test-network/conf/dhcp-client-ipv6-rapid-commit.network
+++ /dev/null
@@ -1,8 +0,0 @@
-[Match]
-Name=veth99
-
-[Network]
-DHCP=ipv6
-
-[DHCPv6]
-RapidCommit=false
diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py
index 95d526a7f7..27ccc3ce23 100755
--- a/test/test-network/systemd-networkd-tests.py
+++ b/test/test-network/systemd-networkd-tests.py
@@ -4012,7 +4012,6 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
'dhcp-client-ipv4-only.network',
'dhcp-client-ipv4-use-routes-use-gateway.network',
'dhcp-client-ipv6-only.network',
- 'dhcp-client-ipv6-rapid-commit.network',
'dhcp-client-keep-configuration-dhcp-on-stop.network',
'dhcp-client-keep-configuration-dhcp.network',
'dhcp-client-listen-port.network',
@@ -4193,8 +4192,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
self.assertNotRegex(output, r'9.9.9.9 via 192.168.5.[0-9]* proto dhcp src 192.168.5.[0-9]* metric 1024')
def test_dhcp_client_ipv4_ipv6(self):
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv6-only.network',
- 'dhcp-client-ipv4-only.network')
+ copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv4-only.network')
start_networkd()
self.wait_online(['veth-peer:carrier'])
start_dnsmasq()
@@ -4247,30 +4245,6 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
self.assertTrue(search_words_in_dnsmasq_log('client provides name: test-hostname'))
self.assertTrue(search_words_in_dnsmasq_log('26:mtu'))
- def test_dhcp6_client_settings_rapidcommit_true(self):
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv6-only.network')
- start_networkd()
- self.wait_online(['veth-peer:carrier'])
- start_dnsmasq()
- self.wait_online(['veth99:routable', 'veth-peer:routable'])
-
- output = check_output('ip address show dev veth99')
- print(output)
- self.assertRegex(output, '12:34:56:78:9a:bc')
- self.assertTrue(search_words_in_dnsmasq_log('14:rapid-commit', True))
-
- def test_dhcp6_client_settings_rapidcommit_false(self):
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv6-rapid-commit.network')
- start_networkd()
- self.wait_online(['veth-peer:carrier'])
- start_dnsmasq()
- self.wait_online(['veth99:routable', 'veth-peer:routable'])
-
- output = check_output('ip address show dev veth99')
- print(output)
- self.assertRegex(output, '12:34:56:78:9a:bc')
- self.assertFalse(search_words_in_dnsmasq_log('14:rapid-commit', True))
-
def test_dhcp_client_settings_anonymize(self):
copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-anonymize.network')
start_networkd()