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

View File

@ -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);
@ -11247,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;
@ -11301,8 +11296,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);
}

View File

@ -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 {

View File

@ -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);
@ -1021,10 +1020,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(

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)
{
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",

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 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(

View File

@ -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();
@ -953,13 +952,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)

View File

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

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;
json_object *json_addr = NULL;
char buf[PREFIX2STR_BUFFER];
/* Print interface address. */
p = connected->address;
@ -1318,8 +1317,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 +1325,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);
}