From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hemant Agrawal Subject: Re: [PATCH v3 1/3] kni: support for MAC addr change Date: Mon, 22 Jan 2018 10:50:02 +0530 Message-ID: <0ac9a03f-33b5-7311-3fc3-54111dfad242@nxp.com> References: <1514284608-9263-1-git-send-email-hemant.agrawal@nxp.com> <1516255980-25092-1-git-send-email-hemant.agrawal@nxp.com> <5ab068df-3263-d82b-750f-13a8ce8b8723@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit To: Ferruh Yigit , Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0073.outbound.protection.outlook.com [104.47.34.73]) by dpdk.org (Postfix) with ESMTP id 6EED92904 for ; Mon, 22 Jan 2018 07:24:50 +0100 (CET) In-Reply-To: <5ab068df-3263-d82b-750f-13a8ce8b8723@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Ferruh, On 1/22/2018 3:37 AM, Ferruh Yigit wrote: > On 1/18/2018 6:12 AM, Hemant Agrawal wrote: >> This patch adds following: >> 1. Option to configure the mac address during create. Generate random >> address only if the user has not provided any valid address. >> 2. Inform usespace, if mac address is being changed in linux. >> 3. Implement default handling of mac address change in the corresponding >> ethernet device. >> >> Signed-off-by: Hemant Agrawal > > <...> > >> @@ -530,6 +556,14 @@ rte_kni_handle_request(struct rte_kni *kni) >> req->result = kni->ops.config_network_if(\ >> kni->ops.port_id, req->if_up); >> break; >> + case RTE_KNI_REQ_CHANGE_MAC_ADDR: /* Change MAC Address */ >> + if (kni->ops.config_mac_address) >> + req->result = kni->ops.config_mac_address( >> + kni->ops.port_id, req->mac_addr); >> + else if (kni->ops.port_id != UINT16_MAX) > > This won't be enough. rte_kni_alloc() can be called with NULL ops value. For > that case m_ctx->ops won't be updated. And by default ops will have all zeros, > not sure how to differentiate it from real port_id zero. > I think, I tried to address that in the first patch. rte_kni_alloc(struct rte_mempool *pktmbuf_pool, memset(ctx, 0, sizeof(struct rte_kni)); if (ops) memcpy(&ctx->ops, ops, sizeof(struct rte_kni_ops)); + else + ctx->ops.port_id = UINT16_MAX; Do you still see issue? Regards, Hemant