intel / intel-ipsec-mb

Intel(R) Multi-Buffer Crypto for IPSec
BSD 3-Clause "New" or "Revised" License
288 stars 88 forks source link

Any plan to support other Architecture like Arm64? #145

Closed kevinzs2048 closed 3 months ago

kevinzs2048 commented 3 months ago

Hi IPsec,

I'm Kevin Zhao from Linaro, working together with some Arm ecosystem companies to expend the user scenario for encryption and decryption for storage. Recently we do observe that the SPDK encryption/decryption module are leveraging the IPsec to initialize, and then to call different accelerator modules to execute the enc/dec. So it looks that the IPsec is mandatory dependency for SPDK, and usually it has widely used in different architecture and user cases. So I wonder that if there some possibility to support other architecture? Or there is some plan to expand the user scenario for other architecture? For Arm64 we can help to development, bug fix and CI set up. Just a thought, and please feel free to let me know if any questions, and any feedback welcomed.

Thanks in advance.

tkanteck commented 3 months ago

Hi Kevin Zhao,

Thanks for reaching out.

We were approached with similar question back in 2021 (https://github.com/intel/intel-ipsec-mb/pull/87) and our situation hasn’t really changed since then.

As we understand, there is no hard dependency on intel-ipsec-mb in SPDK.

ISA-L Crypto can be used to perform SPDK_ACCEL_OPC_ENCRYPT/DECRYPT operations. The same two operations are supported by dpdk_cryptodev module in SPDK, via DPDK PMDs (crypto_aesni_mb or crypto_qat). I suspect crypto_aesni_mb is where the intel-ipsec-mb dependency may be coming from. If you hit this dependency, then we believe it should be possible to resolve it at compile time or through run-time configuration. See [1], [2] and [3]. Feel free to submit an issue to SPDK team if you need help [4].

From a quick glance at Arm fork of intel-ipsec-mb (https://gitlab.arm.com/arm-reference-solutions/ipsec-mb), it does not seem to support any algorithms that would be of interest to SPDK based applications. ISA-L crypto should be sufficient for Arm SPDK ecosystem.

Regards, Tomasz

[1] https://spdk.io/doc/bdev.html#bdev_config_crypto [2] https://spdk.io/doc/accel_fw.html#accel_dpdk_cryptodev [3] https://github.com/spdk/spdk/blob/master/configure [4] https://github.com/spdk/spdk/issues

kevinzs2048 commented 3 months ago

@tkanteck Thanks for the detail description, that really helps! It looks we can leverage the repository which arm folks works on in gitlab.arm.com. I will close this issue.

tkanteck commented 3 months ago

I suggest to look into isa-l crypto, too.