Re: [Coin] Fwd: The Future of P4, Revisited

Hesham ElBakoury <helbakoury@gmail.com> Fri, 19 May 2023 18:18 UTC

Return-Path: <helbakoury@gmail.com>
X-Original-To: coin@ietfa.amsl.com
Delivered-To: coin@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EF968C14CE4D for <coin@ietfa.amsl.com>; Fri, 19 May 2023 11:18:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.094
X-Spam-Level:
X-Spam-Status: No, score=-2.094 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VXtZkSWNPRtS for <coin@ietfa.amsl.com>; Fri, 19 May 2023 11:18:13 -0700 (PDT)
Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1E33CC14CE42 for <coin@irtf.org>; Fri, 19 May 2023 11:18:13 -0700 (PDT)
Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-64a9335a8e7so834149b3a.0 for <coin@irtf.org>; Fri, 19 May 2023 11:18:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684520292; x=1687112292; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=5qdklcsHHnhmzLXkODdVQ1F42NmpmfT5FPljsMwJbCM=; b=VcuRuHwOU0nSQ+ILR0PtyA9h/pqiss7wSmUeLIVyZmHb4JZoL7DCAJ/HDvcj2JI6Hc k6iC7D8+eAy/XwAWRaU0qGEZx9F4FZUJaHtNOVAmZYVu0jgbqxnCzXNVD+YhfXAQEfRb 5iL/LPLXBqC1TLR5rY2WKD2uUIH+NkfE8hHMCDqieINjUACOqOqRsX8Zq8KeHDSzgOZ+ D+GcgjZuu+bQWUStd2JNsHKGeqwSgWstwFeszso/zSh+7njttXk5NHAW8HgsDPE8+HHS o8ZLnFuf2joDM3KDh57kKTmRpizVT6Kb6I6WfeDO++VMfH0CP8LRpoWLjxc1ORhn0lA9 DdHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684520292; x=1687112292; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5qdklcsHHnhmzLXkODdVQ1F42NmpmfT5FPljsMwJbCM=; b=M1OW1bePr0kn0U/If6IdrjTtxMytkohRoZb/SyL1bm/58K8mCoz2eqEW0AeiaxY9dh B4QpWHd3tHq0q/OsOFdl1pkCniAYijkCeOi1cmGYmzM0eraA1WE9AZBcqNp9RHTBC5Uv Z6dV00ssMaCeWvvCdejotughjqt433sKSCqpqfNlL6myyTgFlVyPlA/eDHFav4UZI2MJ kyEd0WpKcAa+yzJHO67gPCxGrLEm+pub8zesxO0sHlOv6lkJ8D69RLSag/GnN/wVLCXV 8sEVdxqlINetEl1H4P+tlSNagLgrmmYj5npMmyis2yN6InsngBKt99+yXARtgq2cFxvL ZdHg==
X-Gm-Message-State: AC+VfDxqb5ZIDL0WBooxP4B0MuR2hIx5xu3/jJWCIGmn0aiwlCiHzjYD BzRPsf+mdOt46OmVWqmFDKruGUsn4SyVxGWEeek=
X-Google-Smtp-Source: ACHHUZ74FYWPHysvBax+G3m05LC9vsen4IOqwZFxfFxN7X8JE8tZu8qaBDwzmGI+j97E8wQrKXgks8XrJZJoqtMyi9A=
X-Received: by 2002:a17:90a:e2d2:b0:253:2816:2a12 with SMTP id fr18-20020a17090ae2d200b0025328162a12mr3518740pjb.14.1684520292043; Fri, 19 May 2023 11:18:12 -0700 (PDT)
MIME-Version: 1.0
References: <BY3PR13MB47879D6486069FDA49D6252C9A7F9@BY3PR13MB4787.namprd13.prod.outlook.com> <009f01d989b5$3f0a5d30$bd1f1790$@mnkcg.com> <ZGZ5MEal+NPtfDvg@faui48e.informatik.uni-erlangen.de> <BY3PR13MB47871414A1B9BB37A197C3A99A7F9@BY3PR13MB4787.namprd13.prod.outlook.com> <000801d989cb$39f6c3e0$ade44ba0$@mnkcg.com> <ZGbBWIPaH8d2lgiQ@faui48e.informatik.uni-erlangen.de> <006d01d989ef$d7d04540$8770cfc0$@mnkcg.com> <BY3PR13MB4787D6D30F2F1F6B20F2507B9A7C9@BY3PR13MB4787.namprd13.prod.outlook.com> <ZGekyuneBRDRxobA@faui48e.informatik.uni-erlangen.de> <00de01d98a78$88895330$999bf990$@mnkcg.com> <ZGe707xWgAA+hTwi@faui48e.informatik.uni-erlangen.de>
In-Reply-To: <ZGe707xWgAA+hTwi@faui48e.informatik.uni-erlangen.de>
From: Hesham ElBakoury <helbakoury@gmail.com>
Date: Fri, 19 May 2023 11:18:01 -0700
Message-ID: <CAFvDQ9px9Ao6LG2XcDddxP9z1zKss4o6Sh=xNsNeFS3A15VSoA@mail.gmail.com>
To: Toerless Eckert <tte@cs.fau.de>
Cc: hemant@mnkcg.com, Haoyu Song <haoyu.song@futurewei.com>, ehalep@mojatatu.com, "Bernier, Daniel" <daniel.bernier@bell.ca>, Marie-Jose Montpetit <marie@mjmontpetit.com>, coin <coin@irtf.org>, coinrg-chairs <coinrg-chairs@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000009fd43805fc0ff1d0"
Archived-At: <https://mailarchive.ietf.org/arch/msg/coin/Q41yx58vtsPIoo2sSyUJc0Y1vV4>
Subject: Re: [Coin] Fwd: The Future of P4, Revisited
X-BeenThere: coin@irtf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "COIN: Computing in the Network" <coin.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/coin>, <mailto:coin-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/coin/>
List-Post: <mailto:coin@irtf.org>
List-Help: <mailto:coin-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/coin>, <mailto:coin-request@irtf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 May 2023 18:18:17 -0000

