xref: /dpdk/doc/guides/cryptodevs/octeontx.rst (revision c9902a15bd005b6d4fe072cf7b60fe4ee679155f)
19c4491cfSAnoob Joseph.. SPDX-License-Identifier: BSD-3-Clause
29c4491cfSAnoob Joseph   Copyright(c) 2018 Cavium, Inc
39c4491cfSAnoob Joseph
49c4491cfSAnoob JosephCavium OCTEON TX Crypto Poll Mode Driver
59c4491cfSAnoob Joseph========================================
69c4491cfSAnoob Joseph
79c4491cfSAnoob JosephThe OCTEON TX crypto poll mode driver provides support for offloading
89c4491cfSAnoob Josephcryptographic operations to cryptographic accelerator units on
99c4491cfSAnoob Joseph**OCTEON TX** :sup:`®` family of processors (CN8XXX). The OCTEON TX crypto
109c4491cfSAnoob Josephpoll mode driver enqueues the crypto request to this accelerator and dequeues
119c4491cfSAnoob Josephthe response once the operation is completed.
129c4491cfSAnoob Joseph
1333bcaae5SKanaka Durga KotamarthySupported Symmetric Crypto Algorithms
1433bcaae5SKanaka Durga Kotamarthy-------------------------------------
159c4491cfSAnoob Joseph
169c4491cfSAnoob JosephCipher Algorithms
179c4491cfSAnoob Joseph~~~~~~~~~~~~~~~~~
189c4491cfSAnoob Joseph
199c4491cfSAnoob Joseph* ``RTE_CRYPTO_CIPHER_NULL``
209c4491cfSAnoob Joseph* ``RTE_CRYPTO_CIPHER_3DES_CBC``
219c4491cfSAnoob Joseph* ``RTE_CRYPTO_CIPHER_3DES_ECB``
229c4491cfSAnoob Joseph* ``RTE_CRYPTO_CIPHER_AES_CBC``
239c4491cfSAnoob Joseph* ``RTE_CRYPTO_CIPHER_AES_CTR``
249c4491cfSAnoob Joseph* ``RTE_CRYPTO_CIPHER_AES_XTS``
259c4491cfSAnoob Joseph* ``RTE_CRYPTO_CIPHER_DES_CBC``
269c4491cfSAnoob Joseph* ``RTE_CRYPTO_CIPHER_KASUMI_F8``
279c4491cfSAnoob Joseph* ``RTE_CRYPTO_CIPHER_SNOW3G_UEA2``
289c4491cfSAnoob Joseph* ``RTE_CRYPTO_CIPHER_ZUC_EEA3``
299c4491cfSAnoob Joseph
309c4491cfSAnoob JosephHash Algorithms
319c4491cfSAnoob Joseph~~~~~~~~~~~~~~~
329c4491cfSAnoob Joseph
339c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_NULL``
349c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_AES_GMAC``
359c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_KASUMI_F9``
369c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_MD5``
379c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_MD5_HMAC``
389c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_SHA1``
399c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_SHA1_HMAC``
409c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_SHA224``
419c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_SHA224_HMAC``
429c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_SHA256``
439c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_SHA256_HMAC``
449c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_SHA384``
459c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_SHA384_HMAC``
469c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_SHA512``
479c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_SHA512_HMAC``
489c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_SNOW3G_UIA2``
499c4491cfSAnoob Joseph* ``RTE_CRYPTO_AUTH_ZUC_EIA3``
509c4491cfSAnoob Joseph
519c4491cfSAnoob JosephAEAD Algorithms
529c4491cfSAnoob Joseph~~~~~~~~~~~~~~~
539c4491cfSAnoob Joseph
549c4491cfSAnoob Joseph* ``RTE_CRYPTO_AEAD_AES_GCM``
559c4491cfSAnoob Joseph
5633bcaae5SKanaka Durga KotamarthySupported Asymmetric Crypto Algorithms
5733bcaae5SKanaka Durga Kotamarthy--------------------------------------
5833bcaae5SKanaka Durga Kotamarthy
5933bcaae5SKanaka Durga Kotamarthy* ``RTE_CRYPTO_ASYM_XFORM_RSA``
6033bcaae5SKanaka Durga Kotamarthy* ``RTE_CRYPTO_ASYM_XFORM_MODEX``
6133bcaae5SKanaka Durga Kotamarthy
629c4491cfSAnoob Joseph
63474fd349SAnoob JosephCompilation
64474fd349SAnoob Joseph-----------
659c4491cfSAnoob Joseph
66474fd349SAnoob JosephThe OCTEON TX crypto poll mode driver can be compiled either natively on
67474fd349SAnoob Joseph**OCTEON TX** :sup:`®` board or cross-compiled on an x86 based platform.
689c4491cfSAnoob Joseph
69474fd349SAnoob JosephRefer :doc:`../platform/octeontx` for details about setting up the platform
70474fd349SAnoob Josephand building DPDK applications.
719c4491cfSAnoob Joseph
72474fd349SAnoob Joseph.. note::
739c4491cfSAnoob Joseph
74474fd349SAnoob Joseph   OCTEON TX crypto PF driver needs microcode to be available at `/lib/firmware/` directory.
75474fd349SAnoob Joseph   Refer SDK documents for further information.
769c4491cfSAnoob Joseph
77474fd349SAnoob JosephSDK and related information can be obtained from: `Cavium support site <https://support.cavium.com/>`_.
789c4491cfSAnoob Joseph
799c4491cfSAnoob JosephExecution
809c4491cfSAnoob Joseph---------
819c4491cfSAnoob Joseph
829c4491cfSAnoob JosephThe number of crypto VFs to be enabled can be controlled by setting sysfs entry,
839c4491cfSAnoob Joseph`sriov_numvfs`, for the corresponding PF driver.
849c4491cfSAnoob Joseph
859c4491cfSAnoob Joseph.. code-block:: console
869c4491cfSAnoob Joseph
879c4491cfSAnoob Joseph        echo <num_vfs> > /sys/bus/pci/devices/<dev_bus_id>/sriov_numvfs
889c4491cfSAnoob Joseph
899c4491cfSAnoob JosephThe device bus ID, `dev_bus_id`, to be used in the above step can be found out
909c4491cfSAnoob Josephby using dpdk-devbind.py script. The OCTEON TX crypto PF device need to be
919c4491cfSAnoob Josephidentified and the corresponding device number can be used to tune various PF
929c4491cfSAnoob Josephproperties.
939c4491cfSAnoob Joseph
949c4491cfSAnoob Joseph
959c4491cfSAnoob JosephOnce the required VFs are enabled, dpdk-devbind.py script can be used to
969c4491cfSAnoob Josephidentify the VFs. To be accessible from DPDK, VFs need to be bound to vfio-pci
979c4491cfSAnoob Josephdriver:
989c4491cfSAnoob Joseph
999c4491cfSAnoob Joseph.. code-block:: console
1009c4491cfSAnoob Joseph
1019c4491cfSAnoob Joseph        cd <dpdk directory>
1029c4491cfSAnoob Joseph        ./usertools/dpdk-devbind.py -u <vf device no>
1039c4491cfSAnoob Joseph        ./usertools/dpdk-devbind.py -b vfio-pci <vf device no>
1049c4491cfSAnoob Joseph
1059c4491cfSAnoob JosephAppropriate huge page need to be setup in order to run the DPDK example
1069c4491cfSAnoob Josephapplications.
1079c4491cfSAnoob Joseph
1089c4491cfSAnoob Joseph.. code-block:: console
1099c4491cfSAnoob Joseph
110*de34aaa9SThomas Monjalon   dpdk-hugepages.py --setup 4G --pagesize 512M
1119c4491cfSAnoob Joseph
1129c4491cfSAnoob JosephExample applications can now be executed with crypto operations offloaded to
1139c4491cfSAnoob JosephOCTEON TX crypto PMD.
1149c4491cfSAnoob Joseph
1159c4491cfSAnoob Joseph.. code-block:: console
1169c4491cfSAnoob Joseph
1179c4491cfSAnoob Joseph        ./build/ipsec-secgw --log-level=8 -c 0xff -- -P -p 0x3 -u 0x2 --config
1189c4491cfSAnoob Joseph        "(1,0,0),(0,0,0)" -f ep1.cfg
11988d664aaSSunila Sahu
12088d664aaSSunila SahuTesting
12188d664aaSSunila Sahu-------
12288d664aaSSunila Sahu
12388d664aaSSunila SahuThe symmetric crypto operations on OCTEON TX crypto PMD may be verified by running the test
12488d664aaSSunila Sahuapplication:
12588d664aaSSunila Sahu
12688d664aaSSunila Sahu.. code-block:: console
12788d664aaSSunila Sahu
128fd5f9fb9SCiara Power        ./dpdk-test
12988d664aaSSunila Sahu        RTE>>cryptodev_octeontx_autotest
13088d664aaSSunila Sahu
13188d664aaSSunila SahuThe asymmetric crypto operations on OCTEON TX crypto PMD may be verified by running the test
13288d664aaSSunila Sahuapplication:
13388d664aaSSunila Sahu
13488d664aaSSunila Sahu.. code-block:: console
13588d664aaSSunila Sahu
136fd5f9fb9SCiara Power        ./dpdk-test
13788d664aaSSunila Sahu        RTE>>cryptodev_octeontx_asym_autotest
138