{
IPSEC_API_SAD_FLAG_NONE = 0,
/* Enable extended sequence numbers */
- IPSEC_API_SAD_FLAG_USE_EXTENDED_SEQ_NUM = 0x01,
+ IPSEC_API_SAD_FLAG_USE_ESN = 0x01,
/* Enable Anti-replay */
IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY = 0x02,
/* IPsec tunnel mode if non-zero, else transport mode */
IPSEC_API_SAD_FLAG_IS_TUNNEL_V6 = 0x08,
/* enable UDP encapsulation for NAT traversal */
IPSEC_API_SAD_FLAG_UDP_ENCAP = 0x10,
-
- /* come-on Ole please fix this */
- IPSEC_API_SAD_COMBO_12 = 12,
- IPSEC_API_SAD_COMBO_20 = 20,
};
enum ipsec_proto
@param tunnel_src_address - IPsec tunnel source address IPv6 if is_tunnel_ipv6 is non-zero, else IPv4. Only valid if is_tunnel is non-zero
@param tunnel_dst_address - IPsec tunnel destination address IPv6 if is_tunnel_ipv6 is non-zero, else IPv4. Only valid if is_tunnel is non-zero
@param tx_table_id - the FIB id used for encapsulated packets
+ @param salt - for use with counter mode ciphers
*/
typedef ipsec_sad_entry
{
vl_api_address_t tunnel_src;
vl_api_address_t tunnel_dst;
u32 tx_table_id;
+ u32 salt;
};
/** \brief IPsec: Add/delete Security Association Database entry
@param context - sender context, to match reply w/ request
@param entry - Entry to add or delete
*/
-autoreply define ipsec_sad_entry_add_del
+define ipsec_sad_entry_add_del
{
u32 client_index;
u32 context;
u8 is_add;
vl_api_ipsec_sad_entry_t entry;
};
+define ipsec_sad_entry_add_del_reply
+{
+ u32 context;
+ i32 retval;
+ u32 stat_index;
+};
/** \brief IPsec: Update Security Association keys
@param client_index - opaque cookie to identify the sender
vl_api_key_t integrity_key;
};
-/** \brief IKEv2: Add/delete profile
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param name - IKEv2 profile name
- @param is_add - Add IKEv2 profile if non-zero, else delete
-*/
-autoreply define ikev2_profile_add_del
-{
- u32 client_index;
- u32 context;
-
- u8 name[64];
- u8 is_add;
-};
-
-/** \brief IKEv2: Set IKEv2 profile authentication method
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param name - IKEv2 profile name
- @param auth_method - IKEv2 authentication method (shared-key-mic/rsa-sig)
- @param is_hex - Authentication data in hex format if non-zero, else string
- @param data_len - Authentication data length
- @param data - Authentication data (for rsa-sig cert file path)
-*/
-autoreply define ikev2_profile_set_auth
-{
- u32 client_index;
- u32 context;
-
- u8 name[64];
- u8 auth_method;
- u8 is_hex;
- u32 data_len;
- u8 data[data_len];
-};
-
-/** \brief IKEv2: Set IKEv2 profile local/remote identification
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param name - IKEv2 profile name
- @param is_local - Identification is local if non-zero, else remote
- @param id_type - Identification type
- @param data_len - Identification data length
- @param data - Identification data
-*/
-autoreply define ikev2_profile_set_id
-{
- u32 client_index;
- u32 context;
-
- u8 name[64];
- u8 is_local;
- u8 id_type;
- u32 data_len;
- u8 data[data_len];
-};
-
-/** \brief IKEv2: Set IKEv2 profile traffic selector parameters
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param name - IKEv2 profile name
- @param is_local - Traffic selector is local if non-zero, else remote
- @param proto - Traffic selector IP protocol (if zero not relevant)
- @param start_port - The smallest port number allowed by traffic selector
- @param end_port - The largest port number allowed by traffic selector
- @param start_addr - The smallest address included in traffic selector
- @param end_addr - The largest address included in traffic selector
-*/
-autoreply define ikev2_profile_set_ts
-{
- u32 client_index;
- u32 context;
-
- u8 name[64];
- u8 is_local;
- u8 proto;
- u16 start_port;
- u16 end_port;
- u32 start_addr;
- u32 end_addr;
-};
-
-/** \brief IKEv2: Set IKEv2 local RSA private key
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param key_file - Key file absolute path
-*/
-autoreply define ikev2_set_local_key
-{
- u32 client_index;
- u32 context;
-
- u8 key_file[256];
-};
-
-/** \brief IKEv2: Set IKEv2 responder interface and IP address
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param name - IKEv2 profile name
- @param sw_if_index - interface index
- @param address - interface address
-*/
-autoreply define ikev2_set_responder
-{
- u32 client_index;
- u32 context;
-
- u8 name[64];
- u32 sw_if_index;
- u8 address[4];
-};
-
-/** \brief IKEv2: Set IKEv2 IKE transforms in SA_INIT proposal (RFC 7296)
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param name - IKEv2 profile name
- @param crypto_alg - encryption algorithm
- @param crypto_key_size - encryption key size
- @param integ_alg - integrity algorithm
- @param dh_group - Diffie-Hellman group
-
-*/
-autoreply define ikev2_set_ike_transforms
-{
- u32 client_index;
- u32 context;
-
- u8 name[64];
- u32 crypto_alg;
- u32 crypto_key_size;
- u32 integ_alg;
- u32 dh_group;
-};
-
-/** \brief IKEv2: Set IKEv2 ESP transforms in SA_INIT proposal (RFC 7296)
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param name - IKEv2 profile name
- @param crypto_alg - encryption algorithm
- @param crypto_key_size - encryption key size
- @param integ_alg - integrity algorithm
- @param dh_group - Diffie-Hellman group
-
-*/
-autoreply define ikev2_set_esp_transforms
-{
- u32 client_index;
- u32 context;
-
- u8 name[64];
- u32 crypto_alg;
- u32 crypto_key_size;
- u32 integ_alg;
- u32 dh_group;
-};
-
-/** \brief IKEv2: Set Child SA lifetime, limited by time and/or data
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param name - IKEv2 profile name
- @param lifetime - SA maximum life time in seconds (0 to disable)
- @param lifetime_jitter - Jitter added to prevent simultaneous rekeying
- @param handover - Hand over time
- @param lifetime_maxdata - SA maximum life time in bytes (0 to disable)
-
-*/
-autoreply define ikev2_set_sa_lifetime
-{
- u32 client_index;
- u32 context;
-
- u8 name[64];
- u64 lifetime;
- u32 lifetime_jitter;
- u32 handover;
- u64 lifetime_maxdata;
-};
-
-/** \brief IKEv2: Initiate the SA_INIT exchange
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param name - IKEv2 profile name
-
-*/
-autoreply define ikev2_initiate_sa_init
-{
- u32 client_index;
- u32 context;
-
- u8 name[64];
-};
-
-/** \brief IKEv2: Initiate the delete IKE SA exchange
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param ispi - IKE SA initiator SPI
-
-*/
-autoreply define ikev2_initiate_del_ike_sa
-{
- u32 client_index;
- u32 context;
-
- u64 ispi;
-};
-
-/** \brief IKEv2: Initiate the delete Child SA exchange
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param ispi - Child SA initiator SPI
-
-*/
-autoreply define ikev2_initiate_del_child_sa
-{
- u32 client_index;
- u32 context;
-
- u32 ispi;
-};
-
-/** \brief IKEv2: Initiate the rekey Child SA exchange
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-
- @param ispi - Child SA initiator SPI
-
-*/
-autoreply define ikev2_initiate_rekey_child_sa
-{
- u32 client_index;
- u32 context;
-
- u32 ispi;
-};
-
/** \brief IPsec: Get SPD interfaces
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param is_add - add IPsec tunnel interface if nonzero, else delete
+ @param is_ip6 - tunnel v6 or v4
@param esn - enable extended sequence numbers if nonzero, else disable
@param anti_replay - enable anti replay check if nonzero, else disable
@param local_ip - local IP address
@param show_instance - instance to display for intf if renumber is set
@param udp_encap - enable UDP encapsulation for NAT traversal
@param tx_table_id - the FIB id used after packet encap
+ @param salt - for use with counter mode ciphers
*/
define ipsec_tunnel_if_add_del {
u32 client_index;
u8 is_add;
u8 esn;
u8 anti_replay;
- u8 local_ip[4];
- u8 remote_ip[4];
+ vl_api_address_t local_ip;
+ vl_api_address_t remote_ip;
u32 local_spi;
u32 remote_spi;
u8 crypto_alg;
u32 show_instance;
u8 udp_encap;
u32 tx_table_id;
+ u32 salt;
};
/** \brief Add/delete IPsec tunnel interface response