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 31A5CA04B1; Tue, 29 Sep 2020 16:09:02 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A45EE1D5DC; Tue, 29 Sep 2020 16:08:59 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by dpdk.org (Postfix) with ESMTP id E2C251D5D6 for ; Tue, 29 Sep 2020 16:08:56 +0200 (CEST) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1601388535; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=B/Voyrcg3mmdR6geDW2ZjgdX/bvpv4yXivgVVMCAO7A=; b=L4ciR0byJo3JmCEANBFmzebx9z0TRZeKQWX/QwWsw8sqB5jg/FmGR7udYICs/lM11fXcff hZ1dcLRoO8M8rWFthnOTPpH3rEV9IS8qMyFBtVyVcddOXafZdf4juFFgVoA99wnEcHep6v PNdcJAtiPnSp29rrXhw5raJOK+aSc4E= Received: from mail-vk1-f198.google.com (mail-vk1-f198.google.com [209.85.221.198]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-415-30E58gKaO2miR7kIVos7xQ-1; Tue, 29 Sep 2020 10:08:53 -0400 X-MC-Unique: 30E58gKaO2miR7kIVos7xQ-1 Received: by mail-vk1-f198.google.com with SMTP id v145so760079vkv.21 for ; Tue, 29 Sep 2020 07:08:53 -0700 (PDT) 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=B/Voyrcg3mmdR6geDW2ZjgdX/bvpv4yXivgVVMCAO7A=; b=cfEmcgBzQxRAJfUY4qrWlnlvXqO0bD7Ru5YZ5cgbrFltK6DFAfSHtYsDCu8rPNtWqO skBQYVI1+3dWXrvQSEqgMjOeduWWwR3QZt6WleHN7Pr91uNJ2PYnYAVmzH/5qNhOvzaT O1hHVeI4MapqiG8C8t+VDuyZ+9d/u6l+vRKTayThVZMiP0AyBrhs6gcl1ig9gu4qXStQ slqwHZ9aEPRnGp6eFQqeDGGnzWv5dvRWAGhpEraklxzkgxzwsd41BqRc5sEzXOaL/5fQ q2n3Q9m1b1+RXwhp4XzGbDHTBDFdwlegmynq/KERyptk8sm73fMiTRvRYtSFEdYuK8M9 ZUoA== X-Gm-Message-State: AOAM531EAf7aJUtLyqUt+Ku9rJep9q+Jq/ILy3zLA8dKldJekfGGEb4c 9My5CikrKrMJ2iyOhgdH0DTho6/e4E6fVffAu12gEjQbq3RQHMdQzj/b5uoT5fvClsnFYq0JB6p LLziRMoiYl8+V0et8jTE= X-Received: by 2002:ab0:4287:: with SMTP id j7mr3712145uaj.53.1601388532869; Tue, 29 Sep 2020 07:08:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyK1ujAlGZ36hNeWSCTclN4jC2Qy1F/vT0m+eZ0GOtg3xAsCJrbjYNLVikbLYB4dG3Je7zO+ly2Jpzwc8at+K8= X-Received: by 2002:ab0:4287:: with SMTP id j7mr3712113uaj.53.1601388532593; Tue, 29 Sep 2020 07:08:52 -0700 (PDT) MIME-Version: 1.0 References: <20200910152645.9342-2-cristian.dumitrescu@intel.com> <20200923180645.55852-1-cristian.dumitrescu@intel.com> In-Reply-To: <20200923180645.55852-1-cristian.dumitrescu@intel.com> From: David Marchand Date: Tue, 29 Sep 2020 16:08:40 +0200 Message-ID: To: Cristian Dumitrescu Cc: dev , Thomas Monjalon Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dmarchan@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [PATCH v5 00/41] Pipeline alignment with the P4 language 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 Wed, Sep 23, 2020 at 8:06 PM Cristian Dumitrescu wrote: > > This patch set introduces a new pipeline type that combines the DPDK > performance with the flexibility of the P4-16 language[1]. The new API > can be used either by itself to code a complete software switch (SWX) > or data plane app, or in combination with the open-source P4 compiler > P4C [2], potentially acting as a P4C back-end, thus allowing the P4 > programs to be translated to the DPDK API and run on multi-core CPUs. > > Main new features: > > * Nothing is hard-wired, everything is dynamically defined: The packet > headers (i.e. protocols), the packet meta-data, the actions, the > tables and the pipeline itself are dynamically defined instead of > having to be selected from a pre-defined set. > > * Instructions: The actions and the life of the packet through the > pipeline are defined with instructions that manipulate the pipeline > objects mentioned above. The pipeline is the main function of the > packet program, with actions as subroutines triggered by the tables. > > * Call external plugins: Extern objects and functions can be defined > to call functionality that cannot be efficiently implemented with > the existing pipeline-oriented instruction set, such as: special > error detecting/correcting codes, crypto, meters, stats arrays, > heuristics, etc. > > * Better control plane interaction: Transaction-oriented table update > mechanism that supports multi-table atomic updates. Multiple tables > can be updated in a single step with only the before and after table > sets visible to the packets. Alignment with P4Runtime [3]. > > * Performance: Multiple packets are in-flight within the pipeline at > any moment. Each packet is owned by a different time-sharing thread > in run-to-completion, with the thread pausing before memory access > operations such as packet I/O and table lookup to allow the memory > prefetch to complete. The instructions are verified and translated > at initialization time with no run-time impact. The instructions are > also optimized to detect and "fuse" frequently used patterns into > vector-like instructions transparently to the user. > > API deprecation and maturing roadmap: > * The existing pipeline stable API (rte_pipeline.h) to be deprecated > prior to and removed as part of the DPDK 21.11 LTS release. > * The new SWX pipeline experimental API (rte_swx_pipeline.h) to mature > and become stable as part of the same DPDK 21.11 LTS release. This is a new feature: we are missing a release note update as part of the series. -- David Marchand