From patchwork Fri Apr 22 01:57:38 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Zhang, Helin" X-Patchwork-Id: 12195 X-Patchwork-Delegate: thomas@monjalon.net 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 5C1812C37; Fri, 22 Apr 2016 03:57:44 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 83A8A2952 for ; Fri, 22 Apr 2016 03:57:42 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP; 21 Apr 2016 18:57:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,515,1455004800"; d="scan'208";a="690232869" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by FMSMGA003.fm.intel.com with ESMTP; 21 Apr 2016 18:57:42 -0700 Received: from fmsmsx122.amr.corp.intel.com (10.18.125.37) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 21 Apr 2016 18:57:41 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx122.amr.corp.intel.com (10.18.125.37) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 21 Apr 2016 18:57:41 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.229]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.155]) with mapi id 14.03.0248.002; Fri, 22 Apr 2016 09:57:38 +0800 From: "Zhang, Helin" To: Igor Ryzhov CC: Sergey Balabanov , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] kni: set kni mac on ioctl_create Thread-Index: AQHQ4ZJzQgVsaiiD40CSlprdQ8XX559fs/GwgDXEVgCAATkKsA== Date: Fri, 22 Apr 2016 01:57:38 +0000 Message-ID: References: <1440767187-19120-1-git-send-email-balabanovsv@ecotelecom.ru> <27DE54DB-C30D-4395-BE26-089622582178@nfware.com> In-Reply-To: <27DE54DB-C30D-4395-BE26-089622582178@nfware.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] kni: set kni mac on ioctl_create X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Igor Ryzhov [mailto:iryzhov@nfware.com] Sent: Thursday, April 21, 2016 11:16 PM To: Zhang, Helin Cc: Sergey Balabanov; dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH] kni: set kni mac on ioctl_create Hello. I rebased a patch and added Suggested-by string. Check it, please: http://dpdk.org/dev/patchwork/patch/12188/. [Helin] is that the v2 version? It seems that I cannot find that. Best regards, Igor 18 марта 2016 г., в 5:14, Zhang, Helin написал(а): Hi Sergey -----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Sergey Balabanov Sent: Friday, August 28, 2015 9:06 PM To: dev@dpdk.org Subject: [dpdk-dev] [PATCH] kni: set kni mac on ioctl_create There is a situation when ioctl returns zero mac address (00:00:00:00:00:00) for just created kni. The situation happens because kni mac is set on 'ipconfig up' event (kni_net_open callback) not on kni creation (kni_ioctl_create). Could you help to clarify a bit of the real issue? What's wrong there? Signed-off-by: Sergey Balabanov --- lib/librte_eal/linuxapp/kni/kni_misc.c | 10 ++++++++++ lib/librte_eal/linuxapp/kni/kni_net.c  |  9 --------- 2 files changed, 10 insertions(+), 9 deletions(-) memset(&req, 0, sizeof(req)); -- 2.1.4 diff --git a/lib/librte_eal/linuxapp/kni/kni_misc.c b/lib/librte_eal/linuxapp/kni/kni_misc.c index 2e9fa89..61f83a0 100644 --- a/lib/librte_eal/linuxapp/kni/kni_misc.c +++ b/lib/librte_eal/linuxapp/kni/kni_misc.c @@ -28,6 +28,7 @@ #include #include #include +#include /* eth_type_trans */ #include #include "kni_dev.h" @@ -465,6 +466,15 @@ kni_ioctl_create(unsigned int ioctl_num, unsigned long ioctl_param) if (pci) pci_dev_put(pci); + if (kni->lad_dev) + memcpy(net_dev->dev_addr, kni->lad_dev->dev_addr, ETH_ALEN); + else + /* +  * Generate random mac address. eth_random_addr() is the newer +  * version of generating mac address in linux kernel. +  */ + random_ether_addr(net_dev->dev_addr); + A rebase is needed, as a lot of changes after that. Thanks! Helin ret = register_netdev(net_dev); if (ret) { KNI_ERR("error %i registering device \"%s\"\n", diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c b/lib/librte_eal/linuxapp/kni/kni_net.c index ab5add4..b50b4cf 100644 --- a/lib/librte_eal/linuxapp/kni/kni_net.c +++ b/lib/librte_eal/linuxapp/kni/kni_net.c @@ -70,15 +70,6 @@ kni_net_open(struct net_device *dev) struct rte_kni_request req; struct kni_dev *kni = netdev_priv(dev); - if (kni->lad_dev) - memcpy(dev->dev_addr, kni->lad_dev->dev_addr, ETH_ALEN); - else - /* -  * Generate random mac address. eth_random_addr() is the newer -  * version of generating mac address in linux kernel. -  */ - random_ether_addr(dev->dev_addr); - netif_start_queue(dev);