diff options
author | Jon Loeliger <jdl@netgate.com> | 2019-11-08 15:05:23 -0600 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2019-11-12 20:37:55 +0000 |
commit | 9485d99bd3941b13abf7e47fc7e1d56f7b4fee55 (patch) | |
tree | d3f4e90f5cdd5966300d61c89c4bfea81ce5dab9 /src/vnet/interface_cli.c | |
parent | 592a909a302262cf4088a5468b8e427f577725e8 (diff) |
interface: Allow VLAN tag-rewrite on non-sub-interfaces too.
This fix was first made in
commit fdea5c6a00b74971dbb1b7ec4e25839a871006ca
but was subsequently lost in
commit 053204ab039d34a990ff0e14c32ce3b294fcce0e
Added unit test for setting VTR on a non-sub-interface to
help ensure no future regressions of this ability.
Type: fix
Change-Id: I71ce2684fb72383741455829ae2d397ea2e95eae
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Diffstat (limited to 'src/vnet/interface_cli.c')
-rw-r--r-- | src/vnet/interface_cli.c | 28 |
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, }; |