From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg0-f48.google.com (mail-pg0-f48.google.com [74.125.83.48]) by dpdk.org (Postfix) with ESMTP id C08541B03F for ; Fri, 5 Jan 2018 13:34:46 +0100 (CET) Received: by mail-pg0-f48.google.com with SMTP id t67so1944840pgc.5 for ; Fri, 05 Jan 2018 04:34:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nfware-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ZZ3K/UbdUkVCDiQ8m76wwD011tFR1AL6QZu88J1oQJ8=; b=KRj1ag0ZhVjRKDnqRyvM+S7phatjs3KhZLbFOWF6qHte7HvzJvJ6YrV4N+pa+Azraz cPsMZgAjSZyovuP190wJPolwBFIpSwYC6UcD4nEXDLVTO5mjrqgdUbwwhoVJbOxTbSwr ivp/3E68lG35/u5EE6CkP1Gl55KgSccg1NthfyAX/NGx4MieWG1lEg6CxcUdVbM3xKuH jscwG8XjOwYC/DShxJgLnUb2BsZHdfmbj6v16S26Wa7dS9CTlHtGpwzplknTJkPUs99S PrE9dk9zCroQvDUVb8CQ9/YZ0S1UZDj4lKjeS9DaiD6zejtxYjHePfaVWdm8OCnXMIcB Bcpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ZZ3K/UbdUkVCDiQ8m76wwD011tFR1AL6QZu88J1oQJ8=; b=Go0LZQqYkErC+KqhFOugQ8TvCBVDWMVSqyCkGdyQr9xF1zWnbHRvp1C6UblYCLOfnf 5UYjD+AbSp4YLao6qEBT9p6N93h9xEguzz46G3ECiNHwXIXaqSCErMgpBy2FX+40shCI Ky6VN+qkFWTEOm2LV+JlDDVm/PDG6Btut28eIz6q4HhTjxxSB0+FluZA9mTtZOXLjrr2 BZ9h6wwFPISW2IfoUwnMniX0/A2iYj4XhtY3oHGHMTSDnGv510+BP2ZDye0X9DT+pEGi +mnw1HhgjfqNtJlMme1kIVqIOv2tSSlFAuLG8lhaQE/TyHUcP3zpb5q8Z6PkbOCLVDL4 Q+IA== X-Gm-Message-State: AKGB3mIusC8PAtJH+hQ+/YBVraRRTVbLLGoBb4e5OynvVz4ptkwkt6ep 0oYCL78lHF8i44mSkEXOm5rDWnd66iMRwvnYIuS6Qg== X-Google-Smtp-Source: ACJfBovEhAwqLb3Ac4FfhCqoHMbQWvFtDtBbtlLkRkSjt/xf1s/39Ha3/5ly5pVWI7vyjfRnPstSd6WcAyVOT2+Lyto= X-Received: by 10.99.176.74 with SMTP id z10mr2398623pgo.83.1515155685972; Fri, 05 Jan 2018 04:34:45 -0800 (PST) MIME-Version: 1.0 Received: by 10.100.133.130 with HTTP; Fri, 5 Jan 2018 04:34:45 -0800 (PST) In-Reply-To: <20180103142923.3528-1-olivier.matz@6wind.com> References: <20180103142923.3528-1-olivier.matz@6wind.com> From: Igor Ryzhov Date: Fri, 5 Jan 2018 15:34:45 +0300 Message-ID: To: Olivier Matz Cc: dev@dpdk.org, Jingjing Wu , Beilei Xing , stable@dpdk.org, Laurent Hardy Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH] net/i40e: fix VSI MAC filter on primary address change 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: , X-List-Received-Date: Fri, 05 Jan 2018 12:34:47 -0000 Thank you for the patch! Comments inline. On Wed, Jan 3, 2018 at 5:29 PM, Olivier Matz wrote: > > drivers/net/i40e/i40e_ethdev.c | 29 +++++++++++++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ > ethdev.c > index 811cc9ffe..e7d070879 100644 > --- a/drivers/net/i40e/i40e_ethdev.c > +++ b/drivers/net/i40e/i40e_ethdev.c > @@ -10818,12 +10818,41 @@ static void i40e_set_default_mac_addr(struct > rte_eth_dev *dev, > struct ether_addr *mac_addr) > { > struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev-> > data->dev_private); > + struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev-> > data->dev_private); > + struct i40e_vsi *vsi = pf->main_vsi; > + struct i40e_mac_filter_info mac_filter; > + struct i40e_mac_filter *f; > + int ret; > > if (!is_valid_assigned_ether_addr(mac_addr)) { > PMD_DRV_LOG(ERR, "Tried to set invalid MAC address."); > return; > } > > Is following check really necessary here? i40e_vsi_delete_mac(vsi, &pf->dev_addr) will do absolutely the same. + TAILQ_FOREACH(f, &vsi->mac_list, next) { > + if (is_same_ether_addr(&pf->dev_addr, > &f->mac_info.mac_addr)) > + break; > + } > + > + if (f == NULL) { > + PMD_DRV_LOG(ERR, "Failed to find filter for default mac"); > + return; > + } > + > + mac_filter = f->mac_info; > + ret = i40e_vsi_delete_mac(vsi, &mac_filter.mac_addr); > + if (ret != I40E_SUCCESS) { > + PMD_DRV_LOG(ERR, "Failed to delete mac filter"); > + return; > + } > + memcpy(&mac_filter.mac_addr, mac_addr, ETH_ADDR_LEN); > Shouldn't mac_filter.filter_type be set to RTE_MACVLAN_PERFECT_MATCH? > + ret = i40e_vsi_add_mac(vsi, &mac_filter); > + if (ret != I40E_SUCCESS) { > + PMD_DRV_LOG(ERR, "Failed to add mac filter"); > + return; > + } > + memcpy(&pf->dev_addr, mac_addr, ETH_ADDR_LEN); > + > /* Flags: 0x3 updates port address */ > In Linux driver I40E_AQC_WRITE_TYPE_LAA_WOL is used as a flag instead of 0x3. Shouldn't we use the same flag? > i40e_aq_mac_address_write(hw, 0x3, mac_addr->addr_bytes, NULL); > } > -- > 2.11.0 > > Best regards, Igor