linux/drivers/net/ethernet/netronome/nfp/crypto/fw.h
<<
>>
Prefs
   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