From patchwork Wed May 17 18:03:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chas Williams X-Patchwork-Id: 24345 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 [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 785BA324C; Wed, 17 May 2017 20:03:53 +0200 (CEST) Received: from mx0a-000f0801.pphosted.com (mx0b-000f0801.pphosted.com [67.231.152.113]) by dpdk.org (Postfix) with ESMTP id E1AD43254 for ; Wed, 17 May 2017 20:03:50 +0200 (CEST) Received: from pps.filterd (m0000700.ppops.net [127.0.0.1]) by mx0b-000f0801.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v4HI3bBX027246; Wed, 17 May 2017 11:03:50 -0700 Received: from brmwp-exmb12.corp.brocade.com ([208.47.132.227]) by mx0b-000f0801.pphosted.com with ESMTP id 2adys203jj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 17 May 2017 11:03:49 -0700 Received: from confsjhq2-2-001.brocade.com (10.252.136.13) by BRMWP-EXMB12.corp.brocade.com (172.16.59.130) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Wed, 17 May 2017 12:03:47 -0600 From: "Charles (Chas) Williams" To: CC: , "Charles (Chas) Williams" Date: Wed, 17 May 2017 14:03:34 -0400 Message-ID: <1495044215-16915-2-git-send-email-ciwillia@brocade.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1495044215-16915-1-git-send-email-ciwillia@brocade.com> References: <1495044215-16915-1-git-send-email-ciwillia@brocade.com> MIME-Version: 1.0 X-ClientProxiedBy: hq1wp-excas11.corp.brocade.com (10.70.36.102) To BRMWP-EXMB12.corp.brocade.com (172.16.59.130) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-05-17_11:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1705170135 Subject: [dpdk-dev] [PATCH 2/3] net/af_packet: add accessor for iface 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" Provide an accessor for the name of the underlying linux interface used by the AF_PACKET-based interface. Signed-off-by: Charles (Chas) Williams --- drivers/net/af_packet/Makefile | 2 + drivers/net/af_packet/rte_eth_af_packet.c | 17 +++++++ drivers/net/af_packet/rte_eth_af_packet.h | 55 ++++++++++++++++++++++ .../net/af_packet/rte_pmd_af_packet_version.map | 6 +++ 4 files changed, 80 insertions(+) create mode 100644 drivers/net/af_packet/rte_eth_af_packet.h diff --git a/drivers/net/af_packet/Makefile b/drivers/net/af_packet/Makefile index 70d517c..5ea058c 100644 --- a/drivers/net/af_packet/Makefile +++ b/drivers/net/af_packet/Makefile @@ -50,4 +50,6 @@ CFLAGS += $(WERROR_FLAGS) # SRCS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += rte_eth_af_packet.c +SYMLINK-y-include += rte_eth_af_packet.h + include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c index ce4dc07..6927f70 100644 --- a/drivers/net/af_packet/rte_eth_af_packet.c +++ b/drivers/net/af_packet/rte_eth_af_packet.c @@ -43,6 +43,8 @@ #include #include +#include "rte_eth_af_packet.h" + #include #include #include @@ -125,6 +127,21 @@ static struct rte_eth_link pmd_link = { .link_autoneg = ETH_LINK_SPEED_AUTONEG }; +int +rte_af_packet_get_ifname(uint8_t port, char *buf, size_t len) +{ + struct rte_eth_dev *dev; + struct pmd_internals *internals; + + RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV); + + dev = &rte_eth_devices[port]; + internals = dev->data->dev_private; + snprintf(buf, len, "%s", internals->if_name); + + return 0; +} + static uint16_t eth_af_packet_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) { diff --git a/drivers/net/af_packet/rte_eth_af_packet.h b/drivers/net/af_packet/rte_eth_af_packet.h new file mode 100644 index 0000000..c5276f5 --- /dev/null +++ b/drivers/net/af_packet/rte_eth_af_packet.h @@ -0,0 +1,55 @@ +/*- + * BSD LICENSE + * + * Copyright (c) 2017 Brocade Communications Systems, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _RTE_ETH_AF_PACKET_H_ +#define _RTE_ETH_AF_PACKET_H_ + +#include + +/** + * Get the name of the underlying kernel interface assocated + * with this AF_PACKET device. + * + * @param port + * The port identifier of the AF_PACKET device. + * @param buf + * The buffer to stored the queried ifname + * @param len + * The length of buf + * + * @return + * 0 on success, -1 on failure + */ +int rte_af_packet_get_ifname(uint8_t port, char *buf, size_t len); + +#endif /* _RTE_ETH_AF_PACKET_H_ */ diff --git a/drivers/net/af_packet/rte_pmd_af_packet_version.map b/drivers/net/af_packet/rte_pmd_af_packet_version.map index ef35398..2231699 100644 --- a/drivers/net/af_packet/rte_pmd_af_packet_version.map +++ b/drivers/net/af_packet/rte_pmd_af_packet_version.map @@ -2,3 +2,9 @@ DPDK_2.0 { local: *; }; + +DPDK_17.08 { + global: + + rte_af_packet_get_ifname; +};