X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fipsec%2Fipsec_if.h;h=d1fa9bd4a9168ebe002d16abaca396b55aee12cd;hb=47feb1146ec3b0e1cf2ebd83cd5211e1df261194;hp=67d5554e777efa4d396545d61b776b172fcabfe3;hpb=8d7c502002636da1cb7c71a87757f328e7c2c4fd;p=vpp.git diff --git a/src/vnet/ipsec/ipsec_if.h b/src/vnet/ipsec/ipsec_if.h index 67d5554e777..d1fa9bd4a91 100644 --- a/src/vnet/ipsec/ipsec_if.h +++ b/src/vnet/ipsec/ipsec_if.h @@ -33,12 +33,15 @@ typedef struct u32 input_sa_index; u32 output_sa_index; u32 hw_if_index; + u32 sw_if_index; + vnet_hw_interface_flags_t flags; u32 show_instance; } ipsec_tunnel_if_t; typedef struct { u8 is_add; + u8 is_ip6; u8 esn; u8 anti_replay; ip46_address_t local_ip, remote_ip; @@ -58,24 +61,55 @@ typedef struct u32 show_instance; u8 udp_encap; u32 tx_table_id; + u32 salt; } ipsec_add_del_tunnel_args_t; +/* *INDENT-OFF* */ +typedef CLIB_PACKED +(struct { + /* + * Key fields: remote ip and spi on incoming packet + * all fields in NET byte order + */ + union { + struct { + u32 remote_ip; + u32 spi; + }; + u64 as_u64; + }; +}) ipsec4_tunnel_key_t; +/* *INDENT-ON* */ + +/* *INDENT-OFF* */ +typedef CLIB_PACKED +(struct { + /* + * Key fields: remote ip and spi on incoming packet + * all fields in NET byte order + */ + ip6_address_t remote_ip; + u32 spi; +}) ipsec6_tunnel_key_t; +/* *INDENT-ON* */ + typedef struct { u8 is_add; u32 local_sa_id; u32 remote_sa_id; - ip4_address_t local_ip; - ip4_address_t remote_ip; -} ipsec_add_del_ipsec_gre_tunnel_args_t; + ip4_address_t src; + ip4_address_t dst; +} ipsec_gre_tunnel_add_del_args_t; extern int ipsec_add_del_tunnel_if_internal (vnet_main_t * vnm, ipsec_add_del_tunnel_args_t * args, u32 * sw_if_index); extern int ipsec_add_del_tunnel_if (ipsec_add_del_tunnel_args_t * args); extern int ipsec_add_del_ipsec_gre_tunnel (vnet_main_t * vnm, - ipsec_add_del_ipsec_gre_tunnel_args_t - * args); + const + ipsec_gre_tunnel_add_del_args_t * + args); extern int ipsec_set_interface_key (vnet_main_t * vnm, u32 hw_if_index, ipsec_if_set_key_type_t type, @@ -83,6 +117,8 @@ extern int ipsec_set_interface_key (vnet_main_t * vnm, u32 hw_if_index, extern int ipsec_set_interface_sa (vnet_main_t * vnm, u32 hw_if_index, u32 sa_id, u8 is_outbound); +extern u8 *format_ipsec_tunnel (u8 * s, va_list * args); + #endif /* __IPSEC_IF_H__ */ /*