diff --git a/src/vnet/ipsec/ipsec.api b/src/vnet/ipsec/ipsec.api
index 3f8913f..b5027f6 100644
--- a/src/vnet/ipsec/ipsec.api
+++ b/src/vnet/ipsec/ipsec.api
@@ -14,12 +14,10 @@
  * limitations under the License.
  */
 
-option version = "3.0.1";
+option version = "3.0.0";
 
 import "vnet/ipsec/ipsec_types.api";
 import "vnet/interface_types.api";
-import "vnet/ip/ip_types.api";
-import "vnet/interface_types.api";
 
 /** \brief IPsec: Add/delete Security Policy Database
     @param client_index - opaque cookie to identify the sender
@@ -32,7 +30,7 @@
 {
   u32 client_index;
   u32 context;
-  bool is_add;
+  u8 is_add;
   u32 spd_id;
 };
 
@@ -51,8 +49,8 @@
   u32 client_index;
   u32 context;
 
-  bool is_add;
-  vl_api_interface_index_t sw_if_index;
+  u8 is_add;
+  u32 sw_if_index;
   u32 spd_id;
 };
 
@@ -92,11 +90,10 @@
 {
   u32 spd_id;
   i32 priority;
-  bool is_outbound;
+  u8 is_outbound;
 
   u32 sa_id;
   vl_api_ipsec_spd_action_t policy;
-  /* Which protocol?? */
   u8 protocol;
 
   // Selector
@@ -122,7 +119,7 @@
 {
   u32 client_index;
   u32 context;
-  bool is_add;
+  u8 is_add;
   vl_api_ipsec_spd_entry_t entry;
 };
 
@@ -157,7 +154,7 @@
   u32 context;
   u32 spd_id;
   u32 npolicies;
-};
+}; 
 
 /** \brief Dump ipsec policy database data
     @param client_index - opaque cookie to identify the sender
@@ -192,7 +189,7 @@
 {
   u32 client_index;
   u32 context;
-  bool is_add;
+  u8 is_add;
   vl_api_ipsec_sad_entry_t entry;
 };
 define ipsec_sad_entry_add_del_reply
@@ -307,7 +304,7 @@
 define ipsec_spd_interface_details {
     u32 context;
     u32 spd_index;
-    vl_api_interface_index_t sw_if_index;
+    u32 sw_if_index;
 };
 
 /** \brief Add or delete IPsec tunnel interface
@@ -344,9 +341,9 @@
 define ipsec_tunnel_if_add_del {
   u32 client_index;
   u32 context;
-  bool is_add;
-  bool esn;
-  bool anti_replay;
+  u8 is_add;
+  u8 esn;
+  u8 anti_replay;
   vl_api_address_t local_ip;
   vl_api_address_t remote_ip;
   u32 local_spi;
@@ -361,9 +358,9 @@
   u8 local_integ_key[128];
   u8 remote_integ_key_len;
   u8 remote_integ_key[128];
-  bool renumber;
+  u8 renumber;
   u32 show_instance;
-  bool udp_encap;
+  u8 udp_encap;
   u32 tx_table_id;
   u32 salt;
 };
@@ -376,7 +373,7 @@
 define ipsec_tunnel_if_add_del_reply {
   u32 context;
   i32 retval;
-  vl_api_interface_index_t sw_if_index;
+  u32 sw_if_index;
 };
 
 /** \brief Dump IPsec security association
@@ -392,7 +389,7 @@
 
 /** \brief IPsec security association database response
     @param context - sender context which was passed in the request
-    @param sa_id - SA ID, policy-based SAs >=0, tunnel interface SAs = 0
+    @param sa_id - SA ID, policy-based SAs >=0, tunnel interface SAs = 0 
     @param sw_if_index - sw_if_index of tunnel interface, policy-based SAs = ~0
     @param spi - security parameter index
     @param protocol - IPsec protocol (value from ipsec_protocol_t)
@@ -408,9 +405,9 @@
     @param is_tunnel_ipv6 - If using tunnel mode, endpoints are IPv6
     @param tunnel_src_addr - Tunnel source address if using tunnel mode
     @param tunnel_dst_addr - Tunnel destination address is using tunnel mode
-    @param salt - 4 byte salt
+    @param salt - 4 byte salt 
     @param seq - current sequence number for outbound
-    @param seq_hi - high 32 bits of ESN for outbound
+    @param seq_hi - high 32 bits of ESN for outbound 
     @param last_seq - highest sequence number received inbound
     @param last_seq_hi - high 32 bits of highest ESN received inbound
     @param replay_window - bit map of seq nums received relative to last_seq if using anti-replay
@@ -421,7 +418,7 @@
   u32 context;
   vl_api_ipsec_sad_entry_t entry;
 
-  vl_api_interface_index_t sw_if_index;
+  u32 sw_if_index;
   u32 salt;
   u64 seq_outbound;
   u64 last_seq_inbound;
@@ -443,7 +440,7 @@
 autoreply define ipsec_tunnel_if_set_sa {
   u32 client_index;
   u32 context;
-  vl_api_interface_index_t sw_if_index;
+  u32 sw_if_index;
   u32 sa_id;
   u8 is_outbound;
 };
@@ -465,10 +462,10 @@
 */
 define ipsec_backend_details {
   u32 context;
-  string name[128];
+  u8 name[128];
   vl_api_ipsec_proto_t protocol;
   u8 index;
-  bool active;
+  u8 active;
 };
 
 /** \brief Select IPsec backend
@@ -489,3 +486,4 @@
  * eval: (c-set-style "gnu")
  * End:
  */
+ 
