[v4,00/34] add support for host based flow table management
Message ID | 1586938751-32808-1-git-send-email-venkatkumar.duvvuru@broadcom.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 40AEAA0563; Wed, 15 Apr 2020 10:19:26 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 367431D516; Wed, 15 Apr 2020 10:19:25 +0200 (CEST) Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) by dpdk.org (Postfix) with ESMTP id 016BE1D501 for <dev@dpdk.org>; Wed, 15 Apr 2020 10:19:22 +0200 (CEST) Received: by mail-pj1-f52.google.com with SMTP id cl8so5272808pjb.3 for <dev@dpdk.org>; Wed, 15 Apr 2020 01:19:22 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=Pun8ORAz9FBpzy0SXFcWQEehijhL9fCc1eu0ZMi5d08=; b=cUnXOUgLHXXuJ0shgAUG1decM3Fz0lCTvUjm+LY0D+eTJzM3zV5hlWyVQ9+PmFLpbq gBGcVPX4ydV52upLTkC8CS63VS1Yi2tR/c65YVG0Y4LnT9w4VrBdLmoho7/hxKYr42Zz QuIcglDCgITRHP9CKumsw9W06TQ/QEE/ojV6I= 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=Pun8ORAz9FBpzy0SXFcWQEehijhL9fCc1eu0ZMi5d08=; b=d4UXjA5z1Yf6BRugFGSlBYcpM76qaBqFCaT/rOo09iqNWqYQFprqDgZ0HHcwUzp6gh /foW1KidQmrsWdcND4zlujj7cksU8MLnQivzOdwsPgA43b97W7bFeIb72Obu6pS4kZMJ 2JYTyyxIawssLYebpLcWq/kUoRCU8L5h9uiAfa6Ju4J9Gda5lKX8dRf/9RQPPfmsCwNX KDNPnMJ0E11N6EJoBI/6VHmoCSiv+Me4YD4JcmYZppLdrc+L+nYmj53mutBhn/oUGk7B KPKqUxVqxZY1xEzTv6fh32gvHvDymGMu3MG3FwFG4ZyOBvEEvvTQdgBHwCS39ReQxAHv kqMA== X-Gm-Message-State: AGi0PuYZRv9GQkfvaj9taLirIXT2xrGB9j0kPMZuJf8n8lEHBdjjt96y ZaeqZH7P3oLOkym9ek3929+jv3TO7cOicz3tEa4fboq4+o4MLoOwfpp1jMm4wfuanigaU95b6q0 N/uGrCw5DIM1JpF94uRCrHTxdDSR8830tQGEjw3wlxT5cvtNsIFgBiqyN5IbPWTC3A55a X-Google-Smtp-Source: APiQypKr2/I1JFIb3NVOAL4tMOwbxuLK566QbzbCP6mk8ArQpHa4S1lBABBDIj8iKBXziKGVerPnKA== X-Received: by 2002:a17:902:b489:: with SMTP id y9mr3813761plr.67.1586938761342; Wed, 15 Apr 2020 01:19:21 -0700 (PDT) Received: from S60.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id fy21sm3819019pjb.25.2020.04.15.01.19.19 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 Apr 2020 01:19:20 -0700 (PDT) From: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com> To: dev@dpdk.org Cc: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com> Date: Wed, 15 Apr 2020 13:48:37 +0530 Message-Id: <1586938751-32808-1-git-send-email-venkatkumar.duvvuru@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1586852011-37536-1-git-send-email-venkatkumar.duvvuru@broadcom.com> References: <1586852011-37536-1-git-send-email-venkatkumar.duvvuru@broadcom.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v4 00/34] add support for host based flow table management X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Message
Venkat Duvvuru
April 15, 2020, 8:18 a.m. UTC
This patchset introduces a new mechanism to allow host-memory based flow table management. This should allow higher flow scalability than what is currently supported. This new approach also defines a new rte_flow parser, and mapper which currently supports basic packet classification in receive path. The patchset uses a newly implemented control-plane firmware interface which optimizes flow insertions and deletions. This is a baseline patchset with limited scale. Follow on patches will add support for more protocol headers, rte_flow attributes, actions and such. This is a tech preview feature, hence disabled by default and can be enabled using bnxt devargs. For ex: "-w 0000:0d:00.0,host-based-truflow=1”. v3==>v4 ======= 1. Fixed some more compilation issues reported by CI Ajit Kumar Khaparde (1): net/bnxt: add updated dpdk hsi structure Farah Smith (2): net/bnxt: add tf core identifier support net/bnxt: add tf core table scope support Kishore Padmanabha (8): net/bnxt: match rte flow items with flow template patterns net/bnxt: match rte flow actions with flow template actions net/bnxt: add support for rte flow item parsing net/bnxt: add support for rte flow action parsing net/bnxt: add support for rte flow create driver hook net/bnxt: add support for rte flow validate driver hook net/bnxt: add support for rte flow destroy driver hook net/bnxt: add support for rte flow flush driver hook Michael Wildt (4): net/bnxt: add initial tf core session open net/bnxt: add initial tf core session close support net/bnxt: add tf core session sram functions net/bnxt: add resource manager functionality Mike Baucom (5): net/bnxt: add helper functions for blob/regfile ops net/bnxt: add support to process action tables net/bnxt: add support to process key tables net/bnxt: add support to free key and action tables net/bnxt: add support to alloc and program key and act tbls Pete Spreadborough (2): net/bnxt: add truflow message handlers net/bnxt: add EM/EEM functionality Randy Schacher (1): net/bnxt: update hwrm prep to use ptr Shahaji Bhosle (2): net/bnxt: add initial tf core resource mgmt support net/bnxt: add tf core TCAM support Venkat Duvvuru (9): net/bnxt: fetch SVIF information from the firmware net/bnxt: fetch vnic info from DPDK port net/bnxt: add devargs parameter for host memory based TRUFLOW feature net/bnxt: add support for ULP session manager init net/bnxt: add support for ULP session manager cleanup net/bnxt: register tf rte flow ops net/bnxt: disable vector mode when host based TRUFLOW is enabled net/bnxt: add support for injecting mark into packet’s mbuf net/bnxt: enable meson build on truflow code drivers/net/bnxt/Makefile | 24 + drivers/net/bnxt/bnxt.h | 21 +- drivers/net/bnxt/bnxt_ethdev.c | 118 +- drivers/net/bnxt/bnxt_hwrm.c | 319 +- drivers/net/bnxt/bnxt_hwrm.h | 19 + drivers/net/bnxt/bnxt_rxr.c | 153 +- drivers/net/bnxt/hsi_struct_def_dpdk.h | 3786 ++++++++++++++++++++--- drivers/net/bnxt/meson.build | 26 + drivers/net/bnxt/tf_core/bitalloc.c | 364 +++ drivers/net/bnxt/tf_core/bitalloc.h | 119 + drivers/net/bnxt/tf_core/hwrm_tf.h | 992 ++++++ drivers/net/bnxt/tf_core/lookup3.h | 162 + drivers/net/bnxt/tf_core/rand.c | 47 + drivers/net/bnxt/tf_core/rand.h | 36 + drivers/net/bnxt/tf_core/stack.c | 107 + drivers/net/bnxt/tf_core/stack.h | 107 + drivers/net/bnxt/tf_core/tf_core.c | 659 ++++ drivers/net/bnxt/tf_core/tf_core.h | 1376 ++++++++ drivers/net/bnxt/tf_core/tf_em.c | 515 +++ drivers/net/bnxt/tf_core/tf_em.h | 117 + drivers/net/bnxt/tf_core/tf_ext_flow_handle.h | 166 + drivers/net/bnxt/tf_core/tf_msg.c | 1248 ++++++++ drivers/net/bnxt/tf_core/tf_msg.h | 256 ++ drivers/net/bnxt/tf_core/tf_msg_common.h | 47 + drivers/net/bnxt/tf_core/tf_project.h | 24 + drivers/net/bnxt/tf_core/tf_resources.h | 542 ++++ drivers/net/bnxt/tf_core/tf_rm.c | 3297 ++++++++++++++++++++ drivers/net/bnxt/tf_core/tf_rm.h | 321 ++ drivers/net/bnxt/tf_core/tf_session.h | 300 ++ drivers/net/bnxt/tf_core/tf_tbl.c | 1836 +++++++++++ drivers/net/bnxt/tf_core/tf_tbl.h | 126 + drivers/net/bnxt/tf_core/tfp.c | 163 + drivers/net/bnxt/tf_core/tfp.h | 188 ++ drivers/net/bnxt/tf_ulp/bnxt_tf_common.h | 54 + drivers/net/bnxt/tf_ulp/bnxt_ulp.c | 695 +++++ drivers/net/bnxt/tf_ulp/bnxt_ulp.h | 110 + drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c | 303 ++ drivers/net/bnxt/tf_ulp/ulp_flow_db.c | 626 ++++ drivers/net/bnxt/tf_ulp/ulp_flow_db.h | 156 + drivers/net/bnxt/tf_ulp/ulp_mapper.c | 1513 +++++++++ drivers/net/bnxt/tf_ulp/ulp_mapper.h | 69 + drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c | 271 ++ drivers/net/bnxt/tf_ulp/ulp_mark_mgr.h | 111 + drivers/net/bnxt/tf_ulp/ulp_matcher.c | 188 ++ drivers/net/bnxt/tf_ulp/ulp_matcher.h | 35 + drivers/net/bnxt/tf_ulp/ulp_rte_parser.c | 1208 ++++++++ drivers/net/bnxt/tf_ulp/ulp_rte_parser.h | 203 ++ drivers/net/bnxt/tf_ulp/ulp_template_db.c | 1713 ++++++++++ drivers/net/bnxt/tf_ulp/ulp_template_db.h | 354 +++ drivers/net/bnxt/tf_ulp/ulp_template_field_db.h | 130 + drivers/net/bnxt/tf_ulp/ulp_template_struct.h | 266 ++ drivers/net/bnxt/tf_ulp/ulp_utils.c | 521 ++++ drivers/net/bnxt/tf_ulp/ulp_utils.h | 279 ++ 53 files changed, 25891 insertions(+), 495 deletions(-) create mode 100644 drivers/net/bnxt/tf_core/bitalloc.c create mode 100644 drivers/net/bnxt/tf_core/bitalloc.h create mode 100644 drivers/net/bnxt/tf_core/hwrm_tf.h create mode 100644 drivers/net/bnxt/tf_core/lookup3.h create mode 100644 drivers/net/bnxt/tf_core/rand.c create mode 100644 drivers/net/bnxt/tf_core/rand.h create mode 100644 drivers/net/bnxt/tf_core/stack.c create mode 100644 drivers/net/bnxt/tf_core/stack.h create mode 100644 drivers/net/bnxt/tf_core/tf_core.c create mode 100644 drivers/net/bnxt/tf_core/tf_core.h create mode 100644 drivers/net/bnxt/tf_core/tf_em.c create mode 100644 drivers/net/bnxt/tf_core/tf_em.h create mode 100644 drivers/net/bnxt/tf_core/tf_ext_flow_handle.h create mode 100644 drivers/net/bnxt/tf_core/tf_msg.c create mode 100644 drivers/net/bnxt/tf_core/tf_msg.h create mode 100644 drivers/net/bnxt/tf_core/tf_msg_common.h create mode 100644 drivers/net/bnxt/tf_core/tf_project.h create mode 100644 drivers/net/bnxt/tf_core/tf_resources.h create mode 100644 drivers/net/bnxt/tf_core/tf_rm.c create mode 100644 drivers/net/bnxt/tf_core/tf_rm.h create mode 100644 drivers/net/bnxt/tf_core/tf_session.h create mode 100644 drivers/net/bnxt/tf_core/tf_tbl.c create mode 100644 drivers/net/bnxt/tf_core/tf_tbl.h create mode 100644 drivers/net/bnxt/tf_core/tfp.c create mode 100644 drivers/net/bnxt/tf_core/tfp.h create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_tf_common.h create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp.c create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp.h create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_flow_db.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_flow_db.h create mode 100644 drivers/net/bnxt/tf_ulp/ulp_mapper.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_mapper.h create mode 100644 drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_mark_mgr.h create mode 100644 drivers/net/bnxt/tf_ulp/ulp_matcher.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_matcher.h create mode 100644 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_rte_parser.h create mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db.h create mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_field_db.h create mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_struct.h create mode 100644 drivers/net/bnxt/tf_ulp/ulp_utils.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_utils.h