summaryrefslogtreecommitdiff
path: root/zebra/zebra_vxlan.c
diff options
context:
space:
mode:
authorChirag Shah <chirag@nvidia.com>2021-10-18 11:51:35 -0700
committerChirag Shah <chirag@nvidia.com>2022-03-10 17:27:15 -0800
commit4a8e182a66faec2daaee134e70bde97085716b35 (patch)
tree6c0384d5193cbbe9e96c563a292efe5535682bcb /zebra/zebra_vxlan.c
parentae9e6beaeae78bc7fe119b7bb772c7e2278e5514 (diff)
zebra: print rmac nexthop list
Ticket:#2798406 Reviewed By: Testing Done: Before change: -------------- TORS1# show evpn rmac vni 4001 mac 44:38:39:ff:ff:01 MAC: 44:38:39:ff:ff:01 Remote VTEP: 36.0.0.11 Refcount: 1 Prefixes: [1]:[00:00:00:00:00:00:00:00:00:00]:[::]/352 TORS1# TORS1# show evpn rmac vni 4001 mac 44:38:39:ff:ff:01 json { "routerMac":"44:38:39:ff:ff:01", "vtepIp":"36.0.0.11", "refCount":1, "localSequence":0, "remoteSequence":0, "prefixList":[ "[1]:[00:00:00:00:00:00:00:00:00:00]:[::]\/352" ] } After change: ------------- TORS1# show evpn rmac vni 4001 mac 44:38:39:ff:ff:01 MAC: 44:38:39:ff:ff:01 Remote VTEP: 36.0.0.11 Refcount: 0 Prefixes: TORS1# TORS1# show evpn rmac vni 4001 mac 44:38:39:ff:ff:01 json { "routerMac":"44:38:39:ff:ff:01", "vtepIp":"36.0.0.11", "nexthops":[ "36.0.0.11" ] } Signed-off-by: Chirag Shah <chirag@nvidia.com>
Diffstat (limited to 'zebra/zebra_vxlan.c')
-rw-r--r--zebra/zebra_vxlan.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/zebra/zebra_vxlan.c b/zebra/zebra_vxlan.c
index 43045bd7ca..1d0c3850f6 100644
--- a/zebra/zebra_vxlan.c
+++ b/zebra/zebra_vxlan.c
@@ -398,8 +398,12 @@ static void zl3vni_print_nh(struct zebra_neigh *n, struct vty *vty,
static void zl3vni_print_rmac(struct zebra_mac *zrmac, struct vty *vty,
json_object *json)
{
+ char buf[INET6_ADDRSTRLEN];
char buf1[ETHER_ADDR_STRLEN];
char buf2[PREFIX_STRLEN];
+ struct listnode *node = NULL;
+ struct ipaddr *vtep = NULL;
+ json_object *json_nhs = NULL;
json_object *json_hosts = NULL;
struct host_rb_entry *hle;
@@ -414,11 +418,18 @@ static void zl3vni_print_rmac(struct zebra_mac *zrmac, struct vty *vty,
vty_out(vty, " %pFX\n", &hle->p);
} else {
json_hosts = json_object_new_array();
+ json_nhs = json_object_new_array();
json_object_string_add(
json, "routerMac",
prefix_mac2str(&zrmac->macaddr, buf1, sizeof(buf1)));
json_object_string_addf(json, "vtepIp", "%pI4",
&zrmac->fwd_info.r_vtep_ip);
+ for (ALL_LIST_ELEMENTS_RO(zrmac->nh_list, node, vtep)) {
+ json_object_array_add(json_nhs,
+ json_object_new_string(ipaddr2str(
+ vtep, buf, sizeof(buf))));
+ }
+ json_object_object_add(json, "nexthops", json_nhs);
json_object_int_add(json, "refCount",
rb_host_count(&zrmac->host_rb));
RB_FOREACH (hle, host_rb_tree_entry, &zrmac->host_rb)