Skip to content

Commit

Permalink
Merge pull request #16631 from pguibert6WIND/imported_from_l3nhg_json
Browse files Browse the repository at this point in the history
bgpd: add json support for BGP L3NHG values
  • Loading branch information
ton31337 authored Aug 24, 2024
2 parents b4dae97 + 3c22731 commit 8d4c706
Showing 1 changed file with 56 additions and 20 deletions.
76 changes: 56 additions & 20 deletions bgpd/bgp_route.c
Original file line number Diff line number Diff line change
Expand Up @@ -10571,8 +10571,7 @@ void route_vty_out_detail(struct vty *vty, struct bgp *bgp, struct bgp_dest *bn,
vty_out(vty, "\n");


if (path->extra && path->extra->vrfleak &&
path->extra->vrfleak->parent && !json_paths) {
if (path->extra && path->extra->vrfleak && path->extra->vrfleak->parent) {
struct bgp_path_info *parent_ri;
struct bgp_dest *dest, *pdest;

Expand All @@ -10582,31 +10581,68 @@ void route_vty_out_detail(struct vty *vty, struct bgp *bgp, struct bgp_dest *bn,
if (dest && dest->pdest) {
pdest = dest->pdest;
if (is_pi_family_evpn(parent_ri)) {
vty_out(vty, " Imported from ");
vty_out(vty, BGP_RD_AS_FORMAT(bgp->asnotation),
(struct prefix_rd *)bgp_dest_get_prefix(
pdest));
vty_out(vty, ":%pFX, VNI %s",
(struct prefix_evpn *)
bgp_dest_get_prefix(dest),
vni_buf);
if (CHECK_FLAG(attr->es_flags, ATTR_ES_L3_NHG))
if (json_paths) {
json_object_string_addf(
json_path, "importedFrom",
BGP_RD_AS_FORMAT(bgp->asnotation),
(struct prefix_rd *)
bgp_dest_get_prefix(
pdest));
if (safi != SAFI_EVPN)
json_object_string_add(json_path,
"vni",
vni_buf);
} else {
vty_out(vty, " Imported from ");
vty_out(vty,
BGP_RD_AS_FORMAT(bgp->asnotation),
(struct prefix_rd *)
bgp_dest_get_prefix(
pdest));
vty_out(vty, ":%pFX, VNI %s",
(struct prefix_evpn *)
bgp_dest_get_prefix(dest),
vni_buf);
}
if (CHECK_FLAG(attr->es_flags, ATTR_ES_L3_NHG) &&
!json_paths) {
vty_out(vty, ", L3NHG %s",
CHECK_FLAG(
attr->es_flags,
ATTR_ES_L3_NHG_ACTIVE)
? "active"
: "inactive");
vty_out(vty, "\n");

vty_out(vty, "\n");
} else if (json_paths) {
json_object_boolean_add(
json_path, "l3nhg",
CHECK_FLAG(attr->es_flags,
ATTR_ES_L3_NHG));
json_object_boolean_add(
json_path, "l3nhgActive",
CHECK_FLAG(attr->es_flags,
ATTR_ES_L3_NHG_ACTIVE));
}
} else {
vty_out(vty, " Imported from ");
vty_out(vty, BGP_RD_AS_FORMAT(bgp->asnotation),
(struct prefix_rd *)bgp_dest_get_prefix(
pdest));
vty_out(vty, ":%pFX\n",
(struct prefix_evpn *)
bgp_dest_get_prefix(dest));
if (json_paths) {
json_object_string_addf(
json_path, "importedFrom",
BGP_RD_AS_FORMAT(bgp->asnotation),
(struct prefix_rd *)
bgp_dest_get_prefix(
pdest));
} else {
vty_out(vty, " Imported from ");
vty_out(vty,
BGP_RD_AS_FORMAT(bgp->asnotation),
(struct prefix_rd *)
bgp_dest_get_prefix(
pdest));
vty_out(vty, ":%pFX\n",
(struct prefix_evpn *)
bgp_dest_get_prefix(
dest));
}
}
}
}
Expand Down

0 comments on commit 8d4c706

Please sign in to comment.