From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 3589BA04B5;
	Wed, 30 Sep 2020 21:34:28 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 885281D447;
	Wed, 30 Sep 2020 21:34:25 +0200 (CEST)
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [63.128.21.124])
 by dpdk.org (Postfix) with ESMTP id 8E4DC1C22A
 for <dev@dpdk.org>; Wed, 30 Sep 2020 21:34:23 +0200 (CEST)
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
 s=mimecast20190719; t=1601494462;
 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=VUXjlCAspTDVKpBw60tyfTUvffo4QWNsCUM181ViOP0=;
 b=ERqqm4ZEzOJwEXTRHhM2W8zjmO1ve7Za8vk7YFs3Mr6ewxFqDdJ+Df6asJ2tPGq82ZFhdT
 yJfVO+vBvHmzZFnCAIuOgpAyUerHTMOTZdXPGXKX4VU4QZYOOFcwNJAXWYURii0BrFk9/i
 kookFPqOtv1px0XXNCPBtuc2nDUyzOY=
Received: from mail-vk1-f200.google.com (mail-vk1-f200.google.com
 [209.85.221.200]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-514-iGWWtXDYMAOuDXY5ZlR_ww-1; Wed, 30 Sep 2020 15:34:20 -0400
X-MC-Unique: iGWWtXDYMAOuDXY5ZlR_ww-1
Received: by mail-vk1-f200.google.com with SMTP id v189so324767vka.0
 for <dev@dpdk.org>; Wed, 30 Sep 2020 12:34:20 -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=VUXjlCAspTDVKpBw60tyfTUvffo4QWNsCUM181ViOP0=;
 b=I6cQRTBeZRMzJ4g6iao2Jm0d81MBgbRWjKzCSqfPAuiB+2Lz60ItgJDI9njvRtKlgw
 tXfHC7mD6QMG3+Hd8RBY9u42CUyDIzJzHi+d+yAwQjJNRYMNFD6RC2NfpWxhYniTP3ib
 COljju3uhtbQH1Fp5HGMeLJslpMOVb4OSLAbJBYSqFroAmOzOfqP0x+0XDWFSZjzK/K8
 W0ckwfEv4SNlFIFtZ5eM6wcs7AU33BgLsEULuzRFxRwmhtw/fIGmWaIrsWpw+1cmUJiU
 XYbGUBYS8aRGatzSvwyw84fEU4foZju5PtZh4MSMI1t/ygK09sS7keE8YhesD/RcvzXZ
 44GQ==
X-Gm-Message-State: AOAM5322wYlKnWsACvGHcoW52RHixXqJvZiGTb9uTIgzSt1dIIjhJz3/
 CSdFSGuebrrYlUls18Mt0so99Qr7aUP1jzU6KsE+cjPi7S8QvzFXCkvRIw+C8vX7OsIIg2pV4lu
 peAFk8UxC5GN1ZjpsgBY=
X-Received: by 2002:a05:6102:3029:: with SMTP id
 v9mr2836667vsa.5.1601494459701; 
 Wed, 30 Sep 2020 12:34:19 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJytDzpCuWrssSxxkCaaryIZ8sk11bivXsKWpM7/NY9wEh88rFoaPWwv8FHqkPzqXL41fLxKI2SGasIGJwqUG44=
X-Received: by 2002:a05:6102:3029:: with SMTP id
 v9mr2836654vsa.5.1601494459349; 
 Wed, 30 Sep 2020 12:34:19 -0700 (PDT)
MIME-Version: 1.0
References: <20200923180645.55852-2-cristian.dumitrescu@intel.com>
 <20200930063416.68428-1-cristian.dumitrescu@intel.com>
In-Reply-To: <20200930063416.68428-1-cristian.dumitrescu@intel.com>
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 30 Sep 2020 21:34:08 +0200
Message-ID: <CAJFAV8x7LHisXoOQaPLU6oM20vBiXhoBre8U-ioPEHFPykaGog@mail.gmail.com>
To: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Cc: dev <dev@dpdk.org>, Thomas Monjalon <thomas@monjalon.net>
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 v6 00/42] 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 <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>

On Wed, Sep 30, 2020 at 8:34 AM Cristian Dumitrescu
<cristian.dumitrescu@intel.com> 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.
>
> V6 changes:
> * Fixed issues in the example app Makefile.
> * Used rte_eth_link_speed_to_str() in the example app.
> * Added release notes update.

- My comment on the Copyright was meant for the whole example code,
not only the makefile.

- The documentation generation shows following warnings:

$ ninja -v -C build doc

[...]

/home/dmarchan/dpdk/lib/librte_pipeline/rte_swx_ctl.h:165: warning:
argument 'action' of command @param is not found in the argument list
of rte_swx_ctl_action_arg_info_get(struct rte_swx_pipeline *p,
uint32_t action_id, uint32_t action_arg_id, struct
rte_swx_ctl_action_arg_info *action_arg)
/home/dmarchan/dpdk/lib/librte_pipeline/rte_swx_ctl.h:182: warning:
The following parameters of rte_swx_ctl_action_arg_info_get(struct
rte_swx_pipeline *p, uint32_t action_id, uint32_t action_arg_id,
struct rte_swx_ctl_action_arg_info *action_arg) are not documented:
  parameter 'action_arg'
/home/dmarchan/dpdk/lib/librte_pipeline/rte_swx_pipeline.h:494:
warning: argument 'match' of command @param is not found in the
argument list of rte_swx_pipeline_table_type_register(struct
rte_swx_pipeline *p, const char *name, enum rte_swx_table_match_type
match_type, struct rte_swx_table_ops *ops)
/home/dmarchan/dpdk/lib/librte_pipeline/rte_swx_pipeline.h:513:
warning: The following parameters of
rte_swx_pipeline_table_type_register(struct rte_swx_pipeline *p, const
char *name, enum rte_swx_table_match_type match_type, struct
rte_swx_table_ops *ops) are not documented:
  parameter 'match_type'

[...]


-- 
David Marchand