Hi Herbert, For authenc hardware offload outbound, we need to know the whole ESP header length - IP header + UDP header + ESP header + IV. I am thinking adding a field in struct aead_givcrypt_request as below: /** * struct aead_givcrypt_request - AEAD request with IV generation * @seq: Sequence number for IV generation * @giv: Space for generated IV * @areq: The AEAD request itself * @hl: ESP total header length */ struct aead_givcrypt_request { u64 seq; u8 *giv; u16 hl; <===== new ESP total header including IV struct aead_request areq; }; aead_givcrypt_set_giv(req, esph->enc_data, XFRM_SKB_CB(skb)->seq.output, x->props.header_len); Might be able to use skb_network_offset(skb) instead x->props.header_len. And of course change function aead_givcrypt_set_giv to set field hl. Any other suggest as to how a hardware driver can retrieve this information besides passing the data packet? -Loc -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html