diff --git a/man/systemd.network.xml b/man/systemd.network.xml
index a27f2ff99e..1a33b77002 100644
--- a/man/systemd.network.xml
+++ b/man/systemd.network.xml
@@ -409,11 +409,21 @@
IPv6AcceptRouterAdvertisements=
- Configures Accept Router Advertisements.
- This is enabled if local forwarding is disabled.
- Disabled if local forwarding is enabled.
- Takes a boolean. Defaults to unset.
-
+ Force the setting of accept_ra
+ (router advertisements) setting for the interface.
+ When unset, the kernel default is used, and router
+ advertisements are accepted only when local forwarding
+ is disabled for that interface.
+ Takes a boolean. If true, router advertisements are
+ accepted, when false, router advertisements are ignored,
+ independently of the local forwarding state.
+
+ See
+ ip-sysctl.txt
+ in the kernel documentation, but note that systemd's
+ setting of 1 corresponds to
+ kernel's setting of 2.
+
Bridge=
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index ffc9578e86..aa09065cf5 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -1812,16 +1812,16 @@ static int link_set_ipv6_accept_ra(Link *link) {
* disabled if local forwarding is enabled).
* If set, ignore or enforce RA independent of local forwarding state.
*/
- if (link->network->ipv6_accept_ra < 0) {
+ if (link->network->ipv6_accept_ra < 0)
/* default to accept RA if ip_forward is disabled and ignore RA if ip_forward is enabled */
v = "1";
- } else if (link->network->ipv6_accept_ra > 0) {
+ else if (link->network->ipv6_accept_ra > 0)
/* "2" means accept RA even if ip_forward is enabled */
v = "2";
- } else {
+ else
/* "0" means ignore RA */
v = "0";
- }
+
p = strjoina("/proc/sys/net/ipv6/conf/", link->ifname, "/accept_ra");
r = write_string_file(p, v, 0);