tapv2: add option to set host-side default gw
[vpp.git] / src / vnet / devices / tap / cli.c
index c86995c..c17599a 100644 (file)
@@ -43,7 +43,6 @@ tap_create_command_fn (vlib_main_t * vm, unformat_input_t * input,
   /* Get a line of input. */
   if (unformat_user (input, unformat_line_input, line_input))
     {
-
       while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT)
        {
          if (unformat (line_input, "id %u", &args.id))
@@ -62,10 +61,16 @@ tap_create_command_fn (vlib_main_t * vm, unformat_input_t * input,
                             unformat_ip4_address, &args.host_ip4_addr,
                             &args.host_ip4_prefix_len))
            ip_addr_set = 1;
+         else if (unformat (line_input, "host-ip4-gw %U",
+                            unformat_ip4_address, &args.host_ip4_gw))
+           args.host_ip4_gw_set = 1;
          else if (unformat (line_input, "host-ip6-addr %U/%d",
                             unformat_ip6_address, &args.host_ip6_addr,
                             &args.host_ip6_prefix_len))
            ip_addr_set = 1;
+         else if (unformat (line_input, "host-ip6-gw %U",
+                            unformat_ip6_address, &args.host_ip6_gw))
+           args.host_ip6_gw_set = 1;
          else if (unformat (line_input, "rx-ring-size %d", &args.rx_ring_sz))
            ;
          else if (unformat (line_input, "tx-ring-size %d", &args.tx_ring_sz))
@@ -74,8 +79,11 @@ tap_create_command_fn (vlib_main_t * vm, unformat_input_t * input,
                             unformat_ethernet_address, args.mac_addr))
            args.mac_addr_set = 1;
          else
-           return clib_error_return (0, "unknown input `%U'",
-                                     format_unformat_error, input);
+           {
+             unformat_free (line_input);
+             return clib_error_return (0, "unknown input `%U'",
+                                       format_unformat_error, input);
+           }
        }
       unformat_free (line_input);
     }
@@ -100,7 +108,8 @@ VLIB_CLI_COMMAND (tap_create_command, static) = {
   .short_help = "create tap {id <if-id>} [hw-addr <mac-address>] "
     "[rx-ring-size <size>] [tx-ring-size <size>] [host-ns <netns>] "
     "[host-bridge <bridge-name>] [host-ip4-addr <ip4addr/mask>] "
-    "[host-ip6-addr <ip6-addr] [host-if-name <name>]",
+    "[host-ip6-addr <ip6-addr>] [host-ip4-gw <ip4-addr>] "
+    "[host-ip6-gw <ip6-addr>] [host-if-name <name>]",
   .function = tap_create_command_fn,
 };
 /* *INDENT-ON* */