ipsec.h (1175B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* Copyright(c) 2018 Oracle and/or its affiliates. All rights reserved. */ 3 4#ifndef _IXGBEVF_IPSEC_H_ 5#define _IXGBEVF_IPSEC_H_ 6 7#define IXGBE_IPSEC_MAX_SA_COUNT 1024 8#define IXGBE_IPSEC_BASE_RX_INDEX 0 9#define IXGBE_IPSEC_BASE_TX_INDEX IXGBE_IPSEC_MAX_SA_COUNT 10#define IXGBE_IPSEC_AUTH_BITS 128 11 12#define IXGBE_RXMOD_VALID 0x00000001 13#define IXGBE_RXMOD_PROTO_ESP 0x00000004 14#define IXGBE_RXMOD_DECRYPT 0x00000008 15#define IXGBE_RXMOD_IPV6 0x00000010 16 17struct rx_sa { 18 struct hlist_node hlist; 19 struct xfrm_state *xs; 20 __be32 ipaddr[4]; 21 u32 key[4]; 22 u32 salt; 23 u32 mode; 24 u32 pfsa; 25 bool used; 26 bool decrypt; 27}; 28 29struct rx_ip_sa { 30 __be32 ipaddr[4]; 31 u32 ref_cnt; 32 bool used; 33}; 34 35struct tx_sa { 36 struct xfrm_state *xs; 37 u32 key[4]; 38 u32 salt; 39 u32 pfsa; 40 bool encrypt; 41 bool used; 42}; 43 44struct ixgbevf_ipsec_tx_data { 45 u32 flags; 46 u16 trailer_len; 47 u16 pfsa; 48}; 49 50struct ixgbevf_ipsec { 51 u16 num_rx_sa; 52 u16 num_tx_sa; 53 struct rx_sa *rx_tbl; 54 struct tx_sa *tx_tbl; 55 DECLARE_HASHTABLE(rx_sa_list, 10); 56}; 57 58struct sa_mbx_msg { 59 __be32 spi; 60 u8 dir; 61 u8 proto; 62 u16 family; 63 __be32 addr[4]; 64 u32 key[5]; 65}; 66#endif /* _IXGBEVF_IPSEC_H_ */