ip: Replace Sematics for Interface IP addresses
[vpp.git] / src / vnet / bfd / bfd.api
index 93bf0fb..9fdd5b7 100644 (file)
  * limitations under the License.
  */
 
+option version = "2.0.0";
+
+import "vnet/interface_types.api";
+import "vnet/ip/ip_types.api";
+
+enum bfd_state {
+  BFD_STATE_API_ADMIN_DOWN = 0,
+  BFD_STATE_API_DOWN = 1,
+  BFD_STATE_API_INIT = 2,
+  BFD_STATE_API_UP = 3,
+};
+
 /** \brief Set BFD echo source
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param sw_if_index - interface to use as echo source
 */
-define bfd_udp_set_echo_source
+autoreply define bfd_udp_set_echo_source
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
-};
-
-/** \brief Set BFD feature response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define bfd_udp_set_echo_source_reply
-{
-  u32 context;
-  i32 retval;
+  vl_api_interface_index_t sw_if_index;
 };
 
 /** \brief Delete BFD echo source
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
 */
-define bfd_udp_del_echo_source
+autoreply define bfd_udp_del_echo_source
 {
   u32 client_index;
   u32 context;
 };
 
-/** \brief Delete BFD feature response
+/** \brief Get BFD echo source
+    @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
 */
-define bfd_udp_del_echo_source_reply
-{
-  u32 context;
-  i32 retval;
-};
-
-/** \brief Get BFD configuration
-*/
-define bfd_get_config
+define bfd_udp_get_echo_source
 {
   u32 client_index;
   u32 context;
 };
 
-/** \brief Get BFD configuration response
+/** \brief Get BFD echo source reply
     @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-    @param slow_timer - slow timer (seconds)
-    @param min_tx - desired min tx interval
-    @param min_rx - desired min rx interval
-    @param detect_mult - desired detection multiplier
+    @param retval - return code
+    @param sw_if_index - interface to use as echo source
+    @param is_set - non-zero if set
+    @param have_usable_ip4 - non-zero if have usable IPv4 address
+    @param ip4_addr - IPv4 address
+    @param have_usable_ip6 - non-zero if have usable IPv6 address
+    @param ip6_addr - IPv6 address
 */
-define bfd_get_config_reply
+define bfd_udp_get_echo_source_reply
 {
-  u32 client_index;
   u32 context;
-  u32 slow_timer;
-  u32 min_tx;
-  u32 min_rx;
-  u8 detect_mult;
+  i32 retval;
+  vl_api_interface_index_t sw_if_index;
+  bool is_set;
+  bool have_usable_ip4;
+  vl_api_ip4_address_t ip4_addr;
+  bool have_usable_ip6;
+  vl_api_ip6_address_t ip6_addr;
 };
 
 /** \brief Add UDP BFD session on interface
@@ -95,32 +93,21 @@ define bfd_get_config_reply
     @param bfd_key_id - key id sent out in BFD packets (if is_authenticated)
     @param conf_key_id - id of already configured key (if is_authenticated)
 */
-define bfd_udp_add
+autoreply define bfd_udp_add
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
   u32 desired_min_tx;
   u32 required_min_rx;
-  u8 local_addr[16];
-  u8 peer_addr[16];
-  u8 is_ipv6;
+  vl_api_address_t local_addr;
+  vl_api_address_t peer_addr;
   u8 detect_mult;
-  u8 is_authenticated;
+  bool is_authenticated;
   u8 bfd_key_id;
   u32 conf_key_id;
 };
 
-/** \brief Add UDP BFD session response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define bfd_udp_add_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Modify UDP BFD session on interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -132,29 +119,18 @@ define bfd_udp_add_reply
     @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
     @param detect_mult - detect multiplier (# of packets missed before connection goes down)
 */
-define bfd_udp_mod
+autoreply define bfd_udp_mod
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
   u32 desired_min_tx;
   u32 required_min_rx;
-  u8 local_addr[16];
-  u8 peer_addr[16];
-  u8 is_ipv6;
+  vl_api_address_t local_addr;
+  vl_api_address_t peer_addr;
   u8 detect_mult;
 };
 
-/** \brief Modify UDP BFD session response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define bfd_udp_mod_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Delete UDP BFD session on interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -163,24 +139,13 @@ define bfd_udp_mod_reply
     @param peer_addr - peer address
     @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
 */
