bonding: support custom interface IDs
[vpp.git] / src / vat / api_format.c
index db22f29..8a9a997 100644 (file)
@@ -7919,6 +7919,7 @@ api_bond_create (vat_main_t * vam)
   u8 mode;
   u8 lb;
   u8 mode_is_set = 0;
+  u32 id = ~0;
 
   clib_memset (mac_address, 0, sizeof (mac_address));
   lb = BOND_LB_L2;
@@ -7934,6 +7935,8 @@ api_bond_create (vat_main_t * vam)
       else if (unformat (i, "hw-addr %U", unformat_ethernet_address,
                         mac_address))
        custom_mac = 1;
+      else if (unformat (i, "id %u", &id))
+       ;
       else
        break;
     }
@@ -7951,6 +7954,7 @@ api_bond_create (vat_main_t * vam)
 
   mp->mode = mode;
   mp->lb = lb;
+  mp->id = htonl (id);
 
   if (custom_mac)
     clib_memcpy (mp->mac_address, mac_address, 6);
@@ -12713,11 +12717,11 @@ static void vl_api_sw_interface_tap_v2_details_t_handler
                    mp->host_ip6_prefix_len);
 
   print (vam->ofp,
-        "\n%-16s %-12d %-5d %-12d %-12d %-14U %-30s %-20s %-20s %-30s",
+        "\n%-16s %-12d %-5d %-12d %-12d %-14U %-30s %-20s %-20s %-30s 0x%-08x",
         mp->dev_name, ntohl (mp->sw_if_index), ntohl (mp->id),
         ntohs (mp->rx_ring_sz), ntohs (mp->tx_ring_sz),
         format_ethernet_address, mp->host_mac_addr, mp->host_namespace,
-        mp->host_bridge, ip4, ip6);
+        mp->host_bridge, ip4, ip6, ntohl (mp->tap_flags));
 
   vec_free (ip4);
   vec_free (ip6);
@@ -12739,6 +12743,7 @@ static void vl_api_sw_interface_tap_v2_details_t_handler_json
   vat_json_init_object (node);
   vat_json_object_add_uint (node, "id", ntohl (mp->id));
   vat_json_object_add_uint (node, "sw_if_index", ntohl (mp->sw_if_index));
+  vat_json_object_add_uint (node, "tap_flags", ntohl (mp->tap_flags));
   vat_json_object_add_string_copy (node, "dev_name", mp->dev_name);
   vat_json_object_add_uint (node, "rx_ring_sz", ntohs (mp->rx_ring_sz));
   vat_json_object_add_uint (node, "tx_ring_sz", ntohs (mp->tx_ring_sz));
@@ -23175,7 +23180,8 @@ _(tap_delete_v2,                                                        \
 _(sw_interface_tap_v2_dump, "")                                         \
 _(bond_create,                                                          \
   "[hw-addr <mac-addr>] {round-robin | active-backup | "                \
-  "broadcast | {lacp | xor} [load-balance { l2 | l23 | l34 }]}")        \
+  "broadcast | {lacp | xor} [load-balance { l2 | l23 | l34 }]} "        \
+  "[id <if-id>]")                                                       \
 _(bond_delete,                                                          \
   "<vpp-if-name> | sw_if_index <id>")                                   \
 _(bond_enslave,                                                         \