mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 08:57:29 +00:00
zebra: Cleanup dead code and unused return value
We had a large block of #if 0 code. Since it's been that way for like 8 months now, lets go ahead and just remove it. Additionally the rib_delete function was returning a return code that was summarily ignored. Let's clean up the expectation of returning anything. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
b153b01010
commit
265d5b9d51
@ -349,7 +349,7 @@ extern int rib_add (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
|
|||||||
extern int rib_add_multipath (afi_t afi, safi_t safi, struct prefix *,
|
extern int rib_add_multipath (afi_t afi, safi_t safi, struct prefix *,
|
||||||
struct rib *);
|
struct rib *);
|
||||||
|
|
||||||
extern int rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
|
extern void rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
|
||||||
u_short instance, int flags, struct prefix *p,
|
u_short instance, int flags, struct prefix *p,
|
||||||
union g_addr *gate, ifindex_t ifindex,
|
union g_addr *gate, ifindex_t ifindex,
|
||||||
u_int32_t table_id);
|
u_int32_t table_id);
|
||||||
|
@ -1677,181 +1677,6 @@ rib_process (struct route_node *rn)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
if (select && select == fib)
|
|
||||||
{
|
|
||||||
if (IS_ZEBRA_DEBUG_RIB)
|
|
||||||
rnode_debug (rn, vrf_id, "Updating existing route, select %p, fib %p",
|
|
||||||
(void *)select, (void *)fib);
|
|
||||||
if (CHECK_FLAG (select->status, RIB_ENTRY_CHANGED))
|
|
||||||
{
|
|
||||||
if (info->safi == SAFI_UNICAST)
|
|
||||||
zfpm_trigger_update (rn, "updating existing route");
|
|
||||||
|
|
||||||
/* Set real nexthop. */
|
|
||||||
/* Need to check if any NHs are active to clear the
|
|
||||||
* the selected flag
|
|
||||||
*/
|
|
||||||
if (nexthop_active_update (rn, select, 1))
|
|
||||||
{
|
|
||||||
if (IS_ZEBRA_DEBUG_RIB)
|
|
||||||
zlog_debug ("%u:%s/%d: Updating route rn %p, rib %p (type %d)",
|
|
||||||
vrf_id, buf, rn->p.prefixlen, rn, select, select->type);
|
|
||||||
if (! RIB_SYSTEM_ROUTE (select))
|
|
||||||
{
|
|
||||||
/* Clear FIB flag if performing a replace, will get set again
|
|
||||||
* as part of install.
|
|
||||||
*/
|
|
||||||
for (nexthop = select->nexthop; nexthop; nexthop = nexthop->next)
|
|
||||||
UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
|
|
||||||
rib_install_kernel (rn, select, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* assuming that the receiver knows how to dedup */
|
|
||||||
redistribute_update (&rn->p, select, NULL);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (IS_ZEBRA_DEBUG_RIB)
|
|
||||||
zlog_debug ("%u:%s/%d: Deleting route rn %p, rib %p (type %d) "
|
|
||||||
"- nexthop inactive",
|
|
||||||
vrf_id, buf, rn->p.prefixlen, rn, select, select->type);
|
|
||||||
|
|
||||||
/* Withdraw unreachable redistribute route */
|
|
||||||
redistribute_delete(&rn->p, select);
|
|
||||||
|
|
||||||
/* Do the uninstall here, if not done earlier. */
|
|
||||||
if (! RIB_SYSTEM_ROUTE (select))
|
|
||||||
rib_uninstall_kernel (rn, select);
|
|
||||||
UNSET_FLAG (select->flags, ZEBRA_FLAG_SELECTED);
|
|
||||||
}
|
|
||||||
UNSET_FLAG (select->status, RIB_ENTRY_CHANGED);
|
|
||||||
}
|
|
||||||
else if (! RIB_SYSTEM_ROUTE (select))
|
|
||||||
{
|
|
||||||
/* Housekeeping code to deal with
|
|
||||||
race conditions in kernel with linux
|
|
||||||
netlink reporting interface up before IPv4 or IPv6 protocol
|
|
||||||
is ready to add routes.
|
|
||||||
This makes sure the routes are IN the kernel.
|
|
||||||
*/
|
|
||||||
|
|
||||||
for (ALL_NEXTHOPS_RO(select->nexthop, nexthop, tnexthop, recursing))
|
|
||||||
if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB))
|
|
||||||
{
|
|
||||||
installed = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (! installed)
|
|
||||||
rib_install_kernel (rn, select, 0);
|
|
||||||
}
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* At this point we either haven't found the best RIB entry or it is
|
|
||||||
* different from what we currently intend to flag with SELECTED. In both
|
|
||||||
* cases, if a RIB block is present in FIB, it should be withdrawn.
|
|
||||||
*/
|
|
||||||
if (fib)
|
|
||||||
{
|
|
||||||
if (IS_ZEBRA_DEBUG_RIB)
|
|
||||||
rnode_debug (rn, vrf_id, "Removing existing route, fib %p", (void *)fib);
|
|
||||||
|
|
||||||
if (info->safi == SAFI_UNICAST)
|
|
||||||
zfpm_trigger_update (rn, "removing existing route");
|
|
||||||
|
|
||||||
/* If there's no route to replace this with, withdraw redistribute and
|
|
||||||
* uninstall from kernel.
|
|
||||||
*/
|
|
||||||
if (!select)
|
|
||||||
{
|
|
||||||
if (IS_ZEBRA_DEBUG_RIB)
|
|
||||||
zlog_debug ("%u:%s/%d: Deleting route rn %p, rib %p (type %d)",
|
|
||||||
vrf_id, buf, rn->p.prefixlen, rn, fib, fib->type);
|
|
||||||
|
|
||||||
redistribute_delete(&rn->p, fib);
|
|
||||||
if (! RIB_SYSTEM_ROUTE (fib))
|
|
||||||
rib_uninstall_kernel (rn, fib);
|
|
||||||
}
|
|
||||||
|
|
||||||
UNSET_FLAG (fib->flags, ZEBRA_FLAG_SELECTED);
|
|
||||||
|
|
||||||
/* Set real nexthop. */
|
|
||||||
nexthop_active_update (rn, fib, 1);
|
|
||||||
UNSET_FLAG(fib->status, RIB_ENTRY_CHANGED);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Regardless of some RIB entry being SELECTED or not before, now we can
|
|
||||||
* tell, that if a new winner exists, FIB is still not updated with this
|
|
||||||
* data, but ready to be.
|
|
||||||
*/
|
|
||||||
if (select)
|
|
||||||
{
|
|
||||||
if (IS_ZEBRA_DEBUG_RIB)
|
|
||||||
rnode_debug (rn, "Adding route, select %p", (void *)select);
|
|
||||||
|
|
||||||
if (info->safi == SAFI_UNICAST)
|
|
||||||
zfpm_trigger_update (rn, "new route selected");
|
|
||||||
|
|
||||||
/* Set real nexthop. */
|
|
||||||
if (nexthop_active_update (rn, select, 1))
|
|
||||||
{
|
|
||||||
if (IS_ZEBRA_DEBUG_RIB)
|
|
||||||
{
|
|
||||||
if (fib)
|
|
||||||
zlog_debug ("%u:%s/%d: Updating route rn %p, rib %p (type %d) "
|
|
||||||
"old %p (type %d)", vrf_id, buf, rn->p.prefixlen, rn,
|
|
||||||
select, select->type, fib, fib->type);
|
|
||||||
else
|
|
||||||
zlog_debug ("%u:%s/%d: Adding route rn %p, rib %p (type %d)",
|
|
||||||
vrf_id, buf, rn->p.prefixlen, rn, select, select->type);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! RIB_SYSTEM_ROUTE (select))
|
|
||||||
{
|
|
||||||
/* Clear FIB flag if performing a replace, will get set again
|
|
||||||
* as part of install.
|
|
||||||
*/
|
|
||||||
if (fib)
|
|
||||||
{
|
|
||||||
for (nexthop = fib->nexthop; nexthop; nexthop = nexthop->next)
|
|
||||||
UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
|
|
||||||
}
|
|
||||||
rib_install_kernel (rn, select, fib? 1 : 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Uninstall prior route here, if needed. */
|
|
||||||
if (fib && !RIB_SYSTEM_ROUTE (fib))
|
|
||||||
rib_uninstall_kernel (rn, fib);
|
|
||||||
}
|
|
||||||
|
|
||||||
SET_FLAG (select->flags, ZEBRA_FLAG_SELECTED);
|
|
||||||
/* Unconditionally announce, this part is exercised by new routes */
|
|
||||||
/* If we cannot add, for example route added is learnt by the */
|
|
||||||
/* protocol we're trying to redistribute to, delete the redist */
|
|
||||||
/* This is notified by setting the is_update to 1 */
|
|
||||||
redistribute_update (&rn->p, select, fib);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Uninstall prior route here and do redist delete, if needed. */
|
|
||||||
if (fib)
|
|
||||||
{
|
|
||||||
if (IS_ZEBRA_DEBUG_RIB)
|
|
||||||
zlog_debug ("%u:%s/%d: Deleting route rn %p, rib %p (type %d) "
|
|
||||||
"- nexthop inactive",
|
|
||||||
vrf_id, buf, rn->p.prefixlen, rn, fib, fib->type);
|
|
||||||
|
|
||||||
if (!RIB_SYSTEM_ROUTE (fib))
|
|
||||||
rib_uninstall_kernel (rn, fib);
|
|
||||||
redistribute_delete(&rn->p, fib);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
UNSET_FLAG(select->status, RIB_ENTRY_CHANGED);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Remove all RIB entries queued for removal */
|
/* Remove all RIB entries queued for removal */
|
||||||
RNODE_FOREACH_RIB_SAFE (rn, rib, next)
|
RNODE_FOREACH_RIB_SAFE (rn, rib, next)
|
||||||
{
|
{
|
||||||
@ -2547,7 +2372,7 @@ rib_add_multipath (afi_t afi, safi_t safi, struct prefix *p,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
void
|
||||||
rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
|
rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
|
||||||
int flags, struct prefix *p, union g_addr *gate, ifindex_t ifindex,
|
int flags, struct prefix *p, union g_addr *gate, ifindex_t ifindex,
|
||||||
u_int32_t table_id)
|
u_int32_t table_id)
|
||||||
@ -2565,7 +2390,7 @@ rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
|
|||||||
/* Lookup table. */
|
/* Lookup table. */
|
||||||
table = zebra_vrf_table_with_table_id (afi, safi, vrf_id, table_id);
|
table = zebra_vrf_table_with_table_id (afi, safi, vrf_id, table_id);
|
||||||
if (! table)
|
if (! table)
|
||||||
return 0;
|
return;
|
||||||
|
|
||||||
/* Apply mask. */
|
/* Apply mask. */
|
||||||
apply_mask (p);
|
apply_mask (p);
|
||||||
@ -2577,7 +2402,7 @@ rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
|
|||||||
if (IS_ZEBRA_DEBUG_RIB)
|
if (IS_ZEBRA_DEBUG_RIB)
|
||||||
zlog_debug ("%u:%s: doesn't exist in rib",
|
zlog_debug ("%u:%s: doesn't exist in rib",
|
||||||
vrf_id, prefix2str (p, buf1, sizeof(buf1)));
|
vrf_id, prefix2str (p, buf1, sizeof(buf1)));
|
||||||
return ZEBRA_ERR_RTNOEXIST;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Lookup same type route. */
|
/* Lookup same type route. */
|
||||||
@ -2603,7 +2428,7 @@ rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
|
|||||||
rib->refcnt--;
|
rib->refcnt--;
|
||||||
route_unlock_node (rn);
|
route_unlock_node (rn);
|
||||||
route_unlock_node (rn);
|
route_unlock_node (rn);
|
||||||
return 0;
|
return;
|
||||||
}
|
}
|
||||||
same = rib;
|
same = rib;
|
||||||
break;
|
break;
|
||||||
@ -2674,7 +2499,7 @@ rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
|
|||||||
type);
|
type);
|
||||||
}
|
}
|
||||||
route_unlock_node (rn);
|
route_unlock_node (rn);
|
||||||
return ZEBRA_ERR_RTNOEXIST;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2682,7 +2507,7 @@ rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
|
|||||||
rib_delnode (rn, same);
|
rib_delnode (rn, same);
|
||||||
|
|
||||||
route_unlock_node (rn);
|
route_unlock_node (rn);
|
||||||
return 0;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user