summaryrefslogtreecommitdiff
path: root/ospfd/ospf_flood.c
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2019-01-11 19:20:13 -0200
committerRenato Westphal <renato@opensourcerouting.org>2019-01-14 11:41:33 -0200
commit49db7a7b055d69a8d3892a9171912b8b0f00aa45 (patch)
treecf173e30c23a4a5b682b3c15242e31615a540ec8 /ospfd/ospf_flood.c
parentca88bbed50dfb3390e54791765794f626afcaf4b (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.c5
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],