From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qv1-f97.google.com (mail-qv1-f97.google.com [209.85.219.97]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 221112FFF90 for ; Wed, 28 Jan 2026 23:09:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=209.85.219.97 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769641778; cv=pass; b=NCJWI2mNeNLOe0oz34HZiAg6j8AX+9NtU19LGx9SXcKH5vqsibJPIJ2XCg+RpiyCl6qSEXbzMa8ycpj6xLwxQxGX/BwrbxlS0NdPat1oHceS9/1CXipWeHfOYjQto0lIr/cS9dsqC8RXOmDHQuhQiv+QWFvoDzBKCxAYIJl3vHw= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769641778; c=relaxed/simple; bh=HHJVLa1w2nhAl8M7QQVGEkHezaWXmAVhwO9+xc1OvU0=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=eU6ASRgxUaPag19FwHeT+M+rpNc9WpN/AFXvqN2yz38lqMhWJSJRbee1y3uAllaxDYRlGBt5evd3jkmnPaeqSUi1SKpqR9Qt6TWDKJxeQaxMJ3gtIcqF1tW+SxIUwZ/6CCU6kYLrbwMYH9htRbKAt859L0QpAEkacDqcdgWSf8U= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=e7IBuT9p; arc=pass smtp.client-ip=209.85.219.97 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="e7IBuT9p" Received: by mail-qv1-f97.google.com with SMTP id 6a1803df08f44-8947e17968eso4526476d6.0 for ; Wed, 28 Jan 2026 15:09:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769641776; x=1770246576; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Az5zkdPn/mMtALHC5Nz+d1MpHTmBTB6NzJ3gjNTB98Y=; b=Mt9FgUNFoebuaHLoZ/9xxzyNlt+whG+zL4UZyXsQD+eDAS4wB78FzFsmUszIbRIo0x zD3P5PKNPD9yQQdNZAZRZK0cj+Dvxwy0e2D2sscLEmGPmf3IsV22nlqCnXCZ3mwKecst IxooT7tYxzaRAk4cFswOqwkbrok0NSjrwWV8LePJqoMWdw1zoKzxcCG/URxWUxI6nkd+ sgzUzxlJulvGjiYhNnkdJr2tjHsi6Ep5RkB9JyhoBwqckG7hspI6XU6YU1b9BZACb457 WhPo3XmVTKWtwQALFp9d5RJCT/J/ppdePELQ1gtWDexwjkHOlaW9a4cPnIySfoJEDICb lhHg== X-Forwarded-Encrypted: i=2; AJvYcCXaYJ6iait7vbqdCodJ8jwX2fLvPeby8EBvvA6NJxz00u4zK6fmB53OSHhLNlR0EhMz9wPgOW+oU++ZcM0=@vger.kernel.org X-Gm-Message-State: AOJu0YziQMY/bnK0knNDzcYrqDs6rk92RaGwJkTO439urbo+2y3eylyy Z9J2/IYfyphrvu7BiMLEqa6Lt/kqmVoFiy+Iy69QhR7xCUh5QL+Hj9V2CpGQFkriqAROrD5KNE1 EzA4fCt0Yz+oOI8Miv9dx/s3brzUuRJcLRYd8ut9r6mIvM3F+OteMdhRrKPmtVr8Q/9y/eCNqlV cjC4a1nm2l4gVwWr5YUUSJUCG6BAxbxst9rJIe/Hb6kb6SH58A+ZEy6MqhUBsWmN0128pcboxkR eUwc/YtlyI8L/Lo8rA= X-Gm-Gg: AZuq6aLghm78V4f0iFkTJldyuGch3i9NzuiaxvaEhSqAjaRG58Zm124sszOCzLB3H68 vPd84bx23puAqzemxSUfORYySdnuO3yGtSRAusUVS57BCtpPxD7JzhIiJw8DGWSvEkNh+lndqIW DSuspNwYWO1R2UMi9NRyGwSCL2RFsRqdTCfx+rCCdCycO5gtprESmEKO4q7v72ARkZCF0RTC7Ya C0jz5FeZ7+5ARtqoe2N82kOfzmlw2dQLzNGOv1IYaX3+ZAYOCv5VLgY30qpME7axvLO76vfsM+f 5hiETii04deyekFuOnpndephjuxkRGAd2sTJATM5U75w8KfndeSHsb76Hzu3Y0vLQFQtTAqxyLQ xbNqX/22othtMvm+mdlPjds4HTTb2uvne1ZnUakETpFLJwsspNLTQtXQrxClh7Bi1++tShyugLp NPpAR2YuG2Urk3atUeeK+/P4bUecBak+HKfLlEXdxjdA== X-Received: by 2002:ad4:5cad:0:b0:894:6510:4946 with SMTP id 6a1803df08f44-894cc7d7e2cmr101525046d6.10.1769641775941; Wed, 28 Jan 2026 15:09:35 -0800 (PST) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-0.dlp.protect.broadcom.com. [144.49.247.0]) by smtp-relay.gmail.com with ESMTPS id 6a1803df08f44-894d36a60a3sm4831106d6.2.2026.01.28.15.09.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Jan 2026 15:09:35 -0800 (PST) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-658c933ead7so393438a12.3 for ; Wed, 28 Jan 2026 15:09:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769641774; cv=none; d=google.com; s=arc-20240605; b=Y5z1O1ehs17oZZYicfari8rLJg8DBXnlrW3Ye16T5kp4itmvHpr95nAJtH/9Cralgr sVqkQajtUKAii8htPzahIC/tGwJdPsQjTSlP6Ft+r2Kj+kCa71p0GstFA1rV9hTlbgwM IiN3Kqn66aqGNKc2ENImLqAb78y4DBz924oA2pYm+mgKpEwU7xs95JnoA7cB+1tq3Bst d9S3YKUiNcSDbdKraWKuDosg04AmXxZgSW8OeFUHOQQxZ2Ak5WHjZGghRSLXAwX3Jbmg wHxrPJBEzZjpiPHCpfl7f1ScG63HnG8Vc2e30epSyMHcaQGQ9b7bdB/nQeNDIDeCYbiA hbwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=Az5zkdPn/mMtALHC5Nz+d1MpHTmBTB6NzJ3gjNTB98Y=; fh=XvMpZ0ExJAs5H/gfeKXQLr670iaLUZFIf4yw9NYyZac=; b=GLkCGRZ4Y94NB3Rd7iPisUIFg/v6DcqDPuPKMexweOe84nAla+UI0TH5gVs0JQusmK 7b9CDCOBM6FnZtZjAKYX+OiELbGAHlRGazxBNNZ/MWPfPTCko3q9A5x1WWTZEb0xbU7R 7p2L9zF+kfMiSKB3FprWa15zkZGHhYJxvMlrV0ZSQwngT/Zi+n7QG/ZM4vZZUffOV2Am 2Ra6F96UXGPz1Z8zB970+ARq8qBLxb0/6BwkKJR+d+TohsvYcSXKJ8ZFD0AWRQkbxosu EGmWnkp7vh6BxC//dI4EnnRDK06cm/WSMDpf9kK6RLR7XswPeQ9dPcUdjaGGwLFvuEF6 7zcQ==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1769641774; x=1770246574; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Az5zkdPn/mMtALHC5Nz+d1MpHTmBTB6NzJ3gjNTB98Y=; b=e7IBuT9pWEiO376+po/Vd1tJxjMl9ek8cEMXez0AxrMBQxn4/neQTRKi3S98OSLfTi ynq0zZHqGemhPZ3mKRBkRO2+5qobDepb71bGK6vOeUKy4vs9QzFNtriw7AhganypJjq7 0Na3NGAmqhe8lSIymR0oJdY9X4l9uvpKrAhPE= X-Forwarded-Encrypted: i=1; AJvYcCVn06cmID8eoonU/o1KNkhGE9d37WYan5k2Qh428yYN/p5zDL+kVrKII+liJNJcltmyiB/fEVZjuyEYiDg=@vger.kernel.org X-Received: by 2002:a17:907:2d23:b0:b83:95c7:f87b with SMTP id a640c23a62f3a-b8dab33b49dmr440769466b.37.1769641773673; Wed, 28 Jan 2026 15:09:33 -0800 (PST) X-Received: by 2002:a17:907:2d23:b0:b83:95c7:f87b with SMTP id a640c23a62f3a-b8dab33b49dmr440768866b.37.1769641773302; Wed, 28 Jan 2026 15:09:33 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20260128222718.1679581-1-joe@dama.to> In-Reply-To: <20260128222718.1679581-1-joe@dama.to> From: Michael Chan Date: Wed, 28 Jan 2026 15:09:21 -0800 X-Gm-Features: AZwV_QjmZjX6l6uxQyPk_Haey6gU8dW42lJtPE0xprb0td_3-PghXeTpQjbajvI Message-ID: Subject: Re: [PATCH net-next] bnxt_en: Allow ntuple filters for drops To: Joe Damato Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Pavan Chebbi , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , shruti.parab@broadcom.com X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000526d6206497ad51a" --000000000000526d6206497ad51a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jan 28, 2026 at 2:27=E2=80=AFPM Joe Damato wrote: > > It appears that in commit 7efd79c0e689 ("bnxt_en: Add drop action > support for ntuple"), bnxt gained support for ntuple filters for packet > drops. > > However, support for this does not seem to work in recent kernels or > against net-next: > > % sudo ethtool -U eth0 flow-type udp4 src-ip 1.1.1.1 action -1 > rmgr: Cannot insert RX class rule: Operation not supported > Cannot insert classification rule > > The issue is that the existing code uses ethtool_get_flow_spec_ring_vf, > which will return a non-zero value if the ring_cookie is set to > RX_CLS_FLOW_DISC, which then causes bnxt_add_ntuple_cls_rule to return > -EOPNOTSUPP because it thinks the user is trying to set an ntuple filter > for a vf. > > Fix this by first checking that the ring_cookie is not RX_CLS_FLOW_DISC. Please add the Fixes tag. It looks like the drop action never worked properly because of the vf check. > --- > drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/= net/ethernet/broadcom/bnxt/bnxt_ethtool.c > index 6b15fedbb16f..fd32231bf8e0 100644 > --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c > +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c > @@ -1353,10 +1353,12 @@ static int bnxt_add_ntuple_cls_rule(struct bnxt *= bp, > if (!bp->vnic_info) > return -EAGAIN; > > - vf =3D ethtool_get_flow_spec_ring_vf(fs->ring_cookie); > - ring =3D ethtool_get_flow_spec_ring(fs->ring_cookie); > - if ((fs->flow_type & (FLOW_MAC_EXT | FLOW_EXT)) || vf) > - return -EOPNOTSUPP; > + if (fs->ring_cookie !=3D RX_CLS_FLOW_DISC) { > + vf =3D ethtool_get_flow_spec_ring_vf(fs->ring_cookie); > + ring =3D ethtool_get_flow_spec_ring(fs->ring_cookie); > + if ((fs->flow_type & (FLOW_MAC_EXT | FLOW_EXT)) || vf) I think the FLOW_MAC_EXT and FLOW_EXT checks should be done unconditionally= . Alternatively, we can also change ethtool_get_flow_spec_ring_vf() to check that the cookie is not RX_CLS_FLOW_DISC or RX_CLS_FLOW_WAKE. Thanks. > + return -EOPNOTSUPP; > + } --000000000000526d6206497ad51a Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 DPVtLUtep/P3evQuAtTQRaKedjamBcUpJ7qUhBuv/Z07LlLIlB/vfNSPWe1V+njTezc8m3VfvNEC qEpXasPSfDgfcuUhcPR+7++oUDaTt9iqGFOjwiURxx08pL6ogSuiT41O4Xu7msabnUE6RY0O0xR5 5UGwbpC1QSmnBq7TAy8oQg/nNw4vowEh3S2lmjdHCOdR270Ygd7jet8WQKa5ia4ZK4QdkS8+5uLt rMMRyM3QurndiZZJBipjPvEWJR/+jod8867f3n0CAwEAAaOCAd0wggHZMA4GA1UdDwEB/wQEAwIF oDAMBgNVHRMBAf8EAjAAMIGTBggrBgEFBQcBAQSBhjCBgzBGBggrBgEFBQcwAoY6aHR0cDovL3Nl Y3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NnY2NyNnNtaW1lY2EyMDIzLmNydDA5BggrBgEF BQcwAYYtaHR0cDovL29jc3AuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyNnNtaW1lY2EyMDIzMGUGA1Ud IAReMFwwCQYHZ4EMAQUDAzALBgkrBgEEAaAyASgwQgYKKwYBBAGgMgoDAjA0MDIGCCsGAQUFBwIB FiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzBBBgNVHR8EOjA4MDagNKAy hjBodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjZzbWltZWNhMjAyMy5jcmwwJAYDVR0R BB0wG4EZbWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNV HSMEGDAWgBQAKTaeXHq6D68tUC3boCOFGLCgkjAdBgNVHQ4EFgQUJbO/Fi7RhZHYmATVQf6NlAH2 qUcwDQYJKoZIhvcNAQELBQADggIBABcLQEF8mPE9o6GHJd52vmHFsKsf8vRmdMEouFxrW+GhXXzg 2/AqqhXeeFZki82D6/5VAPkeVcgDeGZ43Bv89GHnjh/Vv0iCUGHgClZezpWdKCAXkn698xoh1+Wx K/c/SHMqGWfBSVm1ygKAWkmzJLF/rd4vUE0pjvZVBpNSVkjXgc80dTZcs7OvoFnt14UgvjuYe+Ia H/ux6819kbi0Tmmj5LwSZW8GXw3zcPmAyEYc0ZDCZk9QckL5yPzMlTAsy0Q+NMVpJ8onLj/mHgTk Ev8zt1OUE8MlXZj2+wgVY+az2T8rGmqRU2iOzRlJnc86qVwuwjL9AA9v4R13Yt8zYyA7jL0NiBNP WaOSajKBB5Z/4ZVtcvOMILD1+G+CVZX7GUWERT9NRXw/SyIEMU59lFbuvy4zxe3+RbOleCgp3pze q8HE2p9rkOJT3MkCNLxe+ij4RytIvPQXACsZeLdfTDUnjeXCDDJ9KugVhuqMelAZc4NissPz8FOn 2NK++r5/QamlFqYRhsFxSBIvhkh2Q/hD3/zy4j17Yf/FUje5uyg03FblSBOk2WYpRpXEuCpyn5pb bYVIzfhQJgwGfO+L8BAeZIFjO1QL3s/zzn+RBlTl4wdDzh8L9eS+QEDhMcSsqb4fFRDbsoVuRjpx R5MunSUzk4GcmmM19m7oHhPGeKwIMYICVzCCAlMCAQEwYjBSMQswCQYDVQQGEwJCRTEZMBcGA1UE ChMQR2xvYmFsU2lnbiBudi1zYTEoMCYGA1UEAxMfR2xvYmFsU2lnbiBHQ0MgUjYgU01JTUUgQ0Eg MjAyMwIMZh03KTi4m/vsqWZxMA0GCWCGSAFlAwQCAQUAoIHHMC8GCSqGSIb3DQEJBDEiBCAsRGkd mbZtKzhSfHvyq92jCIWw/kHLilhNE70MJwUOPTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwG CSqGSIb3DQEJBTEPFw0yNjAxMjgyMzA5MzRaMFwGCSqGSIb3DQEJDzFPME0wCwYJYIZIAWUDBAEq MAsGCWCGSAFlAwQBFjALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcwCwYJKoZIhvcNAQEHMAsGCWCG SAFlAwQCATANBgkqhkiG9w0BAQEFAASCAQA9XsOmCg6n9dN0/6J8f9DAaoH+0+LBZIlJIo3AQu2w 1vinuNXp6WmkP3DxTOAZ03/U0GTfe7OUNxePMN3pekCDaKQlnnDFXTBKy6R4gtrAbvANBmnGkiTH Z7n+SqdyBpdA/mfe30O8zR1CxQFpdhIno6HA3Spk7jdkBhLrrinlSknFn+FtESTXYWWa8Y1eVBW6 gfphl5xmC+rI6zPLNs96CJaQpEXLN2O9CCUYs7StxI+qvx5jE3ithN8Unn+8XRN1boilHtdJ4OeK o9rEc1w6nmPb3lCg6oQQokp+vwXVoV6dtmsBFPRmg87dodUupyBIJ1AhsQ3w+fQGCsNDh1De --000000000000526d6206497ad51a--