From patchwork Tue Jun 5 09:39:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Goshen X-Patchwork-Id: 40683 X-Patchwork-Delegate: ferruh.yigit@amd.com 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 F36F41B3F1; Wed, 6 Jun 2018 22:35:01 +0200 (CEST) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0138.outbound.protection.outlook.com [104.47.1.138]) by dpdk.org (Postfix) with ESMTP id A702F1B73A for ; Tue, 5 Jun 2018 11:40:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cgstowernetworks.onmicrosoft.com; s=selector1-cgstowernetworks-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=N9TJbW5OQLag1e2gY2xDJ2i+QXxqd0nXBAwAV8LDzUQ=; b=RXiMJTCAWcswgx8NiRoR1PAMCfc/hP2kwfS+KZeJkfXy00ZzRLljP7E4JpmNg5Gbw6h376MpVzvSTd4FJ9tpNAZ4tC0Pwe8CeaqJNDkVb49LMdvFs7cirfxVrhg5Db9EPQXCFq+pGPWa9bEcC+ev2+vF0n52btBecTKvlTwEd2I= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Ido@cgstowernetworks.com; Received: from ubuntu.cgs.com (5.144.48.231) by VI1PR0901MB1438.eurprd09.prod.outlook.com (2603:10a6:800:8c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.13; Tue, 5 Jun 2018 09:39:58 +0000 From: ido goshen To: Ferruh Yigit Cc: dev@dpdk.org, ido goshen Date: Tue, 5 Jun 2018 12:39:44 +0300 Message-Id: <1528191584-46149-1-git-send-email-ido@cgstowernetworks.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-Originating-IP: [5.144.48.231] X-ClientProxiedBy: CWLP265CA0014.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:10::26) To VI1PR0901MB1438.eurprd09.prod.outlook.com (2603:10a6:800:8c::22) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:VI1PR0901MB1438; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0901MB1438; 3:M7YfYkhXAxdGpy/EouOiyyP2uoHTu6aAl+x6zFYGHMPtuKOoBZ+/UicajaOXyREOgLF+jfmScnrTQYmx+vp2P+BEyb7KOH10MqCkvbUZ60cLZ2/4AjKR9sdr4+hmQJJ6Ey/44C66o0ZqbahHINNblacKzER/lUyp9cqnSs/QeXDEmxv2Snt8NGghEA1QhpMsbR1TQ2em6bPAVkoQErscNt+hqftvckfuNsnmXNqt7k0oLkJ3y4rj8jSKPHMICL78; 25:xHTgjxnzRue++zaffYnOS9FcZq5DHkWjTtxnmyAKZxq0jURb8wq4JxfxFbxADkSipv1A0eHBM/kxagbdF1mxhRIce6o4wMBA6WxpBuEcj8Jk03ROO4AR0VlYPJNiiyaS/gQqsDAlBuKJvgNpPCwYRIp+LrFL4Cj3rKIHrpvSfYZYNwp6Rg8Z374YHiHK47R59e4dbl29/njOeorrTUabshqtyUsCZ3eVI5KpAqCF4hEdfz8qgrtuTa9dfMCSdvQdcyvIRC0rGyTYLIg7YMHuNTQo1ZqxWF54P8Ji4ySphZE0RadlAnZbaQVHj54T1lY94Xb2AZjEWh6rx51PaBkRGQ==; 31:knKJ2lrkvQMGWrHzEzD7wm+/FbIpESzAB0jjEcm+CTxmw9dsdypHV+4fs5eRtxy5wsP/zYFRLUqit1rMTqfmTimSoCRoW31hgSSCoPtF/J+2NYWNEFM5RyrpLZhHaFVX1C32AAKyX9Cwsk7NkuKY6JhD0S/Pw3bnkieCeNYeKrOkcsKwXsU1Z0kL5Q4ZPBjRS/XutNUfoy/pQVlJbLKdG7qHMm1kKVl7F2feyTL85YE= X-MS-TrafficTypeDiagnostic: VI1PR0901MB1438: X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(10201501046)(3231254)(944501410)(52105095)(3002001)(93006095)(93001095)(149027)(150027)(6041310)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:VI1PR0901MB1438; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0901MB1438; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0901MB1438; 4:EZJQJzojnPyJY/znH9/MyreJ7LWZP5QmMsjQTaEwipboeCwVrMgRcIwPC0jnmG94KHAbr0oGnfmVsInXVtkhrO7++/Fx1LI569LyAcbXZt6mr3iIngb3RckgyuvvAPo+KqqcpgoaCOgcAo+vswdsZki0OYB24xxG3CcJw5ySphugLbqw0yBdhj9dzrUVPY8KN1aHkk5FGEaPxj9yQEFH2IUa5z2syR5upr8QJyGK4Sad8IAjwBJsKahjAFEo+WEVQU/vKC7GqbpmnMCwBkg2+g== X-Forefront-PRVS: 0694C54398 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(366004)(346002)(39840400004)(376002)(39380400002)(396003)(189003)(199004)(53936002)(81166006)(86152003)(7736002)(81156014)(26005)(80792005)(6512007)(53416004)(5660300001)(37156001)(86362001)(71446004)(6666003)(8936002)(6486002)(50466002)(50226002)(6916009)(305945005)(8676002)(48376002)(36756003)(59450400001)(6116002)(51416003)(52116002)(16586007)(3846002)(478600001)(2906002)(386003)(316002)(107886003)(6506007)(486006)(68736007)(4326008)(476003)(2616005)(16526019)(72206003)(25786009)(97736004)(47776003)(66066001)(956004)(105586002)(106356001)(186003); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR0901MB1438; H:ubuntu.cgs.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: cgstowernetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0901MB1438; 23:ri7DlQnaCEqNBX5VeHz57I4uRS24KuRDro77d0d?= pg2PdkIL1hzIw7Mlu6Jov9dzl2JZzHYh3xh2xcE5/jlvdT2aKyjfNY1twoba4qEZGC1xuxQhsD5sqasxdfHbrJR3LLF4fswxVu8jitSgyzmKirNOgsgylvC39HKVD8Uw134W4kKk0jwMRsw2DDmsLFHD4CA/m8fz059xn3TDP99aAmiS2FfopiTWO0XOpULsnS3LDm9HDRGkS+Op1UN1sCAHsA2HloG4srF17WVLOfpBDhiwmUjb4982ihQe6b2J3eNoUACom2tKa3QyAZNGMJeKZMQpSj00R3ocrq81Y5Zy4sx3eASshh+ZS1x84lBBI9VJZibHxczxZs0oPAje18AFt/8RE2uJ3oI5m7u2KeU2bjptyOA1mD6AJV+F6jKr0OQVdrTQ7Fffa7C7TeC/O0Krc5DQyUr5pLfEl1fA12tCtU0akG3ZABEZnqFtHOHo4DAKuJ4yFs+PuiTc9a1Cccrg8O4X+tnlVWkmKBIITpNqcHgDpDkyq52kS7JRduSQkpvJsEBpNRPqJMNhghCbPmkybBFRxcadgDYCxyfwsOOTXLitbvUfW9yidH2eygzDfYNKsi1lFc5gmUsGEB1K0CAivZIQJ69zU/lzIxWneWQhLXVDv9cpdBy9FT1EmadhDwYA8YS4DG4cfF+YL1oQY5bwpzxXsa7QexopEO2PYCk2O8ioAdI8u1pvtIwRTrf0COgJ2+GPOMxR125PjjNLHyF6Qw9ZJInyovT5rvHISkMlMDKrR4I3MgisVjbA8BvBzzwutQ4GnwK5vbuylInH+j7rLuHH/vdojA7nxgdoP3tm6Q/pJ+dqIpfIXfOmTyj5u9qaT1/EDHd/HV3gnqvID/BMPPzlL7FQYnGUpkVH1/NzDnHzwq1rImwcyb8Md2zgxEQHOejTBLlR+PDooZfzQDdcueixGrALijYFshqTxNbOTD4YMCi7l1XIExs9bShoAIpuFD4TpSDxEqdbkrad+PeUEWuYCETO75hwvOZaOcOsoZCbQ7JePtHTTaJKfA/h56p76F/qb34jvQP33TXr6fiZmpp3laXyIWNTr+eliNXflVyyHXr0s6jt+StfCthz+KfGHS9vkWEpqknxB0fJgfMK6EJRgfic3lE+981/mrLW9usntaDI5l+tGkNe1s9ApxBSV2C5zEgJAwSbQ4EkKEeSwJiq1fT4jVowSONn469OG9BCqQLgbP2ZBsYoLpXCm4B+L6ZcmepV75H7svTmjBVdYvvEARyy52MTF5Lnj88+yxA== X-Microsoft-Antispam-Message-Info: tTJXVQLdQLhsX1+8lP1iTr6+sb5TtzqeFrVAsGcp55bmhxXxx4tYbARL8XMbNyxN+IVekY95guY0fZh4wNkJfOgCj74fJATpwRBWK200yUA4k7MbBweazfUdsnMwWGswXvp1+rvY9d2XlqIz8WEcqGUN28gUtUncV/U1duZO3HgkMIp4+bJEEMLMF9BmUtQR X-Microsoft-Exchange-Diagnostics: 1; VI1PR0901MB1438; 6:7wiwctyhHUoVkpit9ealUDZVmgNWQ9PrnLBorXK2atP460U6cX97pXq+SvKjqtNelEK7R184XKeBRQz7FVEQqwk2c/RgbvHXB+WxThpHG2fz8eXHiwH22apC23EZSFUTD2o4UUPxKvhiQhPXkPbKVUHa1BYT2O6PFzNiFYECDvkMx967CX41kr8OhpRLHqUTkiwEM2jfE9sS4EKrrZFjAbPMvwCJtkj7v2rEQAzMEToibnZ2pTW2X5k4HaONl6XrcMQYzuNXm0ZhXxDUZn9NJxcwIfuy+xCb4DVhd2F4wyHFD+gXYFcKJUNFziEIN8p6yfcABZtrhtCNkyrbTNi+CPX+oeNJwzdnbWSyzft8OjjdJPgZ38AzWU3UXeN7bxN5N9iNJdYlyyxKc762NbbOyBySaYu0s+DGYYhYorbWKOKoJDVTU0AYIaf/0AkObSzEVhCBw8VnykXNpQH9Gmjrrg==; 5:u35f9fW4jH/UDiIxQNn9HS6Hy9dCOgqVSAnKattX+rjf+xamKF6FiYFKvnACeuWRDyMzx/6p409R/j7OOH849M45vrtdArBtT3YXmD9t4BEulvC1VMvqDnLkDV//fm4tbLQw6jbkZ5jgU80qbQLRNT7p1355cx1gu8kOK5uheeI=; 24:Sq/yelUum2ppdj3MHQ0bKse8jTBM7fmj9I4ggdRnKmT2Ttbc0zfFMxkxJGAH+R9Q14wAdbyMavWZi/V904VrTPkL8+fA6yL1JziEFKhJrXs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0901MB1438; 7:Vmkc7KZknJmie5Ub9DU7L7SZGzYtPX0ZMj0n2NMKabzJYjfOmJfcr2fx+k//8JSbTpNxgR/SRR4Ix3RY2yWBlCF0PYgld5MIRR58+jyVGcri+ilSb0fXNnV4hZnWMsLSrnpebE+kVPKhtqVYCY0Yu66VdnA6fl0yJPgCzZEx/R6sGU/0PdU3YxpxwQelj3J8v+473NaikKVpI6e1leqo0+HenCp0ePrD1jZUkAcnShdBCGwSbd2h6XkvUPkpMuVA X-MS-Office365-Filtering-Correlation-Id: 6434c3db-19b0-4305-a6ed-08d5cac84db6 X-OriginatorOrg: cgstowernetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2018 09:39:58.2954 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6434c3db-19b0-4305-a6ed-08d5cac84db6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fc9e9498-07e8-4b82-b4cf-365bba23cbbf X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0901MB1438 X-Mailman-Approved-At: Wed, 06 Jun 2018 22:35:01 +0200 Subject: [dpdk-dev] [PATCH v2] 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Support rx of in direction packets only Useful for apps that also tx to eth_pcap ports in order not to see them echoed back in as rx when out direction is also captured Signed-off-by: ido goshen --- v2: clean checkpatch warning drivers/net/pcap/rte_eth_pcap.c | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c index 6bd4a7d..132f469 100644 --- a/drivers/net/pcap/rte_eth_pcap.c +++ b/drivers/net/pcap/rte_eth_pcap.c @@ -26,6 +26,7 @@ #define ETH_PCAP_RX_PCAP_ARG "rx_pcap" #define ETH_PCAP_TX_PCAP_ARG "tx_pcap" #define ETH_PCAP_RX_IFACE_ARG "rx_iface" +#define ETH_PCAP_RX_IFACE_IN_ARG "rx_iface_in" #define ETH_PCAP_TX_IFACE_ARG "tx_iface" #define ETH_PCAP_IFACE_ARG "iface" @@ -83,6 +84,7 @@ struct pmd_devargs { ETH_PCAP_RX_PCAP_ARG, ETH_PCAP_TX_PCAP_ARG, ETH_PCAP_RX_IFACE_ARG, + ETH_PCAP_RX_IFACE_IN_ARG, ETH_PCAP_TX_IFACE_ARG, ETH_PCAP_IFACE_ARG, NULL @@ -726,6 +728,22 @@ struct pmd_devargs { return 0; } +static inline int +set_iface_direction(const char *iface, const char *key, pcap_t *pcap) +{ + if (strcmp(key, ETH_PCAP_RX_IFACE_IN_ARG) == 0) { + if (pcap_setdirection(pcap, PCAP_D_IN) < 0) { + PMD_LOG(ERR, + "Setting %s pcap direction IN failed - %s\n", + iface, + pcap_geterr(pcap)); + return -1; + } + PMD_LOG(INFO, "Setting %s pcap direction IN\n", iface); + } + return 0; +} + /* * Opens a NIC for reading packets from it */ @@ -740,11 +758,12 @@ struct pmd_devargs { for (i = 0; i < rx->num_of_queue; i++) { if (open_single_iface(iface, &pcap) < 0) return -1; + if (set_iface_direction(iface, key, pcap) < 0) + return -1; rx->queue[i].pcap = pcap; rx->queue[i].name = iface; rx->queue[i].type = key; } - return 0; } @@ -963,17 +982,25 @@ struct pmd_devargs { is_rx_pcap = 1; else pcaps.num_of_queue = rte_kvargs_count(kvlist, - ETH_PCAP_RX_IFACE_ARG); + ETH_PCAP_RX_IFACE_ARG) + + rte_kvargs_count(kvlist, + ETH_PCAP_RX_IFACE_IN_ARG); if (pcaps.num_of_queue > RTE_PMD_PCAP_MAX_QUEUES) pcaps.num_of_queue = RTE_PMD_PCAP_MAX_QUEUES; - if (is_rx_pcap) + if (is_rx_pcap) { ret = rte_kvargs_process(kvlist, ETH_PCAP_RX_PCAP_ARG, &open_rx_pcap, &pcaps); - else + } else { ret = rte_kvargs_process(kvlist, ETH_PCAP_RX_IFACE_ARG, &open_rx_iface, &pcaps); + if (ret == 0) + ret = rte_kvargs_process(kvlist, + ETH_PCAP_RX_IFACE_IN_ARG, + &open_rx_iface, + &pcaps); + } if (ret < 0) goto free_kvlist; @@ -1046,6 +1073,7 @@ struct pmd_devargs { ETH_PCAP_RX_PCAP_ARG "= " ETH_PCAP_TX_PCAP_ARG "= " ETH_PCAP_RX_IFACE_ARG "= " + ETH_PCAP_RX_IFACE_IN_ARG "= " ETH_PCAP_TX_IFACE_ARG "= " ETH_PCAP_IFACE_ARG "=");