]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra, ripngd: remove ::/64 special-casing
authorDavid Lamparter <equinox@opensourcerouting.org>
Sat, 28 Jun 2014 19:26:36 +0000 (21:26 +0200)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 3 Jun 2016 18:48:39 +0000 (14:48 -0400)
In the 90ies, IPv4 was believed to exist within IPv6, with some kernels
implementing this belief in code...  Our code here is keyed to "#ifdef
LINUX", yet no Linux from the past 10 years had this, making the code
completely useless.

FreeBSD 10.0 does in fact have a "::/96 via ::1 dev lo0 reject" route.
IMHO we shouldn't mess with that, the admin can filter as neccessary
anyway.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Acked-by: Greg Troxel <gdt@ir.bbn.com>
Acked-by: Feng Lu <lu.feng@6wind.com>
[DL: slightly adjusted commit message to remove misunderstanding]
Acked-by: Paul Jakma <paul@jakma.org>
ripngd/ripngd.c

index 9cb7217b38d4ec627f9153a9fd3baa373d28e03a..4eed40b94ae65cdca91ea63f4eea9b260d7021ee 100644 (file)
@@ -930,15 +930,6 @@ ripng_redistribute_add (int type, int sub_type, struct prefix_ipv6 *p,
     return;
   if (IN6_IS_ADDR_LOOPBACK (&p->prefix))
     return;
-#ifdef LINUX
-  /* XXX As long as the RIPng redistribution is applied to all the connected
-   *     routes, one needs to filter the ::/96 prefixes.
-   *     However it could be a wanted case, it will be removed soon.
-   */
-  if ((IN6_IS_ADDR_V4COMPAT(&p->prefix)) ||
-      (IN6_IS_ADDR_UNSPECIFIED (&p->prefix) && (p->prefixlen == 96)))
-    return;
-#endif /* LINUX */
 
   rp = route_node_get (ripng->table, (struct prefix *) p);
   rinfo = rp->info;
@@ -1027,15 +1018,6 @@ ripng_redistribute_delete (int type, int sub_type, struct prefix_ipv6 *p,
     return;
   if (IN6_IS_ADDR_LOOPBACK (&p->prefix))
     return;
-#ifdef LINUX
-  /* XXX As long as the RIPng redistribution is applied to all the connected
-   *     routes, one needs to filter the ::/96 prefixes.
-   *     However it could be a wanted case, it will be removed soon.
-   */
-  if ((IN6_IS_ADDR_V4COMPAT(&p->prefix)) ||
-      (IN6_IS_ADDR_UNSPECIFIED (&p->prefix) && (p->prefixlen == 96)))
-    return;
-#endif /* LINUX */
 
   rp = route_node_lookup (ripng->table, (struct prefix *) p);