From patchwork Tue Sep 4 14:18:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kuusisaari, Juhamatti (Infinera - FI/Espoo)" X-Patchwork-Id: 44264 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 CC66B1559; Tue, 4 Sep 2018 16:18:49 +0200 (CEST) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20075.outbound.protection.outlook.com [40.107.2.75]) by dpdk.org (Postfix) with ESMTP id 4961C5A for ; Tue, 4 Sep 2018 16:18:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=coriant.onmicrosoft.com; s=selector1-coriant-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vdXP5x04y6uOMT0k5vOhAyF3M5rgsMmDC6lXqk3/Z9A=; b=Tp3Q6MzUaO5jKQA2Ab4bnLZPDzJDTvP10IqVvC+oKxVazvJlf49kttPgmpwbOyrrSevLXfwfLFbZHyvFzFlV7KgiPoAx4C/pJqrf7LxFhN8Ud6G1gbaUJ9CVPf1cXXpmgytOJLtCKNA2jG7H3Pu4TAYaR+PWVCb7uDU1gdg0Rq0= Received: from DB6PR0402CA0002.eurprd04.prod.outlook.com (2603:10a6:4:91::12) by AM5PR0402MB2915.eurprd04.prod.outlook.com (2603:10a6:203:9a::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1101.17; Tue, 4 Sep 2018 14:18:45 +0000 Received: from VE1EUR02FT058.eop-EUR02.prod.protection.outlook.com (2a01:111:f400:7e06::201) by DB6PR0402CA0002.outlook.office365.com (2603:10a6:4:91::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1101.13 via Frontend Transport; Tue, 4 Sep 2018 14:18:45 +0000 Authentication-Results: spf=pass (sender IP is 204.154.131.209) smtp.mailfrom=coriant.com; coriant.com; dkim=none (message not signed) header.d=none;coriant.com; dmarc=bestguesspass action=none header.from=coriant.com; Received-SPF: Pass (protection.outlook.com: domain of coriant.com designates 204.154.131.209 as permitted sender) receiver=protection.outlook.com; client-ip=204.154.131.209; helo=usnapvlsmtp01.coriant.com; Received: from usnapvlsmtp01.coriant.com (204.154.131.209) by VE1EUR02FT058.mail.protection.outlook.com (10.152.13.52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.1101.10 via Frontend Transport; Tue, 4 Sep 2018 14:18:44 +0000 Received: from super-tessie-2.tellabs.fi (lb03 [172.23.229.177]) by usnapvlsmtp01.coriant.com (Postfix) with ESMTP id 2BCAA4024C; Tue, 4 Sep 2018 09:18:43 -0500 (CDT) From: Juhamatti Kuusisaari To: CC: , Juhamatti Kuusisaari Date: Tue, 4 Sep 2018 17:18:40 +0300 Message-ID: <20180904141840.28550-1-juhamatti.kuusisaari@coriant.com> X-Mailer: git-send-email 2.17.1 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:204.154.131.209; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(39860400002)(396003)(136003)(346002)(376002)(2980300002)(438002)(189003)(199004)(2906002)(53416004)(50226002)(86362001)(305945005)(8936002)(36756003)(81156014)(106002)(26005)(54906003)(6916009)(1857600001)(81166006)(77096007)(8676002)(5660300001)(97736004)(316002)(16586007)(53936002)(426003)(2616005)(336012)(486006)(476003)(26826003)(51416003)(6266002)(126002)(107886003)(48376002)(478600001)(106466001)(356003)(50466002)(2351001)(47776003)(69596002)(14444005)(1076002)(68736007)(104016004)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0402MB2915; H:usnapvlsmtp01.coriant.com; FPR:; SPF:Pass; LANG:en; PTR:InfoDomainNonexistent; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; VE1EUR02FT058; 1:LRkkdasPu7TtzjyvR2N2yO2snQQyJk9IwQ/LKvWNrf8l7WZxWO9da0pBe+OdIuZM6awgkRT/D7l/MN6t0Zk2e4OayyMde+8hyinrxLC38ISCXt/HZUNtVg7JfgiVBRca MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6e93d35b-c977-4c1e-d5f0-08d6127152d9 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(5600074)(711020)(4608076)(2017052603328)(7153060); SRVR:AM5PR0402MB2915; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0402MB2915; 3:JtbUIEkiJZ4WGXYvMApmKxXOBzE/Cw6NT3pXWgHrcXTHwR5uNd1Iwuq4Tj9AkXrHZIdXAr7CvuBbEHXZO3ZRkk1Cr1wt3Ghw85cAaXtu9UxntBQ4rJZatC/516RSseHDCEQmDX42+nX2Jcy/syIVA5oYqQJByWkIVI0kzp8tgHb1l/l9TepsQ+lVhkTAS0wvJmChLlqg2rfGkIbd9edY2MAI8AFj3batLuxI8hX/uTcv7Qas/Qe8VnjRlx7WOSzrZP8dJZBLVD2uyA/44XdXwAwuxKax/lYSGNkpv+Rp4zOAvjQsTZiYPOdOGJ4TzN3ynOIJqBPOXvehUNsbicgwyQZ/WzlyrDHD06vmVUqSbuw=; 25:9SgPtfH2g0XACygHriu0j1d/7zMZbgkhPspxsycWuilBgSk7NC1nSfOV7KVkg4ReuRMulYCKOpBoBkd/iX+J0fireTwfEHsCFS3yuGaTiUasswVoQ9/Oe/FMleqixF0yOnoRUEXItnrjNQUJf8uubzxLYGZqyNPzhaXAYWWxJFZpUEw5/mF84y/0eQ7mvs9KHftL5YS537fQ0lpFlNfEcnlPb1cgkyiM9LKipbbN0O9IvlqFMrA34FtbFuCPgp36tim9nwQYpVifhRKNqw2AX/fy7+0Do3iKW9xHR6le2Q7+UOCRxLw//wrv1l+l+btbADi5HRBA8SxXTFqQ5188AQ== X-MS-TrafficTypeDiagnostic: AM5PR0402MB2915: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0402MB2915; 31:+FhQ0uXguZWPsBDNaJIBLE2xdQg1pw0KKKIwCtUT+0QKyV98No30NVKQ05YXLqN3IpY/trMStVZUcv8uHBwkJbFnyj/xQCKKeooa88WZYkHHO3O7vhe2RpUPoirvJqgk1l72LXvSYJygMjP+MUXbGiyq1Vuzk1Qkr2t32BQi3fimZzzfizYyxasQ4MjAuHC4RAQ6ZtlfDNDPhXEONdLZ8baIDTReihPdgBq0urM8SHc=; 20:6cvqmVZ84mUyXVkd+se32T4rek83NX+qb8al/RK78v6pDLjQ5WeO9A54Lvxw3fjDQ7XYdvyXTsyuyviE6ZMMjNG1mRVxyQeOKE5uKEusCtgN4mzmfDI5DnBb/isqRmaZY7cvAft+by6ZHbpn3+BzlGFb0OxL8mBaXYNa6wjZ5wg6uC0+SN7M59zsOfXO+RVT3kDmPy111MHHZBbs41kTDJ7FqORJks+mCBUUE8Y0wEMNpTP89y1g6SU5UvFFu7x5hHewqZKxIIqUCI94T6CALBbYZ9oGryvGIW2vIZS4BvKRifREzu047O62DEf9rZKN210o105SfJooIkYOHEKnM3PJVvT/kfKhxQulE57go3suhXzh3mZhZbjTPkM91JQX0cPyzIyUKmz7EcZeqhq6GDZUGItBrLrD/qyV5Gd3y1F3VivSZNUQ2pY5wC9XghxjJExzzVlgZBcU82S2HdgMKeT71s3d1obeJ0nZQdheFv95r/oW040u2nClfkXVdEnOSnPC2cGo+bMyCe32cNeg99OIOywIQUK0nyDYt8BBGs+RYfi430FOogvJuDMH5zEtFYxXP9WdAS4s+ehSwt2pSoTxyaEzcje1UxRy+zb21hw= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(51653755401839); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93004095)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699016); SRVR:AM5PR0402MB2915; BCL:0; PCL:0; RULEID:; SRVR:AM5PR0402MB2915; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0402MB2915; 4:K0hwAuFtFckv8yG3okThOKg5qqNupeuaaRF+OpAzQNg5dtHnWx+i4vKbs3k87or6zudvSg+b0OtiqeaOOZ9PcFOs5lj2wgGYvsOl7zN9BqW+a3X6tur5ZOeBnYoqfbMlkeyRd6eWSrAjNSLVOeeBnD3Wfz5ghWfcQFcY/iWAzpegZ5umfQRpTZMkKLDt9F1zVZphj7Dr3VeKtR2kCH0AT+Px4zJ1/bHS7T6UcNT04kGOmo+1SMiIO4XBvRrL5CO9TpvuZ21X+cdZvQl3zb4N6vdnirkpKZ5/T9U+/Trxd5dUrpBw99+NtmhwiUKIkhjf X-Forefront-PRVS: 0785459C39 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM5PR0402MB2915; 23:NpxuyC1uq4DYw0pedIDwgsUbHe6FT6zIBcL+DZk?= kbFrtgKgxj9rvKblwPIlhkjdqxUZMkpzQWwso0I8CZ5y0j8fEpYLncTVBdKJ922UXmOBL7N178gOh6sYL0yba0CUqc/2rXe7TE1R/7jATDSCJYXsh6jzMLJqzTsFouA6w4tGVMQr/ZOXlrOUXzz5DmXNGEoZ3RavlIDQ/3w5KGE8F/MeGi7o8m2mFFHhuN7wEggtTIRTkVl7+ehfDtLP5mFP2tpyKsmWXbRCG3HOOmiDoNKdewsNTR+hW5OOpq7bOvLMLDq4KJRoxFD4NUJgtikfj1bRrKSrNmNvnZeYTJHpCllz25x4BldUG+cL10BqSOwIhuYC3jMBC0CO6pS1EqDP6BG/If7CaK2NZHJwXYeI/VYLxClBAxSNv9APi5fyQKI74jluf+2NW0yaeTAEIKAdIPW4vjBAVRHqIDn3dMdFw8IhQz6DlZo21Z2r1nH6LOD7R7iNmnIQv91kMpKons5faE3OS0TPs4uvHTIB3UTQ7VbrPtzw/K//s4PKQC9ZWTto1G2P4o78+VtGPYP9wsTVaGeVA/oZe7yMivtKi53atXm/X5/8RmAiba70cRa0lWB/NY9JHgbJMfIDy0xi+IPvYEEe3Nexq3dGMze/CVk7hc53fUTpnd1+AuRr3oQMYbQRH7Tl5+EZX+efXOLfrZwZcNLrgwhskbwi7+/r9nfAsv3vZ4eUkIIvQZDLjdjGYD+1QHPCjN10cvRSyns007vd6YHQbCPGdGXe23dPwzWRQubaN7+yGJvIb/Hitt4Sh4AzTxl3y2UxZ32bvw0gVDo3KK4YVj1mYnQV8rBTWefB7GvEL7AAoVmH129BouIr2X5nHc98TqxNgya+aWi0ruTo+Rde122p+BDhkFdvKqU5Pg2cd4bAfofI9j/jtDQ0opdDG69Ql6yXHFjkHFPIzqgT22Lz9+/9Zvf0OjACsNZbEQz0t5ll1mmlMuRF3DXnVPnfO62lvNYh3V9UcG/6/mI0S6jGTweRsq4sMYHAYl38MJeUpzLsNHmWKMdMOOiTD+fQuYDLMT7A8gWvHWcvpcXizapUbq8ffwlJylfqppP+r88Zkep36IJr51Uf4oONPIC5YDIxKe6fxm0UYGUudW2qSwYaGkPna1lkGYBOzHaxswSictRPgiHxiLtAaNF2Au40= X-Microsoft-Antispam-Message-Info: ROg9vzwijT09LPbp6cDsh6Z1ALxDqvnysxzDzK33NcSyxcKz4TbivK/KEVhoZiQUrAA94LyD797NrsyRZ67EFOfKMSopDA72xgDTJshMgawM6F32Fwq45aCXXFSEpEBNbqTj1N7ZMTuWTvNHV5BHGXe4Li0r0r+Qu/QoOra9W7BMDguimJFkSXBgS+Z5LziOALzU5ULVkm3PqbnJBBRmEv1U0XOfWD2FNBma/UZLqrTo+PL+W/C+QLgIwFAsEtICKntHA5I6yHvD9nJ63mWdMRj6mlvcCylCs+aKyuJAqHZeGpsj/vxIFTa+kWrXQyCrB38A7AnBrCImkOUBKZposP5uHpJsDyr4AK+MRflDA30hRncAwlGuiANhn/ppXGz06ek65i4oNqx8tfoI/nb+1A== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0402MB2915; 6:5OKYGE8A+p4Nhp3NllqKX0Js/GtXYLcbzZQmd4QOhmHn+tZCSKyzbCEv5CvCuHddw+JaJNHOPspX+0K61/rms+gjuT/ZLDZvI/rSKaYlivt+Hg8haIq8PhL7JeQ3fLTHoXDyY+fsn4MI7jxfWxEbgBwWmddbivgaobIVZSMs8YdhsKMum1GFabCtKjrH02CNIJ7nwKRd6l2Y6evcHeG6q+pDAtbq/edjYSSOnLzshmAhNv0x4WM50dBLE+cEdMgHJ0X1K8dA3NPTVfg8kWWQKgIh2m+F0e+PigazYZG5usv3xxeyGegJqCRva5nxIk1wyTaW+cFX7IeZt7at199sUoPNeoSeXHLyiZcQXPgGX7h6utdS9zY65TU6A4AekL22fOvAhHVOWNTKr6kA7xzgrp+kjVNVHidCcWN6OEPmT9yfKI/FT4tN9p1R8+A/1+lCu7P8abQSEGeXt1R3dGSo1w==; 5:26YpIKiUUl6rol3o1e3H9/8UTFR95WeN5KoMWEVLGH+mZT4HU8H3lY+TbaCWlEdtJRBi8a/D7XEuGMjPukipAmXHCX9t9RTk5LIIKAMxF7LojxfrJbBzf9qqNUs8ZcHoNquwZqxfYntHzP+12osH+SCqeAzDfaY3IZxal4gxE98=; 7:2ymWo5jZN27sItSvhMc9pY1UqKjjOLj/LIG5B0KufC/yySkFymc2tFHn9vOFBy6axSAGmXToX8W44m2SK1pX4YJ/MGeNjXzRjxKkyhLvEHzIvzvLPp5KqNItBsdnUGppbMwwkBzpKPWidR24UEu+0X5CYyLahhthkHOWggjIBid8FnLxtfGp/Y/jmOjtKthJYjaZ5w6lOKdQWOfnKZwUwcGNDMfnP+nk4bgqMkwu5pjvA0ZvnSYBRMVJ/nv5mTwt SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: coriant.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2018 14:18:44.7303 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6e93d35b-c977-4c1e-d5f0-08d6127152d9 X-MS-Exchange-CrossTenant-Id: 76595477-907e-4695-988b-a6b39087332d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=76595477-907e-4695-988b-a6b39087332d; Ip=[204.154.131.209]; Helo=[usnapvlsmtp01.coriant.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0402MB2915 Subject: [dpdk-dev] [PATCH] net/pcap: physical interface MAC address 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 for PCAP physical interface MAC with phy_mac=1 devarg. Signed-off-by: Juhamatti Kuusisaari --- drivers/net/pcap/rte_eth_pcap.c | 64 ++++++++++++++++++++++++++++++--- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c index e8810a171..b693f26e7 100644 --- a/drivers/net/pcap/rte_eth_pcap.c +++ b/drivers/net/pcap/rte_eth_pcap.c @@ -7,6 +7,9 @@ #include #include +#include +#include +#include #include @@ -17,6 +20,7 @@ #include #include #include +#include #define RTE_ETH_PCAP_SNAPSHOT_LEN 65535 #define RTE_ETH_PCAP_SNAPLEN ETHER_MAX_JUMBO_FRAME_LEN @@ -29,6 +33,7 @@ #define ETH_PCAP_RX_IFACE_IN_ARG "rx_iface_in" #define ETH_PCAP_TX_IFACE_ARG "tx_iface" #define ETH_PCAP_IFACE_ARG "iface" +#define ETH_PCAP_PHY_MAC_ARG "phy_mac" #define ETH_PCAP_ARG_MAXLEN 64 @@ -87,6 +92,7 @@ static const char *valid_arguments[] = { ETH_PCAP_RX_IFACE_IN_ARG, ETH_PCAP_TX_IFACE_ARG, ETH_PCAP_IFACE_ARG, + ETH_PCAP_PHY_MAC_ARG, NULL }; @@ -909,7 +915,7 @@ eth_from_pcaps_common(struct rte_vdev_device *vdev, struct pmd_devargs *rx_queues, const unsigned int nb_rx_queues, struct pmd_devargs *tx_queues, const unsigned int nb_tx_queues, struct rte_kvargs *kvlist, struct pmd_internals **internals, - struct rte_eth_dev **eth_dev) + const int phy_mac, struct rte_eth_dev **eth_dev) { struct rte_kvargs_pair *pair = NULL; unsigned int k_idx; @@ -955,6 +961,26 @@ eth_from_pcaps_common(struct rte_vdev_device *vdev, else (*internals)->if_index = if_nametoindex(pair->value); + if (phy_mac) { + const unsigned int numa_node = vdev->device.numa_node; + const char *if_name = pair->value; + int if_fd = socket(AF_INET, SOCK_DGRAM, 0); + if (if_fd != -1) { + struct ifreq ifr; + strlcpy(ifr.ifr_name, if_name, sizeof(ifr.ifr_name)); + if (!ioctl(if_fd, SIOCGIFHWADDR, &ifr)) { + PMD_LOG(INFO, "Setting phy MAC for %s\n", + if_name); + (*eth_dev)->data->mac_addrs = + rte_zmalloc_socket(NULL, ETHER_ADDR_LEN, + 0, numa_node); + rte_memcpy((*eth_dev)->data->mac_addrs, + ifr.ifr_addr.sa_data, + ETHER_ADDR_LEN); + } + close(if_fd); + } + } return 0; } @@ -962,7 +988,7 @@ static int eth_from_pcaps(struct rte_vdev_device *vdev, struct pmd_devargs *rx_queues, const unsigned int nb_rx_queues, struct pmd_devargs *tx_queues, const unsigned int nb_tx_queues, - struct rte_kvargs *kvlist, int single_iface, + struct rte_kvargs *kvlist, int single_iface, int phy_mac, unsigned int using_dumpers) { struct pmd_internals *internals = NULL; @@ -970,7 +996,7 @@ eth_from_pcaps(struct rte_vdev_device *vdev, int ret; ret = eth_from_pcaps_common(vdev, rx_queues, nb_rx_queues, - tx_queues, nb_tx_queues, kvlist, &internals, ð_dev); + tx_queues, nb_tx_queues, kvlist, &internals, phy_mac, ð_dev); if (ret < 0) return ret; @@ -989,6 +1015,22 @@ eth_from_pcaps(struct rte_vdev_device *vdev, return 0; } +static int +select_phy_mac(const char *key, const char *value, void *extra_args) +{ + if (extra_args && strcmp(key, ETH_PCAP_PHY_MAC_ARG) == 0) { + const int phy_mac = atoi(value); + int *enable_phy_mac = extra_args; + + if (phy_mac != 0 && phy_mac != 1) + PMD_LOG(WARNING, "Value should be 0 or 1, set it as 1!"); + + if (phy_mac) + *enable_phy_mac = 1; + } + return 0; +} + static int pmd_pcap_probe(struct rte_vdev_device *dev) { @@ -999,6 +1041,7 @@ pmd_pcap_probe(struct rte_vdev_device *dev) struct pmd_devargs dumpers = {0}; struct rte_eth_dev *eth_dev; int single_iface = 0; + int phy_mac = 0; int ret; name = rte_vdev_device_name(dev); @@ -1026,6 +1069,16 @@ pmd_pcap_probe(struct rte_vdev_device *dev) if (kvlist == NULL) return -1; + /* + * We check whether we want to use phy MAC of pcap interface. + */ + if (rte_kvargs_count(kvlist, ETH_PCAP_PHY_MAC_ARG)) { + ret = rte_kvargs_process(kvlist, ETH_PCAP_PHY_MAC_ARG, + &select_phy_mac, &phy_mac); + if (ret < 0) + goto free_kvlist; + } + /* * If iface argument is passed we open the NICs and use them for * reading / writing @@ -1084,7 +1137,7 @@ pmd_pcap_probe(struct rte_vdev_device *dev) create_eth: ret = eth_from_pcaps(dev, &pcaps, pcaps.num_of_queue, &dumpers, - dumpers.num_of_queue, kvlist, single_iface, is_tx_pcap); + dumpers.num_of_queue, kvlist, single_iface, phy_mac, is_tx_pcap); free_kvlist: rte_kvargs_free(kvlist); @@ -1128,7 +1181,8 @@ RTE_PMD_REGISTER_PARAM_STRING(net_pcap, ETH_PCAP_RX_IFACE_ARG "= " ETH_PCAP_RX_IFACE_IN_ARG "= " ETH_PCAP_TX_IFACE_ARG "= " - ETH_PCAP_IFACE_ARG "="); + ETH_PCAP_IFACE_ARG "= " + ETH_PCAP_PHY_MAC_ARG "="); RTE_INIT(eth_pcap_init_log) {