[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CO1PR11MB49932999F5467416D4F7197693F12@CO1PR11MB4993.namprd11.prod.outlook.com>
Date: Tue, 28 May 2024 22:17:49 +0000
From: "Singhai, Anjali" <anjali.singhai@...el.com>
To: John Fastabend <john.fastabend@...il.com>, "Jain, Vipin"
<Vipin.Jain@....com>, "Hadi Salim, Jamal" <jhs@...atatu.com>, Jakub Kicinski
<kuba@...nel.org>
CC: Paolo Abeni <pabeni@...hat.com>, Alexei Starovoitov
<alexei.starovoitov@...il.com>, Network Development <netdev@...r.kernel.org>,
"Chatterjee, Deb" <deb.chatterjee@...el.com>, "Limaye, Namrata"
<namrata.limaye@...el.com>, tom Herbert <tom@...anda.io>, "Marcelo Ricardo
Leitner" <mleitner@...hat.com>, "Shirshyad, Mahesh"
<Mahesh.Shirshyad@....com>, "Osinski, Tomasz" <tomasz.osinski@...el.com>,
Jiri Pirko <jiri@...nulli.us>, Cong Wang <xiyou.wangcong@...il.com>, "David
S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, "Vlad
Buslov" <vladbu@...dia.com>, Simon Horman <horms@...nel.org>, Khalid Manaa
<khalidm@...dia.com>, Toke Høiland-Jørgensen
<toke@...hat.com>, Victor Nogueira <victor@...atatu.com>, "Tammela, Pedro"
<pctammela@...atatu.com>, "Daly, Dan" <dan.daly@...el.com>, Andy Fingerhut
<andy.fingerhut@...il.com>, "Sommers, Chris" <chris.sommers@...sight.com>,
Matty Kadosh <mattyk@...dia.com>, bpf <bpf@...r.kernel.org>, "lwn@....net"
<lwn@....net>
Subject: RE: On the NACKs on P4TC patches
>From: John Fastabend <john.fastabend@...il.com>
>Sent: Tuesday, May 28, 2024 1:17 PM
>Jain, Vipin wrote:
>> [AMD Official Use Only - AMD Internal Distribution Only]
>>
>> My apologies, earlier email used html and was blocked by the list...
>> My response at the bottom as "VJ>"
>>
>> ________________________________________
>Anjali and Vipin is your support for HW support of P4 or a Linux SW implementation of P4. If its for HW support what drivers would we want to support? Can you describe how to program >these devices?
>At the moment there hasn't been any movement on Linux hardware P4 support side as far as I can tell. Yes there are some SDKs and build kits floating around for FPGAs. For example >maybe start with what drivers in kernel tree run the DPUs that have this support? I think this would be a productive direction to go if we in fact have hardware support in the works.
>If you want a SW implementation in Linux my opinion is still pushing a DSL into the kernel datapath via qdisc/tc is the wrong direction. Mapping P4 onto hardware blocks is fundamentally >different architecture from mapping
>P4 onto general purpose CPU and registers. My opinion -- to handle this you need a per architecture backend/JIT to compile the P4 to native instructions.
>This will give you the most flexibility to define new constructs, best performance, and lowest overhead runtime. We have a P4 BPF backend already and JITs for most architectures I don't >see the need for P4TC in this context.
>If the end goal is a hardware offload control plane I'm skeptical we even need something specific just for SW datapath. I would propose a devlink or new infra to program the device directly >vs overhead and complexity of abstracting through 'tc'. If you want to emulate your device use BPF or user space datapath.
>.John
John,
Let me start by saying production hardware exists i think Jamal posted some links but i can point you to our hardware.
The hardware devices under discussion are capable of being abstracted using the P4 match-action paradigm so that's why we chose TC.
These devices are programmed using the TC/netlink interface i.e the standard TC control-driver ops apply. While it is clear to us that the P4TC abstraction suffices, we are currently discussing details that will cater for all vendors in our biweekly meetings.
One big requirement is we want to avoid the flower trap - we dont want to be changing kernel/user/driver code every time we add new datapaths.
We feel P4TC approach is the path to add Linux kernel support.
The s/w path is needed as well for several reasons.
We need the same P4 program to run either in software or hardware or in both using skip_sw/skip_hw. It could be either in split mode or as an exception path as it is done today in flower or u32. Also it is common now in the P4 community that people define their datapath using their program and will write a control application that works for both hardware and software datapaths. They could be using the software datapath for testing as you said but also for the split/exception path. Chris can probably add more comments on the software datapath.
Anjali
Powered by blists - more mailing lists