From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 01D0DA052B; Wed, 29 Jul 2020 12:48:38 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 223C94C98; Wed, 29 Jul 2020 12:48:37 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id DE8FDF04; Wed, 29 Jul 2020 12:48:34 +0200 (CEST) IronPort-SDR: TO4ixpsACNybQhIeQFRybYp8zvGN7pHQYwErJoOkmrg5kK/f7Ju3xNJsZBwsSNur74GG4etZ/f ir8AVv1/l6vA== X-IronPort-AV: E=McAfee;i="6000,8403,9696"; a="139408039" X-IronPort-AV: E=Sophos;i="5.75,410,1589266800"; d="scan'208";a="139408039" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jul 2020 03:48:33 -0700 IronPort-SDR: ekPbSbLLy0wXKxi9zXXQnVpmo8BzNOQHeGfFUm9kPGdOwsSCNUz3cRv6gGSwjMyFI+GTVQHKet 0XRnIyoONFtw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,410,1589266800"; d="scan'208";a="273854190" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga008.fm.intel.com with ESMTP; 29 Jul 2020 03:48:32 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 29 Jul 2020 03:48:32 -0700 Received: from ORSEDG002.ED.cps.intel.com (10.7.248.5) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 29 Jul 2020 03:48:32 -0700 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (104.47.44.54) by edgegateway.intel.com (134.134.137.101) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 29 Jul 2020 03:48:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DYBP3v0MzDREcKgI5s2fD4nuZFgL8oZlL5sr782WkRrX9YFBdJbk1solXLCQQnsgzn11tgEEiRx30ghtfjeQYbGKlQvZUuyuyC76EHyI2BGojrIEiZhUXLRvKiuvzJvWRtlF1pU1eWPMV+M3nLN1Gw3A5C6hmQZu5E+EI7K1qipweAW6l5oT18Z0EiwRz+i3jKG/+oVF5b3FCCTcEM6xE3aASUjmkPG5zeF98486mAXugOgt6y4CCNUUpsOv2yR/gb4xrv3xcOlIamB8ESw/0B+Hbt6IuBMqiegSOt9FCgaBeB9jjQPyeHubpG0sjbQRR5yHo6WBBtpqHjyMg6rBWQ== 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-SenderADCheck; bh=BvGvQ3Hwlnxpag8pRA38Y30/KwlvXsowfDNhIcZnoIU=; b=N4iuUjzvzySAls+w67RPUmUatswN14qDw9QrMAj5TQdycKGNj0VtOPpYAWG+2RaH6ccMYkrL2R3WtkX4dqi3RwAGaqDYk8rg96AUxlULXffET0uv4lPqDu+1p+EHl4j+j9VD/raeuw19mfnytFwiDGDTOMVmkHhhPU9qkiHZSuzWSyuGc3NPSuZ28PfJjUzI2H4V9m1ILzskGVpivNEugl9TXOL1keWyT8rWAXK83/ysKvfPN4jIT6lxCibcCWBt0Koh78blI2fc+vF+YBcGHNwtwigugbu2fMxYT8OlbpSYWxvqaDpxgVsr9F9JBNZTDVcSLzlCfpIhUeKUFA/BlA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BvGvQ3Hwlnxpag8pRA38Y30/KwlvXsowfDNhIcZnoIU=; b=nu3jIWSdMhabnsWkyQGIDUnW6g5vyCFyMEJsd64fYjgmgAHmh7AuFWNKVEHRv5BDo/CABW+KUa/7LsVthswr/HpF+eDEd0aydiH93MuRkn1PDZgiMXHJ2tKQtUS9NhkMtn2wtmnfIpsTWBJNmnzX3kEA77M3iMR+77bwlPx+i14= Received: from MWHPR11MB0032.namprd11.prod.outlook.com (2603:10b6:301:63::28) by MWHPR11MB1277.namprd11.prod.outlook.com (2603:10b6:300:29::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.23; Wed, 29 Jul 2020 10:48:29 +0000 Received: from MWHPR11MB0032.namprd11.prod.outlook.com ([fe80::ad56:beb0:400e:f325]) by MWHPR11MB0032.namprd11.prod.outlook.com ([fe80::ad56:beb0:400e:f325%7]) with mapi id 15.20.3216.034; Wed, 29 Jul 2020 10:48:29 +0000 From: "Yang, Qiming" To: "Wang, Haiyue" , "dev@dpdk.org" , "Zhang, Qi Z" CC: "Wang, Yinan" , "Xu, Ting" , "stable@dpdk.org" Thread-Topic: [PATCH v1] net/ice: calculate TCP header size for offload Thread-Index: AQHWZX5Okvt1ij5ZbkqJsssKJ9U5C6keXwbA Date: Wed, 29 Jul 2020 10:48:29 +0000 Message-ID: References: <20200729075039.336729-1-haiyue.wang@intel.com> In-Reply-To: <20200729075039.336729-1-haiyue.wang@intel.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9f13b043-b632-4bfa-9659-08d833acee59 x-ms-traffictypediagnostic: MWHPR11MB1277: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CGDkIXNyUIbmtpnV1xACR8CkrB2QESqUQfcvEZfoSVd5rHTQ3z70KZapYbTzfolDGJfjSyGTNbVZh74zEDzTx/Wk6xq72NuKHZ3GJOvws0dHO8OPrVVCOGtC5P445baUFNWFEaqqf4HVNxQblvd/3CUt4KDJgVRSA743K8j9sUsE+fepyJotQvsOPA7IURwnyRDM74UB2nAWlbNA0oyR8y0YR3GeGzE1N3QMR1VT5RNAW99HWZEGtLnWzB1P3mxYbfkRKV6/IbCPWH33mijKWZiXVjiqzD8+gTFoYdYjAaSkZExCoMXojzpL7MpIDqFvf9e5XfqH6iIUtqyQkkW/Bw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR11MB0032.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(396003)(366004)(346002)(376002)(136003)(8936002)(66946007)(86362001)(55016002)(8676002)(9686003)(66476007)(64756008)(66556008)(66446008)(33656002)(2906002)(76116006)(478600001)(316002)(52536014)(26005)(83380400001)(186003)(6636002)(7696005)(6506007)(53546011)(450100002)(110136005)(71200400001)(5660300002)(54906003)(4326008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: wTWXGbky/evu1U9YZWnTaj4PeJhZM097JBfLReJBcLPs75pSYuMtmfQYtVHgcvy3KjcoORkX6eySbaNPekXYpuTnshuJOAQLfJ/vAmh3Hp2rhuM9guie32YkEEKRB+0hljEin2BhvSiSOLc40LO6lzo/IgYblftc4UbtTrX1z0Q/OaHmm4kjAPVLiBlg0VwT2jirKJW+zmUv5OCvXexi358h+ZVOl+k4ZzyVG+lpmyOaleKk3M1DX7kjZ5U4DXYQq22dwxWkgCFGhJO1j4OIkIKn6FrSDwoW/icDoB5OqGYt7376qJOEZAwy2QIRh1fOp4ctF0X0hy9ht2WZYIsDXLuEDiyKajTgw4srBdNiou/nibctsuJEOQJeGt1NtHSknNHF9zgaTOJaOpAhyfGHuaI1C45BphPrKudulXN6Wz3St7quehgjKvMF9xBlPyIqbZyXjbSQONp25UoY1FMZ6GzjtpMfk9nbqjy9aG1tlyhIOPkRbXcOJRmUK9qC4JCm 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: MWHPR11MB0032.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f13b043-b632-4bfa-9659-08d833acee59 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jul 2020 10:48:29.7596 (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: DkoW9WmPuh+O5JhieVpd7DTcWHltiWX/zUkbUBzkgl6ECIdkP/I/znCYlgV9qs5WimY9kLZgFjqldwdghcFdPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1277 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v1] net/ice: calculate TCP header size for offload X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: Wang, Haiyue > Sent: Wednesday, July 29, 2020 15:51 > To: dev@dpdk.org; Yang, Qiming ; Zhang, Qi Z > > Cc: Wang, Yinan ; Xu, Ting ; > Wang, Haiyue ; stable@dpdk.org > Subject: [PATCH v1] net/ice: calculate TCP header size for offload >=20 > The ice needs the exact TCP header size including options for TCP checksu= m > offload, but according to PKT_TX_TCP_CKSUM note, l4_len is not required t= o > be set, so it needs to calculate the TCP header size if not set. >=20 > Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx") > Cc: stable@dpdk.org >=20 > Signed-off-by: Haiyue Wang > --- > drivers/net/ice/ice_rxtx.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) >=20 > diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c inde= x > ddf6a93fb2..bcb67ec251 100644 > --- a/drivers/net/ice/ice_rxtx.c > +++ b/drivers/net/ice/ice_rxtx.c > @@ -2371,6 +2371,28 @@ ice_calc_pkt_desc(struct rte_mbuf *tx_pkt) > return count; > } >=20 > +/* Calculate TCP header length for PKT_TX_TCP_CKSUM if not provided */ > +static inline uint16_t ice_calc_pkt_tcp_hdr(struct rte_mbuf *tx_pkt, > +union ice_tx_offload tx_offload) { > + uint16_t tcpoff =3D tx_offload.l2_len + tx_offload.l3_len; > + const struct rte_tcp_hdr *tcp_hdr; > + struct rte_tcp_hdr _tcp_hdr; > + > + if (tcpoff + sizeof(struct rte_tcp_hdr) < tx_pkt->data_len) { > + tcp_hdr =3D rte_pktmbuf_mtod_offset(tx_pkt, struct > rte_tcp_hdr *, > + tcpoff); > + No need blank line? > + return (tcp_hdr->data_off & 0xf0) >> 2; > + } > + > + tcp_hdr =3D rte_pktmbuf_read(tx_pkt, tcpoff, sizeof(_tcp_hdr), > &_tcp_hdr); > + if (tcp_hdr) > + return (tcp_hdr->data_off & 0xf0) >> 2; > + else > + return 0; > +} > + > uint16_t > ice_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t > nb_pkts) { @@ -2468,6 +2490,11 @@ ice_xmit_pkts(void *tx_queue, struct > rte_mbuf **tx_pkts, uint16_t nb_pkts) >=20 > /* Enable checksum offloading */ > if (ol_flags & ICE_TX_CKSUM_OFFLOAD_MASK) { > + if ((ol_flags & PKT_TX_L4_MASK) =3D=3D > PKT_TX_TCP_CKSUM && > + !tx_offload.l4_len) > + tx_offload.l4_len =3D > + ice_calc_pkt_tcp_hdr(tx_pkt, tx_offload); > + > ice_txd_enable_checksum(ol_flags, &td_cmd, > &td_offset, tx_offload); > } > -- > 2.28.0 Acked-by: Qiming Yang