l2: BD ARP termination entry API update
[vpp.git] / src / vnet / l2 / l2.api
index 7a1fb49..4b1029d 100644 (file)
  * limitations under the License.
  */
 
-option version = "2.0.1";
+option version = "2.2.2";
+
+import "vnet/ip/ip_types.api";
+import "vnet/ethernet/ethernet_types.api";
 
 /** \brief Reply to l2_xconnect_dump 
     @param context - sender context which was passed in the request
@@ -244,6 +247,7 @@ autoreply define bridge_domain_set_mac_age
     @param forward - enable/disable forwarding on all interfaces in the bd
     @param learn - enable/disable learning on all interfaces in the bd
     @param arp_term - enable/disable arp termination in the bd
+    @param arp_ufwd - enable/disable arp unicast forwarding in the bd
     @param mac_age - mac aging time in min, 0 for disabled
     @param is_add - add or delete flag
 */
@@ -257,6 +261,7 @@ autoreply define bridge_domain_add_del
   u8 forward;
   u8 learn;
   u8 arp_term;
+  u8 arp_ufwd;
   u8 mac_age;
   u8 bd_tag[64];
   u8 is_add;
@@ -293,6 +298,7 @@ typeonly manual_print manual_endian define bridge_domain_sw_if
     @param forward - forwarding state on all interfaces in the bd
     @param learn - learning state on all interfaces in the bd
     @param arp_term - arp termination state on all interfaces in the bd
+    @param arp_ufwd - arp unicast forwarding state on all interfaces in the bd
     @param mac_age - mac aging time in min, 0 for disabled
     @param bd_tag - optional textual tag for the bridge domain
     @param n_sw_ifs - number of sw_if_index's in the domain
@@ -306,6 +312,7 @@ manual_print manual_endian define bridge_domain_details
   u8 forward;
   u8 learn;
   u8 arp_term;
+  u8 arp_ufwd;
   u8 mac_age;
   u8 bd_tag[64];
   u32 bvi_sw_if_index;
@@ -317,11 +324,13 @@ manual_print manual_endian define bridge_domain_details
 /** \brief Flags that can be changed on a bridge domain */
 enum bd_flags
 {
+  BRIDGE_API_FLAG_NONE = 0x0,
   BRIDGE_API_FLAG_LEARN = 0x1,
   BRIDGE_API_FLAG_FWD = 0x2,
   BRIDGE_API_FLAG_FLOOD = 0x4,
   BRIDGE_API_FLAG_UU_FLOOD = 0x8,
   BRIDGE_API_FLAG_ARP_TERM = 0x10,
+  BRIDGE_API_FLAG_ARP_UFWD = 0x20,
 };
 
 /** \brief Set bridge flags request
@@ -470,19 +479,34 @@ autoreply define sw_interface_set_l2_bridge
     @param context - sender context, to match reply w/ request
     @param bd_id - the bridge domain to set the flags for
     @param is_add - if non-zero, add the entry, else clear it
-    @param is_ipv6 - if non-zero, ipv6 address, else ipv4 address
-    @param mac_address - MAC address
-    @param 
+    @param ip - ipv4 or ipv6 address
+    @param mac - MAC address
 */
+
+typedef bd_ip_mac
+{
+  u32 bd_id;
+  vl_api_address_t ip;
+  vl_api_mac_address_t mac;
+};
+
 autoreply define bd_ip_mac_add_del
 {
   u32 client_index;
   u32 context;
-  u32 bd_id;
   u8 is_add;
-  u8 is_ipv6;
-  u8 ip_address[16];
-  u8 mac_address[6];
+  vl_api_bd_ip_mac_t entry;
+};
+
+/** \brief Flush bridge domain IP to MAC entries
+    @param client_index - opaque cookie to identify the sender
+    @param bd_id - bridge domain identifier
+*/
+autoreply define bd_ip_mac_flush
+{
+  u32 client_index;
+  u32 context;
+  u32 bd_id;
 };
 
 /** \brief bridge domain IP to MAC entry details structure
@@ -494,10 +518,7 @@ autoreply define bd_ip_mac_add_del
 define bd_ip_mac_details
 {
   u32 context;
-  u32 bd_id;
-  u8 is_ipv6;
-  u8 ip_address[16];
-  u8 mac_address[6];
+  vl_api_bd_ip_mac_t entry;
 };
 
 /** \brief Dump bridge domain IP to MAC entries
@@ -539,6 +560,44 @@ autoreply define sw_interface_set_vpath
   u8 enable;
 };
 
+/** \brief Create BVI interface instance request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param mac_address - mac addr to assign to the interface if none-zero
+    @param user_instance - requested instance, ~0 => dynamically allocate
+*/
+define bvi_create
+{
+  u32 client_index;
+  u32 context;
+  vl_api_mac_address_t mac;
+  u32 user_instance;
+};
+
+/** \brief Create BVI interface instance response
+    @param context - sender context, to match reply w/ request
+    @param sw_if_index - sw index of the interface that was created
+    @param retval - return code for the request
+*/
+define bvi_create_reply
+{
+  u32 context;
+  i32 retval;
+  u32 sw_if_index;
+};
+
+/** \brief Delete BVI interface request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param sw_if_index - sw index of the interface that was created
+*/
+autoreply define bvi_delete
+{
+  u32 client_index;
+  u32 context;
+  u32 sw_if_index;
+};
+
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")