IPSec ESP Authenc Offload
From: Loc Ho <hidden>
Date: 2008-05-27 18:29:24
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