It is worth noting that Broadcom NPL does not provide Traffic Management
support.

Hesham

On Fri, May 19, 2023, 11:11 AM Toerless Eckert <tte@cs.fau.de> wrote:

> On Fri, May 19, 2023 at 01:37:05PM -0400, hemant@mnkcg.com wrote:
> > P4 supports variable length parsing.
>
> Not via the parser itself, but through explicit P4 programming, which is
> a significant limitation. I can find our older papers on variable length
> packet parsing issues. Deparsing is then also equally more complex.
>
> P4 is based on a well known type of parsing hardware, which is employed
> in Tofino. But there are more intelligent parsing engines.
>
> > Regarding memory optimizations on cpu, vpp has optimized memory for both
> instructions and data.
>
> For processing that needs to operate on more than just integers,
> such as monitoring, accounting and inference, you definitely want
> a specification language that supports the desired data types natively.
> Such as real or fixed-point numbers.  Even allow to define new types.
> But also beyond that.  For example, in one of my drafts, i need to do
> have bit-accurate pointers for calculation into complex bitstring
> structures. Same is likely true if we where to pseudocode
> specify some of the IoT header compression mechanisms, or other
> compressed structures.
>
> Production VPP code is certainly not useful as specification reference
> code.
> I know how much of that code was written by developers (Ed et. al.)
> who knew exactly what x86 instructions where generated from C code and
> their cycle count. Which of course was (and i guess still is) then a good
> amount of re-optimization need for ARM (or other CPU). Not to talk about
> SIMD.
>
> > All these optimizations are available in my company's P4toVPP compiler.
>
> Sure, but a better specification language than P4 would be even more
> opportunity for
> a future versions of a compiler like yours.  For example, fixedpoint math
> looks ugly in P4. Good enoough for validation code, but not for a spec
> language.
> It could look very nice if the language had such data
> types natively. And your compiler could translate into a fitting P4
> fixedpoint math library. Or extern libraries, such as for actual floating
> point calculation. Or even skip mapping into P4 completely and creating
> better code directly mapping to the underlying platform features.
>
> > TM is still an open issue to work on.
>
> There is good work happening for high-speed PIFO type FPGA forwarding code.
> I think some form of extended PIFO functionality could become the basis for
> programmable TM in the future. Still has to be seen how well it would
> possible
> to efficiently PoC this on lower end CPU forwarders. If this direction pans
> out, then the forwarding plane impact is just the compute of the TM
> parameters such as rank/timestamps - and processing on dequeueing.
>
> Cheers
>     Toerless
>
> >
> > Hemant
> >
> > -----Original Message-----
> > From: 'Toerless Eckert' <tte@cs.fau.de>
> > Sent: Friday, May 19, 2023 12:33 PM
> > To: Haoyu Song <haoyu.song@futurewei.com>
> > Cc: hemant@mnkcg.com; 'Hesham ElBakoury' <helbakoury@gmail.com>;
> ehalep@mojatatu.com; 'Bernier, Daniel' <daniel.bernier@bell.ca>;
> 'Marie-Jose Montpetit' <marie@mjmontpetit.com>; 'coin' <coin@irtf.org>;
> 'coinrg-chairs' <coinrg-chairs@ietf.org>
> > Subject: Re: [Coin] Fwd: The Future of P4, Revisited
> >
> > Right.
> >
> > For high speed router/switch (>= 100gbps/interface) validation:
> >   P4 implementations on Tofino are great as proof of concept - if it can
> be done.
> >   If P4 implementation on Tofino does not work, other proof points are
> needed,
> >
> > For medium speed "software forwarding" validation:
> >   P4 creates too many limitations. All CPU have float, and/or SMDI,
> and/or
> >   more flexible memory access options and likely several other aspects
> not
> >   easily utilized by P4.
> >
> > For generic specification:
> >   IMHO above limitations are at the core of why P4 is insufficient.
> >   I very much like several structural aspects of P4, they would be great
> >   starting points for general purpose spec. Such as header parsing specs
> >   (need to be extended for variable length though).
> >   Aka: Anything we can use from P4 which is more/better declarative than
> >   C/C++ is IMHO useful. Just lets not introduce constraints: Validation
> on
> >   different type of forwarding platforms is different from a single
> >   specification.
> >   And we are also missing good DSL spec options for TM i fear...
> >
> > Cheers
> >     Toerless
> >
> > On Fri, May 19, 2023 at 04:02:57PM +0000, Haoyu Song wrote:
> > > I think the discussion is off the point. We are discussing whether or
> not P4 is suitable for a standard specification language for general
> dataplane processing and forwarding applications. To fulfill that purpose,
> it needs to be target/architecture independent; it needs to be concise and
> expressive to cover various dataplane functions which may not be
> conceivable today (e.g., in-network computing applications).
> > > Unfortunately, I don't think P4 can meet these requirements now
> > > (imagine all the pseudo code in RFCs are translated to P4). Of course,
> > > it can be limited to just support certain functions, e.g., to document
> > > the header formats and parsing process (but here I don't see the
> > > advantage of P4 either)
> > >
> > > Haoyu
> > >
> > > -----Original Message-----
> > > From: hemant@mnkcg.com <hemant@mnkcg.com>
> > > Sent: Thursday, May 18, 2023 6:19 PM
> > > To: 'Toerless Eckert' <tte@cs.fau.de>
> > > Cc: Haoyu Song <haoyu.song@futurewei.com>; 'Hesham ElBakoury'
> > > <helbakoury@gmail.com>; ehalep@mojatatu.com; 'Bernier, Daniel'
> > > <daniel.bernier@bell.ca>; 'Marie-Jose Montpetit'
> > > <marie@mjmontpetit.com>; 'coin' <coin@irtf.org>; 'coinrg-chairs'
> > > <coinrg-chairs@ietf.org>
> > > Subject: RE: [Coin] Fwd: The Future of P4, Revisited
> > >
> > > Toerless,
> > >
> > > Only externs defined in core.p4 are in a library. Externs defined in
> an architecture include file, e.g., v1model.p4 are implemented in
> target-specific back end and are extensions. An example of a target extern
> is vpp accelerator in Octeon 10. Neither P4-16 spec nor PNA support
> floating point and neither does my compiler. Floating point in used be
> AI/ML. The float point numbers would have to be converted to integer.
> Google's Tensor chip also converts float to integer for ML.
> > >
> > > If you want to work with the linux kernel, see the ebpf architecture
> include file,
> https://github.com/p4lang/p4c/blob/main/p4include/ebpf_model.p4. Doesn't
> the file have externs which have totally abstracted linux kernel data
> structs and functions?
> > >
> > > Hemant
> > >
> > > -----Original Message-----
> > > From: Coin <coin-bounces@irtf.org> On Behalf Of 'Toerless Eckert'
> > > Sent: Thursday, May 18, 2023 8:23 PM
> > > To: hemant@mnkcg.com
> > > Cc: 'Haoyu Song' <haoyu.song@futurewei.com>; 'Hesham ElBakoury'
> > > <helbakoury@gmail.com>; ehalep@mojatatu.com; 'Bernier, Daniel'
> > > <daniel.bernier@bell.ca>; 'Marie-Jose Montpetit'
> > > <marie@mjmontpetit.com>; 'coin' <coin@irtf.org>; 'coinrg-chairs'
> > > <coinrg-chairs@ietf.org>
> > > Subject: Re: [Coin] Fwd: The Future of P4, Revisited
> > >
> > > Hemant,
> > >
> > > Externs and functions are not an extension to the language.
> > > They are really just libraries.
> > >
> > > Syntactic changes/extensions such as for parsing/deparsing, new types,
> such as float/double - those would be language extensions.
> > >
> > > This makes the use of P4 cumbersome on any platform that can do more
> than the worst-case-chip against which the P4 language is designed (aka:
> Tofino).
> > >
> > > For example on your OCTEON P4 compiler: The ARM A72 does support
> floating point numbers. If you implemented support for them via the
> mechanisms supported by P4, the way i understood it, you could still not
> write simple P4 programs for OCTEON then like:
> > >
> > >     float a, b, c
> > >     a = b * c / 3.2;
> > >
> > > You may have a set of externs/functions through which you could do
> this, but it would look a lot more ugly.
> > >
> > > Right ? If not, pls. explain - i would be happy!
> > >
> > > And Haoyu's argument was that when we want to suggest to use P4 as the
> reference specification or base forwarding programming in the linux kernel,
> then this need to hide stuff outside of P4 written externs and functions
> does limit P4's useful as a complete specification and reference code
> language.
> > >
> > > Cheers
> > >     Toerless
> > >
> > > On Thu, May 18, 2023 at 04:56:31PM -0400, hemant@mnkcg.com wrote:
> > > > Why do you care for internal behavior of checksum when the P4 api is
> able to provide data to compute checksum.
> > > >
> > > > https://github.com/p4lang/p4c/blob/main/p4include/v1model.p4#L505
> > > >
> > > > Hemant
> > > >
> > > > -----Original Message-----
> > > > From: Coin <coin-bounces@irtf.org> On Behalf Of Haoyu Song
> > > > Sent: Thursday, May 18, 2023 3:30 PM
> > > > To: 'Toerless Eckert' <tte@cs.fau.de>; hemant@mnkcg.com
> > > > Cc: 'Hesham ElBakoury' <helbakoury@gmail.com>; ehalep@mojatatu.com;
> > > > 'Bernier, Daniel' <daniel.bernier@bell.ca>; 'Marie-Jose Montpetit'
> > > > <marie@mjmontpetit.com>; 'coin' <coin@irtf.org>; 'coinrg-chairs'
> > > > <coinrg-chairs@ietf.org>
> > > > Subject: Re: [Coin] Fwd: The Future of P4, Revisited
> > > >
> > > > Toerless,
> > > >
> > > > This is exactly the problem: you can't use the core language to
> describe an arbitrary dataplane function.
> > > > "Extern" can be a blackbox but what need is the spec for what's in
> the blackbox.
> > > >
> > > > For P4 spec: " Extern objects are architecture-specific constructs
> that can be manipulated by P4 programs through well-defined APIs, but whose
> internal behavior is hard-wired (e.g., checksum units) and hence not
> programmable using P4"
> > > >
> > > > Haoyu
> > > >
> > > > -----Original Message-----
> > > > From: 'Toerless Eckert' <tte@cs.fau.de>
> > > > Sent: Thursday, May 18, 2023 12:15 PM
> > > > To: hemant@mnkcg.com
> > > > Cc: Haoyu Song <haoyu.song@futurewei.com>; 'Hesham ElBakoury'
> > > > <helbakoury@gmail.com>; ehalep@mojatatu.com; 'Bernier, Daniel'
> > > > <daniel.bernier@bell.ca>; 'Marie-Jose Montpetit'
> > > > <marie@mjmontpetit.com>; 'coin' <coin@irtf.org>; 'coinrg-chairs'
> > > > <coinrg-chairs@ietf.org>
> > > > Subject: Re: [Coin] Fwd: The Future of P4, Revisited
> > > >
> > > > On Thu, May 18, 2023 at 02:19:12PM -0400, hemant@mnkcg.com wrote:
> > > > > A specific P4 architecture, e.g., PNA, may override the base P4
> spec. PNA supports writing table entry by data plane. Using registers in P4
> is a bit clunky but state can be maintained. Anyone is welcome to present a
> better solution to the P4 forums.
> > > >
> > > > So far, my limited experience has been, that the language itself has
> rather evolved over its series of spec to further reduce the base language
> functionality and move any improvemenets into implementation extensions
> ("extern") calls, so that no possible hardware would not be able to not
> support any base language feature.
> > > >
> > > > This is a good strategy to gain more acceptance in the industry, but
> > > > not to get to the easiest to use forwarding plane behavioral
> > > > definition language
> > > >
> > > > For exmple, i would need axtual syntactical language extensions to
> define a good way to parse andd deparsing variable length header fields.
> This can not just be done with extern calls.
> > > >
> > > > Has P4 adopted the approach to have optional language feature
> extensions ?
> > > > Sorry. Did not have time to follow the spec evolution in detail.
> > > >
> > > > Cheers
> > > >     Toerless
> > > > > Hemant
> > > > >
> > > > >
> > > > >
> > > > > From: Haoyu Song <haoyu.song@futurewei.com>
> > > > > Sent: Thursday, May 18, 2023 1:56 PM
> > > > > To: Hesham ElBakoury <helbakoury@gmail.com>
> > > > > Cc: ehalep@mojatatu.com; Toerless Eckert <tte@cs.fau.de>;
> > > > > hemant=40mnkcg.com@dmarc.ietf.org <hemant@mnkcg.com>; Bernier,
> > > > > Daniel <daniel.bernier@bell.ca>; Marie-Jose Montpetit
> > > > > <marie@mjmontpetit.com>; coin <coin@irtf.org>; coinrg-chairs
> > > > > <coinrg-chairs@ietf.org>
> > > > > Subject: RE: [Coin] Fwd: The Future of P4, Revisited
> > > > >
> > > > >
> > > > >
> > > > > Hi Hesham,
> > > > >
> > > > >
> > > > >
> > > > > Please see P4 spec section 6.5.2 for the current “stateful”
> support.
> > > > > So far the “table” element, which is the most important construct
> > > > > for a P4 program,  is not stateful (i.e., dataplane writable)
> > > > >
> > > > > I think it’s a direction to extend P4 for better stateful support
> (part of my recent research). At least now it’s unnatural and difficult to
> describe many stateful functions.
> > > > >
> > > > >
> > > > >
> > > > > Haoyu
> > > > >
> > > > >
> > > > >
> > > > > From: Coin <coin-bounces@irtf.org <mailto:coin-bounces@irtf.org>
> >
> > > > > On Behalf Of Hesham ElBakoury
> > > > > Sent: Thursday, May 18, 2023 10:42 AM
> > > > > To: Haoyu Song <haoyu.song@futurewei.com
> > > > > <mailto:haoyu.song@futurewei.com> >
> > > > > Cc: ehalep@mojatatu.com <mailto:ehalep@mojatatu.com> ; Toerless
> > > > > Eckert <tte@cs.fau.de <mailto:tte@cs.fau.de> >;
> > > > > hemant=40mnkcg.com@dmarc.ietf.org
> > > > > <mailto:hemant=40mnkcg.com@dmarc.ietf.org> ; Bernier, Daniel
> > > > > <daniel.bernier@bell.ca <mailto:daniel.bernier@bell.ca> >;
> > > > > Marie-Jose Montpetit <marie@mjmontpetit.com
> > > > > <mailto:marie@mjmontpetit.com> >; coin <coin@irtf.org
> > > > > <mailto:coin@irtf.org> >; coinrg-chairs <coinrg-chairs@ietf.org
> > > > > <mailto:coinrg-chairs@ietf.org> >
> > > > > Subject: Re: [Coin] Fwd: The Future of P4, Revisited
> > > > >
> > > > >
> > > > >
> > > > > Hi Haoyu,
> > > > >
> > > > > Actually, P4 supports dataplane-modifiable tables -- see PNA.
> > > > >
> > > > >
> > > > >
> > > > > More generally, the *language* is fully extensible. You can have
> whatever architecture and state externs you want. So one needs to be
> careful to separate language (non) limitations from target limitations.
> > > > >
> > > > >
> > > > >
> > > > > Hesham
> > > > >
> > > > >
> > > > >
> > > > > On Thu, May 18, 2023, 10:15 AM Haoyu Song <
> haoyu.song@futurewei.com <mailto:haoyu.song@futurewei.com> > wrote:
> > > > >
> > > > > Hi Hesham,
> > > > >
> > > > >
> > > > >
> > > > > I said “it’s very limited”. P4 table is only readable (i.e., not
> writable) by dataplane, so it basically eliminates any dataplane stateful
> function that need to use tables. The stateful function can only use
> register arrays but unfortunately registers are local to a pipeline stage
> so the state update logic must be very simple and can be finish in a single
> stage. What you said “event” must be something very simple. Use case such
> as stateful load balancer can’t be implemented by P4.
> > > > >
> > > > >
> > > > >
> > > > > There are some works addressing the issue. FlowBlaze is the most
> recent one, which needs a new chip architecture but it is still limited to
> simple stateful functions which can be realized in a single pipeline stage.
> > > > >
> > > > >
> > > > >
> > > > > Haoyu
> > > > >
> > > > >
> > > > >
> > > > > From: Hesham ElBakoury <helbakoury@gmail.com
> > > > > <mailto:helbakoury@gmail.com> >
> > > > > Sent: Thursday, May 18, 2023 10:00 AM
> > > > > To: Haoyu Song <haoyu.song@futurewei.com
> > > > > <mailto:haoyu.song@futurewei.com> >
> > > > > Cc: ehalep@mojatatu.com <mailto:ehalep@mojatatu.com> ; Toerless
> > > > > Eckert <tte@cs.fau.de <mailto:tte@cs.fau.de> >;
> > > > > hemant=40mnkcg.com@dmarc.ietf.org
> > > > > <mailto:40mnkcg.com@dmarc.ietf.org>
> > > > > ; Bernier, Daniel <daniel.bernier@bell.ca
> > > > > <mailto:daniel.bernier@bell.ca> >; Marie-Jose Montpetit
> > > > > <marie@mjmontpetit.com <mailto:marie@mjmontpetit.com> >; coin
> > > > > <coin@irtf.org <mailto:coin@irtf.org> >; coinrg-chairs
> > > > > <coinrg-chairs@ietf.org <mailto:coinrg-chairs@ietf.org> >
> > > > > Subject: Re: [Coin] Fwd: The Future of P4, Revisited
> > > > >
> > > > >
> > > > >
> > > > > Hi Haoyu,
> > > > >
> > > > > You say: "P4 has very limited support for stateful processing"
> > > > >
> > > > >
> > > > >
> > > > > I am not sure I can agree with your characterization of P4.
> Perhaps can you elaborate on this.
> > > > >
> > > > >
> > > > >
> > > > > Thanks
> > > > >
> > > > > Hesham
> > > > >
> > > > >
> > > > >
> > > > > On Thu, May 18, 2023, 9:19 AM Haoyu Song <haoyu.song@futurewei.com
> <mailto:haoyu.song@futurewei.com> > wrote:
> > > > >
> > > > > Interesting discussion. See my comments below  [HS]
> > > > >
> > > > > Haoyu
> > > > >
> > > > > > For example, in the multicast drafts i write, we use
> > > > > > C-pseudocode to specify behavior, but we do attempt to implemnt
> on Tofino in P4.
> > > > > > Should we really use P4 code for the RFC specs... ? (much longer
> > > > > > than C Pseudocode). Aka: quite selfish (but IETF relevant ;-)
> reason to highlight this point.
> > > > >
> > > > > [EH]: This is an area I'm very interested in. Having a
> standardized and formal language to describe protocols and behavior can
> bring a lot of functionality and benefits to the IETF.
> > > > > My initial thinking is that having such a blueprint, the IETF
> could generate tools to create a reference implementation that can be used
> for interoperability purposes therefore decreasing time to test and
> implement protocols and therefore RFC publications.
> > > > >
> > > > > [HS] P4 can only describe dataplane behaviors, so any control
> plane stuff is out of scope. For dataplane, if it's used to describe header
> format, it's not better than the "struct" in C. The language uses the
> match-action table abstraction with an implication of pipeline
> implementation which may make it cumbersome or even impossible to describe
> the  behavior (e.g.,  P4 has very limited support for stateful processing).
> In general, I don't think P4 at its current form can undertake the role for
> formal protocol specification.
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > ---
> > > > tte@cs.fau.de
> > > > --
> > > > Coin mailing list
> > > > Coin@irtf.org
> > > > https://www.irtf.org/mailman/listinfo/coin
> > >
> > >
> > >
> > > --
> > > ---
> > > tte@cs.fau.de
> > >
> > > --
> > > Coin mailing list
> > > Coin@irtf.org
> > > https://www.irtf.org/mailman/listinfo/coin
> > > --
> > > Coin mailing list
> > > Coin@irtf.org
> > > https://www.irtf.org/mailman/listinfo/coin
> >
> > --
> > ---
> > tte@cs.fau.de
>
>
>
> --
> ---
> tte@cs.fau.de
>