From patchwork Thu Dec 6 15:54:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ananyev, Konstantin" X-Patchwork-Id: 48575 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6B38A5F51; Thu, 6 Dec 2018 16:54:59 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 7A59B137C for ; Thu, 6 Dec 2018 16:54:57 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Dec 2018 07:54:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,322,1539673200"; d="scan'208";a="125655397" Received: from sivswdev08.ir.intel.com (HELO localhost.localdomain) ([10.237.217.47]) by fmsmga004.fm.intel.com with ESMTP; 06 Dec 2018 07:54:54 -0800 From: Konstantin Ananyev To: dev@dpdk.org Cc: akhil.goyal@nxp.com, radu.nicolau@intel.com, Konstantin Ananyev Date: Thu, 6 Dec 2018 15:54:43 +0000 Message-Id: <1544111691-7481-1-git-send-email-konstantin.ananyev@intel.com> X-Mailer: git-send-email 1.7.0.7 In-Reply-To: <1543597460-6962-2-git-send-email-konstantin.ananyev@intel.com> References: <1543597460-6962-2-git-send-email-konstantin.ananyev@intel.com> Subject: [dpdk-dev] [PATCH v3 0/8] examples/ipsec-secgw: make app to use ipsec library X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch series depends on the patch series: Add 'try' semantics for RD and WR locking http://patches.dpdk.org/patch/48044/ http://patches.dpdk.org/patch/48045/ ipsec: new library for IPsec data-path processing http://patches.dpdk.org/patch/48566/ http://patches.dpdk.org/patch/48567/ http://patches.dpdk.org/patch/48568/ http://patches.dpdk.org/patch/48569/ http://patches.dpdk.org/patch/48570/ http://patches.dpdk.org/patch/48571/ http://patches.dpdk.org/patch/48572/ http://patches.dpdk.org/patch/48573/ http://patches.dpdk.org/patch/48574/ to be applied first. v2 -> v3 - add IPv6 cases into test scripts - fixes for IPv6 support - fixes for inline-crypto support - some code restructuring v1 -> v2 - Several bug fixes That series contians few bug-fixes and changes to make ipsec-secgw to utilize librte_ipsec library: - changes in the related data structures. - changes in the initialization code. - changes in the data-path code. - new command-line parameters to enable librte_ipsec codepath and related features. - test scripts to help automate ipsec-secgw functional testing. Note that right now by default current (non-librte_ipsec) code-path will be used. User has to run application with new command-line option ('-l') to enable new codepath. The main reason for that: - current librte_ipsec doesn't support all ipsec algorithms and features that the app does. - allow users to run both versions in parallel for some time to figure out any functional or performance degradation with the new code. Test scripts were run with the following crypto devices: - aesni_mb - aesni_gcm - qat Konstantin Ananyev (8): examples/ipsec-secgw: avoid to request unused TX offloads examples/ipsec-secgw: allow to specify neighbor mac address examples/ipsec-secgw: fix crypto-op might never get dequeued examples/ipsec-secgw: fix outbound codepath for single SA examples/ipsec-secgw: make local variables static examples/ipsec-secgw: make app to use ipsec library examples/ipsec-secgw: make data-path to use ipsec library examples/ipsec-secgw: add scripts for functional test examples/ipsec-secgw/Makefile | 1 + examples/ipsec-secgw/ipsec-secgw.c | 397 +++++++++++++----- examples/ipsec-secgw/ipsec.c | 62 ++- examples/ipsec-secgw/ipsec.h | 67 +++ examples/ipsec-secgw/ipsec_process.c | 341 +++++++++++++++ examples/ipsec-secgw/meson.build | 6 +- examples/ipsec-secgw/parser.c | 75 ++++ examples/ipsec-secgw/parser.h | 8 +- examples/ipsec-secgw/sa.c | 284 ++++++++++++- examples/ipsec-secgw/sp4.c | 35 +- examples/ipsec-secgw/sp6.c | 35 +- examples/ipsec-secgw/test/common_defs.sh | 149 +++++++ examples/ipsec-secgw/test/data_rxtx.sh | 118 ++++++ examples/ipsec-secgw/test/linux_test4.sh | 63 +++ examples/ipsec-secgw/test/linux_test6.sh | 63 +++ examples/ipsec-secgw/test/run_test.sh | 80 ++++ .../test/trs_aescbc_sha1_common_defs.sh | 69 +++ .../ipsec-secgw/test/trs_aescbc_sha1_defs.sh | 67 +++ .../test/trs_aescbc_sha1_esn_atom_defs.sh | 5 + .../test/trs_aescbc_sha1_esn_defs.sh | 66 +++ .../test/trs_aescbc_sha1_old_defs.sh | 5 + .../test/trs_aesgcm_common_defs.sh | 60 +++ examples/ipsec-secgw/test/trs_aesgcm_defs.sh | 66 +++ .../test/trs_aesgcm_esn_atom_defs.sh | 5 + .../ipsec-secgw/test/trs_aesgcm_esn_defs.sh | 66 +++ .../ipsec-secgw/test/trs_aesgcm_old_defs.sh | 5 + .../test/tun_aescbc_sha1_common_defs.sh | 68 +++ .../ipsec-secgw/test/tun_aescbc_sha1_defs.sh | 70 +++ .../test/tun_aescbc_sha1_esn_atom_defs.sh | 5 + .../test/tun_aescbc_sha1_esn_defs.sh | 70 +++ .../test/tun_aescbc_sha1_old_defs.sh | 5 + .../test/tun_aesgcm_common_defs.sh | 60 +++ examples/ipsec-secgw/test/tun_aesgcm_defs.sh | 70 +++ .../test/tun_aesgcm_esn_atom_defs.sh | 5 + .../ipsec-secgw/test/tun_aesgcm_esn_defs.sh | 70 +++ .../ipsec-secgw/test/tun_aesgcm_old_defs.sh | 5 + 36 files changed, 2488 insertions(+), 138 deletions(-) create mode 100644 examples/ipsec-secgw/ipsec_process.c create mode 100644 examples/ipsec-secgw/test/common_defs.sh create mode 100644 examples/ipsec-secgw/test/data_rxtx.sh create mode 100644 examples/ipsec-secgw/test/linux_test4.sh create mode 100644 examples/ipsec-secgw/test/linux_test6.sh create mode 100644 examples/ipsec-secgw/test/run_test.sh create mode 100644 examples/ipsec-secgw/test/trs_aescbc_sha1_common_defs.sh create mode 100644 examples/ipsec-secgw/test/trs_aescbc_sha1_defs.sh create mode 100644 examples/ipsec-secgw/test/trs_aescbc_sha1_esn_atom_defs.sh create mode 100644 examples/ipsec-secgw/test/trs_aescbc_sha1_esn_defs.sh create mode 100644 examples/ipsec-secgw/test/trs_aescbc_sha1_old_defs.sh create mode 100644 examples/ipsec-secgw/test/trs_aesgcm_common_defs.sh create mode 100644 examples/ipsec-secgw/test/trs_aesgcm_defs.sh create mode 100644 examples/ipsec-secgw/test/trs_aesgcm_esn_atom_defs.sh create mode 100644 examples/ipsec-secgw/test/trs_aesgcm_esn_defs.sh create mode 100644 examples/ipsec-secgw/test/trs_aesgcm_old_defs.sh create mode 100644 examples/ipsec-secgw/test/tun_aescbc_sha1_common_defs.sh create mode 100644 examples/ipsec-secgw/test/tun_aescbc_sha1_defs.sh create mode 100644 examples/ipsec-secgw/test/tun_aescbc_sha1_esn_atom_defs.sh create mode 100644 examples/ipsec-secgw/test/tun_aescbc_sha1_esn_defs.sh create mode 100644 examples/ipsec-secgw/test/tun_aescbc_sha1_old_defs.sh create mode 100644 examples/ipsec-secgw/test/tun_aesgcm_common_defs.sh create mode 100644 examples/ipsec-secgw/test/tun_aesgcm_defs.sh create mode 100644 examples/ipsec-secgw/test/tun_aesgcm_esn_atom_defs.sh create mode 100644 examples/ipsec-secgw/test/tun_aesgcm_esn_defs.sh create mode 100644 examples/ipsec-secgw/test/tun_aesgcm_old_defs.sh