Open KrisNey-MSFT opened 11 months ago
More update next week
@KrisNey-MSFT @reshmaintel The issues mentioned in https://github.com/p4lang/p4c/issues?q=is%3Aissue+is%3Aopen+label%3Adash-blocker are fixed and merged in p4c main branch. Please let me know if there are any further issues.
Hi @jfingerh would you be able to try loading the compiled DASH p4 code into the updated p4-dpdk backend and see if it is happy?
I have tried it with the version of DASH at the time I filed that issue in late March/early April, and there are no errors compiling that version, and no errors loading it into the P4-DPDK software switch.
I then tested compiling the latest version of DASH P4 code. It compiles with warnings (but no errors -- mostly warnings about unused parameters/fields/extern instances), but it gives errors when attempting to load into the P4-DPDK software switch. I have not root-caused it, but will pass on how to reproduce it to some Intel engineers who know how to do that more quickly than I do.
I have created a new issue for p4c-dpdk to track this latest discovered "dash blocker": https://github.com/p4lang/p4c/issues/4156
I plan to use the "dash blocker" tag for any such issues, to make them easier to find: https://github.com/p4lang/p4c/issues?q=is%3Aissue+is%3Aopen+label%3Adash-blocker
@jafingerhut - should we close this one, and continue work with 4156? Or keep this one open for tracking? TY, KrisNey-MSFT.
If you want a DASH-specific place to track what is missing for DASH, it seems best to continue to have an issue in this repo for that purpose. It seems reasonable to continue to use this issue until P4-DPDK can pass a first packet through for whatever is at the time the current version of the DASH P4 reference code.
Andy - issue with P4-DPDK backend. The code at [https://github.com/sonic-net/DASH/blob/main/dash-pipeline/bmv2/dash_service_tunnel.p4#L7-L24] which performs 128-bit masking on IPv6 addresses exposes a deficiency in p4-dpdk backend, it can't perform 128-bit math. Action - @jafingerhut will pursue it with the p4-dpdk team. He may also propose a workaround/compromise and file as an issue or PR.
I will continue to mark issues that prevent P4-DPDK from being a sufficient software switch for DASH P4 reference code with a "dash-blocker" tag. Here is the current list (2 as of 2023-Sep-25): https://github.com/p4lang/p4c/issues?q=is%3Aissue+is%3Aopen+label%3Adash-blocker
There were also two issues last Friday, but over the weekend I closed one that was fixed, and opened another. This is the newest one, which to fix in the way I propose there would require changes in not only the p4c-dpdk compiler, but also in the support within the DPDK software switch for arithmetic operations on operands wider than 64 its: https://github.com/p4lang/p4c/issues/4174
I can talk to P4-DPDK developers about such an enhancement, but as usual, I do not have much knowledge yet of when such significant enhancements might be made.
Per 9/27/2023 Community Call, Andy is going to lobby for these enhancements in P4 group.
Can check back another week or so.
Same status, check next week
Ping sent to Intel team
@usha1830 fixed 1 issue, working on the 2nd.
Defined a header w/bit fields not multiples of 8, the P4 DPDK implementation was swapping these in the wire order of bits. Not DASH specific, but was likely fixed.
Current DASH P4 opers on 128bit - people at Intel know about this.
@ashutosh-agrawal discussing w/P4 DPDK C target team. Right now only support 64bit operation. Not the compiler, it's the target. 2 different components need to be fixed. DASH just needs bit-wise... and an or, sub and add, shift...etc...
Waiting for Intel staff for answers to the above.
Hi @ashutosh-agrawal and @usha1830 - I didn't see you in the call today. We were curious whether there is an update to this Issue? TY, Kristina
Compiler and soft switch work. PRs pending...
P4 DPDK will be faster, yet heavy lifting required to design
An update from some experiments run in the last few days: I found additional issues that seem like they would block DASH using P4-DPDK. As far as I can tell, these are not issues with the p4c-dpdk P4 compiler, but with the P4Runtime API server implementation for P4-DPDK. I have filed these two public issues asking questions about the difficulties I have found:
Hi Andy, thanks for exploring this and keeping us up to date!
Interesting, thank you @Andy @.***>!
From: Andy Fingerhut @.> Sent: Sunday, February 25, 2024 4:19 PM To: sonic-net/DASH @.> Cc: Kristina Moore @.>; Mention @.> Subject: Re: [sonic-net/DASH] P4 DPDK on horizon; BMV2 (Issue #408)
An update from some experiments run in the last few days: I found additional issues that seem like they would block DASH using P4-DPDK. As far as I can tell, these are not issues with the p4c-dpdk P4 compiler, but with the P4Runtime API server implementation for P4-DPDK. I have filed these two public issues asking questions about the difficulties I have found:
- Reply to this email directly, view it on GitHubhttps://github.com/sonic-net/DASH/issues/408#issuecomment-1963097123, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFJSI6HL45RYHUDFJQ6FLC3YVPBGZAVCNFSM6AAAAAA22NU6B6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRTGA4TOMJSGM. You are receiving this because you were mentioned.Message ID: @.**@.>>
128 bit support - changes need to be picked up by Compiler team
DPDK BE test/experiment The engineers who work on p4c-dpdk back end have been notified (and provided some of the details on the reasons for failure to load that I included in the issues). These issues are not their highest priority tasks, so not clear when they might be able to address them.
Compiles fine, needs to load into the software switch.
Just experimental, open source P4 BE DPDK code that produces the spec file (possible bug), but still low priority - feel free to check them out! How does P4C work???
Intel Eng not opposed to pursuing resolution of issues; need to check w/Reshma to see if issues will be fixed within a timeframe.
https://github.com/p4lang/p4c/tree/main/backends/dpdk https://github.com/p4lang/p4c/issues?q=is%3Aissue+is%3Aopen+label%3Adash-blocker
Usha Gupta is coordinating (GitHub ID) Ping Github id @usha1830 if you are interested in discussing those issues in more detail. This is Usha Gupta, Intel engineer who has developed most of the p4c-dpdk back end code. You can also ping me at @jafingerhut if I might be of help, but I'm more familiar with the symptoms than the p4c-dpdk back end C++ code.