eigrpd: Fix up some redistribution issues

Get EIGRP to start attempting to redistribute routes
as well as to display the fact it thinks it is redistributed.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2017-07-13 18:58:31 -04:00
parent 9e9012d7c1
commit 07ccdc88ad
3 changed files with 11 additions and 14 deletions

View File

@ -59,6 +59,7 @@ static int
config_write_network (struct vty *vty, struct eigrp *eigrp)
{
struct route_node *rn;
int i;
/* `network area' print. */
for (rn = route_top (eigrp->networks); rn; rn = route_next (rn))
@ -75,6 +76,11 @@ config_write_network (struct vty *vty, struct eigrp *eigrp)
if (eigrp->variance != EIGRP_VARIANCE_DEFAULT)
vty_outln (vty, " variance %d", eigrp->variance);
for (i = 0; i < ZEBRA_ROUTE_MAX; i++)
if (i != zclient->redist_default &&
vrf_bitmap_check (zclient->redist[AFI_IP][i], VRF_DEFAULT))
vty_outln (vty, " redistribute %s", zebra_route_string(i));
/*Separate EIGRP configuration from the rest of the config*/
vty_outln (vty, "!");

View File

@ -496,11 +496,12 @@ eigrp_zebra_route_delete (struct prefix_ipv4 *p)
return;
}
vrf_bitmap_t
int
eigrp_is_type_redistributed (int type)
{
return (DEFAULT_ROUTE_TYPE (type)) ?
zclient->default_information : zclient->redist[AFI_IP][type];
return ((DEFAULT_ROUTE_TYPE (type)) ?
vrf_bitmap_check (zclient->default_information, VRF_DEFAULT) :
vrf_bitmap_check (zclient->redist[AFI_IP][type], VRF_DEFAULT));
}
int
@ -528,11 +529,6 @@ eigrp_redistribute_set (struct eigrp *eigrp, int type, struct eigrp_metrics metr
zclient_redistribute (ZEBRA_REDISTRIBUTE_ADD, zclient,
AFI_IP, type, 0, VRF_DEFAULT);
// if (IS_DEBUG_EIGRP (zebra, ZEBRA_REDISTRIBUTE))
// zlog_debug ("Redistribute[%s]: Start Type[%d], Metric[%d]",
// ospf_redist_string(type),
// metric_type (ospf, type), metric_value (ospf, type));
++eigrp->redistribute;
return CMD_SUCCESS;
@ -550,11 +546,6 @@ eigrp_redistribute_unset (struct eigrp *eigrp, int type)
--eigrp->redistribute;
}
// if (IS_DEBUG_EIGRP (zebra, ZEBRA_REDISTRIBUTE))
// zlog_debug ("Redistribute[%s]: Start Type[%d], Metric[%d]",
// ospf_redist_string(type),
// metric_type (ospf, type), metric_value (ospf, type));
return CMD_SUCCESS;
}

View File

@ -37,6 +37,6 @@ extern void eigrp_zebra_route_add (struct prefix_ipv4 *, struct list *);
extern void eigrp_zebra_route_delete (struct prefix_ipv4 *);
extern int eigrp_redistribute_set (struct eigrp *, int, struct eigrp_metrics);
extern int eigrp_redistribute_unset (struct eigrp *, int);
extern vrf_bitmap_t eigrp_is_type_redistributed (int);
extern int eigrp_is_type_redistributed (int);
#endif /* _ZEBRA_EIGRP_ZEBRA_H_ */