ikev2: add support for custom ipsec-over-udp port
[vpp.git] / src / vnet / ipsec / ah.h
index 37fc29a..d0b4c21 100644 (file)
 #ifndef __AH_H__
 #define __AH_H__
 
-
 #include <vnet/ip/ip.h>
 #include <vnet/ipsec/ipsec.h>
 
-#include <openssl/hmac.h>
-#include <openssl/rand.h>
-#include <openssl/evp.h>
-
-
 typedef struct
 {
   unsigned char nexthdr;
@@ -49,6 +43,15 @@ typedef CLIB_PACKED (struct {
 }) ip6_and_ah_header_t;
 /* *INDENT-ON* */
 
+always_inline u8
+ah_calc_icv_padding_len (u8 icv_size, int is_ipv6)
+{
+  ASSERT (0 == is_ipv6 || 1 == is_ipv6);
+  const u8 req_multiple = 4 + 4 * is_ipv6;     // 4 for ipv4, 8 for ipv6
+  const u8 total_size = sizeof (ah_header_t) + icv_size;
+  return (req_multiple - total_size % req_multiple) % req_multiple;
+}
+
 #endif /* __AH_H__ */
 
 /*