vrrp: asynchronous events on VR state change
[vpp.git] / src / plugins / vrrp / vrrp.api
index 1894d1c..a34b06f 100644 (file)
@@ -5,7 +5,7 @@
  *
  */
 
-option version = "1.0.0";
+option version = "1.0.1";
 
 import "vnet/interface_types.api";
 import "vnet/ip/ip_types.api";
@@ -167,7 +167,7 @@ define vrrp_vr_peer_dump {
     @param n_peer_addrs - number of peer addresses
     @param peer_addrs - peer addresses 
 */
-autoreply define vrrp_vr_peer_details {
+define vrrp_vr_peer_details {
   u32 client_index;
   u32 context;
   vl_api_interface_index_t sw_if_index;
@@ -233,7 +233,7 @@ define vrrp_vr_track_if_dump {
     @param n_ifs - number of tracked interfaces
     @param ifs - array of tracked interface data
 */
-autoreply define vrrp_vr_track_if_details {
+define vrrp_vr_track_if_details {
   u32 client_index;
   u32 context;
   vl_api_interface_index_t sw_if_index;
@@ -243,3 +243,37 @@ autoreply define vrrp_vr_track_if_details {
   vl_api_vrrp_vr_track_if_t ifs[n_ifs];
 };
 
+/** \brief Notification about VRRP VR state change event
+    @param client_index - opaque cookie to identify the sender
+    @param pid - client pid registered to receive notification
+    @param vr - configuration parameters identifying the VR
+    @param old_state - old state of VR
+    @param new_state - new state of VR
+*/
+define vrrp_vr_event
+{
+  u32 client_index;
+  u32 pid;
+  vl_api_vrrp_vr_key_t vr;
+  vl_api_vrrp_vr_state_t old_state;
+  vl_api_vrrp_vr_state_t new_state;
+};
+
+service {
+  rpc want_vrrp_vr_events returns want_vrrp_vr_events_reply
+    events vrrp_vr_event;
+};
+
+/** \brief Register for VRRP VR state change events
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param enable_disable - 1 to register, 0 to cancel registration
+    @param pid - sender's pid
+*/
+autoreply define want_vrrp_vr_events
+{
+  u32 client_index;
+  u32 context;
+  bool enable_disable;
+  u32 pid;
+};