mirror of https://github.com/FRRouting/frr.git
Merge pull request #9108 from opensourcerouting/ospf6d-range-fixes
ospf6d: fix argument processing in the "area ... range" command
This commit is contained in:
commit
3e18e550ed
|
@ -70,6 +70,20 @@ OSPF6 router
|
|||
Use this command to control the maximum number of parallel routes that
|
||||
OSPFv3 can support. The default is 64.
|
||||
|
||||
.. clicmd:: area A.B.C.D range X:X::X:X/M [<advertise|not-advertise|cost (0-16777215)>]
|
||||
|
||||
.. clicmd:: area (0-4294967295) range X:X::X:X/M [<advertise|not-advertise|cost (0-16777215)>]
|
||||
|
||||
Summarize a group of internal subnets into a single Inter-Area-Prefix LSA.
|
||||
This command can only be used at the area boundary (ABR router).
|
||||
|
||||
By default, the metric of the summary route is calculated as the highest
|
||||
metric among the summarized routes. The `cost` option, however, can be used
|
||||
to set an explicit metric.
|
||||
|
||||
The `not-advertise` option, when present, prevents the summary route from
|
||||
being advertised, effectively filtering the summarized routes.
|
||||
|
||||
.. clicmd:: write-multiplier (1-100)
|
||||
|
||||
Use this command to tune the amount of work done in the packet read and
|
||||
|
|
|
@ -504,7 +504,7 @@ DEFUN (area_range,
|
|||
struct ospf6_area *oa;
|
||||
struct prefix prefix;
|
||||
struct ospf6_route *range;
|
||||
uint32_t cost = OSPF_AREA_RANGE_COST_UNSPEC;
|
||||
uint32_t cost;
|
||||
|
||||
VTY_DECLVAR_CONTEXT(ospf6, ospf6);
|
||||
|
||||
|
@ -526,16 +526,15 @@ DEFUN (area_range,
|
|||
range->path.cost = OSPF_AREA_RANGE_COST_UNSPEC;
|
||||
}
|
||||
|
||||
/* default settings */
|
||||
cost = OSPF_AREA_RANGE_COST_UNSPEC;
|
||||
UNSET_FLAG(range->flag, OSPF6_ROUTE_DO_NOT_ADVERTISE);
|
||||
|
||||
if (argc > idx_type) {
|
||||
if (strmatch(argv[idx_type]->text, "not-advertise")) {
|
||||
if (strmatch(argv[idx_type]->text, "not-advertise"))
|
||||
SET_FLAG(range->flag, OSPF6_ROUTE_DO_NOT_ADVERTISE);
|
||||
} else if (strmatch(argv[idx_type]->text, "advertise")) {
|
||||
UNSET_FLAG(range->flag, OSPF6_ROUTE_DO_NOT_ADVERTISE);
|
||||
cost = range->path.u.cost_config;
|
||||
} else {
|
||||
else if (strmatch(argv[idx_type]->text, "cost"))
|
||||
cost = strtoul(argv[5]->arg, NULL, 10);
|
||||
UNSET_FLAG(range->flag, OSPF6_ROUTE_DO_NOT_ADVERTISE);
|
||||
}
|
||||
}
|
||||
|
||||
range->path.u.cost_config = cost;
|
||||
|
|
Loading…
Reference in New Issue