]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Set RA routes as RA in supported OS's.
authorRoy Marples <roy@marples.name>
Mon, 9 Oct 2017 18:57:09 +0000 (19:57 +0100)
committerRoy Marples <roy@marples.name>
Mon, 9 Oct 2017 18:57:09 +0000 (19:57 +0100)
src/if-linux.c
src/ipv6.c
src/route.h

index 9f030cef2c9ac05ab6b896b4c300ef3d5eb4717e..debbabaa289b99549a8dd859fa21edc7c2c4a5d5 100644 (file)
@@ -1221,6 +1221,11 @@ if_route(unsigned char cmd, const struct rt *rt)
        } else {
                /* Address generated routes are RTPROT_KERNEL,
                 * otherwise RTPROT_BOOT */
+#ifdef RTPROT_RA
+               if (rt->rt_dflags & RTDF_RA)
+                       nlm.rt.rtm_protocol = RTPROT_RA;
+               else
+#endif
                if (rt->rt_dflags & RTDF_IFA_ROUTE)
                        nlm.rt.rtm_protocol = RTPROT_KERNEL;
                else
index 2b9dba3a18fb73ca0f6308ec3607f43c039a3b4d..a9543dd60053c42ac6f279de5aab9d6598929c97 100644 (file)
@@ -2136,8 +2136,10 @@ inet6_makeroute(struct interface *ifp, const struct ra *rap)
 #ifdef HAVE_ROUTE_METRIC
        rt->rt_metric = ifp->metric;
 #endif
-       if (rap != NULL)
+       if (rap != NULL) {
                rt->rt_mtu = rap->mtu;
+               rt->rt_dflags |= RTDF_RA;
+       }
        return rt;
 }
 
index d203c669a68ecdc44410aaf70edaef0b8e09f86a..ec4ea1c384521ff1c16fa98f92c84bbfb6463ad7 100644 (file)
@@ -72,9 +72,10 @@ struct rt {
        unsigned int            rt_metric;
 #endif
        unsigned int            rt_dflags;
-#define RTDF_INIT              0x01            /* Generated by if_initrt() */
-#define RTDF_IFA_ROUTE         0x02            /* Address generated route */
-#define RTDF_FAKE              0x04            /* Maybe us on lease reboot  */
+#define        RTDF_INIT               0x01            /* Generated by if_initrt() */
+#define        RTDF_IFA_ROUTE          0x02            /* Address generated route */
+#define        RTDF_FAKE               0x04            /* Maybe us on lease reboot  */
+#define        RTDF_RA                 0x08            /* Router Advertisement */
 };
 TAILQ_HEAD(rt_head, rt);