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

Hesham ElBakoury <helbakoury@gmail.com> Thu, 18 May 2023 18:29 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 69841C151998 for <coin@ietfa.amsl.com>; Thu, 18 May 2023 11:29:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.093
X-Spam-Level:
X-Spam-Status: No, score=-2.093 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_DNSWL_BLOCKED=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=ham 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 rs6weTOv5Pdj for <coin@ietfa.amsl.com>; Thu, 18 May 2023 11:29:12 -0700 (PDT)
Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) (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 7BEF8C151982 for <coin@irtf.org>; Thu, 18 May 2023 11:29:12 -0700 (PDT)
Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-25368740ff6so811115a91.0 for <coin@irtf.org>; Thu, 18 May 2023 11:29:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684434552; x=1687026552; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=L/xiNaOlajL0EFA465DWk6Rg4k+sGYnPstgfFo5LHyA=; b=IYy0MUt3lXtL/hstJkYSOSjmOzr/hxgWbOKjmXuNrLUz5csylOI8VDXAj0gtMP6DCM ZCPeWorD6+6i6HfRiy8+Abcu3tlqwc9+2QUaVOSrtJODtaHa9TMJUfAaW29qUTex25WK KWWgqXenBM7x3yA3jZ4ZUubDP/KipLDHTfrQYhnAuZMD6kxMCiMujUNfRsSWJB8g9UI0 kJbqAcrlnHVkv9/iRp5Bqncp4sECP54pgX1uHnAt4qlS0+NNXYuLbhFSHUag397/PXGF cMXUppQujUuLNPzmeRLblVUhUUexjlKSmG6KhupZE9rcHsCE7kmtg65P604FWmpKEhza TyVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684434552; x=1687026552; 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=L/xiNaOlajL0EFA465DWk6Rg4k+sGYnPstgfFo5LHyA=; b=X8DNel4kRlTyYRHd601+vTE9HFzuQ53VW9RnqtVc33N4rdYgU1zewu95HRDn3Fsj4E BqztprjCywl5RhBBbS39Jh7Zl4rGznqRdh9s0tLKr2I4BUxynyfeEBq1iRYY3Q6PbvHH WCa2PUCXAfl2pjJRsZQp+dqr1ndTkru+amPepMgVecmVS4FMuDSllsENQwIkBeZBvVCb kGkh3YizU61RGV0Kal9gMOowaOBgscj218NathGwTQAlvaCckpXSn9iF1grPDAj4l58u WlGP9UhTBxjZV5H6S+lJLS5U34/ofpwJL4p+EcxD7ULQGaqRF8Aaqz20ZyoPDINFvvmm mgEQ==
X-Gm-Message-State: AC+VfDwOIugqYF0V4GAE7558Mpfx8mZJc1qDhkbbEyVDmjFVCkj0JtGc zlLqVl7qwtULh3ExjOlVDzaXNhYFhwEU6kf1FoDMH1gz
X-Google-Smtp-Source: ACHHUZ4h1qAPmeGqx3wIz9MqRiZ0OygterEs7yxZPsUP+IFYnf+3NApLcmxWjOYQ50u0VUacimUd7CgB5sUCdCG4wHA=
X-Received: by 2002:a17:90a:bc47:b0:247:8b61:a41 with SMTP id t7-20020a17090abc4700b002478b610a41mr3542732pjv.25.1684434551901; Thu, 18 May 2023 11:29:11 -0700 (PDT)
MIME-Version: 1.0
References: <CAPjWiCT2ipu=yiZFr8hBGF2wy-Y_Dmze=8j+PgeDFyN7KNZR6w@mail.gmail.com> <ZGJl+6YPQarlDSTr@faui48e.informatik.uni-erlangen.de> <034201d98757$bbd87550$33895ff0$@mnkcg.com> <c98c172c-a483-5f69-9bff-dedd4b6a78bb@gmail.com> <044101d9876a$9f0490e0$dd0db2a0$@mnkcg.com> <c9b9a119-27ba-88db-2f08-18e8ff2c6337@gmail.com> <ZGQbyzRW5d1vkgVV@faui48e.informatik.uni-erlangen.de> <9EABD595-552E-4775-B69C-72BE49BD5C93@bell.ca> <00c501d988ea$bbd16f50$33744df0$@mnkcg.com> <095d01d98914$0bba99f0$232fcdd0$@mojatatu.com> <ZGWFQRGI0hmc3g5O@faui48e.informatik.uni-erlangen.de> <001101d989a0$4e180530$ea480f90$@mojatatu.com> <BY3PR13MB47877D31EC3B4511C8095D329A7F9@BY3PR13MB4787.namprd13.prod.outlook.com> <CAFvDQ9ogV5f-Nh9faKxANXV=ORHJVQQPjUH5qAAJb9uvP0KGMA@mail.gmail.com> <BY3PR13MB47876236862ABECD69BF97679A7F9@BY3PR13MB4787.namprd13.prod.outlook.com> <CAFvDQ9q2_5-msxeHYgbZfy3RJB6he3kEQheRe=1qfEdUwP3HxQ@mail.gmail.com> <BY3PR13MB47879D6486069FDA49D6252C9A7F9@BY3PR13MB4787.namprd13.prod.outlook.com>
In-Reply-To: <BY3PR13MB47879D6486069FDA49D6252C9A7F9@BY3PR13MB4787.namprd13.prod.outlook.com>
From: Hesham ElBakoury <helbakoury@gmail.com>
Date: Thu, 18 May 2023 11:29:00 -0700
Message-ID: <CAFvDQ9oHJqKhopdBk0d6-5n7k_DCY_vY0Q=TqkRfqyzHvzEQmA@mail.gmail.com>
To: Haoyu Song <haoyu.song@futurewei.com>
Cc: ehalep@mojatatu.com, Toerless Eckert <tte@cs.fau.de>, hemant=40mnkcg.com@dmarc.ietf.org, "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="0000000000001d137605fbfbfbce"
Archived-At: <https://mailarchive.ietf.org/arch/msg/coin/kI1V472E23lFnowWF7o5MTasAyg>
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: Thu, 18 May 2023 18:29:16 -0000

Hi Haoyu,

As I mentioned in my previous email PNA allows writable tables. Please
refer to this paper "High-Performance Match-Action Table Updates from
within Programmable Software Data Planes" [
https://www.google.com/url?sa=t&source=web&rct=j&url=https://www.net.in.tum.de/fileadmin/bibtex/publications/papers/2021-p4-writable-tables.pdf&ved=2ahUKEwja7vydvv_-AhUyO0QIHdXjCxkQFnoECA8QAQ&usg=AOvVaw2le_zu-LXBEDCeFJbs7GZ6
]

Thanks
Hesham

On Thu, May 18, 2023, 10:56 AM Haoyu Song <haoyu.song@futurewei.com> wrote:

> 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> *On Behalf Of * Hesham ElBakoury
> *Sent:* Thursday, May 18, 2023 10:42 AM
> *To:* Haoyu Song <haoyu.song@futurewei.com>
> *Cc:* ehalep@mojatatu.com; Toerless Eckert <tte@cs.fau.de>; hemant=
> 40mnkcg.com@dmarc.ietf.org; 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 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>
> 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>
> *Sent:* Thursday, May 18, 2023 10:00 AM
> *To:* Haoyu Song <haoyu.song@futurewei.com>
> *Cc:* ehalep@mojatatu.com; Toerless Eckert <tte@cs.fau.de>; hemant=
> 40mnkcg.com@dmarc.ietf.org; 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 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> 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.
>
>