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 12D94A10DA for ; Fri, 2 Aug 2019 23:36:33 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0D1831C2F5; Fri, 2 Aug 2019 23:36:33 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00049.outbound.protection.outlook.com [40.107.0.49]) by dpdk.org (Postfix) with ESMTP id 4CC671C2F5 for ; Fri, 2 Aug 2019 23:36:31 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G1aSOfRk8CS3O4VgSihxWfRQ/AwJDnZ7G72vhK7G7eti2DPtgxp8YVrm0NSM4h+gXrTFkLmrJoVJjrtBwWUYQ9oMNNb+D+/g499gic964z/IeaSkXynBa7NLsZd4h9dIjN5hszOvgTkaoold9rsml0wM9jxYMtWUJRoge6HmECAp3H0Z9q4qPxnyGYEsgSoXyMsslMKAczOFnA55RIpXRhngTd2de+4mTq33VTeVtMydHXngnNPxMHCHoU3iAIV0BKc1IT2MrnipLtiXO1p+AIBToGGXbzkzXVf8tgCK/0tZp0YXYsNz++syu0qQ1BDq++Vz2/KRfQfaeSuq2Ae0cA== 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=1ZrYUPzFobIZUVtEQygGi+cEJug3jckt8Yu1phpfvr8=; b=Zevsw+ktrjyKkDlB9JGh0W0SOauoGktQXRNb43ElJak7t4zCZ9I87YWU1tB0AFMK3PMBCDrMnO6vDnn24sg0T6qRxR6mCrkp4yMrLyGVXa0leF1nLUF4r8svof9IFCe55iHRbECMuS8Ml5e5WwIyNLSD8PtGBx/led7mmxeCAwh2JOxxy3aTxKLHnprlMf9WKfXs9B20WZRm/V+VxnO8AjEEly5i4pRezNM0cBt7x/rC5dbSbsSTgKy/7dWtscv6NsTrEZ06tVmTUMeRCduEstoV0ve6fca49uaKRO/gZKhFpPbfBti4B68myivh1fRew01gVYIqQrGrUX10bx9vWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=mellanox.com;dmarc=pass action=none header.from=mellanox.com;dkim=pass header.d=mellanox.com;arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1ZrYUPzFobIZUVtEQygGi+cEJug3jckt8Yu1phpfvr8=; b=bm82nZ8jSNvoasGSwp9y69IXWaOTRn2WLHx9IUHJJE9jGEMaBApcL4joCqUHv4CflZ7AhUa96+2vK4o5Q4mLl0+KtPa7ynKazZMK9q0fX4gvlIfalXGBk7yayuZ30cl/ShObCGSmlYECjRPKbUGlEUrUBy0o1f285BXFQQY2lXE= Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com (52.134.72.27) by DB3PR0502MB4026.eurprd05.prod.outlook.com (52.134.72.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2136.15; Fri, 2 Aug 2019 21:36:30 +0000 Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::589a:a9d4:5426:d194]) by DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::589a:a9d4:5426:d194%6]) with mapi id 15.20.2136.010; Fri, 2 Aug 2019 21:36:30 +0000 From: Yongseok Koh To: Rahul Lakkireddy CC: dpdk stable , "vishal@chelsio.com" Thread-Topic: [dpdk-stable] [PATCH 17.11] net/cxgbe: fix missing checksum flags and packet type Thread-Index: AQHVSSlMOi/J7o6nKkO7TAUFU01xhaboYl4A Date: Fri, 2 Aug 2019 21:36:30 +0000 Message-ID: <1A43EF16-045A-4463-9592-16CC5DE27847@mellanox.com> References: <1564743167-11521-1-git-send-email-rahul.lakkireddy@chelsio.com> In-Reply-To: <1564743167-11521-1-git-send-email-rahul.lakkireddy@chelsio.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; x-originating-ip: [209.116.155.178] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d146605f-c050-4a4d-33b3-08d717917b84 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DB3PR0502MB4026; x-ms-traffictypediagnostic: DB3PR0502MB4026: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:473; x-forefront-prvs: 011787B9DD x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(39860400002)(376002)(346002)(366004)(136003)(189003)(199004)(54906003)(81156014)(229853002)(53936002)(5660300002)(186003)(66066001)(6486002)(486006)(102836004)(476003)(81166006)(26005)(99286004)(25786009)(478600001)(71200400001)(33656002)(6436002)(6916009)(2906002)(256004)(76176011)(8936002)(2616005)(11346002)(6512007)(91956017)(66476007)(66946007)(66446008)(64756008)(6506007)(66556008)(446003)(53546011)(71190400001)(6116002)(7736002)(3846002)(86362001)(76116006)(14454004)(305945005)(68736007)(36756003)(6246003)(316002)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB4026; H:DB3PR0502MB3980.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: l4WZjsHVa+5AUl0kPNpj1ZX/JBBn4uAg37KzWahkwpWKd55RdMh1aURsPfs3R3SkK59EG7CXpUT32EI0alHelmheWgWFdjuYy6q98VkJtJ15RZsvZK12dAK1Da/wTs2d9Esw3+j2S6S3POcxiFdpfejUKvv3EW7cz/PfX5TPdWvcOhmOhHiLobVYcJFdonMcnIBrGsfGbQ5Et0dArvOzJT3hM8u7inUUWxssVjdhlUA6r0scW5loqBjo/3oaI6373zKnDLyscGB79Dt05QL1O3JG0rCCwiIZNw0TShHcqnHmYHjbjR+XsHG+O8Z+xPpY5DtZxb15EGA0V7HXb/plwWDUf8Mjm7pHZizvS8OWX4iREYuUlwC/h5PAHctA/dHuVbfQIaK5EfWpOZzQVMhva146r/uEhSUQAk3kr/cuR3w= Content-Type: text/plain; charset="us-ascii" Content-ID: <29F4FB24CFAF574D90642899A4B80539@eurprd05.prod.outlook.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: d146605f-c050-4a4d-33b3-08d717917b84 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Aug 2019 21:36:30.4443 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yskoh@mellanox.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0502MB4026 Subject: Re: [dpdk-stable] [PATCH 17.11] net/cxgbe: fix missing checksum flags and packet type X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" > On Aug 2, 2019, at 3:52 AM, Rahul Lakkireddy wrote: >=20 > From: Vishal Kulkarni >=20 > [ backported from upstream commit df68e75a79a4d0f86d0ebea2d43775759e066a2= a ] >=20 > Checksum good offload flags are not being set and some of the > packet type flags are missing on received packets. So, rework > Rx path to set proper ol_flags and packet_type in mbufs. >=20 > Fixes: 78fc1a716ae8 ("cxgbe: improve Rx performance") >=20 > Signed-off-by: Vishal Kulkarni > Signed-off-by: Rahul Lakkireddy > --- applied to stable/17.11 thanks, > drivers/net/cxgbe/sge.c | 77 +++++++++++++++++++++++++---------------- > 1 file changed, 48 insertions(+), 29 deletions(-) >=20 > diff --git a/drivers/net/cxgbe/sge.c b/drivers/net/cxgbe/sge.c > index 51800845b..babff0b9b 100644 > --- a/drivers/net/cxgbe/sge.c > +++ b/drivers/net/cxgbe/sge.c > @@ -1432,6 +1432,52 @@ static inline void rspq_next(struct sge_rspq *q) > } > } >=20 > +static inline void cxgbe_set_mbuf_info(struct rte_mbuf *pkt, uint32_t pt= ype, > + uint64_t ol_flags) > +{ > + pkt->packet_type |=3D ptype; > + pkt->ol_flags |=3D ol_flags; > +} > + > +static inline void cxgbe_fill_mbuf_info(struct adapter *adap, > + const struct cpl_rx_pkt *cpl, > + struct rte_mbuf *pkt) > +{ > + bool csum_ok; > + u16 err_vec; > + > + if (adap->params.tp.rx_pkt_encap) > + err_vec =3D G_T6_COMPR_RXERR_VEC(ntohs(cpl->err_vec)); > + else > + err_vec =3D ntohs(cpl->err_vec); > + > + csum_ok =3D cpl->csum_calc && !err_vec; > + > + if (cpl->vlan_ex) > + cxgbe_set_mbuf_info(pkt, RTE_PTYPE_L2_ETHER_VLAN, > + PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED); > + else > + cxgbe_set_mbuf_info(pkt, RTE_PTYPE_L2_ETHER, 0); > + > + if (cpl->l2info & htonl(F_RXF_IP)) > + cxgbe_set_mbuf_info(pkt, RTE_PTYPE_L3_IPV4, > + csum_ok ? PKT_RX_IP_CKSUM_GOOD : > + PKT_RX_IP_CKSUM_BAD); > + else if (cpl->l2info & htonl(F_RXF_IP6)) > + cxgbe_set_mbuf_info(pkt, RTE_PTYPE_L3_IPV6, > + csum_ok ? PKT_RX_IP_CKSUM_GOOD : > + PKT_RX_IP_CKSUM_BAD); > + > + if (cpl->l2info & htonl(F_RXF_TCP)) > + cxgbe_set_mbuf_info(pkt, RTE_PTYPE_L4_TCP, > + csum_ok ? PKT_RX_L4_CKSUM_GOOD : > + PKT_RX_L4_CKSUM_BAD); > + else if (cpl->l2info & htonl(F_RXF_UDP)) > + cxgbe_set_mbuf_info(pkt, RTE_PTYPE_L4_UDP, > + csum_ok ? PKT_RX_L4_CKSUM_GOOD : > + PKT_RX_L4_CKSUM_BAD); > +} > + > /** > * process_responses - process responses from an SGE response queue > * @q: the ingress queue to process > @@ -1482,8 +1528,6 @@ static int process_responses(struct sge_rspq *q, in= t budget, > (const void *)&q->cur_desc[1]; > struct rte_mbuf *pkt, *npkt; > u32 len, bufsz; > - bool csum_ok; > - u16 err_vec; >=20 > rc =3D (const struct rsp_ctrl *) > ((const char *)q->cur_desc + > @@ -1500,16 +1544,6 @@ static int process_responses(struct sge_rspq *q, i= nt budget, > len =3D G_RSPD_LEN(len); > pkt->pkt_len =3D len; >=20 > - /* Compressed error vector is enabled for > - * T6 only > - */ > - if (q->adapter->params.tp.rx_pkt_encap) > - err_vec =3D G_T6_COMPR_RXERR_VEC( > - ntohs(cpl->err_vec)); > - else > - err_vec =3D ntohs(cpl->err_vec); > - csum_ok =3D cpl->csum_calc && !err_vec; > - > /* Chain mbufs into len if necessary */ > while (len) { > struct rte_mbuf *new_pkt =3D rsd->buf; > @@ -1527,20 +1561,7 @@ static int process_responses(struct sge_rspq *q, i= nt budget, > npkt->next =3D NULL; > pkt->nb_segs--; >=20 > - if (cpl->l2info & htonl(F_RXF_IP)) { > - pkt->packet_type =3D RTE_PTYPE_L3_IPV4; > - if (unlikely(!csum_ok)) > - pkt->ol_flags |=3D > - PKT_RX_IP_CKSUM_BAD; > - > - if ((cpl->l2info & > - htonl(F_RXF_UDP | F_RXF_TCP)) && > - !csum_ok) > - pkt->ol_flags |=3D > - PKT_RX_L4_CKSUM_BAD; > - } else if (cpl->l2info & htonl(F_RXF_IP6)) { > - pkt->packet_type =3D RTE_PTYPE_L3_IPV6; > - } > + cxgbe_fill_mbuf_info(q->adapter, cpl, pkt); >=20 > if (!rss_hdr->filter_tid && > rss_hdr->hash_type) { > @@ -1549,10 +1570,8 @@ static int process_responses(struct sge_rspq *q, i= nt budget, > ntohl(rss_hdr->hash_val); > } >=20 > - if (cpl->vlan_ex) { > - pkt->ol_flags |=3D PKT_RX_VLAN; > + if (cpl->vlan_ex) > pkt->vlan_tci =3D ntohs(cpl->vlan); > - } >=20 > rxq->stats.pkts++; > rxq->stats.rx_bytes +=3D pkt->pkt_len; > --=20 > 2.18.0 >=20