Merge pull request #10125 from ton31337/feature/replace_prefix_to_json_object_string_addf

*: Replace prefix2str for JSON to %pFX
This commit is contained in:
Igor Ryzhov 2021-11-26 17:23:45 +03:00 committed by GitHub
commit e44c9059e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 47 additions and 54 deletions

View File

@ -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_prefix_info = json_object_new_object();
json_object_string_add( prefix2str((struct prefix_evpn *)p, buf,
json_prefix_info, "prefix", 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, json_object_int_add(json_prefix_info,
"prefixLen", p->prefixlen); "prefixLen", p->prefixlen);

View File

@ -8384,7 +8384,6 @@ static void route_vty_out_route(struct bgp_dest *dest, const struct prefix *p,
{ {
int len = 0; int len = 0;
char buf[BUFSIZ]; char buf[BUFSIZ];
char buf2[BUFSIZ];
if (p->family == AF_INET) { if (p->family == AF_INET) {
if (!json) { if (!json) {
@ -8395,8 +8394,7 @@ static void route_vty_out_route(struct bgp_dest *dest, const struct prefix *p,
&p->u.prefix, buf, &p->u.prefix, buf,
BUFSIZ)); BUFSIZ));
json_object_int_add(json, "prefixLen", p->prefixlen); json_object_int_add(json, "prefixLen", p->prefixlen);
prefix2str(p, buf2, PREFIX_STRLEN); json_object_string_addf(json, "network", "%pFX", p);
json_object_string_add(json, "network", buf2);
json_object_int_add(json, "version", dest->version); json_object_int_add(json, "version", dest->version);
} }
} else if (p->family == AF_ETHERNET) { } 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, &p->u.prefix, buf,
BUFSIZ)); BUFSIZ));
json_object_int_add(json, "prefixLen", p->prefixlen); json_object_int_add(json, "prefixLen", p->prefixlen);
prefix2str(p, buf2, PREFIX_STRLEN); json_object_string_addf(json, "network", "%pFX", p);
json_object_string_add(json, "network", buf2);
json_object_int_add(json, "version", dest->version); 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)); BUFSIZ));
json_object_int_add(json_net, "prefixLen", json_object_int_add(json_net, "prefixLen",
p->prefixlen); p->prefixlen);
prefix2str(p, buff, PREFIX_STRLEN); json_object_string_addf(json_net, "network", "%pFX", p);
json_object_string_add(json_net, "network", buff);
} }
} else } else
route_vty_out_route(dest, p, vty, NULL, wide); route_vty_out_route(dest, p, vty, NULL, wide);
@ -11247,7 +11243,6 @@ void route_vty_out_detail_header(struct vty *vty, struct bgp *bgp,
struct peer *peer; struct peer *peer;
struct listnode *node, *nnode; struct listnode *node, *nnode;
char buf1[RD_ADDRSTRLEN]; char buf1[RD_ADDRSTRLEN];
char prefix_str[BUFSIZ];
int count = 0; int count = 0;
int best = 0; int best = 0;
int suppress = 0; int suppress = 0;
@ -11301,8 +11296,7 @@ void route_vty_out_detail_header(struct vty *vty, struct bgp *bgp,
dest->version); dest->version);
} else { } else {
json_object_string_add(json, "prefix", json_object_string_addf(json, "prefix", "%pFX", p);
prefix2str(p, prefix_str, sizeof(prefix_str)));
json_object_int_add(json, "version", dest->version); json_object_int_add(json, "version", dest->version);
} }

View File

