ipsec: add missing ipv6 ah code & ipv6 tests
[vpp.git] / src / vnet / ipsec / ah.h
index 37fc29a..f74ad9b 100644 (file)
@@ -49,6 +49,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__ */
 
 /*