lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