accept_ra - BOOLEAN
        Accept Router Advertisements; autoconfigure using them.
 
+       It also determines whether or not to transmit Router
+       Solicitations. If and only if the functional setting is to
+       accept Router Advertisements, Router Solicitations will be
+       transmitted.
+
        Possible values are:
                0 Do not accept Router Advertisements.
                1 Accept Router Advertisements if forwarding is disabled.
        Possible values are:
                0 Forwarding disabled
                1 Forwarding enabled
-               2 Forwarding enabled (Hybrid Mode)
 
        FALSE (0):
 
        By default, Host behaviour is assumed.  This means:
 
        1. IsRouter flag is not set in Neighbour Advertisements.
-       2. Router Solicitations are being sent when necessary.
+       2. If accept_ra is TRUE (default), transmit Router
+          Solicitations.
        3. If accept_ra is TRUE (default), accept Router
           Advertisements (and do autoconfiguration).
        4. If accept_redirects is TRUE (default), accept Redirects.
        This means exactly the reverse from the above:
 
        1. IsRouter flag is set in Neighbour Advertisements.
-       2. Router Solicitations are not sent.
+       2. Router Solicitations are not sent unless accept_ra is 2.
        3. Router Advertisements are ignored unless accept_ra is 2.
        4. Redirects are ignored.
 
-       TRUE (2):
-
-       Hybrid mode. Same behaviour as TRUE, except for:
-
-       2. Router Solicitations are being sent when necessary.
-
        Default: 0 (disabled) if global forwarding is disabled (default),
                 otherwise 1 (enabled).
 
 
 
        ipv6_ifa_notify(RTM_NEWADDR, ifp);
 
-       /* If added prefix is link local and forwarding is off,
-          start sending router solicitations.
+       /* If added prefix is link local and we are prepared to process
+          router advertisements, start sending router solicitations.
         */
 
-       if ((ifp->idev->cnf.forwarding == 0 ||
-            ifp->idev->cnf.forwarding == 2) &&
+       if (((ifp->idev->cnf.accept_ra == 1 && !ifp->idev->cnf.forwarding) ||
+            ifp->idev->cnf.accept_ra == 2) &&
            ifp->idev->cnf.rtr_solicits > 0 &&
            (dev->flags&IFF_LOOPBACK) == 0 &&
            (ipv6_addr_type(&ifp->addr) & IPV6_ADDR_LINKLOCAL)) {