aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/lb-plugin/lb/cli.c
diff options
context:
space:
mode:
authorPierre Pfister <ppfister@cisco.com>2016-08-11 16:04:05 +0100
committerPierre Pfister <ppfister@cisco.com>2016-08-11 16:04:05 +0100
commit63048844682c3b99a5a1de28649ab9b595905959 (patch)
tree280aee15ae8b2bf76687993175637023ccef41d4 /plugins/lb-plugin/lb/cli.c
parent5bcb3391f9eee85b4edcc0e42649ffeeea2dd997 (diff)
VPP-130: LoadBal: Add lookup bypass and fix adjacency format function
Change-Id: Ib83c6ba04c41dbb80603c6a08c324d71eb44a102 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
Diffstat (limited to 'plugins/lb-plugin/lb/cli.c')
-rw-r--r--plugins/lb-plugin/lb/cli.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/plugins/lb-plugin/lb/cli.c b/plugins/lb-plugin/lb/cli.c
index b59c6426241..398572ce396 100644
--- a/plugins/lb-plugin/lb/cli.c
+++ b/plugins/lb-plugin/lb/cli.c
@@ -17,6 +17,47 @@
#include <lb/util.h>
static clib_error_t *
+lb_bypass_command_fn (vlib_main_t * vm,
+ unformat_input_t * input, vlib_cli_command_t * cmd)
+{
+ unformat_input_t _line_input, *line_input = &_line_input;
+ ip46_address_t vip_prefix, as_addr;
+ u8 vip_plen;
+ u32 vip_index;
+ u8 disable = 0;
+ int ret;
+
+ if (!unformat_user (input, unformat_line_input, line_input))
+ return 0;
+
+ if (!unformat(line_input, "%U", unformat_ip46_prefix, &vip_prefix, &vip_plen, IP46_TYPE_ANY))
+ return clib_error_return (0, "invalid vip prefix: '%U'",
+ format_unformat_error, line_input);
+
+ if ((ret = lb_vip_find_index(&vip_prefix, vip_plen, &vip_index)))
+ return clib_error_return (0, "lb_vip_find_index error %d", ret);
+
+ if (!unformat(line_input, "%U", unformat_ip46_address, &as_addr, IP46_TYPE_ANY))
+ return clib_error_return (0, "invalid as address: '%U'",
+ format_unformat_error, line_input);
+
+ if (unformat(line_input, "disable"))
+ disable = 1;
+
+ if ((ret = lb_as_lookup_bypass(vip_index, &as_addr, disable)))
+ return clib_error_return (0, "lb_as_lookup_bypass error %d", ret);
+
+ return 0;
+}
+
+VLIB_CLI_COMMAND (lb_bypass_command, static) =
+{
+ .path = "lb bypass",
+ .short_help = "lb bypass <prefix> <address> [disable]",
+ .function = lb_bypass_command_fn,
+};
+
+static clib_error_t *
lb_vip_command_fn (vlib_main_t * vm,
unformat_input_t * input, vlib_cli_command_t * cmd)
{