[v3,00/34] add support for host based flow table management
Message ID | 1586852011-37536-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 17D95A0577; Tue, 14 Apr 2020 10:13:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3A5691C19E; Tue, 14 Apr 2020 10:13:46 +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 6489B1C19B for <dev@dpdk.org>; Tue, 14 Apr 2020 10:13:44 +0200 (CEST) Received: by mail-pl1-f172.google.com with SMTP id w3so4391043plz.5 for <dev@dpdk.org>; Tue, 14 Apr 2020 01:13:44 -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=SzzL6ykAou/1rSUwNG23ic3VBioJsLz/8DQU4OHIIc0=; b=NTBGYuY7jTCGHzQrSuIQOYQ+MitJs2ML4X8Pju5UNN5dWrrLu+OEAACvSj7dCrf5Pa SyFgUt+CVX/nxCp4fWMrtQ/omNNWsWZLFengQD5IfZ03kNyy9N6G/m/HYCFz5QNhTcXv uZDScc06bQjUmmFZYj8cna/bD5l2tHGAMln3E= 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=SzzL6ykAou/1rSUwNG23ic3VBioJsLz/8DQU4OHIIc0=; b=Vt6sF+s/zWhQBxnNL3dAOvRLBwWINRGDsLz3YR89n/nUliux5YP6VBt0PTUQ65FYM9 CJFtHErUDf+NdAlEco5n08RL+5vshGu9ziQTAO80atOH4czIzbwLuuGKyY4Gn/g6A4SX t+GOhWvrwcWRVDBlvonllgDfGfG8qrd5V5e0p0wbQVaaXaspRM9m0tfSijAwR/6yFLn0 veyNBz+jYVlGbo2eLEaAlT4bLSNspOOBAtsFMhu/iJsmxGG48atQ0JxKCJL05wUh+kL8 7xwzExkMR02IY78XD/rZHnAlzfxV4ANAGmsdYNN1bq6h6XnVGNIVqBfSCBpXBy0Dxc/x oWQg== X-Gm-Message-State: AGi0PuaYOZBh9JmEVvz5Xk3KBJxhY+f04D+LCpW7rp80TZ1tY3eepHpy IHdwDArX2/eF8NkotWTCm4QBbB3wNFvCjYDvlzeuG+6s9TQ0Au12161Y5N5oMZiqQIM5siwxLTt kJlHNuPCJpBi5Z7/KmecssqngfR8GvhDB/ZQvG3qI/hBEqEa7eYTpPR8C+ss0DkQUKWg+ X-Google-Smtp-Source: APiQypJHjKus8mUQdXVwKRCQSkZVaABoonhOcvekxtKiUMrUHaa49sOibMPtH1ApWww0TL73Kdu1Dw== X-Received: by 2002:a17:90b:2306:: with SMTP id mt6mr11466610pjb.95.1586852022808; Tue, 14 Apr 2020 01:13:42 -0700 (PDT) Received: from S60.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id e196sm671176pfh.43.2020.04.14.01.13.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 14 Apr 2020 01:13:42 -0700 (PDT) From: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com> To: dev@dpdk.org Cc: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com> Date: Tue, 14 Apr 2020 13:42:57 +0530 Message-Id: <1586852011-37536-1-git-send-email-venkatkumar.duvvuru@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1586806811-21736-1-git-send-email-venkatkumar.duvvuru@broadcom.com> References: <1586806811-21736-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 v3 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 14, 2020, 8:12 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. 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”. v2==>v3 ======= 1. Fixed 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 | 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 | 1713 ++++++++++ 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, 25883 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