@ -12363,10 +12363,10 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, bool use_json,
p->group, &prefix); p->group, &prefix);
if (range) { if (range) {
prefix2str(range, buf1, sizeof(buf1)); json_object_string_addf(
json_object_string_add(
json_neigh, json_neigh,
"peerSubnetRangeGroup", buf1); "peerSubnetRangeGroup", "%pFX",
range);
} }
} }
} else { } else {

View File

@ -1010,7 +1010,6 @@ static void vty_show_prefix_entry(struct vty *vty, json_object *json, afi_t afi,
if (json) { if (json) {
json_object *json_entry; json_object *json_entry;
char buf[BUFSIZ];
json_entry = json_object_new_object(); json_entry = json_object_new_object();
json_object_array_add(json_entries, json_entry); json_object_array_add(json_entries, json_entry);
@ -1021,10 +1020,9 @@ static void vty_show_prefix_entry(struct vty *vty, json_object *json, afi_t afi,
json_object_string_add( json_object_string_add(
json_entry, "type", json_entry, "type",
prefix_list_type_str(pentry)); prefix_list_type_str(pentry));
json_object_string_add( json_object_string_addf(json_entry, "prefix",
json_entry, "prefix", "%pFX",
prefix2str(&pentry->prefix, buf, &pentry->prefix);
sizeof(buf)));
if (pentry->ge) if (pentry->ge)
json_object_int_add( json_object_int_add(

View File

@ -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) json_object *srv6_locator_chunk_json(const struct srv6_locator_chunk *chunk)
{ {
char str[256];
json_object *jo_root = NULL; json_object *jo_root = NULL;
jo_root = json_object_new_object(); jo_root = json_object_new_object();
prefix2str(&chunk->prefix, str, sizeof(str)); json_object_string_addf(jo_root, "prefix", "%pFX", &chunk->prefix);
json_object_string_add(jo_root, "prefix", str);
json_object_string_add(jo_root, "proto", json_object_string_add(jo_root, "proto",
zebra_route_string(chunk->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) json_object *srv6_locator_json(const struct srv6_locator *loc)
{ {
char str[256];
struct listnode *node; struct listnode *node;
struct srv6_locator_chunk *chunk; struct srv6_locator_chunk *chunk;
json_object *jo_root = NULL; 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); json_object_string_add(jo_root, "name", loc->name);
/* set prefix */ /* set prefix */
prefix2str(&loc->prefix, str, sizeof(str)); json_object_string_addf(jo_root, "prefix", "%pFX", &loc->prefix);
json_object_string_add(jo_root, "prefix", str);
/* set function_bits_length */ /* set function_bits_length */
json_object_int_add(jo_root, "functionBitsLength", json_object_int_add(jo_root, "functionBitsLength",

View File

@ -5966,7 +5966,6 @@ static int show_lsa_summary(struct vty *vty, struct ospf_lsa *lsa, int self,
struct summary_lsa *sl; struct summary_lsa *sl;
struct as_external_lsa *asel; struct as_external_lsa *asel;
struct prefix_ipv4 p; struct prefix_ipv4 p;
char buf[PREFIX2STR_BUFFER];
if (lsa != NULL) if (lsa != NULL)
/* If self option is set, check LSA self flag. */ /* 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) if (!json_lsa)
vty_out(vty, " %pFX", &p); vty_out(vty, " %pFX", &p);
else { else {
prefix2str(&p, buf, sizeof(buf)); json_object_string_addf(
json_object_string_add(json_lsa, json_lsa, "summaryAddress",
"summaryAddress", "%pFX", &p);
buf);
} }
break; break;
case OSPF_AS_EXTERNAL_LSA: 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( (unsigned long)ntohl(
asel->e[0].route_tag)); asel->e[0].route_tag));
else { else {
prefix2str(&p, buf, sizeof(buf));
json_object_string_add( json_object_string_add(
json_lsa, "metricType", json_lsa, "metricType",
IS_EXTERNAL_METRIC( IS_EXTERNAL_METRIC(
asel->e[0].tos) asel->e[0].tos)
? "E2" ? "E2"
: "E1"); : "E1");
json_object_string_add(json_lsa, json_object_string_addf(
"route", buf); json_lsa, "route", "%pFX", &p);
json_object_int_add( json_object_int_add(
json_lsa, "tag", json_lsa, "tag",
(unsigned long)ntohl( (unsigned long)ntohl(

View File

@ -917,7 +917,6 @@ static void vty_json_pbrms(json_object *j, struct vty *vty,
json_object *jpbrm, *nexthop_group; json_object *jpbrm, *nexthop_group;
char *nhg_name = pbrms->nhgrp_name ? pbrms->nhgrp_name char *nhg_name = pbrms->nhgrp_name ? pbrms->nhgrp_name
: pbrms->internal_nhg_name; : pbrms->internal_nhg_name;
char buf[PREFIX_STRLEN];
char rbuf[64]; char rbuf[64];
jpbrm = json_object_new_object(); jpbrm = json_object_new_object();
@ -953,13 +952,9 @@ static void vty_json_pbrms(json_object *j, struct vty *vty,
json_object_string_add(jpbrm, "vrfName", pbrms->vrf_name); json_object_string_add(jpbrm, "vrfName", pbrms->vrf_name);
if (pbrms->src) if (pbrms->src)
json_object_string_add( json_object_string_addf(jpbrm, "matchSrc", "%pFX", pbrms->src);
jpbrm, "matchSrc",
prefix2str(pbrms->src, buf, sizeof(buf)));
if (pbrms->dst) if (pbrms->dst)
json_object_string_add( json_object_string_addf(jpbrm, "matchDst", "%pFX", pbrms->dst);
jpbrm, "matchDst",
prefix2str(pbrms->dst, buf, sizeof(buf)));
if (pbrms->mark) if (pbrms->mark)
json_object_int_add(jpbrm, "matchMark", pbrms->mark); json_object_int_add(jpbrm, "matchMark", pbrms->mark);
if (pbrms->dsfield & PBR_DSFIELD_DSCP) if (pbrms->dsfield & PBR_DSFIELD_DSCP)

View File

@ -1273,10 +1273,9 @@ void pim_rp_show_information(struct pim_instance *pim, struct vty *vty, bool uj)
"prefixList", "prefixList",
rp_info->plist); rp_info->plist);
else else
json_object_string_add( json_object_string_addf(
json_row, "group", json_row, "group", "%pFX",
prefix2str(&rp_info->group, buf, &rp_info->group);
48));
json_object_string_add(json_row, "source", json_object_string_add(json_row, "source",
source); source);

View File

@ -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);
)

View File

@ -1310,7 +1310,6 @@ static void connected_dump_vty(struct vty *vty, json_object *json,
{ {
struct prefix *p; struct prefix *p;
json_object *json_addr = NULL; json_object *json_addr = NULL;
char buf[PREFIX2STR_BUFFER];
/* Print interface address. */ /* Print interface address. */
p = connected->address; p = connected->address;
@ -1318,8 +1317,7 @@ static void connected_dump_vty(struct vty *vty, json_object *json,
if (json) { if (json) {
json_addr = json_object_new_object(); json_addr = json_object_new_object();
json_object_array_add(json, json_addr); json_object_array_add(json, json_addr);
json_object_string_add(json_addr, "address", json_object_string_addf(json_addr, "address", "%pFX", p);
prefix2str(p, buf, sizeof(buf)));
} else { } else {
vty_out(vty, " %s %pFX", prefix_family_str(p), p); vty_out(vty, " %s %pFX", prefix_family_str(p), p);
} }
@ -1327,10 +1325,8 @@ static void connected_dump_vty(struct vty *vty, json_object *json,
/* If there is destination address, print it. */ /* If there is destination address, print it. */
if (CONNECTED_PEER(connected) && connected->destination) { if (CONNECTED_PEER(connected) && connected->destination) {
if (json) { if (json) {
json_object_string_add( json_object_string_addf(json_addr, "peer", "%pFX",
json_addr, "peer", connected->destination);
prefix2str(connected->destination, buf,
sizeof(buf)));
} else { } else {
vty_out(vty, " peer %pFX", connected->destination); vty_out(vty, " peer %pFX", connected->destination);
} }