1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 2/* Copyright (C) 2019 Netronome Systems, Inc. */ 3 4#ifndef NFP_CRYPTO_FW_H 5#define NFP_CRYPTO_FW_H 1 6 7#include "../ccm.h" 8 9#define NFP_NET_CRYPTO_OP_TLS_1_2_AES_GCM_128_ENC 0 10#define NFP_NET_CRYPTO_OP_TLS_1_2_AES_GCM_128_DEC 1 11 12struct nfp_net_tls_resync_req { 13 __be32 fw_handle[2]; 14 __be32 tcp_seq; 15 u8 l3_offset; 16 u8 l4_offset; 17 u8 resv[2]; 18}; 19 20struct nfp_crypto_reply_simple { 21 struct nfp_ccm_hdr hdr; 22 __be32 error; 23}; 24 25struct nfp_crypto_req_reset { 26 struct nfp_ccm_hdr hdr; 27 __be32 ep_id; 28}; 29 30#define NFP_NET_TLS_IPVER GENMASK(15, 12) 31#define NFP_NET_TLS_VLAN GENMASK(11, 0) 32#define NFP_NET_TLS_VLAN_UNUSED 4095 33 34struct nfp_crypto_req_add_front { 35 struct nfp_ccm_hdr hdr; 36 __be32 ep_id; 37 u8 resv[3]; 38 u8 opcode; 39 u8 key_len; 40 __be16 ipver_vlan __packed; 41 u8 l4_proto; 42#define NFP_NET_TLS_NON_ADDR_KEY_LEN 8 43 u8 l3_addrs[0]; 44}; 45 46struct nfp_crypto_req_add_back { 47 __be16 src_port; 48 __be16 dst_port; 49 __be32 key[8]; 50 __be32 salt; 51 __be32 iv[2]; 52 __be32 counter; 53 __be32 rec_no[2]; 54 __be32 tcp_seq; 55}; 56 57struct nfp_crypto_req_add_v4 { 58 struct nfp_crypto_req_add_front front; 59 __be32 src_ip; 60 __be32 dst_ip; 61 struct nfp_crypto_req_add_back back; 62}; 63 64struct nfp_crypto_req_add_v6 { 65 struct nfp_crypto_req_add_front front; 66 __be32 src_ip[4]; 67 __be32 dst_ip[4]; 68 struct nfp_crypto_req_add_back back; 69}; 70 71struct nfp_crypto_reply_add { 72 struct nfp_ccm_hdr hdr; 73 __be32 error; 74 __be32 handle[2]; 75}; 76 77struct nfp_crypto_req_del { 78 struct nfp_ccm_hdr hdr; 79 __be32 ep_id; 80 __be32 handle[2]; 81}; 82 83struct nfp_crypto_req_update { 84 struct nfp_ccm_hdr hdr; 85 __be32 ep_id; 86 u8 resv[3]; 87 u8 opcode; 88 __be32 handle[2]; 89 __be32 rec_no[2]; 90 __be32 tcp_seq; 91}; 92#endif 93