get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/41661/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 41661,
    "url": "http://patchwork.dpdk.org/api/patches/41661/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/1530101043-97249-1-git-send-email-ido@cgstowernetworks.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<1530101043-97249-1-git-send-email-ido@cgstowernetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1530101043-97249-1-git-send-email-ido@cgstowernetworks.com",
    "date": "2018-06-27T12:04:03",
    "name": "[v3] net/pcap: rx_iface_in stream type support",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "665fc3cc1368152e36f7e0a20ab220e9023156f8",
    "submitter": {
        "id": 1047,
        "url": "http://patchwork.dpdk.org/api/people/1047/?format=api",
        "name": "Ido Goshen",
        "email": "ido@cgstowernetworks.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/1530101043-97249-1-git-send-email-ido@cgstowernetworks.com/mbox/",
    "series": [
        {
            "id": 263,
            "url": "http://patchwork.dpdk.org/api/series/263/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=263",
            "date": "2018-06-27T12:04:03",
            "name": "[v3] net/pcap: rx_iface_in stream type support",
            "version": 3,
            "mbox": "http://patchwork.dpdk.org/series/263/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/41661/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/41661/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 628DE1BF1E;\n\tWed, 27 Jun 2018 14:04:17 +0200 (CEST)",
            "from EUR03-DB5-obe.outbound.protection.outlook.com\n\t(mail-eopbgr40127.outbound.protection.outlook.com [40.107.4.127])\n\tby dpdk.org (Postfix) with ESMTP id 541811BF1B\n\tfor <dev@dpdk.org>; Wed, 27 Jun 2018 14:04:15 +0200 (CEST)",
            "from localhost.localdomain (81.218.57.230) by\n\tVI1PR0901MB1294.eurprd09.prod.outlook.com (2603:10a6:800:1a::16) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.884.23;\n\tWed, 27 Jun 2018 12:04:11 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=cgstowernetworks.onmicrosoft.com; s=selector1-cgstowernetworks-com; \n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=qkZlWmXLwJulU0SrusRhiUoFcby4EYDWEpzmwIN3ZjA=;\n\tb=myvXDKiX25SlL0JlD0Q1V2Bb/s0SVvKQvOgci1wIqK3fIEoydElw7KTl5WZO799j9fdEMmlNf2UVmynBRj9iC8NLGraYkaST2Qf4EwnpcWfa8SGhzQnjG7Lv5S0u9f5TzYnClzH7ngb3aouHxR3i6Q5xlj7ccAW67Q69sXOol3g=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Ido@cgstowernetworks.com; ",
        "From": "ido goshen <ido@cgstowernetworks.com>",
        "To": "Ferruh Yigit <ferruh.yigit@intel.com>,\n\tBruce Richardson <bruce.richardson@intel.com>,\n\tJohn McNamara <john.mcnamara@intel.com>,\n\tMarko Kovacevic <marko.kovacevic@intel.com>",
        "Cc": "dev@dpdk.org,\n\tido g <ido@cgstowernetworks.com>",
        "Date": "Wed, 27 Jun 2018 15:04:03 +0300",
        "Message-Id": "<1530101043-97249-1-git-send-email-ido@cgstowernetworks.com>",
        "X-Mailer": "git-send-email 1.9.1",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[81.218.57.230]",
        "X-ClientProxiedBy": "VI1P18901CA0011.EURP189.PROD.OUTLOOK.COM\n\t(2603:10a6:801::21) To VI1PR0901MB1294.eurprd09.prod.outlook.com\n\t(2603:10a6:800:1a::16)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "06094d70-150a-4344-8cc3-08d5dc261941",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652020)(7021125)(8989117)(4534165)(7022125)(4603075)(4627221)(201702281549075)(8990107)(7048125)(7024125)(7027125)(7028125)(7023125)(5600026)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:VI1PR0901MB1294; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; VI1PR0901MB1294;\n\t3:ITBrftw8VHDUd66X5cebpX2w5m41R3xyY2REAw/E46f9gR7Z4HBpUKOLP+UqIiHhWyVwjhHOzxiWAeqIa67N44Vo+StXkO//NQp1TzRpx7dLItjFHcUWRBpt8q11j/QezeDfHaQgN25DATNZ0aPsW4C9rmHXOuCkLAUVAvXgeta7oIYvJS9wXFYXL8Uu1m9hqtBtPP31Y63+LE6RSC3mMeDeIcqNYHrXjqJrM/y/xNa9wZO4g7QxdDi85GL+qAG2;\n\t25:zcyRNQyP5ArOGMICteVQSGizkj1psizEHYarHVAHBWx+jNyzwcDmKtMY8S3jURKNLuAZr98XKwJKLP1kwi1q4IKGJF/veicU9oCFfQHhkeP/zBJvy3DPqyE+VLITHb99jn8s3afAJ9Xjp+++yjfyKtgN2U79Jrn7UcmoXfpVZEkZzgOalerzULz1aUynj13z6BJMHSVYUW6nSOR0xGhzZgvF9gAoAVqzYV8hjPCNNRLrTGceS6HAPtKHU4Wdg60SrUQhvLl1I3hrAg+hWKcWoAoDh7Ocz7X/72sT9uvazDb/bYTtYvdDZorGLnCPPJptymAQRbU0DmfAwNTEWr156g==;\n\t31:+ieiY9RUqSoiyEqDg8pThLEn6t0DTQCOqnyor2v1OAfqQ+6OoKgAn948GXZnBZo0WtkED4fcJDjK6dr2RdtHGWFN3XkvgIodsUAVF6TdsI85k1k+OGtxSvORpUobfK7qaZT/fWkBbGH+2E6sp0uB+osiNquXTQgmMTC6wXyIcCy+QUr/TAC4RSFu00xZ4oViaISf3abpnpgTb0V7NVoqQ5HZlJZoCWUEIgHQIwjnF04=",
            "1; VI1PR0901MB1294;\n\t4:+59vm29udkYCpU6+EvXMtAED804m9+mHFhPIeEnr2B3k648xn4q5DeykuP/kugskHKMvH2ENHRnZ6MPBxk1kKHWDdKzGOeOig5s5QcPZpEMORevesHJ357Vt1oBDxr1s586gYIPvtv9EWJLuanxN4qgt8fw8LsQt7ZHQcpWvSZMcNm0YdT7rxekz5IV69GqKyAN7NzHUAnBXpjdhf8yp6CzLq+8sKUhH28JlhEK4FCXyFfBcyBuTfy3IW0nISJMwcgze+gTT05BwsGsMaNjCTw==",
            "=?us-ascii?Q?1; VI1PR0901MB1294;\n\t23:WOA0ebX9MQSGrA9ZYzVLsPHDSYL7cXCLZNBnc0/?=\n\tJtYTYUZMEpCMcc8B2Smzan6Jn2bKd+t8ByIqEGTdv9E5F+x9cFtnzTPibBrMOD//4gMXSf3c/iy2lD37LD4P0QQjUvL51vW5zB6MpdtyBtZ3r12NZsjOZ2a0Hn4Ml5DSimTCgX1AKEpioLbqgDeXa0jsGpkAnWOzFkZi9VPY9CUUGgj85dlfgoShMaMfoJ5epYBC6WEg3Xf8c9jazStaabXzsfKuUdquReer6mTCT4xHzspCHIXmGLcsMVvzM3FYdjl7KKIgBgP14l9WKEPUdMKkDObu2iBrGYNQLA3C/HMTWUMIbM/aSJLJqA/uQGaZMDtDDHQz+3Ehi93ihW+FNEIJqiHJtIq2OmltS0Y2m2NLppzM1jKt5roJRuSatUvuPneHtYw//bNyEmQNZx0rHhdI6qUvXahSVNuglaexGpyrIzeXB+vr2i2RjDNbBAcQl/s1zP4mDCb2CHSqSJpX2wQvkn2GWuwNs51bCIf3Dw6JXbnPIB9LEl5kLx8GUnpXggfSRX7RiaQ9vFKOwYiVa3wA4RVgvRoJLA+/X7FzETLsxYZRDeUjSn7b2i/ScrJAJw8fyK9x/e11JucMeuqkVBW3ocweVW1dx9Ncosaf7frvJctoCwYEkLnEBTetoJsHeO0Oned2M7nA7B3TN+tJCBlGIRpoYssZ8f6sUM6hJqL4RUyJgcqW6aTO1vjGQvLGjP3ldk9j1SJBnhssbElCQ5pZk066meSFqN4wIiBEG3TV6cbpjpi5Kj9oPD6CCv3IrramApnN03dSeu1IGp24QyhDjy+LMMfUQdpClJ/TUOcGObkvZvT2gtH5acWDQLuYOIXGvfcPuvl5peXtjjo26ijQGkRYKdbVaz17NiVJ0wCYmuRMBpJBrXetz/BTYwTyI7ZBYhHv5yj/3jpZmLGTCTNB88bQr338q4rEJaykgmaaMTZpZRMqFaXk145aQwnoGjYOeipBOrskiy1v5yh6Wxs+NXW+iAOruRUIfnsu7otiRrV4oX/PQCs6Vl0hPtYLDZKKe67NaZTx5cKmodrGeup99CMVrpeU4lA89Er7zM0Z61zc+e1m86kqloG0ZjVuFjKqQe2HkxwPsICB3uKEmTC2kN1JcYsDTPnZrk4j1vzjN9cZBWu11bCgD1Xc/n7U5JlgPHBYhF0KoWGfQebmcFocdDM7+mWibZUJBd8+wN2u9dg==",
            "1; VI1PR0901MB1294;\n\t6:mWcmabbSCbe3xFzerAoI89Ow2Ow+ePxnT7D1yG0NuOI+ad53QDAWw19pjJRT89fOWTk9aZRMUCJi0juhtk4Zb/TcMA1p96Yb1l5EoL1CCxShiAMFHIFBOloSm7MQG3zgit8bxb7U6KNWpxPraATIBZORPDPI2/0dxlJkbf77Oz1j6p05cgw9NA1yBFwfZ08dW20VzPK88XJY3QtQOtGTTfKaADsGWpVh/uzqX8Tb8hPn4noRw1I5tyhOTfVLglJzMKM5l7Jsrw8hyyvuTs5knRvuLca88fq/VTYmix1vSvvCcN7br4hZNC5sQRlcO1qs9EVwdcigciiTvod/vjqiFY2Ol8KUfldLCTRgHU5XcLPZCJ5mMiRE3mQWRTW6ycyR9sgU/+PavbuxC2me5YOZWivpBDnHK0KYLsKowCsQ4Jt4zYGOGSTy+f0IisIHnGcbBS8n6HezW8lTeSn8PUnSCg==;\n\t5:KYokY1kfFOGy4yP7R6W+Shd3esUh0p0zkaWY3pDI+L7ZMg1OEdyJZDsRLMexVoe04VuSBp6z5ErcPMQ1LyICvmU58V/+kBzt1TVAe5MhRlDWsTX2KUtwoKRMU55uwnp2/Wz+Zr1benuvAdoerxu+YuRMfccPwo5aEV2+BV6ur6A=;\n\t24:UQeE18rfLXnl/oqQ3ak0hxG2zFuQ3wfk4gJgSuZYTPXfSSnUtO/+4Q80I/HAF3J9TyBc6MfQkZGE4ATHBMmWixUTNulxSQT61kH6ok5wHZM=",
            "1; VI1PR0901MB1294;\n\t7:xSwQGbZhrxfnjPIdw7ygRwwhYP6T6JTAZ0C7veRWaqZ8vL2vyalPAu7OwxI2JJJcVU1NsY8YS9gCX7eoJO2/61pcIo6wQEuuJ5KbtjdQM/5KUckl+EEQzfFF/VHZ7BM8fDkRwsmxwxfoYrdR2BpxfSA03jcR/+UQKv8cxs6BUobhKg/9g0NLeBryxgmaVYgKKIZ9tg0FnKFcVGc4wwTxoIMIPjD+3vPHcH6k/0Mjsw/W9RfkGxdjUkzFIFS7k1YP"
        ],
        "X-MS-TrafficTypeDiagnostic": "VI1PR0901MB1294:",
        "X-Microsoft-Antispam-PRVS": "<VI1PR0901MB129417E6D339DBDF780FE34BD6480@VI1PR0901MB1294.eurprd09.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(3002001)(93006095)(93001095)(10201501046)(149027)(150027)(6041310)(20161123558120)(20161123564045)(2016111802025)(20161123560045)(20161123562045)(6043046)(6072148)(201708071742011)(7699016);\n\tSRVR:VI1PR0901MB1294; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0901MB1294; ",
        "X-Forefront-PRVS": "0716E70AB6",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10019020)(6069001)(396003)(346002)(136003)(39840400004)(366004)(376002)(189003)(199004)(2906002)(106356001)(105586002)(5660300001)(80792005)(97736004)(72206003)(52116002)(51416003)(53936002)(478600001)(26005)(16526019)(186003)(386003)(6506007)(476003)(486006)(110136005)(956004)(316002)(2616005)(16586007)(6666003)(25786009)(4326008)(47776003)(107886003)(81166006)(66066001)(68736007)(36756003)(50226002)(86152003)(6512007)(6116002)(3846002)(305945005)(7736002)(14444005)(86362001)(8936002)(8676002)(81156014)(50466002)(6486002)(48376002);\n\tDIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR0901MB1294;\n\tH:localhost.localdomain; FPR:; \n\tSPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; ",
        "Received-SPF": "None (protection.outlook.com: cgstowernetworks.com does not\n\tdesignate permitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "4GBbl26hPfxP5jjyJEWLOdncO26x2TeyGdutlGF7oXos8mw/Xw8DaTAFlkNqLPDjVVmuJK8D+wRqVhBrIAKHHUTVPj2FfuAnPOWi3PGzxQupZEKueRyDZHATvOpUVRv+veKcrBZePYok6WYvemMs0YGoVSUvpoCChLCDTF1d06BniyeoOlABcZ5esyymRNLgOiFUO61fMt9j12zMxfnuPbSoHbdGsRJbZWx88b9JQofdBpvY5FLB2iTLPb0UVdDNKpoZ5T3jnOgaojnsrrg9Yg9oWCZrlU8y5YTWTS8cW+vM5M19Qaijp0m1CHOyAzzZV61cPB7Sic3nh4HQ/9Vl6gJTanpn8GLJ4/P43W0SHWo=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "cgstowernetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Jun 2018 12:04:11.1668\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "06094d70-150a-4344-8cc3-08d5dc261941",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "fc9e9498-07e8-4b82-b4cf-365bba23cbbf",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "VI1PR0901MB1294",
        "Subject": "[dpdk-dev] [PATCH v3] net/pcap: rx_iface_in stream type support",
        "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: ido g <ido@cgstowernetworks.com>\n\nSupport rx of in direction packets only\nUseful for apps that also tx to eth_pcap ports in order to not see them\nechoed back in as rx when out direction is also captured\n\nSigned-off-by: ido g <ido@cgstowernetworks.com>\n---\nv3:\n* merge to updated dpdk-next-net code\n* pcap_ring doc update\n\nv2:\n* clean checkpatch warning\n\n doc/guides/nics/pcap_ring.rst   | 25 ++++++++++++++++++++++-\n drivers/net/pcap/rte_eth_pcap.c | 45 ++++++++++++++++++++++++++++++++++++++---\n 2 files changed, 66 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/doc/guides/nics/pcap_ring.rst b/doc/guides/nics/pcap_ring.rst\nindex 7fd063c..6282be6 100644\n--- a/doc/guides/nics/pcap_ring.rst\n+++ b/doc/guides/nics/pcap_ring.rst\n@@ -71,11 +71,19 @@ The different stream types are:\n         tx_pcap=/path/to/file.pcap\n \n *   rx_iface: Defines a reception stream based on a network interface name.\n-    The driver reads packets coming from the given interface using the Linux kernel driver for that interface.\n+    The driver reads packets from the given interface using the Linux kernel driver for that interface.\n+    The driver captures both the incoming and outgoing packets on that interface.\n     The value is an interface name.\n \n         rx_iface=eth0\n \n+*   rx_iface_in: Defines a reception stream based on a network interface name.\n+    The driver reads packets from the given interface using the Linux kernel driver for that interface.\n+    The driver captures only the incoming packets on that interface.\n+    The value is an interface name.\n+\n+        rx_iface_in=eth0\n+\n *   tx_iface: Defines a transmission stream based on a network interface name.\n     The driver sends packets to the given interface using the Linux kernel driver for that interface.\n     The value is an interface name.\n@@ -122,6 +130,21 @@ Forward packets through two network interfaces:\n     $RTE_TARGET/app/testpmd -l 0-3 -n 4 \\\n         --vdev 'net_pcap0,iface=eth0' --vdev='net_pcap1;iface=eth1'\n \n+Enable 2 tx queues on a network interface:\n+\n+.. code-block:: console\n+\n+    $RTE_TARGET/app/testpmd -l 0-3 -n 4 \\\n+        --vdev 'net_pcap0,rx_iface=eth1,tx_iface=eth1,tx_iface=eth1' \\\n+        -- --txq 2\n+\n+Read only incoming packets from a network interface:\n+\n+.. code-block:: console\n+\n+    $RTE_TARGET/app/testpmd -l 0-3 -n 4 \\\n+        --vdev 'net_pcap0,rx_iface_in=eth1,tx_iface=eth1'\n+\n Using libpcap-based PMD with the testpmd Application\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n \ndiff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c\nindex b21930b..9c31cef 100644\n--- a/drivers/net/pcap/rte_eth_pcap.c\n+++ b/drivers/net/pcap/rte_eth_pcap.c\n@@ -26,6 +26,7 @@\n #define ETH_PCAP_RX_PCAP_ARG  \"rx_pcap\"\n #define ETH_PCAP_TX_PCAP_ARG  \"tx_pcap\"\n #define ETH_PCAP_RX_IFACE_ARG \"rx_iface\"\n+#define ETH_PCAP_RX_IFACE_IN_ARG \"rx_iface_in\"\n #define ETH_PCAP_TX_IFACE_ARG \"tx_iface\"\n #define ETH_PCAP_IFACE_ARG    \"iface\"\n \n@@ -83,6 +84,7 @@ struct pmd_devargs {\n \tETH_PCAP_RX_PCAP_ARG,\n \tETH_PCAP_TX_PCAP_ARG,\n \tETH_PCAP_RX_IFACE_ARG,\n+\tETH_PCAP_RX_IFACE_IN_ARG,\n \tETH_PCAP_TX_IFACE_ARG,\n \tETH_PCAP_IFACE_ARG,\n \tNULL\n@@ -739,6 +741,26 @@ struct pmd_devargs {\n }\n \n static inline int\n+set_iface_direction(const char *iface,\n+\t\tpcap_t *pcap,\n+\t\tpcap_direction_t direction)\n+{\n+\tconst char *direction_str = (direction == PCAP_D_IN) ? \"IN\" : \"OUT\";\n+\tif (pcap_setdirection(pcap, direction) < 0) {\n+\t\tPMD_LOG(ERR,\n+\t\t\t\t\"Setting %s pcap direction %s failed - %s\\n\",\n+\t\t\t\tiface,\n+\t\t\t\tdirection_str,\n+\t\t\t\tpcap_geterr(pcap));\n+\t\treturn -1;\n+\t}\n+\tPMD_LOG(INFO, \"Setting %s pcap direction %s\\n\",\n+\t\t\tiface,\n+\t\t\tdirection_str);\n+\treturn 0;\n+}\n+\n+static inline int\n open_iface(const char *key, const char *value, void *extra_args)\n {\n \tconst char *iface = value;\n@@ -761,7 +783,17 @@ struct pmd_devargs {\n static inline int\n open_rx_iface(const char *key, const char *value, void *extra_args)\n {\n-\treturn open_iface(key, value, extra_args);\n+\tint ret = open_iface(key, value, extra_args);\n+\tif (ret < 0)\n+\t\treturn ret;\n+\tif (strcmp(key, ETH_PCAP_RX_IFACE_IN_ARG) == 0) {\n+\t\tstruct pmd_devargs *pmd = extra_args;\n+\t\tunsigned int qid = pmd->num_of_queue - 1;\n+\t\tset_iface_direction(pmd->queue[qid].name,\n+\t\t\t\tpmd->queue[qid].pcap,\n+\t\t\t\tPCAP_D_IN);\n+\t}\n+\treturn 0;\n }\n \n /*\n@@ -964,12 +996,18 @@ struct pmd_devargs {\n \tis_rx_pcap = rte_kvargs_count(kvlist, ETH_PCAP_RX_PCAP_ARG) ? 1 : 0;\n \tpcaps.num_of_queue = 0;\n \n-\tif (is_rx_pcap)\n+\tif (is_rx_pcap) {\n \t\tret = rte_kvargs_process(kvlist, ETH_PCAP_RX_PCAP_ARG,\n \t\t\t\t&open_rx_pcap, &pcaps);\n-\telse\n+\t} else {\n \t\tret = rte_kvargs_process(kvlist, ETH_PCAP_RX_IFACE_ARG,\n \t\t\t\t&open_rx_iface, &pcaps);\n+\t\tif (ret == 0)\n+\t\t\tret = rte_kvargs_process(kvlist,\n+\t\t\t\t\tETH_PCAP_RX_IFACE_IN_ARG,\n+\t\t\t\t\t&open_rx_iface,\n+\t\t\t\t\t&pcaps);\n+\t}\n \n \tif (ret < 0)\n \t\tgoto free_kvlist;\n@@ -1035,6 +1073,7 @@ struct pmd_devargs {\n \tETH_PCAP_RX_PCAP_ARG \"=<string> \"\n \tETH_PCAP_TX_PCAP_ARG \"=<string> \"\n \tETH_PCAP_RX_IFACE_ARG \"=<ifc> \"\n+\tETH_PCAP_RX_IFACE_IN_ARG \"=<ifc> \"\n \tETH_PCAP_TX_IFACE_ARG \"=<ifc> \"\n \tETH_PCAP_IFACE_ARG \"=<ifc>\");\n \n",
    "prefixes": [
        "v3"
    ]
}