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 >
- [Coin] Fwd: The Future of P4, Revisited Marie-Jose Montpetit
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Marie-Jose Montpetit
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Bernier, Daniel
- Re: [Coin] The Future of P4, Revisited Gianni Antichi
- Re: [Coin] The Future of P4, Revisited Bernier, Daniel
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Toerless Eckert
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Marie-Jose Montpetit
- Re: [Coin] Fwd: The Future of P4, Revisited Toerless Eckert
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited 'Toerless Eckert'
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] The Future of P4, Revisited Jeff Tantsura
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] The Future of P4, Revisited hemant
- Re: [Coin] The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] The Future of P4, Revisited hemant
- Re: [Coin] The Future of P4, Revisited hemant
- Re: [Coin] The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited 'Toerless Eckert'
- Re: [Coin] Fwd: The Future of P4, Revisited Toerless Eckert
- Re: [Coin] The Future of P4, Revisited Jeff Tantsura
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited Marie-Jose Montpetit
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited 'Toerless Eckert'
- Re: [Coin] Fwd: The Future of P4, Revisited Bernier, Daniel
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited Gyan Mishra
- Re: [Coin] Fwd: The Future of P4, Revisited 'Toerless Eckert'
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Y. Richard Yang
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited ehalep
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited 'Toerless Eckert'
- Re: [Coin] Fwd: The Future of P4, Revisited ehalep
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited ehalep
- Re: [Coin] Fwd: The Future of P4, Revisited Haoyu Song
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited 'Toerless Eckert'
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Haoyu Song
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Haoyu Song
- Re: [Coin] Fwd: The Future of P4, Revisited Haoyu Song
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited Haoyu Song
- Re: [Coin] Fwd: The Future of P4, Revisited Haoyu Song
- Re: [Coin] Fwd: The Future of P4, Revisited 'Toerless Eckert'
- Re: [Coin] Fwd: The Future of P4, Revisited Haoyu Song
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited Haoyu Song
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited 'Toerless Eckert'
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Haoyu Song
- Re: [Coin] Fwd: The Future of P4, Revisited 'Toerless Eckert'
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited 'Toerless Eckert'
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited Toerless Eckert
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited 'Toerless Eckert'
- Re: [Coin] Fwd: The Future of P4, Revisited Toerless Eckert
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- Re: [Coin] Fwd: The Future of P4, Revisited hemant
- Re: [Coin] Fwd: The Future of P4, Revisited Hesham ElBakoury
- [Coin] The Price for Programmability in the Softw… Hesham ElBakoury