L2 BD: introduce a BD interface on which to send UU packets
[vpp.git] / src / vat / api_format.c
index 5e1114f..88d4c01 100644 (file)
@@ -7115,15 +7115,17 @@ api_sw_interface_set_l2_bridge (vat_main_t * vam)
 {
   unformat_input_t *i = vam->input;
   vl_api_sw_interface_set_l2_bridge_t *mp;
+  vl_api_l2_port_type_t port_type;
   u32 rx_sw_if_index;
   u8 rx_sw_if_index_set = 0;
   u32 bd_id;
   u8 bd_id_set = 0;
-  u8 bvi = 0;
   u32 shg = 0;
   u8 enable = 1;
   int ret;
 
+  port_type = L2_API_PORT_TYPE_NORMAL;
+
   /* Parse args required to build the message */
   while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT)
     {
@@ -7138,7 +7140,9 @@ api_sw_interface_set_l2_bridge (vat_main_t * vam)
       else if (unformat (i, "shg %d", &shg))
        ;
       else if (unformat (i, "bvi"))
-       bvi = 1;
+       port_type = L2_API_PORT_TYPE_BVI;
+      else if (unformat (i, "uu-fwd"))
+       port_type = L2_API_PORT_TYPE_UU_FWD;
       else if (unformat (i, "enable"))
        enable = 1;
       else if (unformat (i, "disable"))
@@ -7164,7 +7168,7 @@ api_sw_interface_set_l2_bridge (vat_main_t * vam)
   mp->rx_sw_if_index = ntohl (rx_sw_if_index);
   mp->bd_id = ntohl (bd_id);
   mp->shg = (u8) shg;
-  mp->bvi = bvi;
+  mp->port_type = ntohl (port_type);
   mp->enable = enable;
 
   S (mp);
@@ -7610,7 +7614,7 @@ api_bridge_flags (vat_main_t * vam)
   u32 bd_id;
   u8 bd_id_set = 0;
   u8 is_set = 1;
-  u32 flags = 0;
+  bd_flags_t flags = 0;
   int ret;
 
   /* Parse args required to build the message */
@@ -7619,15 +7623,15 @@ api_bridge_flags (vat_main_t * vam)
       if (unformat (i, "bd_id %d", &bd_id))
        bd_id_set = 1;
       else if (unformat (i, "learn"))
-       flags |= L2_LEARN;
+       flags |= BRIDGE_API_FLAG_LEARN;
       else if (unformat (i, "forward"))
-       flags |= L2_FWD;
+       flags |= BRIDGE_API_FLAG_FWD;
       else if (unformat (i, "flood"))
-       flags |= L2_FLOOD;
+       flags |= BRIDGE_API_FLAG_FLOOD;
       else if (unformat (i, "uu-flood"))
-       flags |= L2_UU_FLOOD;
+       flags |= BRIDGE_API_FLAG_UU_FLOOD;
       else if (unformat (i, "arp-term"))
-       flags |= L2_ARP_TERM;
+       flags |= BRIDGE_API_FLAG_ARP_TERM;
       else if (unformat (i, "off"))
        is_set = 0;
       else if (unformat (i, "disable"))
@@ -7645,7 +7649,7 @@ api_bridge_flags (vat_main_t * vam)
   M (BRIDGE_FLAGS, mp);
 
   mp->bd_id = ntohl (bd_id);
-  mp->feature_bitmap = ntohl (flags);
+  mp->flags = ntohl (flags);
   mp->is_set = is_set;
 
   S (mp);
@@ -8486,6 +8490,8 @@ api_ip_add_del_route (vat_main_t * vam)
   mpls_label_t next_hop_out_label = MPLS_LABEL_INVALID;
   mpls_label_t next_hop_via_label = MPLS_LABEL_INVALID;
 
+  memset (&v4_next_hop_address, 0, sizeof (ip4_address_t));
+  memset (&v6_next_hop_address, 0, sizeof (ip6_address_t));
   /* Parse args required to build the message */
   while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT)
     {
@@ -8518,6 +8524,16 @@ api_ip_add_del_route (vat_main_t * vam)
        {
          next_hop_set = 1;
        }
+      else
+       if (unformat
+           (i, "via %U", api_unformat_sw_if_index, vam, &sw_if_index))
+       {
+         next_hop_set = 1;
+       }
+      else if (unformat (i, "via sw_if_index %d", &sw_if_index))
+       {
+         next_hop_set = 1;
+       }
       else if (unformat (i, "resolve-attempts %d", &resolve_attempts))
        ;
       else if (unformat (i, "weight %d", &next_hop_weight))
@@ -20440,9 +20456,9 @@ vl_api_ip_fib_details_t_handler (vl_api_ip_fib_details_t * mp)
   int i;
 
   print (vam->ofp,
-        "table-id %d, prefix %U/%d",
+        "table-id %d, prefix %U/%d stats-index %d",
         ntohl (mp->table_id), format_ip4_address, mp->address,
-        mp->address_length);
+        mp->address_length, ntohl (mp->stats_index));
   fp = mp->path;
   for (i = 0; i < count; i++)
     {
@@ -20652,9 +20668,9 @@ vl_api_ip6_fib_details_t_handler (vl_api_ip6_fib_details_t * mp)
   int i;
 
   print (vam->ofp,
-        "table-id %d, prefix %U/%d",
+        "table-id %d, prefix %U/%d stats-index %d",
         ntohl (mp->table_id), format_ip6_address, mp->address,
-        mp->address_length);
+        mp->address_length, ntohl (mp->stats_index));
   fp = mp->path;
   for (i = 0; i < count; i++)
     {
@@ -23509,8 +23525,8 @@ _(sw_interface_slave_dump,                                              \
 _(ip_table_add_del,                                                     \
   "table <n> [ipv6] [add | del]\n")                                     \
 _(ip_add_del_route,                                                     \
-  "<addr>/<mask> via <addr | via-label <n>> [table-id <n>]\n"           \
-  "[<intfc> | sw_if_index <id>] [resolve-attempts <n>]\n"               \
+  "<addr>/<mask> via <<addr>|<intfc>|sw_if_index <id>|via-label <n>>\n" \
+  "[table-id <n>] [<intfc> | sw_if_index <id>] [resolve-attempts <n>]\n"\
   "[weight <n>] [drop] [local] [classify <n>] [del]\n"                  \
   "[multipath] [count <n>]")                                            \
 _(ip_mroute_add_del,                                                    \