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

Hesham ElBakoury <helbakoury@gmail.com> Fri, 19 May 2023 22:14 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 68582C151082 for <coin@ietfa.amsl.com>; Fri, 19 May 2023 15:14:21 -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 ygctHNJZeMwH for <coin@ietfa.amsl.com>; Fri, 19 May 2023 15:14:17 -0700 (PDT)
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) (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 2216AC151081 for <coin@irtf.org>; Fri, 19 May 2023 15:14:17 -0700 (PDT)
Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-510bcd2d6b8so2685853a12.0 for <coin@irtf.org>; Fri, 19 May 2023 15:14:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684534455; x=1687126455; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=wk5z03VPx9R+mn9ax72ZT3Z4yDQ+udKiUFXhOngZ3L0=; b=dlQQb2QHq4JKJgpgrLgNy6jzP539C7qWiNdtnl+++mwKSQj0fmxfGo1LN/EcBXJtEq GCbX1yHml6BCeGiyeWM9mGCvKTN9qVp7IbnToac02Z2RvwFl2Ef6k2RL+d1wEN4SGZKZ LN6P/fDCQeaSUp6FD6EOwRxzF08TZ1BxtRdxIkvaWQsKMz7zWQjZ2Qph+cjUZVZ7Mk+T vsZOG9o0yXnIEK52QNCTWBWIpH6zSAkF+dp4FlI3XJOrpo6RwW22JXCUF25xAi0k2gXS rHBOYTm5QG25NF3H9A9EqfYzAhj5xRneYKej+WjLVXLOHhbox3Hbi5IVKqOjvlxYtU2R BY6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684534455; x=1687126455; 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=wk5z03VPx9R+mn9ax72ZT3Z4yDQ+udKiUFXhOngZ3L0=; b=jmHYY/S9Ws9Lk5eIYCT4sMPPjDyETY19dX/ET4bQ0K/vFkE6n7gu1OpK63PVzl/TEp yBjvOS/A96RRcZQK6E61981UamklIg9/86JQM9/2jRXUpoq4UHsFpS/97ueTTPV9kjdY CZTKQe80wGg+4q/jVsvLsb2MYdz9AmPcoADc4wgEh+m9NcZDD9jGHNDiFoTYawQvSFCT JIJoFm9y5GJFpoaBN4ltii3GT6uTPCotDjbVcT2ReGyO4mlCMHZGby2GaP+Mp1+pPdk0 PLKRhaygGCoKhmdOrHkxQSGHQie31mFUFV/DJ2vqd7J/lLLi66bGaRsOuXIq0xonE/VS YkhA==
X-Gm-Message-State: AC+VfDx8fHWvmSJp4jvu7jmYEJYDwoiWEdgUiJmaYR1fsmcFwiFXIt11 1kpLsQ2GrypsQx2BUm8Snto1vpRZGMLTJ31Lu9c=
X-Google-Smtp-Source: ACHHUZ7U/lEY8gobYj9AuLknuwp5HbmedTnmO8fsYA/ERwK/T49SHAvp7/z54RNQ8WczZFQmjuDbbRocp1rp1x9PzVw=
X-Received: by 2002:aa7:d3cb:0:b0:50b:ca1b:addc with SMTP id o11-20020aa7d3cb000000b0050bca1baddcmr4082659edr.13.1684534454900; Fri, 19 May 2023 15:14:14 -0700 (PDT)
MIME-Version: 1.0
References: <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> <CAFvDQ9px9Ao6LG2XcDddxP9z1zKss4o6Sh=xNsNeFS3A15VSoA@mail.gmail.com> <ZGe+m00Ji9KGNSuJ@faui48e.informatik.uni-erlangen.de> <CAFvDQ9oSGRV4dA265WDa-WQBCzxDVYR13KGzi=CHxFA0+nKtLQ@mail.gmail.com> <ZGfN8V8y9LPa28ul@faui48e.informatik.uni-erlangen.de>
In-Reply-To: <ZGfN8V8y9LPa28ul@faui48e.informatik.uni-erlangen.de>
From: Hesham ElBakoury <helbakoury@gmail.com>
Date: Fri, 19 May 2023 15:14:00 -0700
Message-ID: <CAFvDQ9oAG=r6rRCw-TEvW-FaW3JDu2gdD6GUhLFOZ=y-TWRaeg@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="000000000000cbdae605fc133dd9"
Archived-At: <https://mailarchive.ietf.org/arch/msg/coin/mvBF2g0FqhPKahUoj4DiDRBsnLk>
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 22:14:21 -0000

Thanks Toerless for the clarification.

Hesham

On Fri, May 19, 2023, 12:28 PM Toerless Eckert <tte@cs.fau.de> wrote:

> On Fri, May 19, 2023 at 12:16:20PM -0700, Hesham ElBakoury wrote:
> > Broadcom folks have not tried to run NPL programs on Tofino. If someone
> > tried doing this please let us know.
>
> Sorry if anything i wrote was confusing to that end. I was just browsing
> what
> whiteboxes are available on the market, and didn't mean to imply what you
> said,
> and only Broadcom whiteboxes had the type of TM i was interested, e.g.:
> TSN,
> which could be repurposed for IETF DetNet. No Tofino box doing the same,
> unless one wanted to reimplement TSN with Intel SmartNIC.
>
> But if what you wrote was not meant as a direct reply to my email you
> replied to:
>
> Early in the P4 life cycle, several other vendors tried to jump on the P4
> bandwaggon, announcing P4 support for their chips. I think little of that
> did pan out, and i am not aware that anything of this actually survived,
> except of course options for CPU forwarding (RPI P4, Hemants compiler) and
> likely SmartNICs that wouldn't qualify as 'CPU'.
>
> Sure, there are FPGA P4 option such as on Xilinx, but i have yet to find
> someone who was not frustrated with instability/problems of that option.
> That btw. was my whole starting point of Tofino not going forward - there
> is no good alternative for high-speed, low-cost ASIC with P4.
>
> Cheers
>     Toerless
>
> > Hesham
> >
> > On Fri, May 19, 2023, 11:23 AM Toerless Eckert <tte@cs.fau.de> wrote:
> >
> > > I think today there simply is no real programmable TM in hardware.
> > >
> > > Instead, every hardware has some configurable queuing/scheduling and
> > > AQM, and the programmable stage at best can program the classical
> > > parameters such as queue and traffic class within a queue.
> > >
> > > The best high-speed PoC hardware today towards programmable TM are
> likely
> > > the few whitebox with Tofino and some form of Intel SmartNIC. There are
> > > also Broadcom switches with FPGA, which would be even better, if not
> for
> > > the little access to NPL for the broadcom ASIC (i still have to
> evaluate
> > > how real access to NPLS is for non-vendors).
> > >
> > > Cheers
> > >     Toerless
> > >
> > > On Fri, May 19, 2023 at 11:18:01AM -0700, Hesham ElBakoury wrote:
> > > > 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
> > > > >
> > >
> > > --
> > > ---
> > > tte@cs.fau.de
> > >
>
> --
> ---
> tte@cs.fau.de
>