From patchwork Mon Jul 29 21:28:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Richardson X-Patchwork-Id: 57258 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B3C931BF6B; Mon, 29 Jul 2019 23:28:14 +0200 (CEST) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by dpdk.org (Postfix) with ESMTP id 658991BF53 for ; Mon, 29 Jul 2019 23:28:13 +0200 (CEST) Received: by mail-pf1-f196.google.com with SMTP id u14so28682762pfn.2 for ; Mon, 29 Jul 2019 14:28:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id; bh=RsGBE3knoov8cvdYP8CdaxGzUrtQ8GIuIcwczJG0Xio=; b=FDGnodV5lhfSn2vLmTKOtWc7eFcMAAyot/uv0p67U7vRuPRsuvuZOCZoQeGW2wwE+L MbG7n2TSPbfld63UtV6teFJ2BUL1o1qNaAtkHaFrIrIsbf/47ZfgaD0s9qGn9l0vUKRc mLkETpM4HFHTye2OXVfrWZxdNGruOOBek4YBc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=RsGBE3knoov8cvdYP8CdaxGzUrtQ8GIuIcwczJG0Xio=; b=es4LAaGqk2VyANmqfzixRTM5cN9LXHHFZ4XKfuTmIR9n8WU3O5VOO2lRSdTCPyBFIP 5ICCjJVz16wLCnpSb4F7qtfc4nd4gdPW9fDMfIWcnmEwTzMPLxYtGxdT9qSfRzjXHD5P rBsIVv2RVB8WXDocH02JazkKu1NCwJEXQIYJ76vZLLt0sNp4lEYxF7lKjVLKLcHfeV9M o8CJ9yD+LJ+5H2mbQAgOsAsX5KlhnB3x6/CmuPCnG81gwvd6RehccxxhhONFCH1O+jqZ FO2oz6bmAdwUJoQCVksqXOoSG0XrnOprs7Zu1edDyJambveHCeGLebO7s9/jx0wl416r hBxg== X-Gm-Message-State: APjAAAW+Lx1/znBh9Ws+vkCJ7A58EyrqSfIYhJ6LoR5rJQJvj8Oereoi 0npGCwWM3nTqYwYbXjI3dh03+Ovcl3oByN8YifxfR65PLi9c0SRG+K8glbIiMcxIFS/xICingld /tbch1LmZhSqis3Ok6U+JyxdOJcPpNFhcgUskA2mNemElZLndAAE0TBjV9aMAeFCK X-Google-Smtp-Source: APXvYqyjY1NHVMjj+/f8LxhlcLH/aPYeChomJiWO+nDWo9Enffb6bTRsa3o50JWlSpU9miml2z8cJQ== X-Received: by 2002:a17:90a:b903:: with SMTP id p3mr112119577pjr.79.1564435692374; Mon, 29 Jul 2019 14:28:12 -0700 (PDT) Received: from localhost.localdomain ([192.19.231.250]) by smtp.gmail.com with ESMTPSA id l26sm64344428pgb.90.2019.07.29.14.28.10 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 29 Jul 2019 14:28:11 -0700 (PDT) From: Lance Richardson To: dev@dpdk.org Cc: ajit.khaparde@broadcom.com, Kalesh AP , Lance Richardson Date: Mon, 29 Jul 2019 17:28:05 -0400 Message-Id: <20190729212805.5026-1-lance.richardson@broadcom.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-dev] [PATCH 1/2] net/bnxt: fix context memory allocation 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" From: Kalesh AP There is a bug in context memory allocation because of which it results in reusing the context memory allocated for the first port while allocating memory for next ports. Fix it by passing the port id in the name field while allocating context memory. Fixes: f8168ca0e690 ("net/bnxt: support thor controller") Signed-off-by: Kalesh AP Reviewed-by: Somnath Kotur Signed-off-by: Lance Richardson --- drivers/net/bnxt/bnxt_ethdev.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 2a8b50296..6685ee7d9 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -3399,8 +3399,9 @@ static int bnxt_alloc_ctx_mem_blk(__rte_unused struct bnxt *bp, valid_bits = PTU_PTE_VALID; if (rmem->nr_pages > 1) { - snprintf(mz_name, RTE_MEMZONE_NAMESIZE, "bnxt_ctx_pg_tbl%s_%x", - suffix, idx); + snprintf(mz_name, RTE_MEMZONE_NAMESIZE, + "bnxt_ctx_pg_tbl%s_%x_%d", + suffix, idx, bp->eth_dev->data->port_id); mz_name[RTE_MEMZONE_NAMESIZE - 1] = 0; mz = rte_memzone_lookup(mz_name); if (!mz) { @@ -3436,7 +3437,8 @@ static int bnxt_alloc_ctx_mem_blk(__rte_unused struct bnxt *bp, rmem->pg_tbl_mz = mz; } - snprintf(mz_name, RTE_MEMZONE_NAMESIZE, "bnxt_ctx_%s_%x", suffix, idx); + snprintf(mz_name, RTE_MEMZONE_NAMESIZE, "bnxt_ctx_%s_%x_%d", + suffix, idx, bp->eth_dev->data->port_id); mz = rte_memzone_lookup(mz_name); if (!mz) { mz = rte_memzone_reserve_aligned(mz_name, From patchwork Mon Jul 29 21:28:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Richardson X-Patchwork-Id: 57259 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 709001BFB4; Mon, 29 Jul 2019 23:28:32 +0200 (CEST) Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) by dpdk.org (Postfix) with ESMTP id 47AC51BF54 for ; Mon, 29 Jul 2019 23:28:31 +0200 (CEST) Received: by mail-pg1-f196.google.com with SMTP id u17so28884486pgi.6 for ; Mon, 29 Jul 2019 14:28:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id; bh=94t0zbGESv8BCrnbzIKYYzQIovl+yPZnf8zVk7Uk3+A=; b=FNN+HNaD1G27C3HlCuNvrB7aa2fdlOTboGpF9p9bqdylVnkD8ESS7k68mqwR6ceE8O SZ0mAc9KOymfAZL+ELaI6AtbOVdrmcMrEyOUVBAA3F6FJYZyhQt6Z1cSWy81nx7KVB+1 51EV4GrKhkdcNzEVrOcz3mNH0Upe+I1mHvn3c= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=94t0zbGESv8BCrnbzIKYYzQIovl+yPZnf8zVk7Uk3+A=; b=CXgyuCan6tJso+7qCtUquwhtrw17O3mRtDmuTBtqR3cOa85j2XyL2yl4WOmV9/vwOQ Uo7aarnywYUn/KXgpMWxU50aPcuii0TI1aHfmoL7Sc4jPkCl5KbFBvmbCQlf3JtRAlYD o6b9RhEtOvokWFAbU8WO2ra/+Bw6+Rpth/sBVqJiZlmZnPWuM34vKJJTKZZLfCZu2/MR unOsqT7DMM79ndp3F5aXk6NG61qeBw10WVbxIY+nMc3hTpOA5fGhdZUAlsvNvxiztg3c 85qwf0K7QNM5JfKkP6iDMgfVTI5BUivJcdFqI26wBrxVL/0iigpe3kTgt2PpyeAVNYUf iJZg== X-Gm-Message-State: APjAAAXtAgUWZlM2mgMaXjabKMfcgfU2EXNigIhna/tQ90N2bgwOUlis BD2k0WRVpsl0gUB0njVKHpOgXqnoaGA8YkjHO6imA7qDEfW7xPsUSgSTVrA5WW/recJTjU3qrhj YwZIk70vQV7HoZKzAOs3Y5IDRwcawEZ40CPfD56PZhM89QUEAHYW6CR9q1CFEO/ja X-Google-Smtp-Source: APXvYqwO3QPYt+fCso7+bD8LZdO05PvEMLxEaHY0Bcj7KhbwlNbindp46LTc/Unj7rDeTHqHXwb1sQ== X-Received: by 2002:a62:ae01:: with SMTP id q1mr37661290pff.219.1564435710395; Mon, 29 Jul 2019 14:28:30 -0700 (PDT) Received: from localhost.localdomain ([192.19.231.250]) by smtp.gmail.com with ESMTPSA id 23sm66396758pfn.176.2019.07.29.14.28.29 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 29 Jul 2019 14:28:30 -0700 (PDT) From: Lance Richardson To: dev@dpdk.org Cc: ajit.khaparde@broadcom.com, Kalesh AP , Lance Richardson Date: Mon, 29 Jul 2019 17:28:25 -0400 Message-Id: <20190729212825.5077-1-lance.richardson@broadcom.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-dev] [PATCH 2/2] net/bnxt: set Rx checksum flags in vector mode receive 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" From: Kalesh AP Fixed to return the checksum status of rx packets by setting "ol_flags" correctly in vector mode receive. These changes have been there for non vector mode receive. In vector mode receive also indicate inner and outer checksum errors individually in "ol_flag" to indicate L3 and L4 error. Fixes: bc4a000f2f53 ("net/bnxt: implement SSE vector mode") Signed-off-by: Kalesh AP Reviewed-by: Lance Richardson Signed-off-by: Lance Richardson Acked-by: Somnath Kotur --- drivers/net/bnxt/bnxt_rxtx_vec_sse.c | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c index adc5020ec..2e6e83c94 100644 --- a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c +++ b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c @@ -157,6 +157,52 @@ bnxt_parse_pkt_type(struct rx_pkt_cmpl *rxcmp, struct rx_pkt_cmpl_hi *rxcmp1) return pkt_type; } +static void +bnxt_parse_csum(struct rte_mbuf *mbuf, struct rx_pkt_cmpl_hi *rxcmp1) +{ + uint32_t flags; + + flags = flags2_0xf(rxcmp1); + /* IP Checksum */ + if (likely(IS_IP_NONTUNNEL_PKT(flags))) { + if (unlikely(RX_CMP_IP_CS_ERROR(rxcmp1))) + mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD; + else + mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD; + } else if (IS_IP_TUNNEL_PKT(flags)) { + if (unlikely(RX_CMP_IP_OUTER_CS_ERROR(rxcmp1) || + RX_CMP_IP_CS_ERROR(rxcmp1))) + mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD; + else + mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD; + } else if (unlikely(RX_CMP_IP_CS_UNKNOWN(rxcmp1))) { + mbuf->ol_flags |= PKT_RX_IP_CKSUM_UNKNOWN; + } + + /* L4 Checksum */ + if (likely(IS_L4_NONTUNNEL_PKT(flags))) { + if (unlikely(RX_CMP_L4_INNER_CS_ERR2(rxcmp1))) + mbuf->ol_flags |= PKT_RX_L4_CKSUM_BAD; + else + mbuf->ol_flags |= PKT_RX_L4_CKSUM_GOOD; + } else if (IS_L4_TUNNEL_PKT(flags)) { + if (unlikely(RX_CMP_L4_INNER_CS_ERR2(rxcmp1))) + mbuf->ol_flags |= PKT_RX_L4_CKSUM_BAD; + else + mbuf->ol_flags |= PKT_RX_L4_CKSUM_GOOD; + if (unlikely(RX_CMP_L4_OUTER_CS_ERR2(rxcmp1))) { + mbuf->ol_flags |= PKT_RX_OUTER_L4_CKSUM_BAD; + } else if (unlikely(IS_L4_TUNNEL_PKT_ONLY_INNER_L4_CS + (flags))) { + mbuf->ol_flags |= PKT_RX_OUTER_L4_CKSUM_UNKNOWN; + } else { + mbuf->ol_flags |= PKT_RX_OUTER_L4_CKSUM_GOOD; + } + } else if (unlikely(RX_CMP_L4_CS_UNKNOWN(rxcmp1))) { + mbuf->ol_flags |= PKT_RX_L4_CKSUM_UNKNOWN; + } +} + uint16_t bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) @@ -254,6 +300,7 @@ bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, mbuf->ol_flags |= PKT_RX_VLAN; } + bnxt_parse_csum(mbuf, rxcmp1); mbuf->packet_type = bnxt_parse_pkt_type(rxcmp, rxcmp1); rx_pkts[nb_rx_pkts++] = mbuf;