From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6D3FAA00C4 for ; Thu, 29 Sep 2022 14:09:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9BC6642836; Thu, 29 Sep 2022 14:09:24 +0200 (CEST) Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) by mails.dpdk.org (Postfix) with ESMTP id 72350410FA for ; Thu, 29 Sep 2022 14:09:21 +0200 (CEST) Received: by mail-wm1-f52.google.com with SMTP id u16-20020a05600c211000b003b5152ebf09so3089849wml.5 for ; Thu, 29 Sep 2022 05:09:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date; bh=UiWXTLHm7wHLigsDLNT/qflXGby4Na9TSGMdETwa7zY=; b=HnUQCXoM5Xn+j8FLNHJ+8vstzYDL2y8dABjFyLxVCKGtoaQW4qb+4eX6b2AKn03O1q kQrN27C20s9DLSAUqmQOF4sXEcqgvCor4ljbkcufoChYyxnDrU6GMY7SaZK4EuVq5k24 hteEtvvrac3Gx9HMsVv7pUgX1eW9SfIsQNLv2ZXrRiNIRIFobTF9kAl1PPi3IjaIVLma RbbQBazEILyNdjUTVy7NiH04fRXwDD4z1D5xI9ga7g5d6ADczf9DWTxhqmLxD8BK29Ei ViX+A6dDkJqsYVbS6UnBlc49LRC61j1+y0zJDjv0eeiL/ht8Miq6oJk1pcUo6+DJMJQf jJ7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date; bh=UiWXTLHm7wHLigsDLNT/qflXGby4Na9TSGMdETwa7zY=; b=CHpS4IJiRbvzY2SVB1gI6IlgurMx7ehm4UT526FMqorsKHGpjMH/Yx2geLhCEkVTf8 4YuA0HjDWXG7G9csxd67yijRt3S+6QTnkOhqc8xPHLyOh/I3mIQQM6DzN5YOTBdHESUO 2h3o4cdh3OQLI8sLoQkNcyzyzuJqU0Ndfdxbv/YqYg+sVbSRKLrltOBWdEudEA7heKau sWV7qVTqtrWlHgMzyyGqPEa47+f/ouJLZweGZemItIic1eRmjqRB08FSB8brCYuqZdtZ Y7mEO6deeDPTwgLL+Oq/PSWulZ2RXbkG72oAJ140MbXjmjhW6Zg8/Wmgql7xYtswuzb+ pCiA== X-Gm-Message-State: ACrzQf0f85B6bYNhwEs+XLGUPrPy+PtNqx755EWT+w6X9h/dB80XiiAM AXLKyKYFMuaeFsPi75l1LKDAeQ== X-Google-Smtp-Source: AMsMyM4pASSw3XxzfzFYIoMJ+ivUpO2QPURBwz92my8RKU43qRiP01Sbr8iGV9dCjuDzap4XwJNvVA== X-Received: by 2002:a05:600c:524d:b0:3b4:91ee:933e with SMTP id fc13-20020a05600c524d00b003b491ee933emr2144949wmb.80.1664453361180; Thu, 29 Sep 2022 05:09:21 -0700 (PDT) Received: from gojira.dev.6wind.com ([185.13.181.2]) by smtp.gmail.com with ESMTPSA id n14-20020a5d420e000000b0022cc895cc11sm3798999wrq.104.2022.09.29.05.09.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Sep 2022 05:09:20 -0700 (PDT) From: Olivier Matz To: dev@dpdk.org Cc: Qiming Yang , Wenjun Wu , Qi Zhang , Wei Zhao , stable@dpdk.org Subject: [PATCH 2/2] net/ixgbe: fix unexpected VLAN Rx in promisc mode on VF Date: Thu, 29 Sep 2022 14:09:01 +0200 Message-Id: <20220929120901.639-3-olivier.matz@6wind.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220929120901.639-1-olivier.matz@6wind.com> References: <20220929120901.639-1-olivier.matz@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org When the promiscuous mode is enabled on a VF, the IXGBE_VMOLR_VPE bit (VLAN Promiscuous Enable) is set. This means that the VF will receive packets whose VLAN is not the same as the VLAN of the VF. For instance, in this situation: ┌────────┐ ┌────────┐ ┌────────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ VF0├────┤VF1 VF2├────┤VF3 │ │ │ │ │ │ │ └────────┘ └────────┘ └────────┘ VM1 VM2 VM3 vf 0: vlan 1000 vf 1: vlan 1000 vf 2: vlan 1001 vf 3: vlan 1001 If we tcpdump on VF3, we see all the packets, even those transmitted on vlan 1000. This behavior prevents to bridge VF1 and VF2 in VM2, because it will create a loop: packets transmitted on VF1 will be received by VF2 and vice-versa, and bridged again through the software bridge. This patch remove the activation of VLAN Promiscuous when a VF enables the promiscuous mode. However, the IXGBE_VMOLR_UPE bit (Unicast Promiscuous) is kept, so that a VF receives all packets that has the same VLAN, whatever the destination MAC address. A similar patch was accepted in Linux kernel (see link). Fixes: 0355c379b71f ("net/ixgbe: support VF promiscuous by PF driver") Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7bb0fb7c63df Signed-off-by: Olivier Matz --- drivers/net/ixgbe/ixgbe_pf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c index c5ef940533..0a0f639e39 100644 --- a/drivers/net/ixgbe/ixgbe_pf.c +++ b/drivers/net/ixgbe/ixgbe_pf.c @@ -771,9 +771,9 @@ ixgbe_set_vf_mc_promisc(struct rte_eth_dev *dev, uint32_t vf, uint32_t *msgbuf) return -1; } - disable = 0; + disable = IXGBE_VMOLR_VPE; enable = IXGBE_VMOLR_BAM | IXGBE_VMOLR_ROMPE | - IXGBE_VMOLR_MPE | IXGBE_VMOLR_UPE | IXGBE_VMOLR_VPE; + IXGBE_VMOLR_MPE | IXGBE_VMOLR_UPE; break; default: return -1; -- 2.30.2