From nobody Mon Sep 16 19:05:35 2024 Delivered-To: importer2@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=est.tech) ARC-Seal: i=2; a=rsa-sha256; t=1679684555; cv=pass; d=zohomail.com; s=zohoarc; b=TXxFzs+FX79emx1Oc8qzurkDFrzHwsF521kGRUEeXGfXYSJD6uFQysOcdQvAjYV3iUD6WnpSQ27AnZjl7/FiS3VVlbHU5qo8F0qq114OdkiH4r6tJNiUSTDZZMS1V83h2/o4pQuJKtLAztHnXB+BXYWbyRl2CuARI0ffBf9R6nU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679684555; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject; bh=npij/M0YiYbD/I4U8XgJdMzejWTRN6wiqD7L+2mvBx0=; b=PXYRKK2J1acEVpeTRM/TKGA8lA7IRnx653qdkBHoI78iou7/JAdrtmOYGBb4VTtNvdcanOBqR4q1V7nasw5fzBhHQEsKZlAYWgG4bcnMCXikzaqZst8v+A3PqFm4jIBDC1S++eNQ5DXOtyem7Elk79TKMPDQ+g4OS5fx1SMnMbI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=est.tech) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1679684555337550.0936287903448; Fri, 24 Mar 2023 12:02:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pfmfi-0001W9-6b; Fri, 24 Mar 2023 15:01:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pfmff-0001Tg-1N for qemu-devel@nongnu.org; Fri, 24 Mar 2023 15:01:52 -0400 Received: from mail-he1eur01on0726.outbound.protection.outlook.com ([2a01:111:f400:fe1e::726] helo=EUR01-HE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pfmfc-00034J-VV for qemu-devel@nongnu.org; Fri, 24 Mar 2023 15:01:50 -0400 Received: from DBBP189MB1433.EURP189.PROD.OUTLOOK.COM (2603:10a6:10:1e7::15) by DB3P189MB2380.EURP189.PROD.OUTLOOK.COM (2603:10a6:10:439::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.38; Fri, 24 Mar 2023 19:01:11 +0000 Received: from DBBP189MB1433.EURP189.PROD.OUTLOOK.COM ([fe80::13ad:a312:15c6:91dc]) by DBBP189MB1433.EURP189.PROD.OUTLOOK.COM ([fe80::13ad:a312:15c6:91dc%9]) with mapi id 15.20.6178.039; Fri, 24 Mar 2023 19:01:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W3cyKPMj2PTNk0o9PN5D4Q0ZNOKTEwRPKMKKpV/FLJ0DdCk6ANBne3qOb8k0GtstIVJxt21YADvCdyk2/1XOBq+mJeukrgMOo+SQxXFp0qDwNz37B4OAgU6c5KAPH2sVLfZYCW3cnrDk3MtJLb1gCYKGYDoNCurwV33+OqOB94CfRRKp5aKrSR8/Yar3ckU4lED1BsInM9JjAlaQq350rNSKgAsy40IK0wooRwnbQL7Eb60pSqdv2nFcVeMHWYCWPJAKrL/WRhNoVH/fidnaTQJZ46rcq7JxOPNI62NKe6jqgYkiqLk72RzbHbBeHDsp02t5Y+xBk82c52N1OtJDsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=npij/M0YiYbD/I4U8XgJdMzejWTRN6wiqD7L+2mvBx0=; b=oB1EPJUskn3tPZbrHHHO4Ngg0HPI6LaMMzAM3GXaQAc1tnAxooIMt6BAbVicG0fgDoEFzRaVIm9Q0WnKPeWNn6w1V7BTcxMXINIt9Ywz8DMtWYhGNbdPMfodWtORv/L6PTPiMgII2xvoVncQ7Yfb0rA2roL/KxLvdtCR5KsGOmlyNgpDcgkWHwS6qhTHoJI9jv81npo1OrsTY9dzCAVteyEyAB6DgdBGVNv4onSKVbIZ0K574KF7BF/e5ODcHeHu+tRNdSf30ktAoiAdVh95Uc8Yr8RND2eC7jqpnXMqUg64vXXsDaeYcCK4XsJg3T1LA4KKvgFzseOmOtcdt0XDHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=est.tech; dmarc=pass action=none header.from=est.tech; dkim=pass header.d=est.tech; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=estab.onmicrosoft.com; s=selector2-estab-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=npij/M0YiYbD/I4U8XgJdMzejWTRN6wiqD7L+2mvBx0=; b=bySyEgwErmDOnsCDCnbAtuM+dK0b0rrUYDcHH8fx6mXV77M7VfDqkRSA5RtDukIkM58xohLXaKW+XY/gi7iZPKKhMs5l0R+OKKhAAKK+OnX/TFcJeGzITM6vIWPDDByIag80E1fcSau1nqE0Gxp7TusU0LmUNl3IrcD0r8yXnMU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=est.tech; From: Sriram Yagnaraman To: Cc: qemu-devel@nongnu.org, Akihiko Odaki , Jason Wang , Dmitry Fleytman , "Michael S . Tsirkin" , Marcel Apfelbaum , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Sriram Yagnaraman Subject: [PATCH v10 5/8] igb: check oversized packets for VMDq Date: Fri, 24 Mar 2023 16:34:58 +0100 Message-Id: <20230324153501.20695-6-sriram.yagnaraman@est.tech> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230324153501.20695-1-sriram.yagnaraman@est.tech> References: <20230324153501.20695-1-sriram.yagnaraman@est.tech> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV3P280CA0062.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:a::18) To DBBP189MB1433.EURP189.PROD.OUTLOOK.COM (2603:10a6:10:1e7::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DBBP189MB1433:EE_|DB3P189MB2380:EE_ X-MS-Office365-Filtering-Correlation-Id: 3e96fa52-3b0e-44d0-f8cd-08db2c9a2221 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QNa5tkHJ+zTE50SjzP/ciYIbdW4//CnHJqsEwXwnMyBH55bTdQlHl6zQfjuIdD6k8GhtueMYJTQ737PtlmAbCrW6c/s1GgZ3pHnHE1leVffsn8Az5QyR3E4MbswVHAtR2+wF4UugCJxeguPqD8yPiUydsMjAaKrZEzTeEY1bXMAJ5SjaY/pjF//0bM5thtYb3eiFN9MHL+5oqMQ1cmMtx8QyGakVPXvakuvNs2yE94HmukRhbEjc9kXFwMvmN9ZJSXHEtnsGHUR3WaFWTUEy2jNsp/fw9LMdQO3lYH4ANONI7KeCUAZvMxS8oiusWRnba0G7e/IKO15ZYqUgW53w5nT/HLB2lsu4K2jzFIeQFWMtgcDukSGizTEbkavtkZVEtxcVv/+R82xWI25ZKHfMB2yacJ3IbYF0am2evni0+bO/aBr1Nfzbt95Acz8Ux3RTQJ6JUBf+0vovlnlUCePJP1mL7MNU8aEfLju/mJ0U28u5mgRx1qDpeXYUcOAXeuGGb11X6eMIcM5aztMt1qHxIPlB7wUIhCrOtJLd8iqFxchXxgxUzt53xguRNFLbgu6JAP133QVsThQE5OEkMK0MPt985ekdRN4BcixIvgWLLMPsIMVzBViIsBWN56Y9nGSM/T9gatposBkSriGDz//PIg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBBP189MB1433.EURP189.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230028)(376002)(136003)(396003)(346002)(39840400004)(451199021)(109986019)(66946007)(54906003)(316002)(66556008)(38100700002)(8676002)(70586007)(44832011)(66476007)(86362001)(4326008)(41300700001)(36756003)(5660300002)(8936002)(186003)(2616005)(2906002)(6486002)(6666004)(26005)(6512007)(478600001)(1076003)(6506007)(83380400001)(266003)(37730700002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?oMaacRQTJg5WO9VJ8IpK7VQr30ilP7LaZb/8Rn2OZm/lx++gEF0EtvEboH4N?= =?us-ascii?Q?RX43X3mq6RqZ702TF9rB9Ua3u0H7QXg4LM0XL4vD1fj6IN6/InkWj/rbVwgb?= =?us-ascii?Q?Z9QAN9eKELdYW56FgUGnh3S1kzeN+QClg3Q5210vjJv0Bp4o248KiTCQlHcC?= =?us-ascii?Q?jlkwmTohYnnY292oX/y8uts7bFN9JpfMGeH+THLgGOL0qGPN4jVzv0X+TzCA?= =?us-ascii?Q?3pn0RCgNXIc1AqTndiYVV6rHTxXs28ayCGnEs5oGe98yaXz4M4UxXq7mZ5hS?= =?us-ascii?Q?MeZemQHHi6O0Bq2fWrGrMpSlEHR6Im0ki/iQldGA2ettX5vibqxg6wV8n98S?= =?us-ascii?Q?k37+C+hE0E3Czn0Is4PwxY3qQKNd1FHq05+GXwcvxccdILy4G4gnS6m/TCl2?= =?us-ascii?Q?R7+mziDfA+TybBATnShfTfTikTisSJJ47/ogg3208mrQx8EFYab/lUsf+hRr?= =?us-ascii?Q?0QJqxnkwgtCVAJlTPAdlCDbrCYYZuIWrAxDasQ/8C1tTlGN5y4aVUdYJ6K/Z?= =?us-ascii?Q?qIQS79ENcgzOBmzKH5j0DnlcmZJKZg+vERMS020ophDy3fE6Lr/VgT4NJBgE?= =?us-ascii?Q?Thr6M7gH4Y3Av2u23iPqtZXrl1jRT/nGPnzoiD+d3sB9+USl9UnsMQQ+10ht?= =?us-ascii?Q?Da7kD1FCdKxm74an5Bcl8gtSCKhyPlRkyM3ORv+b/PyJ6YivfRtLI756CfUJ?= =?us-ascii?Q?F2UmWn3P6oLdRvna4Zi4dyMVDGudsWpDAdmi07eEzPbUhLdTglt5EAbh3Ee7?= =?us-ascii?Q?dJC4tTOsxCbT75n29QI3Kz1E5b/UTFQhapgbZjJB9nXClh3Vz+bKOmMDWLOI?= =?us-ascii?Q?A/7IB9TXK4vyn2Y/mcdodxJT8sdxxw4qm6XCIODaHP+YoTDL3zf3vHkU4BYh?= =?us-ascii?Q?pvnPXEACSKjdgp/ADd0B4CD28AlcMnXyhiO3tKuesv1Mh86njlQHw+rJl61d?= =?us-ascii?Q?IZ1NDKkakIs2CMUinosjn/uvW2GsFbZpnORtwN+QCgAzc0owre3ygzqSN4+H?= =?us-ascii?Q?zd/Kpw182dsBH86LEc4GcZPALk+ZB/+vbEqqhdkKTfTVwu1N6UIuWYEtmVpz?= =?us-ascii?Q?r8GCOlP3KC932jQgfPAABs1/IpjSl7wmY5uFefGX0A3pc/8Hu6HT67/79qRJ?= =?us-ascii?Q?xihEzXGvF/q5PA7RR2TKCOO/+rtz3qmqRzf7bUsDGovYyRSbX4/dK3uy5+NV?= =?us-ascii?Q?QoxlEzmaH6q0RCeXWjKC46vsJLBBsc/3TlyiwzMUihd4ddjx72Dl4/qwUxJq?= =?us-ascii?Q?OdOxf9xlbgHEf/SI2gtv7iSNJr2UukfrV2GvQNTgwuvjoIcNzOZPZ3o/W0gt?= =?us-ascii?Q?nBjK/h87G7S7npjAM0vpHKHMurI/YyI5mbn1+AWLg26GYWkWhFG3IMF3gV7c?= =?us-ascii?Q?EWB/6GNvKXQA4GdKeCmHHR7ErsWIg1vfqt+VZlNY7yECP2Ou+rN/rK0wSFaT?= =?us-ascii?Q?tP9dDLhg+vRUmwc81BVqJMiXJWkgNMG2QWAN5oHAL+6KTVMsf2c03Xl8yOeb?= =?us-ascii?Q?JljOO4M0CM34alYblxZD+FuzYFGF4o/sUjrgO+vQpkGQHK4P6UWRGqsD4SQ+?= =?us-ascii?Q?eRa3zPh9a55IRyfc/+7tc7MQdAnpMWYsV+o+41tMLk4rFSLPaKVDHeqFKqpS?= =?us-ascii?Q?oA=3D=3D?= X-OriginatorOrg: est.tech X-MS-Exchange-CrossTenant-Network-Message-Id: 3e96fa52-3b0e-44d0-f8cd-08db2c9a2221 X-MS-Exchange-CrossTenant-AuthSource: DBBP189MB1433.EURP189.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2023 19:01:11.3544 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d2585e63-66b9-44b6-a76e-4f4b217d97fd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lkz6y9P/cRQnmeevcFVJhcDj47o2OtU5OEieK00YQoXp7mwLUG6QiM8cCWUClWkJYcFeJgTiTaKgOVKBVFEK85CeaS5X94wIr6OOhlQJnr8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3P189MB2380 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f400:fe1e::726; envelope-from=sriram.yagnaraman@est.tech; helo=EUR01-HE1-obe.outbound.protection.outlook.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_03_06=1.592, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @estab.onmicrosoft.com) X-ZM-MESSAGEID: 1679684555871100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Sriram Yagnaraman --- hw/net/igb_core.c | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/hw/net/igb_core.c b/hw/net/igb_core.c index 753f17b40c..38aa4596b1 100644 --- a/hw/net/igb_core.c +++ b/hw/net/igb_core.c @@ -921,12 +921,26 @@ igb_rx_l4_cso_enabled(IGBCore *core) return !!(core->mac[RXCSUM] & E1000_RXCSUM_TUOFLD); } =20 +static bool +igb_rx_is_oversized(IGBCore *core, uint16_t qn, size_t size) +{ + uint16_t pool =3D qn % IGB_NUM_VM_POOLS; + bool lpe =3D !!(core->mac[VMOLR0 + pool] & E1000_VMOLR_LPE); + int max_ethernet_lpe_size =3D + core->mac[VMOLR0 + pool] & E1000_VMOLR_RLPML_MASK; + int max_ethernet_vlan_size =3D 1522; + + return size > (lpe ? max_ethernet_lpe_size : max_ethernet_vlan_size); +} + static uint16_t igb_receive_assign(IGBCore *core, const struct eth_header = *ehdr, - E1000E_RSSInfo *rss_info, bool *externa= l_tx) + size_t size, E1000E_RSSInfo *rss_info, + bool *external_tx) { static const int ta_shift[] =3D { 4, 3, 2, 0 }; uint32_t f, ra[2], *macp, rctl =3D core->mac[RCTL]; uint16_t queues =3D 0; + uint16_t oversized =3D 0; uint16_t vid =3D lduw_be_p(&PKT_GET_VLAN_HDR(ehdr)->h_tci) & VLAN_VID_= MASK; bool accepted =3D false; int i; @@ -1026,9 +1040,26 @@ static uint16_t igb_receive_assign(IGBCore *core, co= nst struct eth_header *ehdr, } =20 queues &=3D core->mac[VFRE]; - igb_rss_parse_packet(core, core->rx_pkt, external_tx !=3D NULL, rs= s_info); - if (rss_info->queue & 1) { - queues <<=3D 8; + if (queues) { + for (i =3D 0; i < IGB_NUM_VM_POOLS; i++) { + if ((queues & BIT(i)) && igb_rx_is_oversized(core, i, size= )) { + oversized |=3D BIT(i); + } + } + /* 8.19.37 increment ROC if packet is oversized for all queues= */ + if (oversized =3D=3D queues) { + trace_e1000x_rx_oversized(size); + e1000x_inc_reg_if_not_full(core->mac, ROC); + } + queues &=3D ~oversized; + } + + if (queues) { + igb_rss_parse_packet(core, core->rx_pkt, + external_tx !=3D NULL, rss_info); + if (rss_info->queue & 1) { + queues <<=3D 8; + } } } else { switch (net_rx_pkt_get_packet_type(core->rx_pkt)) { @@ -1576,7 +1607,7 @@ igb_receive_internal(IGBCore *core, const struct iove= c *iov, int iovcnt, e1000x_vlan_enabled(core->mac), core->mac[VET] & 0xffff); =20 - queues =3D igb_receive_assign(core, ehdr, &rss_info, external_tx); + queues =3D igb_receive_assign(core, ehdr, size, &rss_info, external_tx= ); if (!queues) { trace_e1000e_rx_flt_dropped(); return orig_size; --=20 2.34.1