Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/65954/?format=api
http://patches.dpdk.org/api/patches/65954/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/1582185727-6749-15-git-send-email-lbartosik@marvell.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<1582185727-6749-15-git-send-email-lbartosik@marvell.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1582185727-6749-15-git-send-email-lbartosik@marvell.com", "date": "2020-02-20T08:02:06", "name": "[v4,14/15] doc: add event mode support to ipsec-secgw", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "e67b7aca326126601aafcd114e2899eb6e560b80", "submitter": { "id": 1305, "url": "http://patches.dpdk.org/api/people/1305/?format=api", "name": "Lukas Bartosik [C]", "email": "lbartosik@marvell.com" }, "delegate": { "id": 6690, "url": "http://patches.dpdk.org/api/users/6690/?format=api", "username": "akhil", "first_name": "akhil", "last_name": "goyal", "email": "gakhil@marvell.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/1582185727-6749-15-git-send-email-lbartosik@marvell.com/mbox/", "series": [ { "id": 8627, "url": "http://patches.dpdk.org/api/series/8627/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=8627", "date": "2020-02-20T08:01:52", "name": "add eventmode to ipsec-secgw", "version": 4, "mbox": "http://patches.dpdk.org/series/8627/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/65954/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/65954/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id C6621A0555;\n\tThu, 20 Feb 2020 09:04:58 +0100 (CET)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id BDC211C028;\n\tThu, 20 Feb 2020 09:03:03 +0100 (CET)", "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 1173E1C027\n for <dev@dpdk.org>; Thu, 20 Feb 2020 09:03:00 +0100 (CET)", "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id\n 01K81l9L011737; Thu, 20 Feb 2020 00:03:00 -0800", "from sc-exch03.marvell.com ([199.233.58.183])\n by mx0b-0016f401.pphosted.com with ESMTP id 2y8ubv6ecj-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Thu, 20 Feb 2020 00:03:00 -0800", "from DC5-EXCH02.marvell.com (10.69.176.39) by SC-EXCH03.marvell.com\n (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2;\n Thu, 20 Feb 2020 00:02:57 -0800", "from SC-EXCH01.marvell.com (10.93.176.81) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.2;\n Thu, 20 Feb 2020 00:02:57 -0800", "from maili.marvell.com (10.93.176.43) by SC-EXCH01.marvell.com\n (10.93.176.81) with Microsoft SMTP Server id 15.0.1497.2 via Frontend\n Transport; Thu, 20 Feb 2020 00:02:56 -0800", "from luke.marvell.com (unknown [10.95.130.24])\n by maili.marvell.com (Postfix) with ESMTP id 374CF3F7043;\n Thu, 20 Feb 2020 00:02:54 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n h=from : to : cc :\n subject : date : message-id : in-reply-to : references : mime-version :\n content-type; s=pfpt0818; bh=uZEqESp11K/BRJJCyO7dlw5uKp1Faqp3Mhsw8P3F0jA=;\n b=gNjCNDHMb45SUDCxGZnHsj4gU4GeLMFY4A9L+AFZaAPrY83993FNNkcCF4y5mOUr7JP4\n aNJ19MyqKW8u53lOziE7S3IQzlV3SuM2/kqhpJedRn3YsyesQ9L7kU24LutflCteSJUT\n F07M8F5I8doivomCI51Pgy6k0QMFBG2ZNol/jMXawaauPG3Qwz7Z2ns+D/YaswKRwm4D\n CWCptE0yDgA4JbQKY+a3w15pFQ8YS/2Ia5ZWH8/KOTWXRVUjQmQphcA+CdRh44kVcnn3\n B/K5wFagID15gcxABq8DoiOjOYdEgcDuy5qv8xPAlduxrUHoYZbNqDHaOI41bp0b4mZT hg==", "From": "Lukasz Bartosik <lbartosik@marvell.com>", "To": "Akhil Goyal <akhil.goyal@nxp.com>, Radu Nicolau <radu.nicolau@intel.com>,\n Thomas Monjalon <thomas@monjalon.net>", "CC": "Jerin Jacob <jerinj@marvell.com>, Narayana Prasad <pathreya@marvell.com>,\n Ankur Dwivedi <adwivedi@marvell.com>, Anoob Joseph <anoobj@marvell.com>,\n Archana Muniganti <marchana@marvell.com>, Tejasree Kondoj\n <ktejasree@marvell.com>, Vamsi Attunuru <vattunuru@marvell.com>,\n \"Konstantin Ananyev\" <konstantin.ananyev@intel.com>, <dev@dpdk.org>", "Date": "Thu, 20 Feb 2020 09:02:06 +0100", "Message-ID": "<1582185727-6749-15-git-send-email-lbartosik@marvell.com>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1582185727-6749-1-git-send-email-lbartosik@marvell.com>", "References": "<1580824721-21527-1-git-send-email-lbartosik@marvell.com>\n <1582185727-6749-1-git-send-email-lbartosik@marvell.com>", "MIME-Version": "1.0", "Content-Type": "text/plain", "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10434:6.0.138, 18.0.572\n definitions=2020-02-20_02:2020-02-19,\n 2020-02-20 signatures=0", "Subject": "[dpdk-dev] [PATCH v4 14/15] doc: add event mode support to\n\tipsec-secgw", "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>,\n <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>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "Document addition of event mode support\nto ipsec-secgw application.\n\nSigned-off-by: Anoob Joseph <anoobj@marvell.com>\nSigned-off-by: Lukasz Bartosik <lbartosik@marvell.com>\n---\n doc/guides/sample_app_ug/ipsec_secgw.rst | 138 ++++++++++++++++++++++++++-----\n 1 file changed, 117 insertions(+), 21 deletions(-)", "diff": "diff --git a/doc/guides/sample_app_ug/ipsec_secgw.rst b/doc/guides/sample_app_ug/ipsec_secgw.rst\nindex 5ec9b1e..fddd88c 100644\n--- a/doc/guides/sample_app_ug/ipsec_secgw.rst\n+++ b/doc/guides/sample_app_ug/ipsec_secgw.rst\n@@ -1,5 +1,6 @@\n .. SPDX-License-Identifier: BSD-3-Clause\n Copyright(c) 2016-2017 Intel Corporation.\n+ Copyright (C) 2020 Marvell International Ltd.\n \n IPsec Security Gateway Sample Application\n =========================================\n@@ -61,6 +62,44 @@ The Path for the IPsec Outbound traffic is:\n * Routing.\n * Write packet to port.\n \n+The application supports two modes of operation: poll mode and event mode.\n+\n+* In the poll mode a core receives packets from statically configured list\n+ of eth ports and eth ports' queues.\n+\n+* In the event mode a core receives packets as events. After packet processing\n+ is done core submits them back as events to an event device. This enables\n+ multicore scaling and HW assisted scheduling by making use of the event device\n+ capabilities. The event mode configuration is predefined. All packets reaching\n+ given eth port will arrive at the same event queue. All event queues are mapped\n+ to all event ports. This allows all cores to receive traffic from all ports.\n+ Since the underlying event device might have varying capabilities, the worker\n+ threads can be drafted differently to maximize performance. For example, if an\n+ event device - eth device pair has Tx internal port, then application can call\n+ rte_event_eth_tx_adapter_enqueue() instead of regular rte_event_enqueue_burst().\n+ So a thread which assumes that the device pair has internal port will not be the\n+ right solution for another pair. The infrastructure added for the event mode aims\n+ to help application to have multiple worker threads by maximizing performance from\n+ every type of event device without affecting existing paths/use cases. The worker\n+ to be used will be determined by the operating conditions and the underlying device\n+ capabilities. **Currently the application provides non-burst, internal port worker\n+ threads and supports inline protocol only.** It also provides infrastructure for\n+ non-internal port however does not define any worker threads.\n+\n+Additionally the event mode introduces two submodes of processing packets:\n+\n+* Driver submode: This submode has bare minimum changes in the application to support\n+ IPsec. There are no lookups, no routing done in the application. And for inline\n+ protocol use case, the worker thread resembles l2fwd worker thread as the IPsec\n+ processing is done entirely in HW. This mode can be used to benchmark the raw\n+ performance of the HW. The driver submode is selected with --single-sa option\n+ (used also by poll mode). When --single-sa option is used in conjution with event\n+ mode then index passed to --single-sa is ignored.\n+\n+* App submode: This submode has all the features currently implemented with the\n+ application (non librte_ipsec path). All the lookups, routing follows existing\n+ methods and report numbers that can be compared against regular poll mode\n+ benchmark numbers.\n \n Constraints\n -----------\n@@ -94,13 +133,18 @@ The application has a number of command line options::\n -p PORTMASK -P -u PORTMASK -j FRAMESIZE\n -l -w REPLAY_WINOW_SIZE -e -a\n -c SAD_CACHE_SIZE\n+ -s NUMBER_OF_MBUFS_IN_PACKET_POOL\n+ -f CONFIG_FILE_PATH\n --config (port,queue,lcore)[,(port,queue,lcore]\n --single-sa SAIDX\n+ --cryptodev_mask MASK\n+ --transfer-mode MODE\n+ --event-schedule-type TYPE\n --rxoffload MASK\n --txoffload MASK\n- --mtu MTU\n --reassemble NUM\n- -f CONFIG_FILE_PATH\n+ --mtu MTU\n+ --frag-ttl FRAG_TTL_NS\n \n Where:\n \n@@ -138,12 +182,38 @@ Where:\n Zero value disables cache.\n Default value: 128.\n \n-* ``--config (port,queue,lcore)[,(port,queue,lcore)]``: determines which queues\n- from which ports are mapped to which cores.\n+* ``-s``: sets number of mbufs in packet pool, if not provided number of mbufs\n+ will be calculated based on number of cores, eth ports and crypto queues.\n+\n+* ``-f CONFIG_FILE_PATH``: the full path of text-based file containing all\n+ configuration items for running the application (See Configuration file\n+ syntax section below). ``-f CONFIG_FILE_PATH`` **must** be specified.\n+ **ONLY** the UNIX format configuration file is accepted.\n+\n+* ``--config (port,queue,lcore)[,(port,queue,lcore)]``: in poll mode determines\n+ which queues from which ports are mapped to which cores. In event mode this\n+ is required for eth ports initialization only. Afterwards packets are dynamically\n+ scheduled to cores by HW.\n+\n+* ``--single-sa SAIDX``: in poll mode use a single SA for outbound traffic,\n+ bypassing the SP on both Inbound and Outbound. This option is meant for\n+ debugging/performance purposes. In event mode selects driver submode, SA index\n+ value is ignored.\n \n-* ``--single-sa SAIDX``: use a single SA for outbound traffic, bypassing the SP\n- on both Inbound and Outbound. This option is meant for debugging/performance\n- purposes.\n+* ``--cryptodev_mask MASK``: hexadecimal bitmask of the crypto devices\n+ to configure.\n+\n+* ``--transfer-mode MODE``: sets operating mode of the application\n+ \"poll\" : packet transfer via polling (default)\n+ \"event\" : Packet transfer via event device\n+\n+* ``--event-schedule-type TYPE``: queue schedule type, applies only when\n+ --transfer-mode is set to event.\n+ \"ordered\" : Ordered (default)\n+ \"atomic\" : Atomic\n+ \"parallel\" : Parallel\n+ When --event-schedule-type is set as RTE_SCHED_TYPE_ORDERED/ATOMIC, event\n+ device will ensure the ordering. Ordering will be lost when tried in PARALLEL.\n \n * ``--rxoffload MASK``: RX HW offload capabilities to enable/use on this port\n (bitmask of DEV_RX_OFFLOAD_* values). It is an optional parameter and\n@@ -155,6 +225,10 @@ Where:\n allows user to disable some of the TX HW offload capabilities.\n By default all HW TX offloads are enabled.\n \n+* ``--reassemble NUM``: max number of entries in reassemble fragment table.\n+ Zero value disables reassembly functionality.\n+ Default value: 0.\n+\n * ``--mtu MTU``: MTU value (in bytes) on all attached ethernet ports.\n Outgoing packets with length bigger then MTU will be fragmented.\n Incoming packets with length bigger then MTU will be discarded.\n@@ -167,26 +241,17 @@ Where:\n Should be lower for low number of reassembly buckets.\n Valid values: from 1 ns to 10 s. Default value: 10000000 (10 s).\n \n-* ``--reassemble NUM``: max number of entries in reassemble fragment table.\n- Zero value disables reassembly functionality.\n- Default value: 0.\n-\n-* ``-f CONFIG_FILE_PATH``: the full path of text-based file containing all\n- configuration items for running the application (See Configuration file\n- syntax section below). ``-f CONFIG_FILE_PATH`` **must** be specified.\n- **ONLY** the UNIX format configuration file is accepted.\n-\n \n The mapping of lcores to port/queues is similar to other l3fwd applications.\n \n-For example, given the following command line::\n+For example, given the following command line to run application in poll mode::\n \n ./build/ipsec-secgw -l 20,21 -n 4 --socket-mem 0,2048 \\\n- --vdev \"crypto_null\" -- -p 0xf -P -u 0x3 \\\n+ --vdev \"crypto_null\" -- -p 0xf -P -u 0x3 \\\n --config=\"(0,0,20),(1,0,20),(2,0,21),(3,0,21)\" \\\n- -f /path/to/config_file \\\n+ -f /path/to/config_file --transfer-mode poll \\\n \n-where each options means:\n+where each option means:\n \n * The ``-l`` option enables cores 20 and 21.\n \n@@ -200,7 +265,7 @@ where each options means:\n \n * The ``-P`` option enables promiscuous mode.\n \n-* The ``-u`` option sets ports 1 and 2 as unprotected, leaving 2 and 3 as protected.\n+* The ``-u`` option sets ports 0 and 1 as unprotected, leaving 2 and 3 as protected.\n \n * The ``--config`` option enables one queue per port with the following mapping:\n \n@@ -228,6 +293,37 @@ where each options means:\n **note** the parser only accepts UNIX format text file. Other formats\n such as DOS/MAC format will cause a parse error.\n \n+* The ``--transfer-mode`` option selects poll mode for processing packets.\n+\n+Similarly for example, given the following command line to run application in\n+event app mode::\n+\n+ ./build/ipsec-secgw -c 0x3 -- -P -p 0x3 -u 0x1 \\\n+ --config \"(1,0,0),(0,0,1)\" \\\n+ -f /path/to/config_file --transfer-mode event \\\n+ --event-schedule-type parallel \\\n+\n+where each option means:\n+\n+* The ``-c`` option selects cores 0 and 1 to run on.\n+\n+* The ``-P`` option enables promiscuous mode.\n+\n+* The ``-p`` option enables ports (detected) 0 and 1.\n+\n+* The ``-u`` option sets ports 0 as unprotected, leaving 1 as protected.\n+\n+* The ``--config`` option provides configuration for eth ports initialization\n+ only. Afterwards packets are dynamically scheduled to cores by HW.\n+\n+* The ``-f /path/to/config_file`` option has the same behavior as in poll\n+ mode example.\n+\n+* The ``--transfer-mode`` option selects event mode for processing packets.\n+\n+* The ``--event-schedule-type`` option selects parallel ordering of event queues.\n+\n+\n Refer to the *DPDK Getting Started Guide* for general information on running\n applications and the Environment Abstraction Layer (EAL) options.\n \n", "prefixes": [ "v4", "14/15" ] }{ "id": 65954, "url": "