Merge pull request #38 from donaldsharp/stable_ospf6_fix

ospf6d: resolve problem with area range lsid creation
This commit is contained in:
David Lamparter 2017-01-13 11:32:17 +01:00 committed by GitHub
commit ccc4bd3062
4 changed files with 3 additions and 31 deletions

View File

@ -424,12 +424,9 @@ ospf6_abr_originate_summary_to_area (struct ospf6_route *route,
else else
{ {
summary->path.origin.type = htons (OSPF6_LSTYPE_INTER_PREFIX); summary->path.origin.type = htons (OSPF6_LSTYPE_INTER_PREFIX);
if (route->type == OSPF6_DEST_TYPE_RANGE) summary->path.origin.id =
summary->path.origin.id = route->linkstate_id; ospf6_new_ls_id (summary->path.origin.type,
else summary->path.origin.adv_router, area->lsdb);
summary->path.origin.id =
ospf6_new_ls_id (summary->path.origin.type,
summary->path.origin.adv_router, area->lsdb);
} }
summary = ospf6_route_add (summary, summary_table); summary = ospf6_route_add (summary, summary_table);
} }

View File

@ -465,8 +465,6 @@ DEFUN (area_range,
range->prefix = prefix; range->prefix = prefix;
range->path.area_id = oa->area_id; range->path.area_id = oa->area_id;
range->path.cost = OSPF_AREA_RANGE_COST_UNSPEC; range->path.cost = OSPF_AREA_RANGE_COST_UNSPEC;
range->linkstate_id =
(u_int32_t) htonl(ospf6_new_range_ls_id (oa->range_table));
} }
if (argc > 2) if (argc > 2)
@ -577,8 +575,6 @@ DEFUN (no_area_range,
/* purge the old aggregated summary LSA */ /* purge the old aggregated summary LSA */
ospf6_abr_originate_summary(range); ospf6_abr_originate_summary(range);
} }
ospf6_release_range_ls_id(oa->range_table,
(u_int32_t) ntohl(range->linkstate_id));
ospf6_route_remove (range, oa->range_table); ospf6_route_remove (range, oa->range_table);
return CMD_SUCCESS; return CMD_SUCCESS;

View File

@ -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 u_int32_t
ospf6_new_ls_id (u_int16_t type, u_int32_t adv_router, ospf6_new_ls_id (u_int16_t type, u_int32_t adv_router,
struct ospf6_lsdb *lsdb) struct ospf6_lsdb *lsdb)

View File

@ -81,9 +81,6 @@ extern void ospf6_lsdb_show (struct vty *vty,
extern u_int32_t ospf6_new_ls_id (u_int16_t type, u_int32_t adv_router, extern u_int32_t ospf6_new_ls_id (u_int16_t type, u_int32_t adv_router,
struct ospf6_lsdb *lsdb); struct ospf6_lsdb *lsdb);
extern u_int32_t ospf6_new_range_ls_id (struct ospf6_route_table *range_table);
extern void ospf6_release_range_ls_id (struct ospf6_route_table *range_table,
u_int32_t id);
extern u_int32_t ospf6_new_ls_seqnum (u_int16_t type, u_int32_t id, extern u_int32_t ospf6_new_ls_seqnum (u_int16_t type, u_int32_t id,
u_int32_t adv_router, u_int32_t adv_router,
struct ospf6_lsdb *lsdb); struct ospf6_lsdb *lsdb);