diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-02-11 03:19:48 +0100 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-02-11 13:23:23 +0100 |
commit | 84b5e534e6bbf4ca69d4692dc89f472eb18adc68 (patch) | |
tree | dc064373d0fa5ecff0c4d8ac68ce1dec70be88d5 /eigrpd | |
parent | eigrpd: Correctly handle the ref-count in a couple of spots (diff) | |
download | frr-84b5e534e6bbf4ca69d4692dc89f472eb18adc68.tar.xz frr-84b5e534e6bbf4ca69d4692dc89f472eb18adc68.zip |
eigrpd: Do not redelete the eigrp interface data structure
On interface down do not delete the eigrp interface data
structure. Ensure that the address that we have setup the
eigrp data structure ontop of is what we are deleting.
Additionally add a test to show that this is no-longer
crashing eigrp. Future commits will further modify
this test to actually ensure that the eigrp topo is
updated correctly and the rib has the correct data.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'eigrpd')
-rw-r--r-- | eigrpd/eigrp_zebra.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/eigrpd/eigrp_zebra.c b/eigrpd/eigrp_zebra.c index 09d876afa..dc1ae675b 100644 --- a/eigrpd/eigrp_zebra.c +++ b/eigrpd/eigrp_zebra.c @@ -258,7 +258,8 @@ static int eigrp_interface_address_delete(int command, struct zclient *zclient, return 0; /* Call interface hook functions to clean up */ - eigrp_if_free(ei, INTERFACE_DOWN_BY_ZEBRA); + if (prefix_cmp(&ei->address, c->address) == 0) + eigrp_if_free(ei, INTERFACE_DOWN_BY_ZEBRA); connected_free(c); |