Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /* Copyright(c) 2018 Oracle and/or its affiliates. All rights reserved. */
0003 
0004 #ifndef _IXGBEVF_IPSEC_H_
0005 #define _IXGBEVF_IPSEC_H_
0006 
0007 #define IXGBE_IPSEC_MAX_SA_COUNT    1024
0008 #define IXGBE_IPSEC_BASE_RX_INDEX   0
0009 #define IXGBE_IPSEC_BASE_TX_INDEX   IXGBE_IPSEC_MAX_SA_COUNT
0010 #define IXGBE_IPSEC_AUTH_BITS       128
0011 
0012 #define IXGBE_RXMOD_VALID       0x00000001
0013 #define IXGBE_RXMOD_PROTO_ESP       0x00000004
0014 #define IXGBE_RXMOD_DECRYPT     0x00000008
0015 #define IXGBE_RXMOD_IPV6        0x00000010
0016 
0017 struct rx_sa {
0018     struct hlist_node hlist;
0019     struct xfrm_state *xs;
0020     __be32 ipaddr[4];
0021     u32 key[4];
0022     u32 salt;
0023     u32 mode;
0024     u32 pfsa;
0025     bool used;
0026     bool decrypt;
0027 };
0028 
0029 struct rx_ip_sa {
0030     __be32 ipaddr[4];
0031     u32 ref_cnt;
0032     bool used;
0033 };
0034 
0035 struct tx_sa {
0036     struct xfrm_state *xs;
0037     u32 key[4];
0038     u32 salt;
0039     u32 pfsa;
0040     bool encrypt;
0041     bool used;
0042 };
0043 
0044 struct ixgbevf_ipsec_tx_data {
0045     u32 flags;
0046     u16 trailer_len;
0047     u16 pfsa;
0048 };
0049 
0050 struct ixgbevf_ipsec {
0051     u16 num_rx_sa;
0052     u16 num_tx_sa;
0053     struct rx_sa *rx_tbl;
0054     struct tx_sa *tx_tbl;
0055     DECLARE_HASHTABLE(rx_sa_list, 10);
0056 };
0057 
0058 struct sa_mbx_msg {
0059     __be32 spi;
0060     u8 dir;
0061     u8 proto;
0062     u16 family;
0063     __be32 addr[4];
0064     u32 key[5];
0065 };
0066 #endif /* _IXGBEVF_IPSEC_H_ */