From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by dpdk.org (Postfix) with ESMTP id D90D71B2BB for ; Fri, 26 Jan 2018 14:16:14 +0100 (CET) Received: by mail-wm0-f66.google.com with SMTP id 143so1200140wma.5 for ; Fri, 26 Jan 2018 05:16:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=eGhhazNkZEYzXO9ix3Bl8UYIgLWn9OgKEfe5PymwDZU=; b=S1XWs3KJh1iovbyDUXlZ3f0AMMOFhxNGUah8NselYJt2pqXpgOBIPLjUEONQ1vCscD B6nZBKU2ZwuIAIrHfJ+G0I8FVKtbStPLpji2oGAUScLVQj5ut7jtl5MG/2wzseyqBixE q5vLtH3XoFVeDfqg0Et9si22S4czxXp1Tb7/3pMaNcdNaTzv514bgG/LQNzk/ZFa+s3I ixLxUFveJJ8gjbAl/KPZnzTiPntTnTMAY+8JAac13qeLDiU+BX6OgdS3qR9oBMmvVRzK wdc0rs3dQg4UE9AtOvsFeupiEu4HnKCtqjajg8dfyvX1brwZ4sgXOFWKRvuUoyDD2n5w zQKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=eGhhazNkZEYzXO9ix3Bl8UYIgLWn9OgKEfe5PymwDZU=; b=C2c9W5bE6Jsv2vupVVx0e1+syFvoTHeAIKvgLEkebdY//4DFHvCqxRN57A8bJpRMQX u71lrC2t3fvDCDgFHStLMgCDexoPSlJodHtc0Y2PgLgXl4Fn3AHlfDnEv3B7LeShapW2 nTUr6rdZ/3zF6QDjrgiG86j946IbH8aJKX8Mz5Yl2WJ2nQbICxya3EaV/HYNpBaiU61z 8fPQ0vLe7HC2FsrbeAmi1WuaZ+rwFRcK6KYbg+1ihptgsliK0zZVkLxdIB7uLo9MZaeC Xxq9TkQ2PmgTCNrM5wbzPUdoH77BYNF9NcpKKp8MPsepwXjIW6R4EtaLWIXN/dCaP1No r9Pw== X-Gm-Message-State: AKwxyte/bCTXiZmwUvVbqHkfLi45jv41hSGvPNPrShbSG38uf0P/Zanp GQTZp+O38+iRx9Nk+HlLzDAFBKj4WSI= X-Google-Smtp-Source: AH8x227ZvoLoqe+LfEKNlICzmi1JUAQVTO3mIXKm9sIxKEa/Bp6DdE/Yaw9wXcqX4odt/UpHMuHh8w== X-Received: by 10.28.155.66 with SMTP id d63mr9768972wme.132.1516972574593; Fri, 26 Jan 2018 05:16:14 -0800 (PST) Received: from localhost ([2a00:23c5:bef3:400:9531:588b:44ae:bec4]) by smtp.gmail.com with ESMTPSA id 62sm4463695wml.24.2018.01.26.05.16.13 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 26 Jan 2018 05:16:14 -0800 (PST) From: luca.boccassi@gmail.com To: Olivier Matz Cc: Laurent Hardy , Beilei Xing , dpdk stable Date: Fri, 26 Jan 2018 13:13:09 +0000 Message-Id: <20180126131332.15346-39-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.14.2 In-Reply-To: <20180126131332.15346-1-luca.boccassi@gmail.com> References: <20180126131332.15346-1-luca.boccassi@gmail.com> Subject: [dpdk-stable] patch 'net/i40e: fix VSI MAC filter on primary address change' has been queued to LTS release 16.11.5 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jan 2018 13:16:15 -0000 Hi, FYI, your patch has been queued to LTS release 16.11.5 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 01/28/18. So please shout if anyone has objections. Thanks. Luca Boccassi --- >>From 3063263faae6f63a7c086911b32bdfa431bce6c2 Mon Sep 17 00:00:00 2001 From: Olivier Matz Date: Wed, 3 Jan 2018 15:29:23 +0100 Subject: [PATCH] net/i40e: fix VSI MAC filter on primary address change [ upstream commit 047779508874994fbd905dcc2eeacf78b815e4f4 ] When primary address mac is changed, the mac filters were not updated in the VSI with the new mac addr and incoming packets with this destination address are dropped by the hardware filters. This patch removes the VSI mac filter for the previous mac address and adds a new one for new mac address. Fixes: e18e01e92c29 ("i40e: support default MAC address setting") Signed-off-by: Laurent Hardy Signed-off-by: Olivier Matz Acked-by: Beilei Xing --- 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 69a0a21c0..eed74b147 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -9833,12 +9833,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; } + 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); + 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 */ i40e_aq_mac_address_write(hw, 0x3, mac_addr->addr_bytes, NULL); } -- 2.14.2