get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 42022,
    "url": "http://patchwork.dpdk.org/api/patches/42022/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/1530443135-39066-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": "<1530443135-39066-1-git-send-email-ido@cgstowernetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1530443135-39066-1-git-send-email-ido@cgstowernetworks.com",
    "date": "2018-07-01T11:05:34",
    "name": "[v4] net/pcap: rx_iface_in stream type support",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "d5010bbd1ca8eef8528dddb1f619c7e6d6532500",
    "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/1530443135-39066-1-git-send-email-ido@cgstowernetworks.com/mbox/",
    "series": [
        {
            "id": 337,
            "url": "http://patchwork.dpdk.org/api/series/337/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=337",
            "date": "2018-07-01T11:05:34",
            "name": "[v4] net/pcap: rx_iface_in stream type support",
            "version": 4,
            "mbox": "http://patchwork.dpdk.org/series/337/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/42022/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/42022/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 0CC871B5A4;\n\tSun,  1 Jul 2018 13:06:11 +0200 (CEST)",
            "from EUR03-AM5-obe.outbound.protection.outlook.com\n\t(mail-eopbgr30096.outbound.protection.outlook.com [40.107.3.96])\n\tby dpdk.org (Postfix) with ESMTP id 7C44C1B05E\n\tfor <dev@dpdk.org>; Sun,  1 Jul 2018 13:06:09 +0200 (CEST)",
            "from ubuntu.localdomain (81.218.57.230) by\n\tAM4PR0901MB1283.eurprd09.prod.outlook.com (2603:10a6:200:3f::17) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.906.23;\n\tSun, 1 Jul 2018 11:06:05 +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=i6ZFd8KQ1tyty47pbxKAblOc5utss1wqZ63nIMUysAk=;\n\tb=KvJXWgrYRtSw4+GXl3BaXGIWFAFdrncqag90dnPPnW24EQHarVWTmRESUK8Rmdf8wQm9/WdAfi7Ko+NkStS0rrLve/+2eh6hEm1lHQ4xg/eqeTSEgGV0dPn2Ut8vsXKfIzux9q/SxxTvzj6vzx7Au8EINJr+U4KhVh9l8t/sdc4=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Ido@cgstowernetworks.com; ",
        "From": "ido goshen <ido@cgstowernetworks.com>",
        "To": "Bruce Richardson <bruce.richardson@intel.com>,\n\tFerruh Yigit <ferruh.yigit@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": "Sun,  1 Jul 2018 14:05:34 +0300",
        "Message-Id": "<1530443135-39066-1-git-send-email-ido@cgstowernetworks.com>",
        "X-Mailer": "git-send-email 1.9.1",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-Originating-IP": "[81.218.57.230]",
        "X-ClientProxiedBy": "CWLP265CA0226.GBRP265.PROD.OUTLOOK.COM\n\t(2603:10a6:401:4f::22) To AM4PR0901MB1283.eurprd09.prod.outlook.com\n\t(2603:10a6:200:3f::17)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "14659287-03b9-482d-a9d1-08d5df42a4c4",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(7021125)(8989117)(5600053)(711020)(4534165)(7022125)(4603075)(4627221)(201702281549075)(8990107)(7048125)(7024125)(7027125)(7028125)(7023125)(2017052603328)(7153060)(7193020);\n\tSRVR:AM4PR0901MB1283; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; AM4PR0901MB1283;\n\t3:WsKPgN4rKY3ZUXI53TQVvOsf2LzsBwQm4mvZbv8zvEZ932U43WtJqOtxZDQDynDmsUzxV+RUOX5OgkIy4pU98ersXTD/8ZaYlU0tzpqkxSUcgHEpTaDMUJF67vDqn5elgbOXciVXIGfMScwsfwLBB4bg3l+QAh5KwATaughcEFcfHag5o9LaU/8Sb+kHmEvUdXBHnlfSDE85Aip9WZVxdbYoCyDqgZsL+Yq+vzoxlCSGec8SeBs6jz5QfIaKUQYl;\n\t25:b7Wr7bSPBQZTDubtL1QR/86IRncv44P5GuExaUuqbEiGisazu+YbNurAR1m9TgtI7ByCbnGIZF87YIK3Pu+nJWY/49KNjuFuDTpy9ohvBRjYOV0LIkbfOqlRCu8wR118WGgGbIKW2dxukAtc8t/JIGdtrEwO68Nl1Hc0Bf1DlFoJNjpXIh7lJ6vdvZ2uSYg/vWY2mMukjqRVVBc7pMeF62TwL20WpmMfudQ1Jm2wT+LrdPL6k2olKVMtPqfTBI7EsWCRpvMtOWn5sFQp7CxDvQuzNHNItVubSeG6BiVGuVVzVzRh3aoYI44Q61CLUzDmsQN0/LL5JiQleq2Om4FLAw==;\n\t31:w5/5k2yvc0KASvAgi+m294SRJA9Rf/AQ6ptR2tzJTLBOy+0Dc2/QAhYQaqevzjX9UFZY+eftOsq4WGPoOlnADZ2XPnJU693DcMuXrI3nPtk71BDrSOLiULdGTpEplaE+XaOWtHk9Twonyp4aTDVRe4DWh3aTMFpGOdou1SbshAt64l9HVSWE/JFIBZyCY7jxg1pIFSWdWrrs5CNQg2LrQMSkKimetayozSZa1zkQrLo=",
            "1; AM4PR0901MB1283;\n\t4:ORpDzGtzEiW+5gMWXxtmINjojGviheoIK1HLU0FbMR6RfqhjIGAJvN16MUouHOrTZEgRD5qrEZbsG4gNyDZyR4Uz92CLs7xqd9PK5NjJJ7v2Wdk5bGR91BBHNrLpYMWBIT2pQiBgNv2R66YUM5RKAMLhx7bj9jEAa5PHhYEVRJwnoA5pjSVa6mi7EIZoe7cDkYQRnQAs0dJMA59QUwUtD1ag9LSCaIwpV59XdWZskisGUIvu9k8YHY5GawnuKSFJ2fee/0iRoyqIGnUwAsy39g==",
            "=?utf-8?q?1=3BAM4PR0901MB1283=3B23=3Aap?=\n\t=?utf-8?q?UY+00AbYzy2YZ9ILbHl4+hAlm85drCTKeRYBcuZUduymdZVwdJj7Dh+/?=\n\t=?utf-8?q?UwQcLwWF/27rVhpgURAh+hXyqY42Iegxygf6UdxJqb7qbrva+etrzH3j?=\n\t=?utf-8?q?gv3bp06EVasvvo4ODzciSnFJ/W9+q4OX++CUhuk0ZVn8DQvJ6R9A3FQL?=\n\t=?utf-8?q?JUhk6NxKWJM84wrUFjbAVMb1YXfxflmA20WUSHlKGnY51bQ9AvUX0mw/?=\n\t=?utf-8?q?QDEuMaktc+u4ARtLGkQyGwEYfxNeAjClv0yOaggOWcqFQefFCNlE6Siw?=\n\t=?utf-8?q?4yyU67MDH6JRlKyTbecdk1PEkaKrHppuFHnWt3cZcMU1uZnphc/vzZcv?=\n\t=?utf-8?q?+3NhBaJ31tqzaPbRAj3w1M+4Lch77ZUv2XlCXzgfDL7rCzf1dTmRtIX7?=\n\t=?utf-8?q?3oYRGElHBoXFLvKhbuMzntj7MsJNtMdEMSMejiPFTev+AH9i5EaEYqPq?=\n\t=?utf-8?q?0QPmOrVrS9DPQvpNBxuy5afvjmQF7kHpxDIrtq40xjIlaIazbbfIJ3h/?=\n\t=?utf-8?q?LeYnWcT1ZQ/Z0yDn7XgXyCB4NYjmJG2QqbzWoJEsrWUOso3c8WEzal4h?=\n\t=?utf-8?q?RilbrpTm5xSFEJU4Vqi0lodurqAF2mHyiGwIbvUOLFActhqiWeUVPmik?=\n\t=?utf-8?q?et1+rs+CkPFTRoAIwXse1NGHYmv4ZjaF9+3YYeVDPZrDKqbiLWQz+5DN?=\n\t=?utf-8?q?2neDg3t0h1pxHd++aM85n3Odcf6DrEY9xM9g5OwOz8634ZwOFmCVI9h6?=\n\t=?utf-8?q?4vJDZXaFfWsKLSIDE//VXo4NHV7zqp1Ez73Jf/rOUcw+OlIM9ru/faXt?=\n\t=?utf-8?q?G/8nNHkttXLfxa+K5HypQ5xU3+w1SJKPCONYTf8kvD/qObiBelBvvLYk?=\n\t=?utf-8?q?jXMyleCl/97d2B+0CA05K/4tJH96DZpVolhOhh2fO+oE66Ui+dtyssNk?=\n\t=?utf-8?q?8nzDAMAMb+Nzjtt7pn5bLyH0U02SfcyDjbOSJ8QLyqZ6a3I5oFBMd3fa?=\n\t=?utf-8?q?ZHTaUlRWdMMKqmXuyolmW5rvuHQqYyccvnfOpQWHwLFuhb6ojHBbJDOa?=\n\t=?utf-8?q?yiPwEst/A3lTYrAee1+ObvDhSj2K9J7OnY+NkO+VuV2CzE+2Qnc+S2v6?=\n\t=?utf-8?q?uud71Nd5VtVlrUOEEL3Y2PC9oQ/aXk+wJCLiv9OPP3yWyer5tuXs2GqB?=\n\t=?utf-8?q?5L/5AUIJWJvyzuQJfYejM1CJpwFeAiOlIWmND2MuUAHjAr4feulwv9Ne?=\n\t=?utf-8?q?+UIGz0ZI8A5LV+LkJriLrQsczrJsBVkbr4CBpb?=",
            "1; AM4PR0901MB1283;\n\t6:SRzjXnf8dnl/+AwEfLEvtd6DzfWFgss2bgdwc+QFUhsObW92fwQFDtFZh3azECNQMOeR+n/u7VJO/tqcnbGxPKaPIG61lNj/wIf2XfM/l4Pcmm+flPEyHnGX08jgjtPik51dAjj58sLSGm1atm1EtIJO5uS9XGt08Q08fdnQLEF1655GXkAj63cy903G8l0HarZihbcks1tfQNcjiLFcZvT5fmlKQiOeX8FiaOJtZZYKn10CQqLmngkPGyehP714QlaNzV8ey7/hMfXh3cVoebL2aOrWYRm1Nzz415Or3O8+u8s3pB+7VRo7c5mzK54MGUBwiROJMumUM44vissSvjnnmr3ZP36GPACAiJcYzLe5jDtJS3P9YbH2PXMuNwiEOkp2AWdz4Gu/HdG1tIKus5PYThTC7Ka2Q9eLguZAQCNfu7aypO88NAGHyIyJz5BkiT9wjONIDZKBvC0G6O7txQ==;\n\t5:E4+aRHnVZmjbRM5WKBuVmswliH1rucIo76C2vhsLu2zHevEBATC7DVA6eriZKgi7tbdTCN8IrUl1wJJHw4vq+iRuK8wZxsQlCxuIQJKyOO4sTOA3NgWvtlzrCb4Ha+1t1mpQ/MszyJSskDQU7Wipcz+zEJ0Nwv3QUrvBVxcvk00=;\n\t24:LROQwYq78ZOCRS4VI2ZW+ndVMevMhShSulKT8nvBeHntGSV4Z78inl1uBmp+RDX5jmQ9tkeQZ1ZvAwQKaZdvebZ3SnSNTClNprFvJyFKpu4=",
            "1; AM4PR0901MB1283;\n\t7:CPci9n4hcXCpZ553Bedq6Ug6e61TqWBh6LCCUDXDtGvFGQjxQ7OhvbNoBsLyUyVS55iocUFVYAQXFbrc6fXhreTpTNE9+VCYVpT81LcQphBEi8caboqbMo3Sc+cHITTTMrpC7WsX7VuHD3nupdShqCsx+gh2ml7hRZw4Xh66yLHjDzxgv3KjR7RqxvRR6xN/uwAvI6URWGuGC894WzsvZZVBgnyRQUro9WBs/9PzA2qvoAWBW36LsY4kuyPIZhvL"
        ],
        "X-MS-TrafficTypeDiagnostic": "AM4PR0901MB1283:",
        "X-Microsoft-Antispam-PRVS": "<AM4PR0901MB1283298D6458FBB69D49F536D64C0@AM4PR0901MB1283.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)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(20161123560045)(20161123564045)(20161123558120)(2016111802025)(20161123562045)(6072148)(6043046)(201708071742011)(7699016);\n\tSRVR:AM4PR0901MB1283; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0901MB1283; ",
        "X-Forefront-PRVS": "07200C0526",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10019020)(39830400003)(396003)(366004)(136003)(376002)(346002)(189003)(199004)(50466002)(66066001)(305945005)(478600001)(36756003)(6666003)(50226002)(72206003)(6116002)(6486002)(6512007)(3846002)(7736002)(68736007)(5660300001)(86152003)(2616005)(956004)(476003)(486006)(47776003)(97736004)(26005)(386003)(6506007)(4326008)(107886003)(14444005)(25786009)(80792005)(16526019)(53936002)(2870700001)(23676004)(86362001)(106356001)(316002)(52116002)(105586002)(110136005)(2906002)(8936002)(186003)(81156014)(81166006)(8676002);\n\tDIR:OUT; SFP:1102; SCL:1; SRVR:AM4PR0901MB1283; H:ubuntu.localdomain;\n\tFPR:; \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": "w5JtpLO+ejyzvmXGvK0TctpD5sE/HxVb6C0FgGDs+Wq6wZvz7X61zLS2fch3QcfmyihjTSKXyST/xhwkFoPkecWPbiiTfCFcn6c5lUv5M6VaoZrZI0jHfAkzV0HnvQUIZD0EQmI+errav8a+lLxWjWLt9Hi0ZXtnuNu9FDkfj05WhF3q1YNYqpolNpnvcBLgJ9zWmVXMrIHfuB+mn0eGUlzkEoNLUzEqUdYmc05aFDFDF0ttoPMVMG9U8RC2iQCDCeKMbpTDdX+QkIgILNtuq9o5QT8qMFJVMSC1dspdmuVAZS79XKVm37tiWKIF8VAos94GhUw+mSivGUUj6ccZQXg0r6mhX9TouobJ63rB/Tc=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "cgstowernetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "01 Jul 2018 11:06:05.8192\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "14659287-03b9-482d-a9d1-08d5df42a4c4",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "fc9e9498-07e8-4b82-b4cf-365bba23cbbf",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM4PR0901MB1283",
        "Subject": "[dpdk-dev] [PATCH v4] 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\nExample:\nIn case using rx_iface and sending *single* packet to eth1\nit will loop forever as the when it is sent to tx_iface=eth1\nit will be captured again on the rx_iface=eth1 and so on\n  $RTE_TARGET/app/testpmd l 0-3 -n 4 \\\n\t--vdev 'net_pcap0,rx_iface=eth1,tx_iface=eth1'\n  …\n  ---------------------- Forward statistics for port 0  ------------\n  RX-packets: 758            RX-dropped: 0             RX-total: 758\n  TX-packets: 758            TX-dropped: 0             TX-total: 758\n  ------------------------------------------------------------------\nWhile if using rx_iface_in it will not be captured on the way out and\nbe forwarded only once\n  $RTE_TARGET/app/testpmd l 0-3 -n 4 \\\n\t--vdev 'net_pcap0,rx_iface_in=eth1,tx_iface=eth1'\n  …\n  ---------------------- Forward statistics for port 0  ------------\n  RX-packets: 1              RX-dropped: 0             RX-total: 1\n  TX-packets: 1              TX-dropped: 0             TX-total: 1\n  ------------------------------------------------------------------\n\nSigned-off-by: ido g <ido@cgstowernetworks.com>\n---\nv4:\n* fix order of rx_face and rx_iface_in mix\n* reward pcap_ring doc example\n* cosmetics code alignments\n* adding example commands in commit log \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 | 51 +++++++++++++++++++++++++++++++++++++----\n 2 files changed, 70 insertions(+), 6 deletions(-)",
    "diff": "diff --git a/doc/guides/nics/pcap_ring.rst b/doc/guides/nics/pcap_ring.rst\nindex 7fd063c..879e543 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 and write them back to the same 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..0a89b24 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,21 @@ struct pmd_devargs {\n }\n \n static inline int\n+set_iface_direction(const char *iface, pcap_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, \"Setting %s pcap direction %s failed - %s\\n\",\n+\t\t\t\tiface, direction_str, pcap_geterr(pcap));\n+\t\treturn -1;\n+\t}\n+\tPMD_LOG(INFO, \"Setting %s pcap direction %s\\n\",\n+\t\t\tiface, direction_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 +778,29 @@ 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+\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+\n+\treturn 0;\n+}\n+\n+static inline int\n+rx_iface_args_process(const char *key, const char *value, void *extra_args)\n+{\n+\tif (strcmp(key, ETH_PCAP_RX_IFACE_ARG) == 0 ||\n+\t\t\tstrcmp(key, ETH_PCAP_RX_IFACE_IN_ARG) == 0)\n+\t\treturn open_rx_iface(key, value, extra_args);\n+\n+\treturn 0;\n }\n \n /*\n@@ -964,12 +1003,13 @@ 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\tret = rte_kvargs_process(kvlist, ETH_PCAP_RX_IFACE_ARG,\n-\t\t\t\t&open_rx_iface, &pcaps);\n+\t} else {\n+\t\tret = rte_kvargs_process(kvlist, NULL,\n+\t\t\t\t&rx_iface_args_process, &pcaps);\n+\t}\n \n \tif (ret < 0)\n \t\tgoto free_kvlist;\n@@ -1035,6 +1075,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": [
        "v4"
    ]
}