From dab1e57ac82512d02fba2460b693481174dd0849 Mon Sep 17 00:00:00 2001 From: Pablo de Lara Date: Fri, 1 Apr 2016 12:23:57 +0100 Subject: [PATCH] doc: update libsso link for SNOW 3G A new process to request the libsso library required by the SNOW3G PMD has been put in place, through a website, replacing the previous email method. This commit updates the SNOW3G documentation, to reflect this change. Since the library does not support newer gcc versions, the documentation also contains a patch to make the library work with gcc > 5.0. Signed-off-by: Pablo de Lara Acked-by: Declan Doherty --- doc/guides/cryptodevs/snow3g.rst | 41 +++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/doc/guides/cryptodevs/snow3g.rst b/doc/guides/cryptodevs/snow3g.rst index b4c53dcc49..7e38d203bb 100644 --- a/doc/guides/cryptodevs/snow3g.rst +++ b/doc/guides/cryptodevs/snow3g.rst @@ -57,15 +57,40 @@ Limitations Installation ------------ -To build DPDK with the SNOW3G_PMD the user is required to get -the export controlled libsso library, sending a request to -`DPDKUser_software_access@intel.com`, and compile it -on their user system before building DPDK: +To build DPDK with the SNOW3G_PMD the user is required to download +the export controlled ``libsso`` library, by requesting it from +``_, +and compiling it on their system before building DPDK:: -.. code-block:: console + make -f Makefile_snow3g - make -f Makefile_snow3g +**Note**: If using a gcc version higher than 5.0, and compilation fails, apply the following patch: -The environmental variable LIBSSO_PATH must be exported with the path +.. code-block:: diff + + /libsso/src/snow3g/sso_snow3g.c + + static inline void ClockFSM_4(sso_snow3gKeyState4_t *pCtx, __m128i *data) + { + __m128i F, R; + - uint32_t K, L; + + uint32_t K; + + /* Declare unused if SNOW3G_WSM/SNB are defined */ + + uint32_t L __attribute__ ((unused)) = 0; + + F = _mm_add_epi32(pCtx->LFSR_X[15], pCtx->FSM_X[0]); + R = _mm_xor_si128(pCtx->LFSR_X[5], pCtx->FSM_X[2]); + + /libsso/include/sso_snow3g_internal.h + + -inline void ClockFSM_1(sso_snow3gKeyState1_t *pCtx, uint32_t *data); + -inline void ClockLFSR_1(sso_snow3gKeyState1_t *pCtx); + -inline void sso_snow3gStateInitialize_1(sso_snow3gKeyState1_t * pCtx, sso_snow3g_key_schedule_t *pKeySched, uint8_t *pIV); + +void ClockFSM_1(sso_snow3gKeyState1_t *pCtx, uint32_t *data); + +void ClockLFSR_1(sso_snow3gKeyState1_t *pCtx); + +void sso_snow3gStateInitialize_1(sso_snow3gKeyState1_t * pCtx, sso_snow3g_key_schedule_t *pKeySched, uint8_t *pIV); + + +The environmental variable ``LIBSSO_PATH`` must be exported with the path where you extracted and built the libsso library and finally set -CONFIG_RTE_LIBRTE_PMD_SNOW3G=y in config/common_base. +``CONFIG_RTE_LIBRTE_PMD_SNOW3G=y`` in ``config/common_base``. -- 2.20.1