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

Hesham ElBakoury <helbakoury@gmail.com> Thu, 18 May 2023 17:42 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 24535C1516EA for <coin@ietfa.amsl.com>; Thu, 18 May 2023 10:42:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.097
X-Spam-Level:
X-Spam-Status: No, score=-7.097 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_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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 KjJn4NSJpr1w for <coin@ietfa.amsl.com>; Thu, 18 May 2023 10:42:21 -0700 (PDT)
Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) (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 8FC19C1516E0 for <coin@irtf.org>; Thu, 18 May 2023 10:42:21 -0700 (PDT)
Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-2536e522e47so509201a91.1 for <coin@irtf.org>; Thu, 18 May 2023 10:42:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684431741; x=1687023741; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=jEkRqg02DQfnqzPDKP1s60K2wEqlk9wI45sZTJN2f24=; b=nFJAriVDUak3OViMLHtdJsGk3Km57HanuV0lhcDaAOeXsVQ6Xgp4zD8lxXmlJOzpGg JEOAS3Hd4IyH2FCXJWuhhuGpllNF14y6oQQ/Xlus+iEfP3EVNF4n0cLj1RFC03ihilyW YUfTfQVo1uFmP8/bQcPYWh/DPKUQwDMgg2cLQS3Nt5IYB45SRGxgvZdlihgfCkNgFk6n GvNy279WmXdBaU0QjmE4VsGbS5BryugXshM9+1U9ts3yIQuGTGGz3hirSXXFAXq+nn33 e3hoA8wE3FPgZFLnrap0eO7LNF5XEdf+rRweygWtPUR+q0uQNF910ax0F/vpW6n1ul04 1E7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684431741; x=1687023741; 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=jEkRqg02DQfnqzPDKP1s60K2wEqlk9wI45sZTJN2f24=; b=KaMrl/t6NbhKyI/KQfFrYY4Vpi5/IepkRghTvSM1nIqi0brvwQEkjIRXsYsF4sMtvZ IosmNTahtO4XUjwN/AzhEzwKo3DrHPGjv7SsGtx1rFLfx87Q95kSzH0ItkGrr4WyzltD Ts7c76IHH2Q3e38LVxCd/6QKZXoqjoynC6GCHFpOBniXejU7okL+1frgB8u1rE5zn2CB UFPYBBmfcuPV/eEpmaEgiLGZ45xdLmZWFWy5NirWTlPekmfLN0K59mkZ6dPHFgDEvJZ8 HJL0zendDvZSUrJ+0M+xemquWDD0k1yo8nzQ6xPU1nQQgftiT5ot8T5SmtfynBZtYoqy AO/Q==
X-Gm-Message-State: AC+VfDzBl9vs04LLbf9laQ1j9QyMGkbjhHSjfZPsxhnHuTL5f9CTF0Zf RBJIcJf6JeY1kUuO1cUKqlmtQfQPisxmi9qZmnI=
X-Google-Smtp-Source: ACHHUZ5WM3MpQ479C4VDyvsr6qU0jjHC444KrzUeU41ACY0OdMZN95woYUGrztM7qGUTNV+wK8WTnSY3aB4URyA6two=
X-Received: by 2002:a17:90b:10c:b0:24e:1f14:991e with SMTP id p12-20020a17090b010c00b0024e1f14991emr3450661pjz.36.1684431741057; Thu, 18 May 2023 10:42:21 -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>
In-Reply-To: <BY3PR13MB47876236862ABECD69BF97679A7F9@BY3PR13MB4787.namprd13.prod.outlook.com>
From: Hesham ElBakoury <helbakoury@gmail.com>
Date: Thu, 18 May 2023 10:42:09 -0700
Message-ID: <CAFvDQ9q2_5-msxeHYgbZfy3RJB6he3kEQheRe=1qfEdUwP3HxQ@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="00000000000092fd6e05fbfb5352"
Archived-At: <https://mailarchive.ietf.org/arch/msg/coin/C75HcU-mNG8ZTjim7ndhAC8fnnQ>
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 17:42:22 -0000

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.
>
>