]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: CLI commands to display ethernet segments
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Sat, 28 Mar 2020 00:34:06 +0000 (17:34 -0700)
committerAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Wed, 5 Aug 2020 13:46:12 +0000 (06:46 -0700)
1. ES sample display
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
torm-11# show evpn es
Type: L local, R remote
ESI                            Type ES-IF                 VTEPs
00:00:00:00:00:00:00:00:00:00       -
03:00:00:00:00:01:11:00:00:01  LR   hostbond1             27.0.0.16
03:00:00:00:00:01:22:00:00:02  LR   hostbond2             27.0.0.16
03:00:00:00:00:01:22:00:00:03  LR   hostbond3             27.0.0.16
03:00:00:00:00:02:11:00:00:01  R    -                     27.0.0.17,27.0.0.18
03:00:00:00:00:02:22:00:00:02  R    -                     27.0.0.17,27.0.0.18
03:00:00:00:00:02:22:00:00:03  R    -                     27.0.0.17,27.0.0.18
torm-11#
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

2. ES-EVI sample display
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
torm-11# show evpn es-evi
Type: L local, R remote
VNI      ESI                            Type
1005     03:00:00:00:00:01:11:00:00:01  L
1005     03:00:00:00:00:01:22:00:00:02  L
1005     03:00:00:00:00:01:22:00:00:03  L
1002     03:00:00:00:00:01:11:00:00:01  L
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
zebra/zebra_vty.c

index 2ca57f1c569bf91bdd0471741478a9e9be3392f3..2ea04eee2e29ed5a40443821146fbe460494f8db 100644 (file)
@@ -44,6 +44,7 @@
 #include "zebra/zebra_routemap.h"
 #include "lib/json.h"
 #include "zebra/zebra_vxlan.h"
+#include "zebra/zebra_evpn_mh.h"
 #ifndef VTYSH_EXTRACT_PL
 #include "zebra/zebra_vty_clippy.c"
 #endif
@@ -2516,6 +2517,81 @@ DEFUN (show_evpn_global,
        return CMD_SUCCESS;
 }
 
+DEFPY(show_evpn_es,
+      show_evpn_es_cmd,
+      "show evpn es [NAME$esi_str] [json$json] [detail$detail]",
+      SHOW_STR
+      "EVPN\n"
+      "Ethernet Segment\n"
+      "ES ID\n"
+      JSON_STR
+      "Detailed information\n")
+{
+       esi_t esi;
+       bool uj = !!json;
+
+       if (esi_str) {
+               if (!str_to_esi(esi_str, &esi)) {
+                       vty_out(vty, "%% Malformed ESI\n");
+                       return CMD_WARNING;
+               }
+               zebra_evpn_es_show_esi(vty, uj, &esi);
+       } else {
+               if (detail)
+                       zebra_evpn_es_show_detail(vty, uj);
+               else
+                       zebra_evpn_es_show(vty, uj);
+       }
+
+       return CMD_SUCCESS;
+}
+
+DEFPY(show_evpn_es_evi,
+      show_evpn_es_evi_cmd,
+      "show evpn es-evi [vni (1-16777215)$vni] [json$json] [detail$detail]",
+      SHOW_STR
+      "EVPN\n"
+      "Ethernet Segment per EVI\n"
+      "VxLAN Network Identifier\n"
+      "VNI\n"
+      JSON_STR
+      "Detailed information\n")
+{
+       bool uj = !!json;
+       bool ud = !!detail;
+
+       if (vni)
+               zebra_evpn_es_evi_show_vni(vty, uj, vni, ud);
+       else
+               zebra_evpn_es_evi_show(vty, uj, ud);
+
+       return CMD_SUCCESS;
+}
+
+DEFPY(show_evpn_access_vlan,
+      show_evpn_access_vlan_cmd,
+      "show evpn access-vlan [(1-4094)$vid] [json$json] [detail$detail]",
+      SHOW_STR
+      "EVPN\n"
+      "Access VLANs\n"
+      "VLAN ID\n"
+      JSON_STR
+      "Detailed information\n")
+{
+       bool uj = !!json;
+
+       if (vid) {
+               zebra_evpn_acc_vl_show_vid(vty, uj, vid);
+       } else {
+               if (detail)
+                       zebra_evpn_acc_vl_show_detail(vty, uj);
+               else
+                       zebra_evpn_acc_vl_show(vty, uj);
+       }
+
+       return CMD_SUCCESS;
+}
+
 DEFUN (show_evpn_vni,
        show_evpn_vni_cmd,
        "show evpn vni [json]",
@@ -3734,6 +3810,9 @@ void zebra_vty_init(void)
        install_element(VIEW_NODE, &show_evpn_vni_cmd);
        install_element(VIEW_NODE, &show_evpn_vni_detail_cmd);
        install_element(VIEW_NODE, &show_evpn_vni_vni_cmd);
+       install_element(VIEW_NODE, &show_evpn_es_cmd);
+       install_element(VIEW_NODE, &show_evpn_es_evi_cmd);
+       install_element(VIEW_NODE, &show_evpn_access_vlan_cmd);
        install_element(VIEW_NODE, &show_evpn_rmac_vni_mac_cmd);
        install_element(VIEW_NODE, &show_evpn_rmac_vni_cmd);
        install_element(VIEW_NODE, &show_evpn_rmac_vni_all_cmd);