diff options
| author | Renato Westphal <renato@opensourcerouting.org> | 2019-01-11 19:20:13 -0200 | 
|---|---|---|
| committer | Renato Westphal <renato@opensourcerouting.org> | 2019-01-14 11:41:33 -0200 | 
| commit | 49db7a7b055d69a8d3892a9171912b8b0f00aa45 (patch) | |
| tree | cf173e30c23a4a5b682b3c15242e31615a540ec8 /ospfd/ospf_flood.c | |
| parent | ca88bbed50dfb3390e54791765794f626afcaf4b (diff) | |
lib, zebra: add AFI parameter to the ZEBRA_REDISTRIBUTE_DEFAULT_* messages
Some daemons like ospfd and isisd have the ability to advertise a
default route to their peers only if one exists in the RIB. This
is what the "default-information originate" commands do when used
without the "always" parameter.
For that to work, these daemons use the ZEBRA_REDISTRIBUTE_DEFAULT_ADD
message to request default route information to zebra. The problem
is that this message didn't have an AFI parameter, so a default route
from any address-family would satisfy the requests from both daemons
(e.g. ::/0 would trigger ospfd to advertise a default route to its
peers, and 0.0.0.0/0 would trigger isisd to advertise a default route
to its IPv6 peers).
Fix this by adding an AFI parameter to the
ZEBRA_REDISTRIBUTE_DEFAULT_{ADD,DELETE} messages and making the
corresponding code changes.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'ospfd/ospf_flood.c')
| -rw-r--r-- | ospfd/ospf_flood.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c index 714c47b4e6..6d1e44996e 100644 --- a/ospfd/ospf_flood.c +++ b/ospfd/ospf_flood.c @@ -96,8 +96,9 @@ struct external_info *ospf_external_info_check(struct ospf *ospf,  		redist_on =  			is_prefix_default(&p) -				? vrf_bitmap_check(zclient->default_information, -						   ospf->vrf_id) +				? vrf_bitmap_check( +					  zclient->default_information[AFI_IP], +					  ospf->vrf_id)  				: (zclient->mi_redist[AFI_IP][type].enabled  				   || vrf_bitmap_check(  					      zclient->redist[AFI_IP][type],  | 
