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 A7BAAA054D; Thu, 9 Jun 2022 03:59:45 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8C5EB40689; Thu, 9 Jun 2022 03:59:45 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id F0B2540220 for ; Thu, 9 Jun 2022 03:59:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654739983; x=1686275983; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=GSpRqKQHI9oB0ox7gZdND2PYuAwXU8VWVlQDukLgv8k=; b=jsV4P0mekwyQvdc5fJSZbCPMDIgK4P2vnY5O8Z8W/qlj6xeFhAl+8GFV 7wqgRdr1OFry6EOKhZL7R+iWwb+6AgoqijTId+J6/JX/WPklUN+Dsnrww WbtEszg959Le1sBkOtMvKuQjydFlKGIR+9NicdnhdM6onCCV0TjNnTmgt y/z3z5WlPAm/5kgBRNwnyZByulg4IMUIhxOUCZoI59Qay4t2qVOziYqGz /jE7LHTRFbFQhNSl0uQ9MfCpmNjzTWBDs78YfOnM3N4WEV4PE7zvtD9s3 puTcxSWdPzKM0N+opLiL1RH5OG8frj/jztw4fDIXo3rX0zg+9k7AgItTB Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10372"; a="277936167" X-IronPort-AV: E=Sophos;i="5.91,287,1647327600"; d="scan'208";a="277936167" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2022 18:59:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,287,1647327600"; d="scan'208";a="683692121" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga002.fm.intel.com with ESMTP; 08 Jun 2022 18:59:41 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 8 Jun 2022 18:59:40 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 8 Jun 2022 18:59:40 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.168) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 8 Jun 2022 18:59:40 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IzKrwdX1oC0fcH6iF0gebst/F4yeKzPLxpH7Z9CwUh8Img2vn+hnwfbBm/7jsarNB8Zg21G8CvNC2Q3OI12WvEeDEwPMlE6ztItB0ixzSHvG6Vjaww/ZlyDTqCKstRB0JrJvlvBVTzjJI4lL2B0y1RD/aO3mbuHRbhhXPYI+yP2IhQ8NW8cJtVWI5x8/RC/YMofQEGebQACyB6fjnG7OAj4TUwJgOkX9EUYkwfc//Cdb7z262NMMvAy/ttcjScOMwKHIh4rr1PRWEfhDzQR8rEtHAmxZH2nqEMPJrjl++BC8CHLpSTs/x1m3yFMh/kXE0fHDscHrSO7GvCWRMYstpg== 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=CghHbP4Fg67yLEByzTkUiNAOSsg04lNXuc3GffLJDsM=; b=Xqkl+yVda4qQFwL6KQbbFX5FB+tf9YkhN9vig7z+ILZqdixNAZUt6p1cVIKFM7FKdwCU5ylsJwr5yS4PxdFF0AeBe03wrHiCRtUPSHqPS8rYGU6/kDeeVMCvWMxIhT2aomjp03z5ReRYptpzT7L3Ht74PImVeOt4CpVC63JQa8z4C9aY2uOjfziZ/SUhVYkJQgP4mbBAkSNuQRe+GHPPG2/pVP0AL55gZQeQQmxM9gGHEDta33073t4Heg8kgoj7D+K7b1ThNOoCOcAzff5wxDhSQHOVUfsZQ/cRAs1LF1yYIB5a/5JUA+eeHlUenXQMHus9LUE+YiNu1o847V0SWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by CY4PR11MB0037.namprd11.prod.outlook.com (2603:10b6:910:77::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.12; Thu, 9 Jun 2022 01:59:36 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::d4ff:ac50:621a:60e7]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::d4ff:ac50:621a:60e7%7]) with mapi id 15.20.5314.019; Thu, 9 Jun 2022 01:59:36 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "jasowang@redhat.com" , "david.marchand@redhat.com" , "Matz, Olivier" , "Ma, WenwuX" , "Zhang, Yuying" , "Singh, Aman Deep" Subject: RE: [PATCH v2 5/6] net/vhost: perform SW checksum in Rx path Thread-Topic: [PATCH v2 5/6] net/vhost: perform SW checksum in Rx path Thread-Index: AQHYezZXF2VWLR/Yb0SiRX6w8kvTFK1GUPng Date: Thu, 9 Jun 2022 01:59:36 +0000 Message-ID: References: <20220608124946.102623-1-maxime.coquelin@redhat.com> <20220608124946.102623-6-maxime.coquelin@redhat.com> In-Reply-To: <20220608124946.102623-6-maxime.coquelin@redhat.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5e8be68b-e2fd-43d1-797c-08da49bbb49b x-ms-traffictypediagnostic: CY4PR11MB0037:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: G/i4Bi72w2zPv6RYQeq8FE6ShDoZwnZumu155JoP+sFNwC5CJJdFDcqVkKT6hok4sPwquSIaPxlVc3ixxsltkJxIK7KxpMEw0ga7Qu5nQ2HlHgxhmklS8AL6hhgm1h1rD1p5J2xtRHjZwxul8Uit0HgZZDjzlMEB+C3yRZ6FQTrmsd4YR+1RmxTvgwfHDkcCfV9kM4zrrk21ScwB4EE3onB9VQ2jcm1+/SHrbxdXtsGuoONrzn0YupZ+8n1k4EmQqKWwbkGtQTo5wVAdLyRa0vGpItfoiX3mZ3ADCB0LlPnLOrR2ZmqkyB1l+ebpsEZC2WZukU6OqPOB4RC15JlLDOe3egvideSBzjhvZtudOYFMItLi2lRimNJpp5nJQNX898KXKWBLeUNJkoRc3xEpxa7b0YCnI0kWQb+T+8Wo48+/ZfN8snJ4iOoMVflyJGtGOw6O3QHc6mE9YYypHJJzNda+K2zd6BmtSYHb9KRcH27L+09xZ7hZFIUdypPk+nokQkkS7Y++spPipntOtCTuY+5kDyCozXi/8nkv/hFdTqEsJctygugAnOxdj+VBOWvVYpdgRYRJdIw/Du+oD1IoLB/QOnVCPfG+sbCYmYhqv66/if67XA5Q0Jxif3qJ2+OvMyEzrPi9yBLaDHjOTzgXSFm8UtknnGUEV+kb8qHpyqcfMD63EkEvoiRiaD9MhY0y4VT7QANQA/EW4+l5az/tXRo2q1TYjNk+QaEG8W4toP4= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(83380400001)(508600001)(71200400001)(316002)(2906002)(86362001)(33656002)(110136005)(6636002)(38070700005)(55016003)(9686003)(26005)(52536014)(122000001)(53546011)(7696005)(921005)(6506007)(82960400001)(186003)(38100700002)(76116006)(8936002)(5660300002)(66476007)(64756008)(8676002)(66946007)(66446008)(66556008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ckBatZH1n4AJ4z1yiWVfXp+n+bk/p02vwsVic2g+yHelidpONmUE51kVd0p9?= =?us-ascii?Q?H0OSnV3S/V0hxblGjOc6yCXfkBN7emVXm37iQ8PcWRJDtOSK2NyNdaoonbhG?= =?us-ascii?Q?1jbqt8JEvfWQKEOYzJyC4J+JdAXL7Z8IK/1ujUuuqVt+zZcKMcWpN2/c/3mo?= =?us-ascii?Q?tNqq4ivlTxioc7yLW2T5257xFq430so3xtUAgiqqI4QPNYjHlPcCTR5+EGMi?= =?us-ascii?Q?jxfkVynJHiUSA8P23dNEILiDRQ445gdbwsQk9syU3m/jbG6jJba/PAMJy2hC?= =?us-ascii?Q?E+KhSPgj5H6Zsr29UhLa0SA1w/zfqGx9t6DukC3NIchmYUK+QfwLIF1LbI8a?= =?us-ascii?Q?xR86LWlfmWq9ozhtSdFmHZ/7HbBEbCWuYKc6SY8Suw6g3VGjZKgTcxlXr5hX?= =?us-ascii?Q?evJVhQYgWe6rRkBCrvXa8BIHxd5SEF96XJM2gYqCtTK2RjatVXWAq1n1xquL?= =?us-ascii?Q?TxMdeDWNV3VOut4yUggtqBp4hIfSaa4sy+2CazQHjmADEZSu8ZNtMRz87tb+?= =?us-ascii?Q?PG1PEjM0crCxJmugy4zsl9XRwS93IVONveY2Ve4wVLCSQ359yyw6QG5WUI/6?= =?us-ascii?Q?D7v+Z0WY/c+6iInNakgUhyZFaLyMTGeq6hMd7ITicxLBBNTe5RY3eF3cAM53?= =?us-ascii?Q?6J+u+wV1wBNXZnE3/Ubwu2RKjucrqLifFCeKts1lcLDYpL/kMYREEXR52QFF?= =?us-ascii?Q?Ys4/w+sW+XbaZELDpRp5s4AVNRwjageEVlp56++zkFoZLC6Am0Yos7s6jkmo?= =?us-ascii?Q?5YibjEZafsxpQTpd7XGM7QhaYcWnGx1Yc0QFUvl4ZJLhCwUzlvxtOFZh7y3J?= =?us-ascii?Q?ee41ufnllrBRMO1yftrfiNBV1MWCLZC7MLVqIPeIXeEK842KRK194SiCOuOh?= =?us-ascii?Q?pm5b0Fu6tpE8dWdgBeQnvVr8xameHrhFkyNuZEklCutXSu51hz7HUiA1albZ?= =?us-ascii?Q?Os8PIZm5/o7lnA+Bne1LE1gOTa5EhryjFHD3+pVnFaAaFulIU2Qia+FAs1mv?= =?us-ascii?Q?TWNz1x4nlIVP1XUdp1pKWbvgUSn0DivmXMKlOWgyMIaVwZznknUgORXIkPBm?= =?us-ascii?Q?l+x3JNWb4ylegNrE3ktDPwBFwPS2uLbkMSjZ9/99QjiQA9YFpbHeJZkLm5Hw?= =?us-ascii?Q?KgutkOZjW+gWxrXcAtOKuLc8ulPQ0SA+/Gz0V1ccpZhAhHr/w9nGZRXIssQc?= =?us-ascii?Q?98EEMyge93x+jF3lrUMeWavpenzhrdttLqrszVMrwv5DMCPFPUrs2YqX54bH?= =?us-ascii?Q?zZRrIv32ciG/quX7RYvJGtKKIRuMf4CU30lLAkSwX+jlR/GV42eIi3lv0LMr?= =?us-ascii?Q?lHaf7XyunFbipx3dCiLy9c22yweeMFLfOb8wPn/iWCHOOxgNmpDXiozkFCrU?= =?us-ascii?Q?W6h8jA8SVQNLDQ71CtOJphEUBvCMGtubTCj5Fmk81t0OvoqAV1JfZ7foUzva?= =?us-ascii?Q?C3+ygcTM5mGhzfotXlKpxR7t8DD2wojT4sziOnqb0++gU5+ygirt7NNbZ0S7?= =?us-ascii?Q?EkNPDWUqAUYNXA5dUr7rgn40VrgOVAtMsUyTXFiXwx9L/KmJ5MuQ7uZyTRlT?= =?us-ascii?Q?B/vK3yqQzW+GxzZBNPDUxFfIXv94a2Bd4l2i6M7BN4KH5FmUjyAFwoJkc1BK?= =?us-ascii?Q?QpZgVEHq+HsKBpUn3paP+QWChE40SperBnJOXv/y+4u/CLK1nXMmEEODRuAx?= =?us-ascii?Q?4XfaCRRpB1bsY2eO6h+pqXGkl0eM6f7e09rPtjKawYG8Temvamn0vjE/DH5w?= =?us-ascii?Q?KRa0D2SmSA=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e8be68b-e2fd-43d1-797c-08da49bbb49b X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jun 2022 01:59:36.3677 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +dUJSqnlTUTRYx1WbN9wKNeZ1bHQAnjsSQGMQtrSNtGjMbXGEYKV5TWTfh/4db0es1wZVE9GOPSChyNXLDiL3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB0037 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Hi Maxime, > -----Original Message----- > From: Maxime Coquelin > Sent: Wednesday, June 8, 2022 8:50 PM > To: dev@dpdk.org; jasowang@redhat.com; Xia, Chenbo = ; > david.marchand@redhat.com; Matz, Olivier ; Ma, > WenwuX ; Zhang, Yuying ; > Singh, Aman Deep > Cc: Maxime Coquelin > Subject: [PATCH v2 5/6] net/vhost: perform SW checksum in Rx path >=20 > Virtio specification supports host checksum offloading > for L4, which is enabled with VIRTIO_NET_F_CSUM feature > negotiation. However, the Vhost PMD does not advertise > Rx checksum offload capabilities, so we can end-up with > the VIRTIO_NET_F_CSUM feature being negotiated, implying > the Vhost library returns packets with checksum being > offloaded while the application did not request for it. >=20 > Advertising these offload capabilities at the ethdev level > is not enough, because we could still end-up with the > application not enabling these offloads while the guest > still negotiate them. >=20 > This patch advertises the Rx checksum offload capabilities, > and introduces a compatibility layer to cover the case > VIRTIO_NET_F_CSUM has been negotiated but the application > does not configure the Rx checksum offloads. This function > performis the L4 Rx checksum in SW for UDP and TCP. Note performs > that it is not needed to calculate the pseudo-header > checksum, because the Virtio specification requires that > the driver do it. >=20 > This patch does not advertise SCTP checksum offloading > capability for now, but it could be handled later if the > need arises. >=20 > Reported-by: Jason Wang > Signed-off-by: Maxime Coquelin > --- > doc/guides/nics/features/vhost.ini | 1 + > drivers/net/vhost/rte_eth_vhost.c | 83 ++++++++++++++++++++++++++++++ > 2 files changed, 84 insertions(+) >=20 > diff --git a/doc/guides/nics/features/vhost.ini > b/doc/guides/nics/features/vhost.ini > index ef81abb439..15f4dfe5e8 100644 > --- a/doc/guides/nics/features/vhost.ini > +++ b/doc/guides/nics/features/vhost.ini > @@ -7,6 +7,7 @@ > Link status =3D Y > Free Tx mbuf on demand =3D Y > Queue status event =3D Y > +L4 checksum offload =3D P > Basic stats =3D Y > Extended stats =3D Y > x86-32 =3D Y > diff --git a/drivers/net/vhost/rte_eth_vhost.c > b/drivers/net/vhost/rte_eth_vhost.c > index e931d59053..42f0d52ebc 100644 > --- a/drivers/net/vhost/rte_eth_vhost.c > +++ b/drivers/net/vhost/rte_eth_vhost.c > @@ -12,6 +12,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -85,10 +86,12 @@ struct pmd_internal { > char *iface_name; > uint64_t flags; > uint64_t disable_flags; > + uint64_t features; > uint16_t max_queues; > int vid; > rte_atomic32_t started; > bool vlan_strip; > + bool rx_sw_csum; > }; >=20 > struct internal_list { > @@ -275,6 +278,70 @@ vhost_dev_xstats_get(struct rte_eth_dev *dev, struct > rte_eth_xstat *xstats, > return nstats; > } >=20 > +static void > +vhost_dev_csum_configure(struct rte_eth_dev *eth_dev) > +{ > + struct pmd_internal *internal =3D eth_dev->data->dev_private; > + const struct rte_eth_rxmode *rxmode =3D ð_dev->data- > >dev_conf.rxmode; > + > + internal->rx_sw_csum =3D false; > + > + /* SW checksum is not compatible with legacy mode */ > + if (!(internal->flags & RTE_VHOST_USER_NET_COMPLIANT_OL_FLAGS)) > + return; > + > + if (internal->features & (1ULL << VIRTIO_NET_F_CSUM)) { > + if (!(rxmode->offloads & > + (RTE_ETH_RX_OFFLOAD_UDP_CKSUM | > RTE_ETH_RX_OFFLOAD_TCP_CKSUM))) { > + VHOST_LOG(NOTICE, "Rx csum will be done in SW, may > impact performance."); Missing \n With above fixed: Reviewed-by: Chenbo Xia > + internal->rx_sw_csum =3D true; > + } > + } > +} > + > +static void > +vhost_dev_rx_sw_csum(struct rte_mbuf *mbuf) > +{ > + struct rte_net_hdr_lens hdr_lens; > + uint32_t ptype, hdr_len; > + uint16_t csum =3D 0, csum_offset; > + > + /* Return early if the L4 checksum was not offloaded */ > + if ((mbuf->ol_flags & RTE_MBUF_F_RX_L4_CKSUM_MASK) !=3D > RTE_MBUF_F_RX_L4_CKSUM_NONE) > + return; > + > + ptype =3D rte_net_get_ptype(mbuf, &hdr_lens, RTE_PTYPE_ALL_MASK); > + > + hdr_len =3D hdr_lens.l2_len + hdr_lens.l3_len; > + > + switch (ptype & RTE_PTYPE_L4_MASK) { > + case RTE_PTYPE_L4_TCP: > + csum_offset =3D offsetof(struct rte_tcp_hdr, cksum) + hdr_len; > + break; > + case RTE_PTYPE_L4_UDP: > + csum_offset =3D offsetof(struct rte_udp_hdr, dgram_cksum) + > hdr_len; > + break; > + default: > + /* Unsupported packet type */ > + return; > + } > + > + /* The pseudo-header checksum is already performed, as per Virtio > spec */ > + if (rte_raw_cksum_mbuf(mbuf, hdr_len, rte_pktmbuf_pkt_len(mbuf) - > hdr_len, &csum) < 0) > + return; > + > + csum =3D ~csum; > + /* See RFC768 */ > + if (unlikely((ptype & RTE_PTYPE_L4_UDP) && csum =3D=3D 0)) > + csum =3D 0xffff; > + > + if (rte_pktmbuf_data_len(mbuf) >=3D csum_offset + 1) > + *rte_pktmbuf_mtod_offset(mbuf, uint16_t *, csum_offset) =3D csum; > + > + mbuf->ol_flags &=3D ~RTE_MBUF_F_RX_L4_CKSUM_MASK; > + mbuf->ol_flags |=3D RTE_MBUF_F_RX_L4_CKSUM_GOOD; > +} > + > static uint16_t > eth_vhost_rx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs) > { > @@ -315,6 +382,9 @@ eth_vhost_rx(void *q, struct rte_mbuf **bufs, uint16_= t > nb_bufs) > if (r->internal->vlan_strip) > rte_vlan_strip(bufs[i]); >=20 > + if (r->internal->rx_sw_csum) > + vhost_dev_rx_sw_csum(bufs[i]); > + > r->stats.bytes +=3D bufs[i]->pkt_len; > } >=20 > @@ -711,6 +781,11 @@ new_device(int vid) > eth_dev->data->numa_node =3D newnode; > #endif >=20 > + if (rte_vhost_get_negotiated_features(vid, &internal->features)) { > + VHOST_LOG(ERR, "Failed to get device features\n"); > + return -1; > + } > + > internal->vid =3D vid; > if (rte_atomic32_read(&internal->started) =3D=3D 1) { > queue_setup(eth_dev, internal); > @@ -733,6 +808,8 @@ new_device(int vid) >=20 > eth_dev->data->dev_link.link_status =3D RTE_ETH_LINK_UP; >=20 > + vhost_dev_csum_configure(eth_dev); > + > rte_atomic32_set(&internal->dev_attached, 1); > update_queuing_status(eth_dev); >=20 > @@ -1039,6 +1116,8 @@ eth_dev_configure(struct rte_eth_dev *dev) >=20 > internal->vlan_strip =3D !!(rxmode->offloads & > RTE_ETH_RX_OFFLOAD_VLAN_STRIP); >=20 > + vhost_dev_csum_configure(dev); > + > return 0; > } >=20 > @@ -1189,6 +1268,10 @@ eth_dev_info(struct rte_eth_dev *dev, > dev_info->tx_offload_capa =3D RTE_ETH_TX_OFFLOAD_MULTI_SEGS | > RTE_ETH_TX_OFFLOAD_VLAN_INSERT; > dev_info->rx_offload_capa =3D RTE_ETH_RX_OFFLOAD_VLAN_STRIP; > + if (internal->flags & RTE_VHOST_USER_NET_COMPLIANT_OL_FLAGS) { > + dev_info->rx_offload_capa |=3D RTE_ETH_RX_OFFLOAD_UDP_CKSUM | > + RTE_ETH_RX_OFFLOAD_TCP_CKSUM; > + } >=20 > return 0; > } > -- > 2.35.3