From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 2ED26A04B5;
	Mon,  2 Dec 2019 09:08:12 +0100 (CET)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 6DB491C1AF;
	Mon,  2 Dec 2019 08:59:34 +0100 (CET)
Received: from mga02.intel.com (mga02.intel.com [134.134.136.20])
 by dpdk.org (Postfix) with ESMTP id 853AC4C93
 for <dev@dpdk.org>; Mon,  2 Dec 2019 08:59:19 +0100 (CET)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from fmsmga008.fm.intel.com ([10.253.24.58])
 by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 01 Dec 2019 23:59:19 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.69,268,1571727600"; d="scan'208";a="207993747"
Received: from dpdk_yexl_af_xdp.sh.intel.com ([10.67.119.186])
 by fmsmga008.fm.intel.com with ESMTP; 01 Dec 2019 23:59:17 -0800
From: Xiaolong Ye <xiaolong.ye@intel.com>
To: Beilei Xing <beilei.xing@intel.com>,
	Qi Zhang <qi.z.zhang@intel.com>
Cc: dev@dpdk.org, Xiaolong Ye <xiaolong.ye@intel.com>,
 Leyi Rong <leyi.rong@intel.com>
Date: Mon,  2 Dec 2019 15:49:30 +0800
Message-Id: <20191202074935.97629-65-xiaolong.ye@intel.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20191202074935.97629-1-xiaolong.ye@intel.com>
References: <20191202074935.97629-1-xiaolong.ye@intel.com>
Subject: [dpdk-dev] [PATCH 64/69] net/i40e/base: add inline ipsec data
	struct and commands
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

AVF support inline ipsec. This patch add some change in
header file of virtchnl.h to support the basic command
on inline ipsec, including data struct defining and basic
command.

Signed-off-by: Leyi Rong <leyi.rong@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Reviewed-by: Kirsher Jeffrey T <jeffrey.t.kirsher@intel.com>
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
---
 drivers/net/i40e/base/virtchnl.h | 35 ++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/drivers/net/i40e/base/virtchnl.h b/drivers/net/i40e/base/virtchnl.h
index c701edf03..a6787a065 100644
--- a/drivers/net/i40e/base/virtchnl.h
+++ b/drivers/net/i40e/base/virtchnl.h
@@ -37,6 +37,10 @@
  * value in current and future projects
  */
 
+#ifdef VIRTCHNL_IPSEC
+#include "virtchnl_inline_ipsec.h"
+#endif
+
 /* Error Codes */
 enum virtchnl_status_code {
 	VIRTCHNL_STATUS_SUCCESS				= 0,
@@ -138,6 +142,15 @@ enum virtchnl_ops {
 	VIRTCHNL_OP_DISABLE_CHANNELS = 31,
 	VIRTCHNL_OP_ADD_CLOUD_FILTER = 32,
 	VIRTCHNL_OP_DEL_CLOUD_FILTER = 33,
+#ifdef VIRTCHNL_IPSEC
+	VIRTCHNL_OP_GET_IPSEC_CAP = 34,
+	VIRTCHNL_OP_IPSEC_SA_CREATE = 35,
+	VIRTCHNL_OP_IPSEC_SA_UPDATE = 36,
+	VIRTCHNL_OP_IPSEC_SA_DESTROY = 37,
+	VIRTCHNL_OP_IPSEC_SA_READ = 38,
+#else
+	/* opcodes 34, 35, 36, 37 and 38 are reserved */
+#endif /* VIRTCHNL_IPSEC */
 #ifdef VIRTCHNL_EXT_FEATURES
 	/* New major set of opcodes introduced and so leaving room for
 	* old misc opcodes to be added in future. Also these opcodes may only
@@ -281,6 +294,12 @@ VIRTCHNL_CHECK_STRUCT_LEN(16, virtchnl_vsi_resource);
 #define VIRTCHNL_VF_OFFLOAD_RX_ENCAP_CSUM	0X00400000
 #define VIRTCHNL_VF_OFFLOAD_ADQ			0X00800000
 #define VIRTCHNL_VF_OFFLOAD_USO			0X02000000
+#ifdef VIRTCHNL_IPSEC
+#define VIRTCHNL_VF_OFFLOAD_INLINE_IPSEC	0X80000000
+#else
+	/* 0X80000000 is reserved */
+#endif
+
 /* Define below the capability flags that are not offloads */
 #ifdef VIRTCHNL_EXT_FEATURES
 #define VIRTCHNL_VF_CAP_EXT_FEATURES		0x01000000
@@ -1369,6 +1388,22 @@ virtchnl_vc_validate_vf_msg(struct virtchnl_version_info *ver, u32 v_opcode,
 	case VIRTCHNL_OP_GET_ADDNL_SOL_CONFIG:
 		break;
 #endif
+#ifdef VIRTCHNL_IPSEC
+	case VIRTCHNL_OP_GET_IPSEC_CAP:
+		break;
+	case VIRTCHNL_OP_IPSEC_SA_CREATE:
+		valid_len = sizeof(struct virtchnl_ipsec_sa_cfg);
+		break;
+	case VIRTCHNL_OP_IPSEC_SA_UPDATE:
+		valid_len = sizeof(struct virtchnl_ipsec_sa_update);
+		break;
+	case VIRTCHNL_OP_IPSEC_SA_DESTROY:
+		valid_len = sizeof(struct virtchnl_ipsec_sa_destroy);
+		break;
+	case VIRTCHNL_OP_IPSEC_SA_READ:
+		valid_len = sizeof(u32);
+		break;
+#endif /* VIRTCHNL_IPSEC */
 #ifdef VIRTCHNL_EXT_FEATURES
 	case VIRTCHNL_OP_GET_CAPS:
 		valid_len = sizeof(struct virtchnl_get_capabilities);
-- 
2.17.1