From nobody Thu Aug 3 20:38:00 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RH0zF1Vyxz4Txf2; Thu, 3 Aug 2023 20:38:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RH0zD6BYCz3JWZ; Thu, 3 Aug 2023 20:38:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691095080; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BC2tl8ndtZ2q8G1+Ynt7ROKgeVyqGUkVdECtgcSJD2E=; b=PwuTzxXBupVVA4KAHX6/r/HTZHqjPbaB/+H7rQEPp/PtGxQ0IwPIr5Cp+QR/uck82SxcNm LR4HIq5aLbeL9OpJV8DJ5FO2OTdbyeW9YNFAIMflVfyjpUUxwyLEvZy5lQcrs75Ft7qM8b Ffug3+cegPJhjowt3I+AFb9elEquVRnkqWvConnBTirh6YV/4+N+PliwcPmHjVhM7+Nhic +PnkYm5py4U3yOli1l15XZOjf1bFVmO1A8+vVNkpNbf8NjFomplwZLSCecv/ZRjAFNCkI9 +EpdDic3RDscDFmhm9DjNVdSureU80Hgne1UxL6Wm9+I73pm8LzXWVXRIaeiFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691095080; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BC2tl8ndtZ2q8G1+Ynt7ROKgeVyqGUkVdECtgcSJD2E=; b=F9ElEx73cXkEnvUwJ9ZdzEkqbCNcYfddGzkKObTPBM656/9etrJ39qlICXWC/wcGnow1Y1 dZETL68OIDteNvbCE0RL1PC/RWI8Xerjo7PwLjnXvAbKgCD8MoAVNkNy13ZIjayVxrF8Sh oWMxdaNTNhidWJFKIkoPrDjD5R+/xjcasUuSuvDyoZ+rYgTtAW+f/82GP4Xyc4PhF/1uhX w8aNYHQWV5uDlkTVDgkpOlMZYuuQ8sG7yTw/kPNhJKCfK1aV6gYHlylTk3FsWi5dT/0Q0g mmGrLqKK37TQEzqb8WznwM5wHB1pWLHRDrfC9vOJmAJPMWB88KIr8VQXsE3xLQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691095080; a=rsa-sha256; cv=none; b=mKLtmZ+P005kNDzNWZmXg/k2Y/VimO02UisDDfLFsdo7+mnb9raaRpWy6BlpAVkxubAvT6 QuqSm0Ng11vvmTYyJ76mXrVyTOt07tQUQbru19L/UurJFO0g7opmt2C7vPCQrtjb65iGTH hAppFLCtjtYvdMykjRAoSHUceCAbFT+KrdMwS6A4Z0pOjWAs9btGxWKVF8nvOBhOpMVTSl cgh4hv/32qSX3ByDhAhcogfFk+iFprVJssxEpTnSGNVocuC1lTNW3hBPwh5uTj5UomtLcK 5hBts8JPfwmVVCSAiAldARlT3cCotL8n2taE/eZ8QGhICylwETMypiEdkE9Wow== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RH0zD5HhMzbNK; Thu, 3 Aug 2023 20:38:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 373Kc0Yp038201; Thu, 3 Aug 2023 20:38:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 373Kc09w038200; Thu, 3 Aug 2023 20:38:00 GMT (envelope-from git) Date: Thu, 3 Aug 2023 20:38:00 GMT Message-Id: <202308032038.373Kc09w038200@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: 61a8231d152c - main - ixv: Separate VFTA table for each interface List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 61a8231d152c38ac96b697ea3ca8ff220f3aa536 Auto-Submitted: auto-generated The branch main has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=61a8231d152c38ac96b697ea3ca8ff220f3aa536 commit 61a8231d152c38ac96b697ea3ca8ff220f3aa536 Author: Yuichiro Naito AuthorDate: 2023-08-03 20:36:21 +0000 Commit: Kevin Bowling CommitDate: 2023-08-03 20:36:21 +0000 ixv: Separate VFTA table for each interface The vlan setting is independent for each interface. Use VFTA table in 'struct ixgbe_softc' that is already defined. This pull request fixes following bug scenario. create ixv0.10 create ixv1.10 destroy ixv1.10 create ixv0.11 ixv0.10 no longer receives vlan 10 packets. In this case, destroying ixv1.10 affects to ixv0. MFC after: 1 week Pull Request: https://github.com/freebsd/freebsd-src/pull/774 --- sys/dev/ixgbe/if_ixv.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/sys/dev/ixgbe/if_ixv.c b/sys/dev/ixgbe/if_ixv.c index cf5c8f92c450..e4da1f32cd0e 100644 --- a/sys/dev/ixgbe/if_ixv.c +++ b/sys/dev/ixgbe/if_ixv.c @@ -197,12 +197,6 @@ TUNABLE_INT("hw.ixv.flow_control", &ixv_flow_control); static int ixv_header_split = false; TUNABLE_INT("hw.ixv.hdr_split", &ixv_header_split); -/* - * Shadow VFTA table, this is needed because - * the real filter table gets cleared during - * a soft reset and we need to repopulate it. - */ -static u32 ixv_shadow_vfta[IXGBE_VFTA_SIZE]; extern struct if_txrx ixgbe_txrx; static struct if_shared_ctx ixv_sctx_init = { @@ -1541,9 +1535,9 @@ ixv_setup_vlan_support(if_ctx_t ctx) * we need to repopulate it now. */ for (int i = 0; i < IXGBE_VFTA_SIZE; i++) { - if (ixv_shadow_vfta[i] == 0) + if (sc->shadow_vfta[i] == 0) continue; - vfta = ixv_shadow_vfta[i]; + vfta = sc->shadow_vfta[i]; /* * Reconstruct the vlan id's * based on the bits set in each @@ -1579,7 +1573,7 @@ ixv_if_register_vlan(if_ctx_t ctx, u16 vtag) index = (vtag >> 5) & 0x7F; bit = vtag & 0x1F; - ixv_shadow_vfta[index] |= (1 << bit); + sc->shadow_vfta[index] |= (1 << bit); ++sc->num_vlans; } /* ixv_if_register_vlan */ @@ -1597,7 +1591,7 @@ ixv_if_unregister_vlan(if_ctx_t ctx, u16 vtag) index = (vtag >> 5) & 0x7F; bit = vtag & 0x1F; - ixv_shadow_vfta[index] &= ~(1 << bit); + sc->shadow_vfta[index] &= ~(1 << bit); --sc->num_vlans; } /* ixv_if_unregister_vlan */