-define bfd_udp_del
+autoreply define bfd_udp_del
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
-  u8 local_addr[16];
-  u8 peer_addr[16];
-  u8 is_ipv6;
-};
-
-/** \brief Delete UDP BFD session response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define bfd_udp_del_reply
-{
-  u32 context;
-  i32 retval;
+  vl_api_interface_index_t sw_if_index;
+  vl_api_address_t local_addr;
+  vl_api_address_t peer_addr;
 };
 
 /** \brief Get all BFD sessions
@@ -210,12 +175,11 @@ define bfd_udp_session_dump
 define bfd_udp_session_details
 {
   u32 context;
-  u32 sw_if_index;
-  u8 local_addr[16];
-  u8 peer_addr[16];
-  u8 is_ipv6;
-  u8 state;
-  u8 is_authenticated;
+  vl_api_interface_index_t sw_if_index;
+  vl_api_address_t local_addr;
+  vl_api_address_t peer_addr;
+  vl_api_bfd_state_t state;
+  bool is_authenticated;
   u8 bfd_key_id;
   u32 conf_key_id;
   u32 required_min_rx;
@@ -230,27 +194,16 @@ define bfd_udp_session_details
     @param local_addr - local address
     @param peer_addr - peer address
     @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
-    @param admin_up_down - set the admin state, 1 = up, 0 = down
+    @param flags - set the admin state, 1 = up, 0 = down
 */
-define bfd_udp_session_set_flags
+autoreply define bfd_udp_session_set_flags
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
-  u8 local_addr[16];
-  u8 peer_addr[16];
-  u8 is_ipv6;
-  u8 admin_up_down;
-};
-
-/** \brief Reply to bfd_udp_session_set_flags
-    @param context - sender context which was passed in the request
-    @param retval - return code of the set flags request
-*/
-define bfd_udp_session_set_flags_reply
-{
-  u32 context;
-  i32 retval;
+  vl_api_interface_index_t sw_if_index;
+  vl_api_address_t local_addr;
+  vl_api_address_t peer_addr;
+  vl_api_if_status_flags_t flags;
 };
 
 /** \brief Register for BFD events
@@ -259,24 +212,14 @@ define bfd_udp_session_set_flags_reply
     @param enable_disable - 1 => register for events, 0 => cancel registration
     @param pid - sender's pid
 */
-define want_bfd_events
+autoreply define want_bfd_events
 {
   u32 client_index;
   u32 context;
-  u32 enable_disable;
+  bool enable_disable;
   u32 pid;
 };
 
-/** \brief Reply for BFD events registration
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define want_bfd_events_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief BFD UDP - add/replace key to configuration
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -285,7 +228,7 @@ define want_bfd_events_reply
     @param auth_type - authentication type (RFC 5880/4.1/Auth Type)
     @param key - key data
 */
-define bfd_auth_set_key
+autoreply define bfd_auth_set_key
 {
   u32 client_index;
   u32 context;
@@ -295,16 +238,6 @@ define bfd_auth_set_key
   u8 key[20];
 };
 
-/** \brief BFD UDP - add/replace key reply
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define bfd_auth_set_key_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief BFD UDP - delete key from configuration
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -312,23 +245,13 @@ define bfd_auth_set_key_reply
     @param key_len - length of key (must be non-zero)
     @param key - key data
 */
-define bfd_auth_del_key
+autoreply define bfd_auth_del_key
 {
   u32 client_index;
   u32 context;
   u32 conf_key_id;
 };
 
-/** \brief BFD UDP - delete key reply
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define bfd_auth_del_key_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Get a list of configured authentication keys
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -364,29 +287,18 @@ define bfd_auth_keys_details
     @param bfd_key_id - key id sent out in BFD packets
     @param conf_key_id - id of already configured key
 */
-define bfd_udp_auth_activate
+autoreply define bfd_udp_auth_activate
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
-  u8 local_addr[16];
-  u8 peer_addr[16];
-  u8 is_ipv6;
-  u8 is_delayed;
+  vl_api_interface_index_t sw_if_index;
+  vl_api_address_t local_addr;
+  vl_api_address_t peer_addr;
+  bool is_delayed;
   u8 bfd_key_id;
   u32 conf_key_id;
 };
 
-/** \brief BFD UDP - activate/change authentication reply
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define bfd_udp_auth_activate_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief BFD UDP - deactivate authentication
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -396,25 +308,14 @@ define bfd_udp_auth_activate_reply
     @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
     @param is_delayed - change is applied once peer applies the change (on first received non-authenticated packet)
 */
-define bfd_udp_auth_deactivate
+autoreply define bfd_udp_auth_deactivate
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
-  u8 local_addr[16];
-  u8 peer_addr[16];
-  u8 is_ipv6;
-  u8 is_delayed;
-};
-
-/** \brief BFD UDP - deactivate authentication reply
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define bfd_udp_auth_deactivate_reply
-{
-  u32 context;
-  i32 retval;
+  vl_api_interface_index_t sw_if_index;
+  vl_api_address_t local_addr;
+  vl_api_address_t peer_addr;
+  bool is_delayed;
 };
 
 /*