From: Donald Sharp Date: Tue, 10 Nov 2015 01:02:26 +0000 (-0800) Subject: Zebra: Remove dependency on rib_bogus_ipv6 X-Git-Tag: frr-2.0-rc1~1205 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=6f20b80d8810724818ffe02963652a7e1eda3f89;p=matthieu%2Ffrr.git Zebra: Remove dependency on rib_bogus_ipv6 rib_bogus_ipv6 was removed upstream. We need to do the same thing and ensure that our ipv6 multipath still works Ticket: CM-8152 Reviewed by: CCR-3775 Testing: Ran all multipath tests Signed-off-by: Donald Sharp --- diff --git a/zebra/rib.h b/zebra/rib.h index cd77db4df1..ca1e97a378 100644 --- a/zebra/rib.h +++ b/zebra/rib.h @@ -416,9 +416,6 @@ extern struct nexthop *nexthop_ipv6_ifindex_add (struct rib *rib, extern struct nexthop *nexthop_ipv6_ifname_add (struct rib *rib, struct in6_addr *ipv6, char *ifname); -extern int -rib_bogus_ipv6 (int type, struct prefix_ipv6 *p, - struct in6_addr *gate, unsigned int ifindex, int table); extern struct zebra_vrf *zebra_vrf_lookup (vrf_id_t vrf_id); extern struct zebra_vrf *zebra_vrf_alloc (vrf_id_t); diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index 0bb9b58118..78c6c831b5 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -3077,27 +3077,6 @@ static_delete_ipv4 (struct prefix *p, struct in_addr *gate, const char *ifname, } -int -rib_bogus_ipv6 (int type, struct prefix_ipv6 *p, - struct in6_addr *gate, unsigned int ifindex, int table) -{ - if (type == ZEBRA_ROUTE_CONNECT && IN6_IS_ADDR_UNSPECIFIED (&p->prefix)) { -#if defined (MUSICA) || defined (LINUX) - /* IN6_IS_ADDR_V4COMPAT(&p->prefix) */ - if (p->prefixlen == 96) - return 0; -#endif /* MUSICA */ - return 1; - } - if (type == ZEBRA_ROUTE_KERNEL && IN6_IS_ADDR_UNSPECIFIED (&p->prefix) - && p->prefixlen == 96 && gate && IN6_IS_ADDR_UNSPECIFIED (gate)) - { - kernel_delete_ipv6_old (p, gate, ifindex, 0, table); - return 1; - } - return 0; -} - int rib_add_ipv6 (int type, u_short instance, int flags, struct prefix_ipv6 *p, struct in6_addr *gate, unsigned int ifindex, vrf_id_t vrf_id, @@ -3131,10 +3110,6 @@ rib_add_ipv6 (int type, u_short instance, int flags, struct prefix_ipv6 *p, if (type == ZEBRA_ROUTE_BGP && CHECK_FLAG (flags, ZEBRA_FLAG_IBGP)) distance = 200; - /* Filter bogus route. */ - if (rib_bogus_ipv6 (type, p, gate, ifindex, 0)) - return 0; - /* Lookup route node.*/ rn = route_node_get (table, (struct prefix *) p); diff --git a/zebra/zserv.c b/zebra/zserv.c index f47d4bdb49..cb823a0c19 100644 --- a/zebra/zserv.c +++ b/zebra/zserv.c @@ -1485,26 +1485,14 @@ zread_ipv6_add (struct zserv *client, u_short length, vrf_id_t vrf_id) for (i = 0; i < max_nh_if; i++) { if ((i < nh_count) && !IN6_IS_ADDR_UNSPECIFIED (&nexthops[i])) { - if ((i < if_count) && ifindices[i]) { - if (rib_bogus_ipv6 (rib->type, &p, &nexthops[i], ifindices[i], 0)) { - continue; - } + if ((i < if_count) && ifindices[i]) nexthop_ipv6_ifindex_add (rib, &nexthops[i], ifindices[i]); - } - else { - if (rib_bogus_ipv6 (rib->type, &p, &nexthops[i], 0, 0)) { - continue; - } + else nexthop_ipv6_add (rib, &nexthops[i]); - } } else { - if ((i < if_count) && ifindices[i]) { - if (rib_bogus_ipv6 (rib->type, &p, NULL, ifindices[i], 0)) { - continue; - } + if ((i < if_count) && ifindices[i]) nexthop_ifindex_add (rib, ifindices[i]); - } } } }