calico icon indicating copy to clipboard operation
calico copied to clipboard

Calico eBPF PPC64 support

Open astenmco opened this issue 10 months ago • 7 comments

My cluster uses PPC64 nodes (alongside x86-64 nodes). I wanted to enable eBPF in calico but saw in the docs that only x86-64 and arm64 are supported.

Would you consider adding PPC64 support ?

Thanks for the hard and excellent work !

astenmco avatar Apr 21 '24 17:04 astenmco

@astenmco I do not see that happening any time soon, even though essentially the only real problem is that our ebpf platform expects little endian arch. Afaict PPC64 is unfortunately big. And since it is not quite the most common platform out there, our limited resources do not let us prioritize it. Obviously, we would be happy to review and help to push though any community contributed patches from someone who has access to the hardware :man_shrugging:

tomastigera avatar Apr 22 '24 16:04 tomastigera

@astenmco just making sure -- but you're asking for BE (ppc64) support for Power?

clnperez avatar May 06 '24 14:05 clnperez

@astenmco just making sure -- but you're asking for BE (ppc64) support for Power?

Yes, exactly.

@astenmco I do not see that happening any time soon, even though essentially the only real problem is that our ebpf platform expects little endian arch. Afaict PPC64 is unfortunately big. And since it is not quite the most common platform out there, our limited resources do not let us prioritize it. Obviously, we would be happy to review and help to push though any community contributed patches from someone who has access to the hardware 🤷‍♂️

Actually I am talking about IBM Power 9 and 10 CPUs that runs little-endian Linux (in my case Ubuntu Server 22.04 PPC64le). We do not have the skills to contribute to the code, but I can help with integration and debugging on our platform.

astenmco avatar May 14 '24 20:05 astenmco

As far as I can tell, the ebpf code should work OK on any LE architecture. We now support ebpf on arm64 LE without any major eng effort, but @hjiawei or @frozenprocess might know more about that an how difficult it would be to support ppc64. I think it is just a matter of inluding the ebpf objects with the ppc4 build and buillding ppc64 version of libbpf, so mosty packaging.

tomastigera avatar May 14 '24 21:05 tomastigera

Nothing concrete yet but we should be able to update our toolchain (calico/go-build) and tune a few CFLAGS in felix Makefiles for ppc64le to start with.

hjiawei avatar May 15 '24 01:05 hjiawei

Please let me know if there is anything I can do to help.

astenmco avatar May 15 '24 07:05 astenmco

Hi @astenmco, I managed to get a custom calico/node build which I believe ebpf files are built and included for ppc64le (not be). It is unofficial and for testing purpose only. If you have a chance to use it, you can replace the calico/node DaemonSet image with this one in your dev k8s cluster.

hjiawei avatar Jun 02 '24 06:06 hjiawei