mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 19:02:58 +00:00
zebra: Adding FRR support for show vrf vrf-id vni
cli & json support extended for show vrf vrf-id vni commands: - existing: show vrf vni - show vrf <vrf-name> vni - show vrf all vni - show vrf <vrf-name> vni json - show vrf all vni json Before: ``` tor-1# show vrf vni VRF VNI VxLAN IF L3-SVI State Rmac default 100 None None Down None sym_1 8888 vxlan99 vlan490_l3 Up 44:38:39:ff:ff:25 sym_2 8889 vxlan99 vlan491_l3 Up 44:38:39:ff:ff:25 sym_3 8890 vxlan99 vlan492_l3 Up 44:38:39:ff:ff:25 sym_4 8891 vxlan99 vlan493_l3 Up 44:38:39:ff:ff:25 sym_5 8892 vxlan99 vlan494_l3 Up 44:38:39:ff:ff:25 tor-1# ``` After: ``` tor-1# show vrf default vni json { "vrfs":[ { "vrf":"default", "vni":100, "vxlanIntf":"None", "sviIntf":"None", "state":"Down", "routerMac":"None" } ] } tor-1# show vrf default vni VRF VNI VxLAN IF L3-SVI State Rmac default 100 None None Down None tor-1# tor-1# show vrf all vni VRF VNI VxLAN IF L3-SVI State Rmac default 100 None None Down None sym_1 8888 vxlan99 vlan490_l3 Up 44:38:39:ff:ff:25 sym_2 8889 vxlan99 vlan491_l3 Up 44:38:39:ff:ff:25 sym_3 8890 vxlan99 vlan492_l3 Up 44:38:39:ff:ff:25 sym_4 8891 vxlan99 vlan493_l3 Up 44:38:39:ff:ff:25 sym_5 8892 vxlan99 vlan494_l3 Up 44:38:39:ff:ff:25 tor-1# tor-1# tor-1# tor-1# tor-1# tor-1# show vrf all vni json { "vrfs":[ { "vrf":"default", "vni":100, "vxlanIntf":"None", "sviIntf":"None", "state":"Down", "routerMac":"None" }, { "vrf":"sym_1", "vni":8888, "vxlanIntf":"vxlan99", "sviIntf":"vlan490_l3", "state":"Up", "routerMac":"44:38:39:ff:ff:25" }, { "vrf":"sym_2", "vni":8889, "vxlanIntf":"vxlan99", "sviIntf":"vlan491_l3", "state":"Up", "routerMac":"44:38:39:ff:ff:25" }, { "vrf":"sym_3", "vni":8890, "vxlanIntf":"vxlan99", "sviIntf":"vlan492_l3", "state":"Up", "routerMac":"44:38:39:ff:ff:25" }, { "vrf":"sym_4", "vni":8891, "vxlanIntf":"vxlan99", "sviIntf":"vlan493_l3", "state":"Up", "routerMac":"44:38:39:ff:ff:25" }, { "vrf":"sym_5", "vni":8892, "vxlanIntf":"vxlan99", "sviIntf":"vlan494_l3", "state":"Up", "routerMac":"44:38:39:ff:ff:25" } ] } tor-1# ``` Ticket:#3260835 Issue:3260835 Testing: UT done Signed-off-by: Sindhu Parvathi Gopinathan <sgopinathan@nvidia.com>
This commit is contained in:
parent
329dc20704
commit
3cff8acb33
@ -3169,11 +3169,11 @@ DEFUN (no_vrf_vni_mapping,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* show vrf */
|
/* show vrf */
|
||||||
DEFUN (show_vrf_vni,
|
DEFPY (show_vrf_vni,
|
||||||
show_vrf_vni_cmd,
|
show_vrf_vni_cmd,
|
||||||
"show vrf vni [json]",
|
"show vrf [<NAME$vrf_name|all$vrf_all>] vni [json]",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
"VRF\n"
|
VRF_FULL_CMD_HELP_STR
|
||||||
"VNI\n"
|
"VNI\n"
|
||||||
JSON_STR)
|
JSON_STR)
|
||||||
{
|
{
|
||||||
@ -3182,21 +3182,70 @@ DEFUN (show_vrf_vni,
|
|||||||
json_object *json = NULL;
|
json_object *json = NULL;
|
||||||
json_object *json_vrfs = NULL;
|
json_object *json_vrfs = NULL;
|
||||||
bool uj = use_json(argc, argv);
|
bool uj = use_json(argc, argv);
|
||||||
|
bool use_vrf = false;
|
||||||
|
|
||||||
if (uj) {
|
if (uj)
|
||||||
json = json_object_new_object();
|
json = json_object_new_object();
|
||||||
json_vrfs = json_object_new_array();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!uj)
|
|
||||||
vty_out(vty, "%-37s %-10s %-20s %-20s %-5s %-18s\n", "VRF",
|
|
||||||
"VNI", "VxLAN IF", "L3-SVI", "State", "Rmac");
|
|
||||||
|
|
||||||
|
/* show vrf vni used to display across all vrfs
|
||||||
|
* This is enhanced to support only for specific
|
||||||
|
* vrf based output.
|
||||||
|
*/
|
||||||
|
if (vrf_all || !vrf_name) {
|
||||||
RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) {
|
RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) {
|
||||||
zvrf = vrf->info;
|
zvrf = vrf->info;
|
||||||
if (!zvrf)
|
if (!zvrf)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
use_vrf = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (use_vrf) {
|
||||||
|
if (!uj)
|
||||||
|
vty_out(vty,
|
||||||
|
"%-37s %-10s %-20s %-20s %-5s %-18s\n",
|
||||||
|
"VRF", "VNI", "VxLAN IF", "L3-SVI",
|
||||||
|
"State", "Rmac");
|
||||||
|
else
|
||||||
|
json_vrfs = json_object_new_array();
|
||||||
|
} else {
|
||||||
|
if (uj)
|
||||||
|
vty_json(vty, json);
|
||||||
|
else
|
||||||
|
vty_out(vty, "%% VRF does not exist\n");
|
||||||
|
|
||||||
|
return CMD_WARNING;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (use_vrf) {
|
||||||
|
RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) {
|
||||||
|
zvrf = vrf->info;
|
||||||
|
if (!zvrf)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
zebra_vxlan_print_vrf_vni(vty, zvrf, json_vrfs);
|
||||||
|
}
|
||||||
|
} else if (vrf_name) {
|
||||||
|
zvrf = zebra_vrf_lookup_by_name(vrf_name);
|
||||||
|
if (!zvrf) {
|
||||||
|
if (uj)
|
||||||
|
vty_json(vty, json);
|
||||||
|
else
|
||||||
|
vty_out(vty,
|
||||||
|
"%% VRF '%s' specified does not exist\n",
|
||||||
|
vrf_name);
|
||||||
|
|
||||||
|
return CMD_WARNING;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!uj)
|
||||||
|
vty_out(vty, "%-37s %-10s %-20s %-20s %-5s %-18s\n",
|
||||||
|
"VRF", "VNI", "VxLAN IF", "L3-SVI", "State",
|
||||||
|
"Rmac");
|
||||||
|
else
|
||||||
|
json_vrfs = json_object_new_array();
|
||||||
|
|
||||||
zebra_vxlan_print_vrf_vni(vty, zvrf, json_vrfs);
|
zebra_vxlan_print_vrf_vni(vty, zvrf, json_vrfs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user