]> git.proxmox.com Git - mirror_frr.git/blobdiff - ospf6d/ospf6_top.c
Merge pull request #12329 from opensourcerouting/feature/graceful-shutdown_per_peer
[mirror_frr.git] / ospf6d / ospf6_top.c
index e64bf24b669a204dbd050e247bbac4ff60b10225..eb89a14cd3829db7ea28dc947589e5d677a18a0a 100644 (file)
@@ -65,9 +65,7 @@ FRR_CFG_DEFAULT_BOOL(OSPF6_LOG_ADJACENCY_CHANGES,
        { .val_bool = false },
 );
 
-#ifndef VTYSH_EXTRACT_PL
 #include "ospf6d/ospf6_top_clippy.c"
-#endif
 
 /* global ospf6d variable */
 static struct ospf6_master ospf6_master;
@@ -579,7 +577,7 @@ static void ospf6_disable(struct ospf6 *o)
 
 void ospf6_master_init(struct thread_master *master)
 {
-       memset(&ospf6_master, 0, sizeof(struct ospf6_master));
+       memset(&ospf6_master, 0, sizeof(ospf6_master));
 
        om6 = &ospf6_master;
        om6->ospf6 = list_new();
@@ -1372,9 +1370,7 @@ static void ospf6_show(struct vty *vty, struct ospf6 *o, json_object *json,
                } else
                        json_object_boolean_false_add(json, "spfHasRun");
 
-
-               threadtimer_string(now, o->t_spf_calc, buf, sizeof(buf));
-               if (o->t_spf_calc) {
+               if (thread_is_scheduled(o->t_spf_calc)) {
                        long time_store;
 
                        json_object_boolean_true_add(json, "spfTimerActive");
@@ -1467,7 +1463,9 @@ static void ospf6_show(struct vty *vty, struct ospf6 *o, json_object *json,
 
                threadtimer_string(now, o->t_spf_calc, buf, sizeof(buf));
                vty_out(vty, " SPF timer %s%s\n",
-                       (o->t_spf_calc ? "due in " : "is "), buf);
+                       (thread_is_scheduled(o->t_spf_calc) ? "due in "
+                                                           : "is "),
+                       buf);
 
                if (CHECK_FLAG(o->flag, OSPF6_STUB_ROUTER))
                        vty_out(vty, " Router Is Stub Router\n");
@@ -1756,14 +1754,10 @@ DEFUN(show_ipv6_ospf6_route_type_detail, show_ipv6_ospf6_route_type_detail_cmd,
 
 bool ospf6_is_valid_summary_addr(struct vty *vty, struct prefix *p)
 {
-       struct in6_addr addr_zero;
-
-       memset(&addr_zero, 0, sizeof(struct in6_addr));
-
-        /* Default prefix validation*/
-       if ((is_default_prefix((struct prefix *)p))
-          || (!memcmp(&p->u.prefix6, &addr_zero, sizeof(struct in6_addr)))) {
-               vty_out(vty, "Default address should not be configured as summary address.\n");
+       /* Default prefix validation*/
+       if (is_default_prefix(p)) {
+               vty_out(vty,
+                       "Default address should not be configured as summary address.\n");
                return false;
        }
 
@@ -1802,7 +1796,7 @@ DEFPY (ospf6_external_route_aggregation,
        }
 
        /* Apply mask for given prefix. */
-       apply_mask((struct prefix *)&p);
+       apply_mask(&p);
 
        if (!ospf6_is_valid_summary_addr(vty, &p))
                return CMD_WARNING_CONFIG_FAILED;
@@ -1850,7 +1844,7 @@ DEFPY(no_ospf6_external_route_aggregation,
        }
 
        /* Apply mask for given prefix. */
-       apply_mask((struct prefix *)&p);
+       apply_mask(&p);
 
        if (!ospf6_is_valid_summary_addr(vty, &p))
                return CMD_WARNING_CONFIG_FAILED;
@@ -1881,7 +1875,7 @@ DEFPY (ospf6_external_route_aggregation_no_advertise,
        }
 
        /* Apply mask for given prefix. */
-       apply_mask((struct prefix *)&p);
+       apply_mask(&p);
 
        if (!ospf6_is_valid_summary_addr(vty, &p))
                return CMD_WARNING_CONFIG_FAILED;
@@ -1913,7 +1907,7 @@ DEFPY (no_ospf6_external_route_aggregation_no_advertise,
        }
 
        /* Apply mask for given prefix. */
-       apply_mask((struct prefix *)&p);
+       apply_mask(&p);
 
        if (!ospf6_is_valid_summary_addr(vty, &p))
                return CMD_WARNING_CONFIG_FAILED;
@@ -2017,6 +2011,9 @@ ospf6_show_vrf_name(struct vty *vty, struct ospf6 *ospf6,
        }
 }
 
+#if CONFDATE > 20230131
+CPP_NOTICE("Remove JSON object commands with keys containing whitespaces")
+#endif
 static int
 ospf6_show_summary_address(struct vty *vty, struct ospf6 *ospf6,
                        json_object *json,
@@ -2037,7 +2034,9 @@ ospf6_show_summary_address(struct vty *vty, struct ospf6 *ospf6,
                ospf6_show_vrf_name(vty, ospf6, json_vrf);
 
                json_object_int_add(json_vrf, "aggregation delay interval",
-                               ospf6->aggr_delay_interval);
+                                   ospf6->aggr_delay_interval);
+               json_object_int_add(json_vrf, "aggregationDelayInterval",
+                                   ospf6->aggr_delay_interval);
        }
 
 
@@ -2062,12 +2061,18 @@ ospf6_show_summary_address(struct vty *vty, struct ospf6 *ospf6,
                        json_object_string_add(json_aggr,
                                        "Summary address",
                                        buf);
+                       json_object_string_add(json_aggr, "summaryAddress",
+                                              buf);
 
                        json_object_string_add(
                                json_aggr, "Metric-type",
                                (aggr->mtype == DEFAULT_METRIC_TYPE)
                                        ? "E2"
                                        : "E1");
+                       json_object_string_add(
+                               json_aggr, "metricType",
+                               (aggr->mtype == DEFAULT_METRIC_TYPE) ? "E2"
+                                                                    : "E1");
 
                        json_object_int_add(json_aggr, "Metric",
                                           (aggr->metric != -1)
@@ -2080,6 +2085,8 @@ ospf6_show_summary_address(struct vty *vty, struct ospf6 *ospf6,
                        json_object_int_add(json_aggr,
                                        "External route count",
                                        OSPF6_EXTERNAL_RT_COUNT(aggr));
+                       json_object_int_add(json_aggr, "externalRouteCount",
+                                           OSPF6_EXTERNAL_RT_COUNT(aggr));
 
                        if (OSPF6_EXTERNAL_RT_COUNT(aggr) && detail) {
                                json_object_int_add(json_aggr, "ID",