static void show_remote_ip_entry(struct hash_bucket *bucket, void *args)
{
char buf[INET6_ADDRSTRLEN];
- char buf2[EVPN_ROUTE_STRLEN];
- struct prefix_evpn *evp;
-
struct listnode *node = NULL;
struct bgp_path_info *pi = NULL;
struct vty *vty = (struct vty *)args;
vty_out(vty, " Remote IP: %s\n",
ipaddr2str(&ip->addr, buf, sizeof(buf)));
vty_out(vty, " Linked MAC/IP routes:\n");
- for (ALL_LIST_ELEMENTS_RO(ip->macip_path_list, node, pi)) {
- evp = (struct prefix_evpn *)&pi->net->p;
- prefix2str(evp, buf2, sizeof(buf2));
- vty_out(vty, " %s\n", buf2);
- }
+ for (ALL_LIST_ELEMENTS_RO(ip->macip_path_list, node, pi))
+ vty_out(vty, " %pFX\n", &pi->net->p);
}
void bgp_evpn_show_remote_ip_hash(struct hash_bucket *bucket, void *args)
if (!bnc->nexthop || bnc->nexthop->ifindex != vpn->svi_ifindex)
return;
- if (BGP_DEBUG(nht, NHT)) {
- char buf[PREFIX2STR_BUFFER];
-
- prefix2str(&bnc->prefix, buf, sizeof(buf));
- zlog_debug("%s(%u): vni %u mac/ip %s for NH %s",
+ if (BGP_DEBUG(nht, NHT))
+ zlog_debug("%s(%u): vni %u mac/ip %s for NH %pFX",
vpn->bgp_vrf->name_pretty, vpn->tenant_vrf_id,
- vpn->vni, (resolve ? "add" : "delete"), buf);
- }
+ vpn->vni, (resolve ? "add" : "delete"),
+ &bnc->prefix);
/*
* MAC/IP route or SVI or tenant vrf being added to EVI.
for (dest = bgp_table_top(es->route_table); dest;
dest = bgp_route_next(dest)) {
int add_prefix_to_json = 0;
- char prefix_str[BUFSIZ];
json_object *json_paths = NULL;
json_object *json_prefix = NULL;
const struct prefix *p = bgp_dest_get_prefix(dest);
- prefix2str((struct prefix_evpn *)p, prefix_str,
- sizeof(prefix_str));
-
if (json)
json_prefix = json_object_new_object();
if (json) {
if (add_prefix_to_json) {
- json_object_string_add(json_prefix, "prefix",
- prefix_str);
+ json_object_string_addf(json_prefix, "prefix",
+ "%pFX", p);
json_object_int_add(json_prefix, "prefixLen",
p->prefixlen);
json_object_object_add(json_prefix, "paths",
json_paths);
- json_object_object_add(json, prefix_str,
- json_prefix);
+ json_object_object_addf(json, json_prefix,
+ "%pFX", p);
} else {
json_object_free(json_paths);
json_object_free(json_prefix);
const struct prefix_evpn *evp =
(const struct prefix_evpn *)bgp_dest_get_prefix(dest);
int add_prefix_to_json = 0;
- char prefix_str[BUFSIZ];
json_object *json_paths = NULL;
json_object *json_prefix = NULL;
const struct prefix *p = bgp_dest_get_prefix(dest);
- prefix2str((struct prefix_evpn *)bgp_dest_get_prefix(dest),
- prefix_str, sizeof(prefix_str));
-
if (type && evp->prefix.route_type != type)
continue;
if (json) {
if (add_prefix_to_json) {
- json_object_string_add(json_prefix, "prefix",
- prefix_str);
+ json_object_string_addf(json_prefix, "prefix",
+ "%pFX", p);
json_object_int_add(json_prefix, "prefixLen",
p->prefixlen);
json_object_object_add(json_prefix, "paths",
json_paths);
- json_object_object_add(json, prefix_str,
- json_prefix);
+ json_object_object_addf(json, json_prefix,
+ "%pFX", p);
} else {
json_object_free(json_paths);
json_object_free(json_prefix);
int rd_header;
int header = 1;
char rd_str[RD_ADDRSTRLEN];
- char buf[BUFSIZ];
int no_display;
unsigned long output_count = 0;
json_prefix_info = json_object_new_object();
- prefix2str((struct prefix_evpn *)p, buf,
- BUFSIZ);
-
- json_object_string_addf(
- json_prefix_info, "prefix", "%pFX",
- (struct prefix_evpn *)p);
+ json_object_string_addf(json_prefix_info,
+ "prefix", "%pFX", p);
json_object_int_add(json_prefix_info,
"prefixLen", p->prefixlen);
json_object_object_add(json_prefix_info,
"paths", json_array);
- json_object_object_add(json_nroute, buf,
- json_prefix_info);
+ json_object_object_addf(json_nroute,
+ json_prefix_info,
+ "%pFX", p);
json_array = NULL;
}
}
safi_t safi;
uint32_t path_cnt = 0;
json_object *json_paths = NULL;
- char prefix_str[BUFSIZ];
afi = AFI_L2VPN;
safi = SAFI_EVPN;
return;
}
- prefix2str(&p, prefix_str, sizeof(prefix_str));
-
/* Prefix and num paths displayed once per prefix. */
route_vty_out_detail_header(vty, bgp, dest, prd, afi, safi, json);
if (json && path_cnt) {
if (path_cnt)
- json_object_object_add(json, prefix_str, json_paths);
+ json_object_object_addf(json, json_paths, "%pFX", &p);
json_object_int_add(json, "numPaths", path_cnt);
} else {
vty_out(vty, "\nDisplayed %u paths for requested prefix\n",
(const struct prefix_evpn *)bgp_dest_get_prefix(dest);
json_object *json_prefix = NULL;
json_object *json_paths = NULL;
- char prefix_str[BUFSIZ];
int add_prefix_to_json = 0;
- prefix2str((struct prefix_evpn *)evp, prefix_str,
- sizeof(prefix_str));
-
if (type && evp->prefix.route_type != type)
continue;
if (add_prefix_to_json) {
json_object_object_add(json_prefix, "paths",
json_paths);
- json_object_object_add(json_rd, prefix_str,
- json_prefix);
+ json_object_object_addf(json_rd, json_prefix,
+ "%pFX", evp);
} else {
json_object_free(json_paths);
json_object_free(json_prefix);
json_object *json_prefix = NULL; /* prefix within an RD */
json_object *json_rd = NULL; /* holds all prefixes for RD */
char rd_str[RD_ADDRSTRLEN];
- char prefix_str[BUFSIZ];
int add_rd_to_json = 0;
struct prefix_evpn ep;
const struct prefix *rd_destp = bgp_dest_get_prefix(rd_dest);
const struct prefix *p = bgp_dest_get_prefix(dest);
- prefix2str(p, prefix_str, sizeof(prefix_str));
-
pi = bgp_dest_get_bgp_path_info(dest);
if (pi) {
/* RD header - per RD. */
if (json) {
json_prefix = json_object_new_object();
json_paths = json_object_new_array();
- json_object_string_add(json_prefix, "prefix",
- prefix_str);
+ json_object_string_addf(json_prefix, "prefix", "%pFX",
+ p);
json_object_int_add(json_prefix, "prefixLen",
p->prefixlen);
} else
if (json) {
json_object_object_add(json_prefix, "paths",
json_paths);
- json_object_object_add(json_rd, prefix_str,
- json_prefix);
+ json_object_object_addf(json_rd, json_prefix, "%pFX",
+ p);
if (add_rd_to_json)
json_object_object_add(json, rd_str, json_rd);
else {
const struct prefix_evpn *evp =
(const struct prefix_evpn *)bgp_dest_get_prefix(
dest);
- char prefix_str[BUFSIZ];
int add_prefix_to_json = 0;
const struct prefix *p = bgp_dest_get_prefix(dest);
- prefix2str((struct prefix_evpn *)p, prefix_str,
- sizeof(prefix_str));
-
if (type && evp->prefix.route_type != type)
continue;
if (json) {
json_prefix = json_object_new_object();
json_paths = json_object_new_array();
- json_object_string_add(json_prefix, "prefix",
- prefix_str);
+ json_object_string_addf(json_prefix, "prefix",
+ "%pFX", p);
json_object_int_add(json_prefix, "prefixLen",
p->prefixlen);
}
json_object_object_add(json_prefix,
"paths",
json_paths);
- json_object_object_add(json_rd,
- prefix_str,
- json_prefix);
+ json_object_object_addf(json_rd,
+ json_prefix,
+ "%pFX", p);
} else {
json_object_free(json_prefix);
json_object_free(json_paths);
vty_out(vty, "%-18s %u\n",
"INVALID", lcb->label);
else {
- char buf[PREFIX2STR_BUFFER];
p = bgp_dest_get_prefix(dest);
- prefix2str(p, buf, sizeof(buf));
if (uj) {
- json_object_string_add(json_elem,
- "prefix", buf);
+ json_object_string_addf(
+ json_elem, "prefix", "%pFX", p);
json_object_int_add(json_elem, "label",
lcb->label);
} else
- vty_out(vty, "%-18s %u\n", buf,
+ vty_out(vty, "%-18pFX %u\n", p,
lcb->label);
}
break;
vty_out(vty, "INVALID %u\n",
label);
else {
- char buf[PREFIX2STR_BUFFER];
p = bgp_dest_get_prefix(dest);
- prefix2str(p, buf, sizeof(buf));
if (uj) {
- json_object_string_add(json_elem,
- "prefix", buf);
+ json_object_string_addf(
+ json_elem, "prefix", "%pFX", p);
json_object_int_add(json_elem, "label",
label);
} else
- vty_out(vty, "%-18s %u\n", buf,
+ vty_out(vty, "%-18pFX %u\n", p,
label);
}
break;
json_object *json = NULL, *json_elem = NULL;
struct bgp_dest *dest;
const struct prefix *p;
- char buf[PREFIX2STR_BUFFER];
struct lp_fifo *item, *next;
int count;
vty_out(vty, "INVALID\n");
} else {
p = bgp_dest_get_prefix(dest);
- prefix2str(p, buf, sizeof(buf));
if (uj)
- json_object_string_add(json_elem,
- "prefix", buf);
+ json_object_string_addf(
+ json_elem, "prefix", "%pFX", p);
else
- vty_out(vty, "%-18s\n", buf);
+ vty_out(vty, "%-18pFX\n", p);
}
break;
case LP_TYPE_VRF:
if (bnc->is_evpn_gwip_nexthop) {
evpn_resolved = bgp_evpn_is_gateway_ip_resolved(bnc);
- if (BGP_DEBUG(nht, NHT)) {
- char buf2[PREFIX2STR_BUFFER];
-
- prefix2str(&bnc->prefix, buf2, sizeof(buf2));
+ if (BGP_DEBUG(nht, NHT))
zlog_debug(
- "EVPN gateway IP %s recursive MAC/IP lookup %s",
- buf2,
+ "EVPN gateway IP %pFX recursive MAC/IP lookup %s",
+ &bnc->prefix,
(evpn_resolved ? "successful"
: "failed"));
- }
if (evpn_resolved) {
bnc->flags |= BGP_NEXTHOP_VALID;
json_object_boolean_true_add(json_status, ">");
json_object_object_add(json_net, "appliedStatusSymbols",
json_status);
-
- prefix2str(p, buff, PREFIX_STRLEN);
- json_object_object_add(json_ar, buff, json_net);
+ json_object_object_addf(json_ar, json_net, "%pFX", p);
} else
vty_out(vty, "\n");
}
vty_out(vty, "locator_name: %s\n", bgp->srv6_locator_name);
vty_out(vty, "locator_chunks:\n");
- for (ALL_LIST_ELEMENTS_RO(bgp->srv6_locator_chunks, node, chunk)) {
- prefix2str(&chunk->prefix, buf, sizeof(buf));
- vty_out(vty, "- %s\n", buf);
- }
+ for (ALL_LIST_ELEMENTS_RO(bgp->srv6_locator_chunks, node, chunk))
+ vty_out(vty, "- %pFX\n", &chunk->prefix);
vty_out(vty, "functions:\n");
for (ALL_LIST_ELEMENTS_RO(bgp->srv6_functions, node, func)) {
struct prefix prefix;
struct prefix *listen_range;
int dncount;
- char buf[PREFIX2STR_BUFFER];
if (!sockunion2hostprefix(su, &prefix))
return NULL;
if (!gbgp)
return NULL;
- prefix2str(&prefix, buf, sizeof(buf));
-
if (bgp_debug_neighbor_events(NULL))
zlog_debug(
- "Dynamic Neighbor %s matches group %s listen range %pFX",
- buf, group->name, listen_range);
+ "Dynamic Neighbor %pFX matches group %s listen range %pFX",
+ &prefix, group->name, listen_range);
/* Are we within the listen limit? */
dncount = gbgp->dynamic_neighbors_count;
if (dncount >= gbgp->dynamic_neighbors_limit) {
if (bgp_debug_neighbor_events(NULL))
- zlog_debug("Dynamic Neighbor %s rejected - at limit %d",
- inet_sutop(su, buf),
- gbgp->dynamic_neighbors_limit);
+ zlog_debug(
+ "Dynamic Neighbor %pFX rejected - at limit %d",
+ &prefix, gbgp->dynamic_neighbors_limit);
return NULL;
}
if (CHECK_FLAG(group->conf->flags, PEER_FLAG_SHUTDOWN)) {
if (bgp_debug_neighbor_events(NULL))
zlog_debug(
- "Dynamic Neighbor %s rejected - group %s disabled",
- buf, group->name);
+ "Dynamic Neighbor %pFX rejected - group %s disabled",
+ &prefix, group->name);
return NULL;
}
if (!peer_group_af_configured(group)) {
if (bgp_debug_neighbor_events(NULL))
zlog_debug(
- "Dynamic Neighbor %s rejected - no AF activated for group %s",
- buf, group->name);
+ "Dynamic Neighbor %pFX rejected - no AF activated for group %s",
+ &prefix, group->name);
return NULL;
}