mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-05 13:21:22 +00:00
Merge pull request #10435 from ckishimo/ospf6d_distance
ospf6d: fix distance not applied
This commit is contained in:
commit
8ccce75009
@ -970,8 +970,13 @@ DEFUN (ospf6_distance,
|
||||
"OSPF6 Administrative distance\n")
|
||||
{
|
||||
VTY_DECLVAR_CONTEXT(ospf6, o);
|
||||
uint8_t distance;
|
||||
|
||||
o->distance_all = atoi(argv[1]->arg);
|
||||
distance = atoi(argv[1]->arg);
|
||||
if (o->distance_all != distance) {
|
||||
o->distance_all = distance;
|
||||
ospf6_restart_spf(o);
|
||||
}
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
@ -985,8 +990,10 @@ DEFUN (no_ospf6_distance,
|
||||
{
|
||||
VTY_DECLVAR_CONTEXT(ospf6, o);
|
||||
|
||||
o->distance_all = 0;
|
||||
|
||||
if (o->distance_all) {
|
||||
o->distance_all = 0;
|
||||
ospf6_restart_spf(o);
|
||||
}
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
@ -1236,7 +1243,7 @@ DEFUN (no_ospf6_stub_router_admin,
|
||||
}
|
||||
|
||||
/* Restart OSPF SPF algorithm*/
|
||||
static void ospf6_restart_spf(struct ospf6 *ospf6)
|
||||
void ospf6_restart_spf(struct ospf6 *ospf6)
|
||||
{
|
||||
ospf6_route_remove_all(ospf6->route_table);
|
||||
ospf6_route_remove_all(ospf6->brouter_table);
|
||||
@ -1329,6 +1336,10 @@ static void ospf6_show(struct vty *vty, struct ospf6 *o, json_object *json,
|
||||
o->spf_hold_multiplier);
|
||||
|
||||
json_object_int_add(json, "maximumPaths", o->max_multipath);
|
||||
json_object_int_add(json, "preference",
|
||||
o->distance_all
|
||||
? o->distance_all
|
||||
: ZEBRA_OSPF6_DISTANCE_DEFAULT);
|
||||
|
||||
if (o->ts_spf.tv_sec || o->ts_spf.tv_usec) {
|
||||
timersub(&now, &o->ts_spf, &result);
|
||||
@ -1412,6 +1423,9 @@ static void ospf6_show(struct vty *vty, struct ospf6 *o, json_object *json,
|
||||
o->lsa_minarrival);
|
||||
|
||||
vty_out(vty, " Maximum-paths %u\n", o->max_multipath);
|
||||
vty_out(vty, " Administrative distance %u\n",
|
||||
o->distance_all ? o->distance_all
|
||||
: ZEBRA_OSPF6_DISTANCE_DEFAULT);
|
||||
|
||||
/* Show SPF parameters */
|
||||
vty_out(vty,
|
||||
|
@ -251,6 +251,7 @@ extern void install_element_ospf6_clear_process(void);
|
||||
extern void ospf6_top_init(void);
|
||||
extern void ospf6_delete(struct ospf6 *o);
|
||||
extern bool ospf6_router_id_update(struct ospf6 *ospf6, bool init);
|
||||
void ospf6_restart_spf(struct ospf6 *ospf6);
|
||||
|
||||
extern void ospf6_maxage_remove(struct ospf6 *o);
|
||||
extern struct ospf6 *ospf6_instance_create(const char *name);
|
||||
|
Loading…
Reference in New Issue
Block a user