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 A2416A0577; Sun, 5 Apr 2020 15:33:45 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 831AB2C5E; Sun, 5 Apr 2020 15:33:44 +0200 (CEST) Received: from mail-il1-f194.google.com (mail-il1-f194.google.com [209.85.166.194]) by dpdk.org (Postfix) with ESMTP id D9A792B83 for ; Sun, 5 Apr 2020 15:33:42 +0200 (CEST) Received: by mail-il1-f194.google.com with SMTP id t11so12125793ils.1 for ; Sun, 05 Apr 2020 06:33:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uLm4wnrZwcgQ6x8tM4b1mUjNhZlNSoCMedrS+jftARg=; b=daszm0L5rtRMxNk1tuxGpGGdLUQV8VG9qQ6VqlkxeJPlhh+TGky5CXPFFYU5cWAIl3 JBPIL416TmVauzXukUvH3VySVGMQq0rRRByjewT3Oy1Jb/34XOJHtHQBcOwOeYsddG/d QwmrjVNSCZMi/tFyFmpbKiDI60AEqMGnRwrNEiCABhu2Yi5rnWhfJZDpalsvma3wNUCI FZ8MtZjY3VhgC8MJvrYCW1ZK3ciw+re/8GeDOOw0pkrp7h59JUt7AK7Yb6/r70zAUEvy OiRLBG+pE3tBy7e+E9PF362aD92fJPWn9swae02ezW88DpV12svq0UBw7F0eX6RXTfgu bq3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uLm4wnrZwcgQ6x8tM4b1mUjNhZlNSoCMedrS+jftARg=; b=BF+dvR9AHPFKhGAdJcMtUUlTYsWHY2ufTaRKvmWziTojSQNw9lwwRw3bj/c3SsFmf5 m8VKNLJWPrZv0C9HQRBEF/QVTdkZFGS7nyORrh0mHupO0YAYtAmUT6+sxd/9RHZ9mYSr kOKwIFApwxl5f8KR8LXJYyKyeVvPmh2UYVRZsUgUW8xdkXoCWqQ3xknpRlt9R5zvjM/7 T7teUlq1Ac4lrqU/0FSc6UUkV0J5ZBzU/InbNjeeiTRM/mwoQ8jT92cdsz6s63h8/hY0 JtWTE6iRKMLUkTFLJsQ5M9T21GDzPn4A454qDBR7qDTN4SXpIlbolxG5t+da2Pp+3XYs 7CSw== X-Gm-Message-State: AGi0PubvNkyGlVrMOdU7VMEGzsCtX3WsnGNlTkdRqdOMvrRns5w7SfSd cRcXn3OZVZxhN7ehyoQ6tPlkPEhfcSVjy4DfXlA= X-Google-Smtp-Source: APiQypKKn1YUZCIU6B0F8MRhQnKzX4FWWu2wrxd1fKu8dh0ydqetoKrPw/K6PEoyT/YlTwksep+L7gvjH5NuCXqu9zE= X-Received: by 2002:a92:2804:: with SMTP id l4mr17770770ilf.130.1586093621981; Sun, 05 Apr 2020 06:33:41 -0700 (PDT) MIME-Version: 1.0 References: <20200307095653.13471-1-kirankumark@marvell.com> In-Reply-To: <20200307095653.13471-1-kirankumark@marvell.com> From: Jerin Jacob Date: Sun, 5 Apr 2020 19:03:26 +0530 Message-ID: To: Kiran Kumar K , Ferruh Yigit Cc: Jerin Jacob , Nithin Dabilpuram , dpdk-dev Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [PATCH] net/octeontx2: offload bad L2/L3/L4 UDP lengths detection 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" On Sat, Mar 7, 2020 at 3:27 PM wrote: > > From: Kiran Kumar K > > Octeontx2 HW has support for detecting the bad L2/L3/L4 UDP lengths. > Since DPDK does not have specific error flag for this, exposing it > as bad checksum failure in mbuff:ol_flags to leverage this feature. > > These errors will be propagated to the ol_flags as follows. > > L2 length error ==> (PKT_RX_IP_CKSUM_BAD | PKT_RX_L4_CKSUM_BAD). > Both Outer and Inner L3 length error ==> PKT_RX_IP_CKSUM_BAD. > Outer L4 UDP length/port error ==> PKT_RX_OUTER_L4_CKSUM_BAD. > Inner L4 UDP length/port error ==> PKT_RX_L4_CKSUM_BAD. > > Signed-off-by: Kiran Kumar K Acked-by: Jerin Jacob Applied to dpdk-next-net-mrvl/master. Thanks > --- > drivers/net/octeontx2/otx2_ethdev.c | 8 +++++++- > drivers/net/octeontx2/otx2_lookup.c | 21 +++++++++++++++------ > 2 files changed, 22 insertions(+), 7 deletions(-) > > diff --git a/drivers/net/octeontx2/otx2_ethdev.c b/drivers/net/octeontx2/otx2_ethdev.c > index e60f4901c..7202af625 100644 > --- a/drivers/net/octeontx2/otx2_ethdev.c > +++ b/drivers/net/octeontx2/otx2_ethdev.c > @@ -70,7 +70,13 @@ nix_lf_alloc(struct otx2_eth_dev *dev, uint32_t nb_rxq, uint32_t nb_txq) > req->rx_cfg |= BIT_ULL(37 /* CSUM_OL4 */); > req->rx_cfg |= BIT_ULL(36 /* CSUM_IL4 */); > } > - req->rx_cfg |= BIT_ULL(32 /* DROP_RE */); > + req->rx_cfg |= (BIT_ULL(32 /* DROP_RE */) | > + BIT_ULL(33 /* Outer L2 Length */) | > + BIT_ULL(38 /* Inner L4 UDP Length */) | > + BIT_ULL(39 /* Inner L3 Length */) | > + BIT_ULL(40 /* Outer L4 UDP Length */) | > + BIT_ULL(41 /* Outer L3 Length */)); > + > if (dev->rss_tag_as_xor == 0) > req->flags = NIX_LF_RSS_TAG_LSB_AS_ADDER; > > diff --git a/drivers/net/octeontx2/otx2_lookup.c b/drivers/net/octeontx2/otx2_lookup.c > index 89365ffad..9dcfc750d 100644 > --- a/drivers/net/octeontx2/otx2_lookup.c > +++ b/drivers/net/octeontx2/otx2_lookup.c > @@ -270,7 +270,9 @@ nix_create_rx_ol_flags_array(void *mem) > > switch (errlev) { > case NPC_ERRLEV_RE: > - /* Mark all errors as BAD checksum errors */ > + /* Mark all errors as BAD checksum errors > + * including Outer L2 length mismatch error > + */ > if (errcode) { > val |= PKT_RX_IP_CKSUM_BAD; > val |= PKT_RX_L4_CKSUM_BAD; > @@ -295,18 +297,25 @@ nix_create_rx_ol_flags_array(void *mem) > val |= PKT_RX_IP_CKSUM_GOOD; > break; > case NPC_ERRLEV_NIX: > - val |= PKT_RX_IP_CKSUM_GOOD; > - if (errcode == NIX_RX_PERRCODE_OL4_CHK) { > + if (errcode == NIX_RX_PERRCODE_OL4_CHK || > + errcode == NIX_RX_PERRCODE_OL4_LEN || > + errcode == NIX_RX_PERRCODE_OL4_PORT) { > + val |= PKT_RX_IP_CKSUM_GOOD; > val |= PKT_RX_OUTER_L4_CKSUM_BAD; > + } else if (errcode == NIX_RX_PERRCODE_IL4_CHK || > + errcode == NIX_RX_PERRCODE_IL4_LEN || > + errcode == NIX_RX_PERRCODE_IL4_PORT) { > + val |= PKT_RX_IP_CKSUM_GOOD; > val |= PKT_RX_L4_CKSUM_BAD; > - } else if (errcode == NIX_RX_PERRCODE_IL4_CHK) { > - val |= PKT_RX_L4_CKSUM_BAD; > + } else if (errcode == NIX_RX_PERRCODE_IL3_LEN || > + errcode == NIX_RX_PERRCODE_OL3_LEN) { > + val |= PKT_RX_IP_CKSUM_BAD; > } else { > + val |= PKT_RX_IP_CKSUM_GOOD; > val |= PKT_RX_L4_CKSUM_GOOD; > } > break; > } > - > ol_flags[idx] = val; > } > } > -- > 2.17.1 >