#ifndef _SA_H_
#define _SA_H_
-#include <rte_rwlock.h>
#define IPSEC_MAX_HDR_SIZE 64
#define IPSEC_MAX_IV_SIZE 16
struct replay_sqn {
rte_rwlock_t rwl;
uint64_t sqn;
- __extension__ uint64_t window[0];
+ __extension__ uint64_t window[];
};
/*IPSEC SA supported algorithms */
* In case of SA handled by multiple threads *sqn* cacheline
* could be shared by multiple cores.
* To minimise performance impact, we try to locate in a separate
- * place from other frequently accesed data.
+ * place from other frequently accessed data.
*/
union {
uint64_t outb;
struct replay_sqn *rsn[REPLAY_SQN_NUM];
} inb;
} sqn;
+ /* Statistics */
+ struct {
+ uint64_t count;
+ uint64_t bytes;
+ struct {
+ uint64_t count;
+ uint64_t authentication_failed;
+ } errors;
+ } statistics;
} __rte_cache_aligned;