Hello. I rebased a patch and added Suggested-by string. Check it, please: http://dpdk.org/dev/patchwork/patch/12188/ <http://dpdk.org/dev/patchwork/patch/12188/>.
Best regards, Igor > 18 ????? 2016 ?., ? 5:14, Zhang, Helin <helin.zhang at intel.com> ???????(?): > > Hi Sergey > >> -----Original Message----- >> From: dev [mailto:dev-bounces at dpdk.org <mailto:dev-bounces at dpdk.org>] >> On Behalf Of Sergey Balabanov >> Sent: Friday, August 28, 2015 9:06 PM >> To: dev at dpdk.org <mailto:dev at 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 <balabanovsv at ecotelecom.ru> >> --- >> 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(-) >> >> 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 <linux/pci.h> >> #include <linux/kthread.h> >> #include <linux/rwsem.h> >> +#include <linux/etherdevice.h> /* eth_type_trans */ >> >> #include <exec-env/rte_kni_common.h> >> #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); >> >> memset(&req, 0, sizeof(req)); >> -- >> 2.1.4