diff options
author | Don Slice <dslice@cumulusnetworks.com> | 2016-12-16 17:53:30 +0100 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-01-03 21:14:56 +0100 |
commit | 54c8d91e5d79004d812ac816bf0785c8edd6c0cd (patch) | |
tree | 68532655c3b6b36a4c93bf7bcfb6f81779a355df /ospf6d/ospf6_lsdb.c | |
parent | Merge pull request #37 from LabNConsulting/working/2.0/patch-set-170102a (diff) | |
download | frr-54c8d91e5d79004d812ac816bf0785c8edd6c0cd.tar.xz frr-54c8d91e5d79004d812ac816bf0785c8edd6c0cd.zip |
ospf6d: resolve problem with area range lsid creation
The problem reported was that routers downstream from the ABR would have
prefixes in the IPv6 rib that should have been summarized. Testing showed
that the prefixes were absent in the lsdb but not removed from the rib.
The problem (and others) stemmed from determining the link-state id to use
for the area-range statement only from other entries in the range-table. Since
the area range statement creates inter-prefix LSAs (summaries) which are in all
aspects identical to other inter-prefix LSAs, the number space for the lsid
needs to be unique across all inter-prefix LSAs, not just unique between area
range statements. This fix removes the use of range-table specific lsids and
acquires the lsid just as any other inter-prefix LSA.
Ticket: CM-13626
Signed-off-by: Don Slice
Reviewed By: CCR-5489
Testing Done: Manual testing, repeated runs of the test that previously failed,
ospf-smoke
Diffstat (limited to 'ospf6d/ospf6_lsdb.c')
-rw-r--r-- | ospf6d/ospf6_lsdb.c | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/ospf6d/ospf6_lsdb.c b/ospf6d/ospf6_lsdb.c index 04bea84ae..1d4b557cd 100644 --- a/ospf6d/ospf6_lsdb.c +++ b/ospf6d/ospf6_lsdb.c @@ -547,24 +547,6 @@ ospf6_lsdb_show (struct vty *vty, enum ospf_lsdb_show_level level, } } -/* Decide new Link State ID to originate for the range. */ -u_int32_t -ospf6_new_range_ls_id (struct ospf6_route_table *range_table) -{ - u_int32_t id; - - bf_assign_index(range_table->idspace, id); - return (id); -} - -/* Release the LS ID back to the ID pool */ -void -ospf6_release_range_ls_id (struct ospf6_route_table *range_table, - u_int32_t id) -{ - bf_release_index(range_table->idspace, id); -} - u_int32_t ospf6_new_ls_id (u_int16_t type, u_int32_t adv_router, struct ospf6_lsdb *lsdb) |