Show a cover letter.

GET /api/covers/63641/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 63641,
    "url": "http://patches.dpdk.org/api/covers/63641/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/1575808249-31135-1-git-send-email-anoobj@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": "<1575808249-31135-1-git-send-email-anoobj@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1575808249-31135-1-git-send-email-anoobj@marvell.com",
    "date": "2019-12-08T12:30:35",
    "name": "[00/14] add eventmode to ipsec-secgw",
    "submitter": {
        "id": 1205,
        "url": "http://patches.dpdk.org/api/people/1205/?format=api",
        "name": "Anoob Joseph",
        "email": "anoobj@marvell.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/1575808249-31135-1-git-send-email-anoobj@marvell.com/mbox/",
    "series": [
        {
            "id": 7750,
            "url": "http://patches.dpdk.org/api/series/7750/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=7750",
            "date": "2019-12-08T12:30:35",
            "name": "add eventmode to ipsec-secgw",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/7750/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/63641/comments/",
    "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 0AC5AA04F1;\n\tSun,  8 Dec 2019 13:31:14 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 42EC31BE3D;\n\tSun,  8 Dec 2019 13:31:14 +0100 (CET)",
            "from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com\n [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 621141BDFD\n for <dev@dpdk.org>; Sun,  8 Dec 2019 13:31:12 +0100 (CET)",
            "from pps.filterd (m0045849.ppops.net [127.0.0.1])\n by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id\n xB8CVBOO021889; Sun, 8 Dec 2019 04:31:11 -0800",
            "from sc-exch03.marvell.com ([199.233.58.183])\n by mx0a-0016f401.pphosted.com with ESMTP id 2wrbawjm42-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Sun, 08 Dec 2019 04:31:11 -0800",
            "from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH03.marvell.com\n (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sun, 8 Dec\n 2019 04:31:10 -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.1367.3 via Frontend\n Transport; Sun, 8 Dec 2019 04:31:10 -0800",
            "from ajoseph83.caveonetworks.com.com (unknown [10.29.45.60])\n by maili.marvell.com (Postfix) with ESMTP id EB5D33F703F;\n Sun,  8 Dec 2019 04:31:05 -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 : mime-version : content-type :\n content-transfer-encoding; s=pfpt0818;\n bh=l6gzsfAMoNtcodeUFB9/+lRVb44PuoFyEybGZq3/fTk=;\n b=avuxPf21n4PADPEY8i5Auu+V4sW7UUeK87kpd53bcRy362JW3xNXVyQVj0e9yjJ876ZL\n kpX31Bvs52MIJiPGtDBuYihEXg9DQIuu5Lc3/QbYulnNvpocLhqTdzvl7YgbHlMKPNSD\n nPEdvTnMuU3sXI+/s4SRAvZsBVJeaikBzOd3k8akIJAdaPHLg2WOWKDRDLjhE8adjfzc\n doDYnnmLVEcbyOV/JqOhQA47qGnTzjf0mZV3lHUDpyeBI0/EiPKVJswELTNotgFhKaHJ\n qK/0whu5MwZETunLyBHGN1EibZZ9UGOvVCI6qq3B4PPr0R7H6tMzT2dFD3rmtVBwkYKs Sw==",
        "From": "Anoob Joseph <anoobj@marvell.com>",
        "To": "Akhil Goyal <akhil.goyal@nxp.com>, Radu Nicolau <radu.nicolau@intel.com>,\n Thomas Monjalon <thomas@monjalon.net>",
        "CC": "Anoob Joseph <anoobj@marvell.com>, Jerin Jacob <jerinj@marvell.com>,\n Narayana Prasad <pathreya@marvell.com>,\n Ankur Dwivedi <adwivedi@marvell.com>,\n Archana Muniganti <marchana@marvell.com>, Tejasree Kondoj\n <ktejasree@marvell.com>, Vamsi Attunuru <vattunuru@marvell.com>, \"Lukasz\n Bartosik\" <lbartosik@marvell.com>, Konstantin Ananyev\n <konstantin.ananyev@intel.com>, <dev@dpdk.org>",
        "Date": "Sun, 8 Dec 2019 18:00:35 +0530",
        "Message-ID": "<1575808249-31135-1-git-send-email-anoobj@marvell.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"UTF-8\"",
        "Content-Transfer-Encoding": "8bit",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10434:6.0.95,18.0.572\n definitions=2019-12-08_03:2019-12-05,2019-12-08 signatures=0",
        "Subject": "[dpdk-dev] [PATCH 00/14] add eventmode to ipsec-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": "This series introduces event-mode additions to ipsec-secgw. This effort\nis based on the proposed changes for l2fwd-event and the additions in\nl3fwd for event support.\n\nWith this series, ipsec-secgw would be able to run in eventmode. The\nworker thread (executing loop) would be receiving events and would be\nsubmitting it back to the eventdev after the processing. This way,\nmulticore scaling and h/w assisted scheduling is achieved by making use\nof the eventdev capabilities.\n\nSince the underlying event device would be having varying capabilities,\nthe worker thread could be drafted differently to maximize performance.\nThis series introduces usage of multiple worker threads, among which the\none to be used will be determined by the operating conditions and the\nunderlying device capabilities.\n\nFor example, if an event device - eth device pair has Tx internal port,\nthen application can do tx_adapter_enqueue() instead of regular\nevent_enqueue(). So a thread making an assumption that the device pair\nhas internal port will not be the right solution for another pair. The\ninfrastructure added with these patches aims to help application to have\nmultiple worker threads, there by extracting maximum performance from\nevery device without affecting existing paths/use cases.\n\nThe eventmode configuration is predefined. All packets reaching one eth\nport will hit one event queue. All event queues will be mapped to all\nevent ports. So all cores will be able to receive traffic from all ports.\nWhen schedule_type is set as RTE_SCHED_TYPE_ORDERED/ATOMIC, event device\nwill ensure the ordering. Ordering would be lost when tried in PARALLEL.\n\nFollowing command line options are introduced,\n\n--transfer-mode: to choose between poll mode & event mode\n--schedule-type: to specify the scheduling type\n                 (RTE_SCHED_TYPE_ORDERED/\n                  RTE_SCHED_TYPE_ATOMIC/\n                  RTE_SCHED_TYPE_PARALLEL)\n--process-dir: outbound/inbound\n--process-mode: app mode /driver mode\n\nThe two s/w config options added to ipsec-secgw can be used in\nbenchmarking h/w performance,\n\n1. process-dir : states whether the direction is outbound/inbound.\nThis option aims to avoid an unnecessary check of determining whether\ninbound/outbound processing need to be done on the packet. For each\noption a different light weight worker thread would be executed.\n\n2. process-mode: states whether the application has to run in driver\n                 mode or app mode.\n\nDriver-mode: This mode will have bare minimum changes in the application\n             to support ipsec. There woudn't be any lookup etc done in\n             the application. And for inline-protocol use case, the\n             thread would resemble l2fwd as the ipsec processing would be\n             done entirely in the h/w. This mode can be used to benchmark\n             the raw performance of the h/w. All the application side\n             steps (like lookup) can be redone based on the requirement\n             of the end user. Hence the need for a mode which would\n             report the raw performance.\n\nApp-mode: This mode will have all the features currently implemented with\n          ipsec-secgw (non librte_ipsec mode). All the lookups etc\n          would follow the existing methods and would report numbers\n          that can be compared against regular ipsec-secgw benchmark\n          numbers.\n\nExample commands to execute ipsec-secgw in various modes on OCTEONTX2 platform,\n\n#Inbound driver mode\n./ipsec-secgw -w 0002:02:00.0,nb_ipsec_in_sa=128 -w 0002:03:00.0,nb_ipsec_in_sa=128 -w 0002:04:00.0,nb_ipsec_in_sa=128 -w 0002:07:00.0,nb_ipsec_in_sa=128 -w 0002:0e:00.0 -w 0002:10:00.1 --log-level=8 -c 0x7 – -P -p 0xf --config \"(0,0,0),(1,0,0),(2,0,0),(3,0,0)\" -f dpdk_internal/100g_4.3.cfg --transfer-mode 1 --schedule-type 2 --process-mode app --process-dir in\n\n#Inbound app mode\n./ipsec-secgw -w 0002:02:00.0,nb_ipsec_in_sa=128 -w 0002:03:00.0,nb_ipsec_in_sa=128 -w 0002:04:00.0,nb_ipsec_in_sa=128 -w 0002:07:00.0,nb_ipsec_in_sa=128 -w 0002:0e:00.0 -w 0002:10:00.1 --log-level=8 -c 0x3f – -P -p 0xf --config \"(0,0,0),(1,0,0),(2,0,0),(3,0,0)\" -f dpdk_internal/100g_4.3.cfg --transfer-mode 1 --schedule-type 2 --process-mode drv --process-dir in\n\n#Outbound driver mode\n./ipsec-secgw -w 0002:02:00.0 -w 0002:03:00.0 -w 0002:04:00.0 -w 0002:07:00.0 -w 0002:0e:00.0 -w 0002:10:00.1 --log-level=8 -c 0x1f – -P -p 0xf --config \"(0,0,0),(1,0,0),(2,0,0),(3,0,0)\" -f a-aes-gcm-new.cfg --transfer-mode 1 --schedule-type 2 --process-mode  app --process-dir out\n\n#Outbound app mode\n./ipsec-secgw -w 0002:02:00.0 -w 0002:03:00.0 -w 0002:04:00.0 -w 0002:07:00.0 -w 0002:0e:00.0 -w 0002:10:00.1 --log-level=8 -c 0x7f – -P -p 0xf --config \"(0,0,0),(1,0,0),(2,0,0),(3,0,0)\" -f a-aes-gcm-new.cfg --transfer-mode 1 --schedule-type 2 --process-mode  drv --process-dir out\n\nThis series doesn't introduce any library change. And the decision to add\neventmode additions in ipsec-secgw was approved by the Tech Board.\n\nThis series adds non burst tx internal port workers only. It provides infrastructure\nfor non internal port workers, however does not define any. Also, only inline ipsec\nmode is supported by the worker threads added.\n\nFollowing are planned features,\n1. Add burst mode workers.\n2. Add non internal port workers.\n3. Verify support for Rx core (the support is added but lack of h/w to verify).\n4. Add lookaside protocol support.\n\nFollowing are features that Marvell won't be attempting.\n1. Inline crypto support.\n2. Lookaside crypto support.\n\nFor the features that Marvell won't be attempting, new workers can be\nintroduced by the respective stake holders.\n\nThis series is tested on Marvell OCTEONTX2.\n\nAnkur Dwivedi (3):\n  examples/ipsec-secgw: add default rte_flow for inline Rx\n  examples/ipsec-secgw: add driver outbound worker\n  examples/ipsec-secgw: add app outbound worker\n\nAnoob Joseph (5):\n  examples/ipsec-secgw: add framework for eventmode helper\n  examples/ipsec-secgw: add eventdev port-lcore link\n  examples/ipsec-secgw: add Rx adapter support\n  examples/ipsec-secgw: add Tx adapter support\n  examples/ipsec-secgw: add routines to display config\n\nLukasz Bartosik (6):\n  examples/ipsec-secgw: add routines to launch workers\n  examples/ipsec-secgw: add support for internal ports\n  examples/ipsec-secgw: add eventmode to ipsec-secgw\n  examples/ipsec-secgw: add app inbound worker\n  examples/ipsec-secgw: add app processing code\n  examples/ipsec-secgw: add cmd line option for bufs\n\n examples/ipsec-secgw/Makefile       |    2 +\n examples/ipsec-secgw/event_helper.c | 1742 +++++++++++++++++++++++++++++++++++\n examples/ipsec-secgw/event_helper.h |  324 +++++++\n examples/ipsec-secgw/ipsec-secgw.c  |  533 +++++++++--\n examples/ipsec-secgw/ipsec-secgw.h  |   81 ++\n examples/ipsec-secgw/ipsec.c        |   17 +\n examples/ipsec-secgw/ipsec.h        |   36 +-\n examples/ipsec-secgw/ipsec_worker.c |  766 +++++++++++++++\n examples/ipsec-secgw/ipsec_worker.h |   39 +\n examples/ipsec-secgw/meson.build    |    4 +-\n examples/ipsec-secgw/sa.c           |   11 -\n 11 files changed, 3446 insertions(+), 109 deletions(-)\n create mode 100644 examples/ipsec-secgw/event_helper.c\n create mode 100644 examples/ipsec-secgw/event_helper.h\n create mode 100644 examples/ipsec-secgw/ipsec-secgw.h\n create mode 100644 examples/ipsec-secgw/ipsec_worker.c\n create mode 100644 examples/ipsec-secgw/ipsec_worker.h"
}