From 15116b0069ac6bdf701bb31a9e874424db668d5b Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Thu, 25 Nov 2021 17:26:26 +0200 Subject: [PATCH 1/8] tools: Replace prefix2str for JSON to %pFX Signed-off-by: Donatas Abraitis --- ...i => json_object_string_addf_inet_ntop.cocci} | 0 .../json_object_string_addf_prefix2str.cocci | 16 ++++++++++++++++ 2 files changed, 16 insertions(+) rename tools/coccinelle/{json_object_string_addf.cocci => json_object_string_addf_inet_ntop.cocci} (100%) create mode 100644 tools/coccinelle/json_object_string_addf_prefix2str.cocci diff --git a/tools/coccinelle/json_object_string_addf.cocci b/tools/coccinelle/json_object_string_addf_inet_ntop.cocci similarity index 100% rename from tools/coccinelle/json_object_string_addf.cocci rename to tools/coccinelle/json_object_string_addf_inet_ntop.cocci diff --git a/tools/coccinelle/json_object_string_addf_prefix2str.cocci b/tools/coccinelle/json_object_string_addf_prefix2str.cocci new file mode 100644 index 0000000000..ae012b91be --- /dev/null +++ b/tools/coccinelle/json_object_string_addf_prefix2str.cocci @@ -0,0 +1,16 @@ +@@ +identifier json; +expression family, value; +expression prefix; +constant key; +@@ + +( +-prefix2str(prefix, value, ...); +... +-json_object_string_add(json, key, value); ++json_object_string_addf(json, key, "%pFX", prefix); +| +-json_object_string_add(json, key, prefix2str(prefix, value, ...)); ++json_object_string_addf(json, key, "%pFX", prefix); +) From 44991dc1637623dac19324ad1f636d5cde8565f8 Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Thu, 25 Nov 2021 17:28:12 +0200 Subject: [PATCH 2/8] zebra: Replace prefix2str for JSON to %pFX Signed-off-by: Donatas Abraitis --- zebra/interface.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/zebra/interface.c b/zebra/interface.c index d300397b4e..c2d42f34db 100644 --- a/zebra/interface.c +++ b/zebra/interface.c @@ -1318,8 +1318,7 @@ static void connected_dump_vty(struct vty *vty, json_object *json, if (json) { json_addr = json_object_new_object(); json_object_array_add(json, json_addr); - json_object_string_add(json_addr, "address", - prefix2str(p, buf, sizeof(buf))); + json_object_string_addf(json_addr, "address", "%pFX", p); } else { vty_out(vty, " %s %pFX", prefix_family_str(p), p); } @@ -1327,10 +1326,8 @@ static void connected_dump_vty(struct vty *vty, json_object *json, /* If there is destination address, print it. */ if (CONNECTED_PEER(connected) && connected->destination) { if (json) { - json_object_string_add( - json_addr, "peer", - prefix2str(connected->destination, buf, - sizeof(buf))); + json_object_string_addf(json_addr, "peer", "%pFX", + connected->destination); } else { vty_out(vty, " peer %pFX", connected->destination); } From 9afa523142bd9adccba2fc01fab6bb2ffab55d16 Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Thu, 25 Nov 2021 17:28:24 +0200 Subject: [PATCH 3/8] pimd: Replace prefix2str for JSON to %pFX Signed-off-by: Donatas Abraitis --- pimd/pim_rp.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pimd/pim_rp.c b/pimd/pim_rp.c index 4865b0ed46..702e4d1d76 100644 --- a/pimd/pim_rp.c +++ b/pimd/pim_rp.c @@ -1273,10 +1273,9 @@ void pim_rp_show_information(struct pim_instance *pim, struct vty *vty, bool uj) "prefixList", rp_info->plist); else - json_object_string_add( - json_row, "group", - prefix2str(&rp_info->group, buf, - 48)); + json_object_string_addf( + json_row, "group", "%pFX", + &rp_info->group); json_object_string_add(json_row, "source", source); From 60200fdd9bcd4c8f8ed052047e55ea0baf1bb882 Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Thu, 25 Nov 2021 17:29:18 +0200 Subject: [PATCH 4/8] pbrd: Replace prefix2str for JSON to %pFX Signed-off-by: Donatas Abraitis --- pbrd/pbr_vty.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pbrd/pbr_vty.c b/pbrd/pbr_vty.c index dddca1d720..005e58ef3c 100644 --- a/pbrd/pbr_vty.c +++ b/pbrd/pbr_vty.c @@ -953,13 +953,9 @@ static void vty_json_pbrms(json_object *j, struct vty *vty, json_object_string_add(jpbrm, "vrfName", pbrms->vrf_name); if (pbrms->src) - json_object_string_add( - jpbrm, "matchSrc", - prefix2str(pbrms->src, buf, sizeof(buf))); + json_object_string_addf(jpbrm, "matchSrc", "%pFX", pbrms->src); if (pbrms->dst) - json_object_string_add( - jpbrm, "matchDst", - prefix2str(pbrms->dst, buf, sizeof(buf))); + json_object_string_addf(jpbrm, "matchDst", "%pFX", pbrms->dst); if (pbrms->mark) json_object_int_add(jpbrm, "matchMark", pbrms->mark); if (pbrms->dsfield & PBR_DSFIELD_DSCP) From d63f3ff7cc00761118cc4e89a107968910b4b552 Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Thu, 25 Nov 2021 17:29:30 +0200 Subject: [PATCH 5/8] ospfd: Replace prefix2str for JSON to %pFX Signed-off-by: Donatas Abraitis --- ospfd/ospf_vty.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c index 84469160d3..24ea764385 100644 --- a/ospfd/ospf_vty.c +++ b/ospfd/ospf_vty.c @@ -5966,7 +5966,6 @@ static int show_lsa_summary(struct vty *vty, struct ospf_lsa *lsa, int self, struct summary_lsa *sl; struct as_external_lsa *asel; struct prefix_ipv4 p; - char buf[PREFIX2STR_BUFFER]; if (lsa != NULL) /* If self option is set, check LSA self flag. */ @@ -6025,10 +6024,9 @@ static int show_lsa_summary(struct vty *vty, struct ospf_lsa *lsa, int self, if (!json_lsa) vty_out(vty, " %pFX", &p); else { - prefix2str(&p, buf, sizeof(buf)); - json_object_string_add(json_lsa, - "summaryAddress", - buf); + json_object_string_addf( + json_lsa, "summaryAddress", + "%pFX", &p); } break; case OSPF_AS_EXTERNAL_LSA: @@ -6050,15 +6048,14 @@ static int show_lsa_summary(struct vty *vty, struct ospf_lsa *lsa, int self, (unsigned long)ntohl( asel->e[0].route_tag)); else { - prefix2str(&p, buf, sizeof(buf)); json_object_string_add( json_lsa, "metricType", IS_EXTERNAL_METRIC( asel->e[0].tos) ? "E2" : "E1"); - json_object_string_add(json_lsa, - "route", buf); + json_object_string_addf( + json_lsa, "route", "%pFX", &p); json_object_int_add( json_lsa, "tag", (unsigned long)ntohl( From a6c86424294aef97052382ad5915aaa6b216cbb8 Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Thu, 25 Nov 2021 17:30:36 +0200 Subject: [PATCH 6/8] lib: Replace prefix2str for JSON to %pFX Signed-off-by: Donatas Abraitis --- lib/plist.c | 7 +++---- lib/srv6.c | 8 ++------ 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/lib/plist.c b/lib/plist.c index 0b3de88d9f..826aa13e3d 100644 --- a/lib/plist.c +++ b/lib/plist.c @@ -1021,10 +1021,9 @@ static void vty_show_prefix_entry(struct vty *vty, json_object *json, afi_t afi, json_object_string_add( json_entry, "type", prefix_list_type_str(pentry)); - json_object_string_add( - json_entry, "prefix", - prefix2str(&pentry->prefix, buf, - sizeof(buf))); + json_object_string_addf(json_entry, "prefix", + "%pFX", + &pentry->prefix); if (pentry->ge) json_object_int_add( diff --git a/lib/srv6.c b/lib/srv6.c index ccb94b2f76..aacd30a7af 100644 --- a/lib/srv6.c +++ b/lib/srv6.c @@ -161,12 +161,10 @@ void srv6_locator_chunk_free(struct srv6_locator_chunk *chunk) json_object *srv6_locator_chunk_json(const struct srv6_locator_chunk *chunk) { - char str[256]; json_object *jo_root = NULL; jo_root = json_object_new_object(); - prefix2str(&chunk->prefix, str, sizeof(str)); - json_object_string_add(jo_root, "prefix", str); + json_object_string_addf(jo_root, "prefix", "%pFX", &chunk->prefix); json_object_string_add(jo_root, "proto", zebra_route_string(chunk->proto)); @@ -175,7 +173,6 @@ json_object *srv6_locator_chunk_json(const struct srv6_locator_chunk *chunk) json_object *srv6_locator_json(const struct srv6_locator *loc) { - char str[256]; struct listnode *node; struct srv6_locator_chunk *chunk; json_object *jo_root = NULL; @@ -188,8 +185,7 @@ json_object *srv6_locator_json(const struct srv6_locator *loc) json_object_string_add(jo_root, "name", loc->name); /* set prefix */ - prefix2str(&loc->prefix, str, sizeof(str)); - json_object_string_add(jo_root, "prefix", str); + json_object_string_addf(jo_root, "prefix", "%pFX", &loc->prefix); /* set function_bits_length */ json_object_int_add(jo_root, "functionBitsLength", From 67d7e256a39848cd00a7ad8d0a84095c9f709ced Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Thu, 25 Nov 2021 17:31:25 +0200 Subject: [PATCH 7/8] bgpd: Replace prefix2str for JSON to %pFX Signed-off-by: Donatas Abraitis --- bgpd/bgp_evpn_vty.c | 10 ++++++---- bgpd/bgp_route.c | 13 ++++--------- bgpd/bgp_vty.c | 6 +++--- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/bgpd/bgp_evpn_vty.c b/bgpd/bgp_evpn_vty.c index 89ed9551ce..455315e40d 100644 --- a/bgpd/bgp_evpn_vty.c +++ b/bgpd/bgp_evpn_vty.c @@ -1345,10 +1345,12 @@ static int bgp_show_ethernet_vpn(struct vty *vty, struct prefix_rd *prd, json_prefix_info = json_object_new_object(); - json_object_string_add( - json_prefix_info, "prefix", - prefix2str((struct prefix_evpn *)p, buf, - BUFSIZ)); + prefix2str((struct prefix_evpn *)p, buf, + BUFSIZ); + + json_object_string_addf( + json_prefix_info, "prefix", "%pFX", + (struct prefix_evpn *)p); json_object_int_add(json_prefix_info, "prefixLen", p->prefixlen); diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index b79fe778ae..e8f35bb2a6 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -8384,7 +8384,6 @@ static void route_vty_out_route(struct bgp_dest *dest, const struct prefix *p, { int len = 0; char buf[BUFSIZ]; - char buf2[BUFSIZ]; if (p->family == AF_INET) { if (!json) { @@ -8395,8 +8394,7 @@ static void route_vty_out_route(struct bgp_dest *dest, const struct prefix *p, &p->u.prefix, buf, BUFSIZ)); json_object_int_add(json, "prefixLen", p->prefixlen); - prefix2str(p, buf2, PREFIX_STRLEN); - json_object_string_add(json, "network", buf2); + json_object_string_addf(json, "network", "%pFX", p); json_object_int_add(json, "version", dest->version); } } else if (p->family == AF_ETHERNET) { @@ -8420,8 +8418,7 @@ static void route_vty_out_route(struct bgp_dest *dest, const struct prefix *p, &p->u.prefix, buf, BUFSIZ)); json_object_int_add(json, "prefixLen", p->prefixlen); - prefix2str(p, buf2, PREFIX_STRLEN); - json_object_string_add(json, "network", buf2); + json_object_string_addf(json, "network", "%pFX", p); json_object_int_add(json, "version", dest->version); } } @@ -9100,8 +9097,7 @@ void route_vty_out_tmp(struct vty *vty, struct bgp_dest *dest, BUFSIZ)); json_object_int_add(json_net, "prefixLen", p->prefixlen); - prefix2str(p, buff, PREFIX_STRLEN); - json_object_string_add(json_net, "network", buff); + json_object_string_addf(json_net, "network", "%pFX", p); } } else route_vty_out_route(dest, p, vty, NULL, wide); @@ -11301,8 +11297,7 @@ void route_vty_out_detail_header(struct vty *vty, struct bgp *bgp, dest->version); } else { - json_object_string_add(json, "prefix", - prefix2str(p, prefix_str, sizeof(prefix_str))); + json_object_string_addf(json, "prefix", "%pFX", p); json_object_int_add(json, "version", dest->version); } diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 88d84a3c50..29076537dc 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -12363,10 +12363,10 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, bool use_json, p->group, &prefix); if (range) { - prefix2str(range, buf1, sizeof(buf1)); - json_object_string_add( + json_object_string_addf( json_neigh, - "peerSubnetRangeGroup", buf1); + "peerSubnetRangeGroup", "%pFX", + range); } } } else { From 746a6eda2f9d6c774d7c96f4e663148f8579776b Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Thu, 25 Nov 2021 17:35:55 +0200 Subject: [PATCH 8/8] *: Remove unused variables Signed-off-by: Donatas Abraitis --- bgpd/bgp_route.c | 1 - lib/plist.c | 1 - pbrd/pbr_vty.c | 1 - zebra/interface.c | 1 - 4 files changed, 4 deletions(-) diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index e8f35bb2a6..f8b09e56bf 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -11243,7 +11243,6 @@ void route_vty_out_detail_header(struct vty *vty, struct bgp *bgp, struct peer *peer; struct listnode *node, *nnode; char buf1[RD_ADDRSTRLEN]; - char prefix_str[BUFSIZ]; int count = 0; int best = 0; int suppress = 0; diff --git a/lib/plist.c b/lib/plist.c index 826aa13e3d..d2ddb1d61c 100644 --- a/lib/plist.c +++ b/lib/plist.c @@ -1010,7 +1010,6 @@ static void vty_show_prefix_entry(struct vty *vty, json_object *json, afi_t afi, if (json) { json_object *json_entry; - char buf[BUFSIZ]; json_entry = json_object_new_object(); json_object_array_add(json_entries, json_entry); diff --git a/pbrd/pbr_vty.c b/pbrd/pbr_vty.c index 005e58ef3c..47acfd82a2 100644 --- a/pbrd/pbr_vty.c +++ b/pbrd/pbr_vty.c @@ -917,7 +917,6 @@ static void vty_json_pbrms(json_object *j, struct vty *vty, json_object *jpbrm, *nexthop_group; char *nhg_name = pbrms->nhgrp_name ? pbrms->nhgrp_name : pbrms->internal_nhg_name; - char buf[PREFIX_STRLEN]; char rbuf[64]; jpbrm = json_object_new_object(); diff --git a/zebra/interface.c b/zebra/interface.c index c2d42f34db..6ad6e4e3f6 100644 --- a/zebra/interface.c +++ b/zebra/interface.c @@ -1310,7 +1310,6 @@ static void connected_dump_vty(struct vty *vty, json_object *json, { struct prefix *p; json_object *json_addr = NULL; - char buf[PREFIX2STR_BUFFER]; /* Print interface address. */ p = connected->address;