summaryrefslogtreecommitdiffstats
path: root/src/vnet/interface_cli.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet/interface_cli.c')
-rw-r--r--src/vnet/interface_cli.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/vnet/interface_cli.c b/src/vnet/interface_cli.c
index a66e1576bde..9de674a10fa 100644
--- a/src/vnet/interface_cli.c
+++ b/src/vnet/interface_cli.c
@@ -277,6 +277,7 @@ show_sw_interfaces (vlib_main_t * vm,
u8 show_addresses = 0;
u8 show_features = 0;
u8 show_tag = 0;
+ u8 show_vtr = 0;
int verbose = 0;
/*
@@ -300,6 +301,8 @@ show_sw_interfaces (vlib_main_t * vm,
show_features = 1;
else if (unformat (linput, "tag"))
show_tag = 1;
+ else if (unformat (linput, "vtr"))
+ show_vtr = 1;
else if (unformat (linput, "verbose"))
verbose = 1;
else
@@ -312,7 +315,7 @@ show_sw_interfaces (vlib_main_t * vm,
}
unformat_free (linput);
}
- if (show_features || show_tag)
+ if (show_features || show_tag || show_vtr)
{
if (sw_if_index == ~(u32) 0)
{
@@ -353,6 +356,27 @@ show_sw_interfaces (vlib_main_t * vm,
return 0;
}
+ /*
+ * Show vlan tag rewrite data for one interface.
+ */
+ if (show_vtr)
+ {
+ u32 vtr_op = L2_VTR_DISABLED;
+ u32 push_dot1q = 0, tag1 = 0, tag2 = 0;
+
+ if (l2vtr_get (vm, vnm, sw_if_index,
+ &vtr_op, &push_dot1q, &tag1, &tag2) != 0)
+ {
+ vlib_cli_output (vm, "%U: Problem getting vlan tag-rewrite data",
+ format_vnet_sw_if_index_name, vnm, sw_if_index);
+ return 0;
+ }
+ vlib_cli_output (vm, "%U: VTR %0U",
+ format_vnet_sw_if_index_name, vnm, sw_if_index,
+ format_vtr, vtr_op, push_dot1q, tag1, tag2);
+ return 0;
+ }
+
if (!show_addresses)
vlib_cli_output (vm, "%U\n", format_vnet_sw_interface, vnm, 0);
@@ -474,7 +498,7 @@ done:
/* *INDENT-OFF* */
VLIB_CLI_COMMAND (show_sw_interfaces_command, static) = {
.path = "show interface",
- .short_help = "show interface [address|addr|features|feat] [<interface> [<interface> [..]]] [verbose]",
+ .short_help = "show interface [address|addr|features|feat|vtr] [<interface> [<interface> [..]]] [verbose]",
.function = show_sw_interfaces,
.is_mp_safe = 1,
};