diff --git a/src/vnet/ipsec/ipsec.api b/src/vnet/ipsec/ipsec.api
index b5027f6..3f8913f 100644
--- a/src/vnet/ipsec/ipsec.api
+++ b/src/vnet/ipsec/ipsec.api
@@ -14,10 +14,12 @@
  * limitations under the License.
  */
 
-option version = "3.0.0";
+option version = "3.0.1";
 
 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
@@ -30,7 +32,7 @@
 {
   u32 client_index;
   u32 context;
-  u8 is_add;
+  bool is_add;
   u32 spd_id;
 };
 
@@ -49,8 +51,8 @@
   u32 client_index;
   u32 context;
 
-  u8 is_add;
-  u32 sw_if_index;
+  bool is_add;
+  vl_api_interface_index_t sw_if_index;
   u32 spd_id;
 };
 
@@ -90,10 +92,11 @@
 {
   u32 spd_id;
   i32 priority;
-  u8 is_outbound;
+  bool is_outbound;
 
   u32 sa_id;
   vl_api_ipsec_spd_action_t policy;
+  /* Which protocol?? */
   u8 protocol;
 
   // Selector
@@ -119,7 +122,7 @@
 {
   u32 client_index;
   u32 context;
-  u8 is_add;
+  bool is_add;
   vl_api_ipsec_spd_entry_t entry;
 };
 
@@ -154,7 +157,7 @@
   u32 context;
   u32 spd_id;
   u32 npolicies;
-}; 
+};
 
 /** \brief Dump ipsec policy database data
     @param client_index - opaque cookie to identify the sender
@@ -189,7 +192,7 @@
 {
   u32 client_index;
   u32 context;
-  u8 is_add;
+  bool is_add;
   vl_api_ipsec_sad_entry_t entry;
 };
 define ipsec_sad_entry_add_del_reply
@@ -304,7 +307,7 @@
 define ipsec_spd_interface_details {
     u32 context;
     u32 spd_index;
-    u32 sw_if_index;
+    vl_api_interface_index_t sw_if_index;
 };
 
 /** \brief Add or delete IPsec tunnel interface
@@ -341,9 +344,9 @@
 define ipsec_tunnel_if_add_del {
   u32 client_index;
   u32 context;
-  u8 is_add;
-  u8 esn;
-  u8 anti_replay;
+  bool is_add;
+  bool esn;
+  bool anti_replay;
   vl_api_address_t local_ip;
   vl_api_address_t remote_ip;
   u32 local_spi;
@@ -358,9 +361,9 @@
   u8 local_integ_key[128];
   u8 remote_integ_key_len;
   u8 remote_integ_key[128];
-  u8 renumber;
+  bool renumber;
   u32 show_instance;
-  u8 udp_encap;
+  bool udp_encap;
   u32 tx_table_id;
   u32 salt;
 };
@@ -373,7 +376,7 @@
 define ipsec_tunnel_if_add_del_reply {
   u32 context;
   i32 retval;
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
 };
 
 /** \brief Dump IPsec security association
@@ -389,7 +392,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)
@@ -405,9 +408,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
@@ -418,7 +421,7 @@
   u32 context;
   vl_api_ipsec_sad_entry_t entry;
 
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
   u32 salt;
   u64 seq_outbound;
   u64 last_seq_inbound;
@@ -440,7 +443,7 @@
 autoreply define ipsec_tunnel_if_set_sa {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
   u32 sa_id;
   u8 is_outbound;
 };
@@ -462,10 +465,10 @@
 */
 define ipsec_backend_details {
   u32 context;
-  u8 name[128];
+  string name[128];
   vl_api_ipsec_proto_t protocol;
   u8 index;
-  u8 active;
+  bool active;
 };
 
 /** \brief Select IPsec backend
@@ -486,4 +489,3 @@
  * eval: (c-set-style "gnu")
  * End:
  */
- 
