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 841EDA0577; Mon, 13 Apr 2020 21:41:44 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1F0EA4C89; Mon, 13 Apr 2020 21:41:44 +0200 (CEST) Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by dpdk.org (Postfix) with ESMTP id 166E12BE9 for ; Mon, 13 Apr 2020 21:41:43 +0200 (CEST) Received: by mail-pl1-f172.google.com with SMTP id h11so3760062plr.11 for ; Mon, 13 Apr 2020 12:41:43 -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=2rGd1cn622T2HTCAlFc7DVaNCBDdTzwF2XOHhvfUKys=; b=YLZEo8cjqK+9o13haGaN43j2myVL9cZLdwyo5BhVGM+ppZADJ9W1k58wlafxAQcBen /2yqGrT/LBSZ5IUoFQXf8/9Ual4WihAU9iDsrrU4e0YqAw23P7kyWT9D2XfgtivrsoXS aYpODTow3IH3tle6u89ZGytRndOWmbj2o4qL4= 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=2rGd1cn622T2HTCAlFc7DVaNCBDdTzwF2XOHhvfUKys=; b=VKkWyMRHFXbgLQ9InzsjizzdnyQtTWGfBXyqzu+l42XI+2znacM85aNT3UAWwmY82d dxj4zfdWE7R8w7cUJrdGiOMOSMWD6Mw8km9nrJ5ofV+K1nOPros4tMD8MEnZoxH/rSob /ePeX34/aAe6xF1cAHwVQtcv2FUKSm5mT9ZAlK/QKVhATLALGCcKDB52IUCsK1iRGn7Q OfPTGMLtzyA8+ACOcSdcrYgfWipco3cQ//P1a4THry+8tKatfGWKr7cIhLXRVqUx1ZKh uxJ3FyzIjKgWsVXLKz9kC13IH9E9egGGPgY0ZgJ4K7o3yX3cfFv++85hTx5Y07WR5Kjw 3ZZA== X-Gm-Message-State: AGi0PuYfB7viIRg3j1N3MrcpTmYkgQJO7VChqRImzZL6TZGv5KRB1G/A MDsDM0AbI+9rJnI2q4N/fccp6asd/Kptmx/bKeUFO8oEUz1FOu0fYvQumJseTaDPGb95yzjMKRS Id+6RgAoLqPXGbQNd3Fj+2msCwoFGFEfNGHOynWvVnYV7G62lniiEi4mbTLN2j5608o4J X-Google-Smtp-Source: APiQypLqs4tsGcQj3DCs4pUhksNEVmT0Bhi3R7w89wPga21JvXBgWuZw71ay13z70dyo8EwMvyw05Q== X-Received: by 2002:a17:90a:aa83:: with SMTP id l3mr23813170pjq.100.1586806901604; Mon, 13 Apr 2020 12:41:41 -0700 (PDT) Received: from S60.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id 9sm1381663pfn.204.2020.04.13.12.41.39 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Apr 2020 12:41:40 -0700 (PDT) From: Venkat Duvvuru To: dev@dpdk.org Cc: Venkat Duvvuru Date: Tue, 14 Apr 2020 01:09:37 +0530 Message-Id: <1586806811-21736-1-git-send-email-venkatkumar.duvvuru@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1584459511-5353-1-git-send-email-venkatkumar.duvvuru@broadcom.com> References: <1584459511-5353-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 v2 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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. Currently the code path is disabled by default and can be enabled using bnxt devargs. For ex: "-w 0000:0d:00.0,host-based-truflow=1”. v1==>v2 ======= 1. Meson build support for new files 2. Devargs support for this feature 3. Fixed compilation error in ulp_mapper.c 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 | 317 +- 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 | 161 + 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 | 516 +++ 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 | 1502 +++++++++ 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 | 1712 ++++++++++ drivers/net/bnxt/tf_ulp/ulp_template_db.h | 354 +++ drivers/net/bnxt/tf_ulp/ulp_template_field_db.h | 133 + 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, 25880 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 -- 2.7.4