xfrm: Add basic infrastructure to support IPsec extended sequence numbers
This patch adds the struct xfrm_replay_state_esn which will be used to support IPsec extended sequence numbers and anti replay windows bigger than 32 packets. Also we add a function that returns the actual size of the xfrm_replay_state_esn, a xfrm netlink atribute and a xfrm state flag for the use of extended sequence numbers. Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
a5079d084f
commit
9736acf395
@@ -186,9 +186,11 @@ struct xfrm_state {
|
||||
|
||||
/* State for replay detection */
|
||||
struct xfrm_replay_state replay;
|
||||
struct xfrm_replay_state_esn *replay_esn;
|
||||
|
||||
/* Replay detection state at the time we sent the last notification */
|
||||
struct xfrm_replay_state preplay;
|
||||
struct xfrm_replay_state_esn *preplay_esn;
|
||||
|
||||
/* internal flag that only holds state for delayed aevent at the
|
||||
* moment
|
||||
@@ -1569,6 +1571,11 @@ static inline int xfrm_alg_auth_len(const struct xfrm_algo_auth *alg)
|
||||
return sizeof(*alg) + ((alg->alg_key_len + 7) / 8);
|
||||
}
|
||||
|
||||
static inline int xfrm_replay_state_esn_len(struct xfrm_replay_state_esn *replay_esn)
|
||||
{
|
||||
return sizeof(*replay_esn) + replay_esn->bmp_len * sizeof(__u32);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_XFRM_MIGRATE
|
||||
static inline struct xfrm_algo *xfrm_algo_clone(struct xfrm_algo *orig)
|
||||
{
|
||||
|
Reference in New Issue
Block a user