From 78cf8877181ee36607d6b7462a7d9d6a4f05b302 Mon Sep 17 00:00:00 2001 From: anlan_cs Date: Wed, 19 Jan 2022 07:24:50 -0500 Subject: [PATCH 1/4] ospfd: a few minor fixes on ospfd cli Two minor fixes: - remove redundant "(a.b.c.d/m)" in "prefix" description - remove some annoying space in "summary-address" and "tag" Signed-off-by: anlan_cs --- ospfd/ospf_vty.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c index 3d0804b018..7315308275 100644 --- a/ospfd/ospf_vty.c +++ b/ospfd/ospf_vty.c @@ -9933,7 +9933,7 @@ DEFUN (ospf_external_route_aggregation, ospf_external_route_aggregation_cmd, "summary-address A.B.C.D/M [tag (1-4294967295)]", "External summary address\n" - "Summary address prefix (a.b.c.d/m) \n" + "Summary address prefix\n" "Router tag \n" "Router tag value\n") { @@ -9974,7 +9974,7 @@ DEFUN (no_ospf_external_route_aggregation, "no summary-address A.B.C.D/M [tag (1-4294967295)]", NO_STR "External summary address\n" - "Summary address prefix (a.b.c.d/m)\n" + "Summary address prefix\n" "Router tag\n" "Router tag value\n") { @@ -10264,7 +10264,7 @@ DEFUN (ospf_external_route_aggregation_no_adrvertise, ospf_external_route_aggregation_no_adrvertise_cmd, "summary-address A.B.C.D/M no-advertise", "External summary address\n" - "Summary address prefix (a.b.c.d/m) \n" + "Summary address prefix\n" "Don't advertise summary route \n") { VTY_DECLVAR_INSTANCE_CONTEXT(ospf, ospf); @@ -10300,7 +10300,7 @@ DEFUN (no_ospf_external_route_aggregation_no_adrvertise, "no summary-address A.B.C.D/M no-advertise", NO_STR "External summary address\n" - "Summary address prefix (a.b.c.d/m)\n" + "Summary address prefix\n" "Advertise summary route to the AS \n") { VTY_DECLVAR_INSTANCE_CONTEXT(ospf, ospf); @@ -12140,10 +12140,10 @@ static int config_write_ospf_external_aggregator(struct vty *vty, if (rn->info) { struct ospf_external_aggr_rt *aggr = rn->info; - vty_out(vty, " summary-address %pI4/%d ", + vty_out(vty, " summary-address %pI4/%d", &aggr->p.prefix, aggr->p.prefixlen); if (aggr->tag) - vty_out(vty, " tag %u ", aggr->tag); + vty_out(vty, " tag %u", aggr->tag); if (CHECK_FLAG(aggr->flags, OSPF_EXTERNAL_AGGRT_NO_ADVERTISE)) From d1b1eae14b6cacdc655f075f2e4b3bb54df7c0e2 Mon Sep 17 00:00:00 2001 From: anlan_cs Date: Wed, 19 Jan 2022 08:42:02 -0500 Subject: [PATCH 2/4] ospfd: fix missing "aggregation timer" in running configuration Signed-off-by: anlan_cs --- ospfd/ospf_vty.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c index 7315308275..fe6c9b6e55 100644 --- a/ospfd/ospf_vty.c +++ b/ospfd/ospf_vty.c @@ -12135,6 +12135,10 @@ static int config_write_ospf_external_aggregator(struct vty *vty, { struct route_node *rn; + if (ospf->aggr_delay_interval != OSPF_EXTL_AGGR_DEFAULT_DELAY) + vty_out(vty, " aggregation timer %u\n", + ospf->aggr_delay_interval); + /* print 'summary-address A.B.C.D/M' */ for (rn = route_top(ospf->rt_aggr_tbl); rn; rn = route_next(rn)) if (rn->info) { From 74e8311eb32eead06e48887b345285cc66362365 Mon Sep 17 00:00:00 2001 From: anlan_cs Date: Thu, 20 Jan 2022 03:05:11 -0500 Subject: [PATCH 3/4] ospf6d: adjust type of "aggr_delay_interval" Adjust type of "aggr_delay_interval": Just replace `unsigned int` with `uint16_t` for range is (50..1800). Signed-off-by: anlan_cs --- ospf6d/ospf6_asbr.c | 7 +++---- ospf6d/ospf6_asbr.h | 3 +-- ospf6d/ospf6_top.c | 4 ++-- ospf6d/ospf6_top.h | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c index 5e7ba81a33..203ae14f2d 100644 --- a/ospf6d/ospf6_asbr.c +++ b/ospf6d/ospf6_asbr.c @@ -3383,8 +3383,8 @@ ospf6_start_asbr_summary_delay_timer(struct ospf6 *ospf6, } if (IS_OSPF6_DEBUG_AGGR) - zlog_debug("%s: Start Aggregator delay timer %d(in seconds).", - __func__, ospf6->aggr_delay_interval); + zlog_debug("%s: Start Aggregator delay timer %u(in seconds).", + __func__, ospf6->aggr_delay_interval); ospf6->aggr_action = operation; thread_add_timer(master, @@ -3421,8 +3421,7 @@ int ospf6_asbr_external_rt_advertise(struct ospf6 *ospf6, return OSPF6_SUCCESS; } -int ospf6_external_aggr_delay_timer_set(struct ospf6 *ospf6, - unsigned int interval) +int ospf6_external_aggr_delay_timer_set(struct ospf6 *ospf6, uint16_t interval) { ospf6->aggr_delay_interval = interval; diff --git a/ospf6d/ospf6_asbr.h b/ospf6d/ospf6_asbr.h index 0aa1374a46..0487bb14c3 100644 --- a/ospf6d/ospf6_asbr.h +++ b/ospf6d/ospf6_asbr.h @@ -163,8 +163,7 @@ extern void ospf6_asbr_status_update(struct ospf6 *ospf6, int status); int ospf6_asbr_external_rt_advertise(struct ospf6 *ospf6, struct prefix *p); -int ospf6_external_aggr_delay_timer_set(struct ospf6 *ospf6, - unsigned int interval); +int ospf6_external_aggr_delay_timer_set(struct ospf6 *ospf6, uint16_t interval); int ospf6_asbr_external_rt_no_advertise(struct ospf6 *ospf6, struct prefix *p); diff --git a/ospf6d/ospf6_top.c b/ospf6d/ospf6_top.c index e2db77d44b..5888c6075a 100644 --- a/ospf6d/ospf6_top.c +++ b/ospf6d/ospf6_top.c @@ -1997,8 +1997,8 @@ ospf6_show_summary_address(struct vty *vty, struct ospf6 *ospf6, if (!uj) { ospf6_show_vrf_name(vty, ospf6, json_vrf); - vty_out(vty, "aggregation delay interval :%d(in seconds)\n\n", - ospf6->aggr_delay_interval); + vty_out(vty, "aggregation delay interval :%u(in seconds)\n\n", + ospf6->aggr_delay_interval); vty_out(vty, "%s\n", header); } else { json_vrf = json_object_new_object(); diff --git a/ospf6d/ospf6_top.h b/ospf6d/ospf6_top.h index 77156f961d..b850fb9936 100644 --- a/ospf6d/ospf6_top.h +++ b/ospf6d/ospf6_top.h @@ -230,7 +230,7 @@ struct ospf6 { #define OSPF6_EXTL_AGGR_DEFAULT_DELAY 5 /* For ASBR summary delay timer */ - int aggr_delay_interval; + uint16_t aggr_delay_interval; /* Table of configured Aggregate addresses */ struct route_table *rt_aggr_tbl; From 4b939ad2308b100d09d061116a8fc7383a232272 Mon Sep 17 00:00:00 2001 From: anlan_cs Date: Fri, 28 Jan 2022 09:01:54 -0500 Subject: [PATCH 4/4] ospfd: adjust type of "aggr_delay_interval" Adjust type of "aggr_delay_interval": Just replace `unsigned int` with `uint16_t` for range is (50..1800). Signed-off-by: anlan_cs --- ospfd/ospf_asbr.c | 4 ++-- ospfd/ospf_asbr.h | 2 +- ospfd/ospf_vty.c | 4 ++-- ospfd/ospfd.h | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ospfd/ospf_asbr.c b/ospfd/ospf_asbr.c index 000c62e305..8cb85b4626 100644 --- a/ospfd/ospf_asbr.c +++ b/ospfd/ospf_asbr.c @@ -1108,7 +1108,7 @@ static void ospf_external_aggr_timer(struct ospf *ospf, } if (IS_DEBUG_OSPF(lsa, EXTNL_LSA_AGGR)) - zlog_debug("%s: Start Aggregator delay timer %d(in seconds).", + zlog_debug("%s: Start Aggregator delay timer %u(in seconds).", __func__, ospf->aggr_delay_interval); ospf->aggr_action = operation; @@ -1232,7 +1232,7 @@ int ospf_asbr_external_rt_advertise(struct ospf *ospf, struct prefix_ipv4 *p) return OSPF_SUCCESS; } -int ospf_external_aggregator_timer_set(struct ospf *ospf, unsigned int interval) +int ospf_external_aggregator_timer_set(struct ospf *ospf, uint16_t interval) { ospf->aggr_delay_interval = interval; return OSPF_SUCCESS; diff --git a/ospfd/ospf_asbr.h b/ospfd/ospf_asbr.h index 160883144f..f7dbca7587 100644 --- a/ospfd/ospf_asbr.h +++ b/ospfd/ospf_asbr.h @@ -148,7 +148,7 @@ ospf_originate_summary_lsa(struct ospf *ospf, struct ospf_external_aggr_rt *aggr, struct external_info *ei); extern int ospf_external_aggregator_timer_set(struct ospf *ospf, - unsigned int interval); + uint16_t interval); extern void ospf_external_aggrigator_free(struct ospf_external_aggr_rt *aggr); extern struct ospf_external_aggr_rt * diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c index fe6c9b6e55..7155f5b1cb 100644 --- a/ospfd/ospf_vty.c +++ b/ospfd/ospf_vty.c @@ -10339,7 +10339,7 @@ DEFUN (ospf_route_aggregation_timer, "Timer interval(in seconds)\n") { VTY_DECLVAR_INSTANCE_CONTEXT(ospf, ospf); - unsigned int interval = 0; + uint16_t interval = 0; interval = strtoul(argv[2]->arg, NULL, 10); @@ -11369,7 +11369,7 @@ static int ospf_show_summary_address(struct vty *vty, struct ospf *ospf, ospf_show_vrf_name(ospf, vty, json_vrf, use_vrf); if (!uj) - vty_out(vty, "aggregation delay interval :%d(in seconds)\n\n", + vty_out(vty, "aggregation delay interval :%u(in seconds)\n\n", ospf->aggr_delay_interval); else json_object_int_add(json_vrf, "aggregation delay interval", diff --git a/ospfd/ospfd.h b/ospfd/ospfd.h index 3369429eba..4f1b1493a6 100644 --- a/ospfd/ospfd.h +++ b/ospfd/ospfd.h @@ -377,7 +377,7 @@ struct ospf { struct thread *t_external_aggr; /* delay interval in seconds */ - unsigned int aggr_delay_interval; + uint16_t aggr_delay_interval; /* Table of configured Aggregate addresses */ struct route_table *rt_aggr_tbl;