lisp: fix lisp/one enable/disable
[vpp.git] / src / vnet / lisp-cp / lisp_cli.c
index 738dda7..31b2ca8 100644 (file)
@@ -148,8 +148,8 @@ lisp_add_del_local_eid_command_fn (vlib_main_t * vm, unformat_input_t * input,
   u8 *key = 0;
   u32 key_id = 0;
 
-  memset (&eid, 0, sizeof (eid));
-  memset (a, 0, sizeof (*a));
+  clib_memset (&eid, 0, sizeof (eid));
+  clib_memset (a, 0, sizeof (*a));
 
   /* Get a line of input. */
   if (!unformat_user (input, unformat_line_input, line_input))
@@ -308,8 +308,8 @@ lisp_add_del_remote_mapping_command_fn (vlib_main_t * vm,
   if (!unformat_user (input, unformat_line_input, line_input))
     return 0;
 
-  memset (&eid, 0, sizeof (eid));
-  memset (&rloc, 0, sizeof (rloc));
+  clib_memset (&eid, 0, sizeof (eid));
+  clib_memset (&rloc, 0, sizeof (rloc));
 
   while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT)
     {
@@ -384,7 +384,7 @@ lisp_add_del_remote_mapping_command_fn (vlib_main_t * vm,
   if (!is_add)
     {
       vnet_lisp_add_del_adjacency_args_t _a, *a = &_a;
-      memset (a, 0, sizeof (a[0]));
+      clib_memset (a, 0, sizeof (a[0]));
       gid_address_copy (&a->reid, &eid);
       if (vnet_lisp_add_del_adjacency (a))
        {
@@ -398,7 +398,7 @@ lisp_add_del_remote_mapping_command_fn (vlib_main_t * vm,
   if (is_add)
     {
       vnet_lisp_add_del_mapping_args_t _map_args, *map_args = &_map_args;
-      memset (map_args, 0, sizeof (map_args[0]));
+      clib_memset (map_args, 0, sizeof (map_args[0]));
       gid_address_copy (&map_args->eid, &eid);
       map_args->action = action;
       map_args->is_static = 1;
@@ -418,14 +418,16 @@ done:
   return error;
 }
 
-VLIB_CLI_COMMAND (lisp_add_del_remote_mapping_command) =
-{
-.path = "lisp remote-mapping",.short_help =
-    "lisp remote-mapping add|del [del-all] vni <vni> "
-    "eid <est-eid> [action <no-action|natively-forward|"
-    "send-map-request|drop>] rloc <dst-locator> p <prio> w <weight> "
-    "[rloc <dst-locator> ... ]",.function =
-    lisp_add_del_remote_mapping_command_fn,};
+/* *INDENT-OFF* */
+VLIB_CLI_COMMAND (lisp_add_del_remote_mapping_command) = {
+    .path = "lisp remote-mapping",
+    .short_help = "lisp remote-mapping add|del [del-all] vni <vni> "
+                 "eid <est-eid> [action <no-action|natively-forward|"
+                 "send-map-request|drop>] rloc <dst-locator> p <prio> "
+                 "w <weight> [rloc <dst-locator> ... ]",
+    .function = lisp_add_del_remote_mapping_command_fn,
+};
+/* *INDENT-ON* */
 
 /**
  * Handler for add/del adjacency CLI.
@@ -449,8 +451,8 @@ lisp_add_del_adjacency_command_fn (vlib_main_t * vm, unformat_input_t * input,
   if (!unformat_user (input, unformat_line_input, line_input))
     return 0;
 
-  memset (&reid, 0, sizeof (reid));
-  memset (&leid, 0, sizeof (leid));
+  clib_memset (&reid, 0, sizeof (reid));
+  clib_memset (&leid, 0, sizeof (leid));
 
   leid_ippref = &gid_address_ippref (&leid);
   reid_ippref = &gid_address_ippref (&reid);
@@ -510,7 +512,7 @@ lisp_add_del_adjacency_command_fn (vlib_main_t * vm, unformat_input_t * input,
       goto done;
     }
 
-  memset (a, 0, sizeof (a[0]));
+  clib_memset (a, 0, sizeof (a[0]));
   gid_address_copy (&a->leid, &leid);
   gid_address_copy (&a->reid, &reid);
   a->is_add = is_add;
@@ -705,11 +707,11 @@ lisp_show_pitr_command_fn (vlib_main_t * vm,
   mapping_t *m;
   locator_set_t *ls;
   u8 *tmp_str = 0;
+  u8 status = lcm->flags & LISP_FLAG_PITR_MODE;
 
-  vlib_cli_output (vm, "%=20s%=16s",
-                  "pitr", lcm->lisp_pitr ? "locator-set" : "");
+  vlib_cli_output (vm, "%=20s%=16s", "pitr", status ? "locator-set" : "");
 
-  if (!lcm->lisp_pitr)
+  if (!status)
     {
       vlib_cli_output (vm, "%=20s", "disable");
       return 0;
@@ -811,7 +813,7 @@ lisp_show_eid_table_command_fn (vlib_main_t * vm,
   u8 filter = 0;
   clib_error_t *error = NULL;
 
-  memset (&eid, 0, sizeof (eid));
+  clib_memset (&eid, 0, sizeof (eid));
 
   /* Get a line of input. */
   if (!unformat_user (input, unformat_line_input, line_input))
@@ -834,7 +836,7 @@ lisp_show_eid_table_command_fn (vlib_main_t * vm,
     }
 
   vlib_cli_output (vm, "%-35s%-20s%-30s%-20s%-s",
-                  "EID", "type", "locators", "ttl", "autoritative");
+                  "EID", "type", "locators", "ttl", "authoritative");
 
   if (print_all)
     {
@@ -892,54 +894,44 @@ VLIB_CLI_COMMAND (lisp_cp_show_eid_table_command) = {
 
 
 static clib_error_t *
-lisp_enable_disable_command_fn (vlib_main_t * vm, unformat_input_t * input,
-                               vlib_cli_command_t * cmd)
+lisp_enable_command_fn (vlib_main_t * vm, unformat_input_t * input,
+                       vlib_cli_command_t * cmd)
 {
-  unformat_input_t _line_input, *line_input = &_line_input;
-  u8 is_enabled = 0;
-  u8 is_set = 0;
-  clib_error_t *error = NULL;
+  if (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
+    return clib_error_return (0, "parse error: '%U'", format_unformat_error,
+                             input);
 
-  /* Get a line of input. */
-  if (!unformat_user (input, unformat_line_input, line_input))
-    return 0;
+  vnet_lisp_enable_disable (1);
 
-  while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT)
-    {
-      if (unformat (line_input, "enable"))
-       {
-         is_set = 1;
-         is_enabled = 1;
-       }
-      else if (unformat (line_input, "disable"))
-       is_set = 1;
-      else
-       {
-         error = clib_error_return (0, "parse error: '%U'",
-                                    format_unformat_error, line_input);
-         goto done;
-       }
-    }
+  return 0;
+}
 
-  if (!is_set)
-    {
-      error = clib_error_return (0, "state not set");
-      goto done;
-    }
+/* *INDENT-OFF* */
+VLIB_CLI_COMMAND (lisp_cp_enable_command) = {
+    .path = "lisp enable",
+    .short_help = "lisp enable",
+    .function = lisp_enable_command_fn,
+};
+/* *INDENT-ON* */
 
-  vnet_lisp_enable_disable (is_enabled);
+static clib_error_t *
+lisp_disable_command_fn (vlib_main_t * vm, unformat_input_t * input,
+                        vlib_cli_command_t * cmd)
+{
+  if (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
+    return clib_error_return (0, "parse error: '%U'", format_unformat_error,
+                             input);
 
-done:
-  unformat_free (line_input);
+  vnet_lisp_enable_disable (0);
 
-  return error;
+  return 0;
 }
 
 /* *INDENT-OFF* */
-VLIB_CLI_COMMAND (lisp_cp_enable_disable_command) = {
-    .path = "lisp",
-    .short_help = "lisp [enable|disable]",
-    .function = lisp_enable_disable_command_fn,
+VLIB_CLI_COMMAND (lisp_cp_disable_command) = {
+    .path = "lisp disable",
+    .short_help = "lisp disable",
+    .function = lisp_disable_command_fn,
 };
 /* *INDENT-ON* */
 
@@ -955,7 +947,7 @@ lisp_map_register_enable_disable_command_fn (vlib_main_t * vm,
 
   /* Get a line of input. */
   if (!unformat_user (input, unformat_line_input, line_input))
-    return 0;
+    return clib_error_return (0, "expected enable | disable");
 
   while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT)
     {
@@ -1008,7 +1000,7 @@ lisp_rloc_probe_enable_disable_command_fn (vlib_main_t * vm,
 
   /* Get a line of input. */
   if (!unformat_user (input, unformat_line_input, line_input))
-    return 0;
+    return clib_error_return (0, "expected enable | disable");
 
   while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT)
     {
@@ -1158,12 +1150,12 @@ lisp_add_del_locator_set_command_fn (vlib_main_t * vm,
   u32 ls_index = 0;
   int rv = 0;
 
-  memset (&locator, 0, sizeof (locator));
-  memset (a, 0, sizeof (a[0]));
+  clib_memset (&locator, 0, sizeof (locator));
+  clib_memset (a, 0, sizeof (a[0]));
 
   /* Get a line of input. */
   if (!unformat_user (input, unformat_line_input, line_input))
-    return 0;
+    return clib_error_return (0, "missing parameters");
 
   while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT)
     {
@@ -1177,6 +1169,7 @@ lisp_add_del_locator_set_command_fn (vlib_main_t * vm,
                         &locator.weight))
        {
          locator.local = 1;
+         locator.state = 1;
          vec_add1 (locators, locator);
        }
       else
@@ -1232,8 +1225,8 @@ lisp_add_del_locator_in_set_command_fn (vlib_main_t * vm,
   vnet_lisp_add_del_locator_set_args_t _a, *a = &_a;
   u32 ls_index = 0;
 
-  memset (&locator, 0, sizeof (locator));
-  memset (a, 0, sizeof (a[0]));
+  clib_memset (&locator, 0, sizeof (locator));
+  clib_memset (a, 0, sizeof (a[0]));
 
   /* Get a line of input. */
   if (!unformat_user (input, unformat_line_input, line_input))