man: describe IPv6AcceptRouterAdvertisements= better
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 30 Sep 2015 18:59:43 +0000 (14:59 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 12 Oct 2015 17:50:29 +0000 (13:50 -0400)
With the previous description it wasn't clear that the
kernel default is being described.

Add link to kernel docs.

man/systemd.network.xml
src/network/networkd-link.c

index a27f2ff..1a33b77 100644 (file)
         </varlistentry>
         <varlistentry>
           <term><varname>IPv6AcceptRouterAdvertisements=</varname></term>
-          <listitem><para>Configures Accept Router Advertisements.
-          This is enabled if local forwarding is disabled.
-          Disabled if local forwarding is enabled.
-          Takes a boolean. Defaults to unset.
-        </para></listitem>
+          <listitem><para>Force the setting of <filename>accept_ra</filename>
+          (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.</para>
+
+          <para>See
+          <ulink url="https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt">ip-sysctl.txt</ulink>
+          in the kernel documentation, but note that systemd's
+          setting of <constant>1</constant> corresponds to
+          kernel's setting of <constant>2</constant>.</para>
+        </listitem>
         </varlistentry>
         <varlistentry>
           <term><varname>Bridge=</varname></term>
index ffc9578..aa09065 100644 (file)
@@ -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);