[dpdk-dev] [PATCH] l2fwd-crypto: fix supported key size check
Tested-by: Min Cao - Tested Commit: b3b9719f18ee83773c6ed7adda300c5ac63c37e9 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 1 cases, 1 passed, 0 failed - test case 1: l2fwd-crypto with 64 bytes auth_key Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Pablo de Lara Sent: Tuesday, April 12, 2016 6:04 PM To: dev at dpdk.org Cc: Doherty, Declan; De Lara Guarch, Pablo Subject: [dpdk-dev] [PATCH] l2fwd-crypto: fix supported key size check When initializing crypto devices within the app, the provided key sizes are checked against the supported sizes from the crypto device capabilities. When the supported sizes are not a range, but a single value, the check may become an infinite loop (when size is not supported). Fixes: a061e50a0d97 ("examples/l2fwd-crypto: fix ambiguous input key size") Signed-off-by: Pablo de Lara --- examples/l2fwd-crypto/main.c | 9 + 1 file changed, 9 insertions(+) diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index d4e2d8d..e273f2f 100644 --- a/examples/l2fwd-crypto/main.c +++ b/examples/l2fwd-crypto/main.c @@ -1486,6 +1486,15 @@ check_supported_size(uint16_t length, uint16_t min, uint16_t max, { uint16_t supp_size; + /* Single value */ + if (increment == 0) { + if (length == min) + return 0; + else + return -1; + } + + /* Range of values */ for (supp_size = min; supp_size <= max; supp_size += increment) { if (length == supp_size) return 0; -- 2.5.5
[dpdk-dev] [PATCH 0/7] L2fwd-crypto fixes/enhancements
Tested-by: Min Cao - Tested Commit: 6ac91f938cc88423885b757ce24c2a984da097d4 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 44 cases, 44 passed, 0 failed - test case 1: QAT Unit test Total 31 cases, 31 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto AES-CBC 128/192/256 Total 3 cases, 3 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Pablo de Lara Sent: Wednesday, March 30, 2016 9:02 PM To: dev at dpdk.org Cc: Doherty, Declan; De Lara Guarch, Pablo Subject: [dpdk-dev] [PATCH 0/7] L2fwd-crypto fixes/enhancements This patches fixes some small issues in L2fwd-crypto app and also improves the app, making it more flexible (accepting different key sizes) and readable (information display improvement). Pablo de Lara (7): l2fwd-crypto: add missing new line character in help l2fwd-crypto: rename period parameter l2fwd-crypto: add missing string initialization l2fwd-crypto: fix length of random IV/AAD l2fwd-crypto: fix ambiguous input key size l2fwd-crypto: use key-value list of supported algorithms l2fwd-crypto: extend crypto information examples/l2fwd-crypto/main.c | 465 -- lib/librte_cryptodev/rte_crypto_sym.h | 6 +- 2 files changed, 398 insertions(+), 73 deletions(-) -- 2.5.5
[dpdk-dev] [PATCH v2 0/3] Snow3G support for Intel Quick Assist Devices
Tested-by: Min Cao - Tested Commit: 1b9cb73ecef109593081ab9efbd9d1429607bb99 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 42 cases, 42 passed, 0 failed - test case 1: QAT Unit test Total 31 cases, 31 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Deepak Kumar JAIN Sent: Tuesday, February 23, 2016 10:03 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v2 0/3] Snow3G support for Intel Quick Assist Devices This patchset contains fixes and refactoring for Snow3G(UEA2 and UIA2) wireless algorithm for Intel Quick Assist devices. QAT PMD previously supported only cipher/hash alg-chaining for AES/SHA. The code has been refactored to also support cipher-only and hash only (for Snow3G only) functionality along with alg-chaining. Changes from v1: 1) Hash only fix and alg chainging fix 2) Added hash test vectors for snow3g UIA2 functionality. This patchset depends on Cryptodev API changes http://dpdk.org/ml/archives/dev/2016-February/033551.html Deepak Kumar JAIN (3): crypto: add cipher/auth only support qat: add support for Snow3G app/test: add Snow3G tests app/test/test_cryptodev.c | 1037 +++- app/test/test_cryptodev.h |3 +- app/test/test_cryptodev_snow3g_hash_test_vectors.h | 415 app/test/test_cryptodev_snow3g_test_vectors.h | 379 +++ doc/guides/cryptodevs/qat.rst |8 +- doc/guides/rel_notes/release_16_04.rst |4 + drivers/crypto/qat/qat_adf/qat_algs.h | 19 +- drivers/crypto/qat/qat_adf/qat_algs_build_desc.c | 280 +- drivers/crypto/qat/qat_crypto.c| 147 ++- drivers/crypto/qat/qat_crypto.h| 10 + 10 files changed, 2228 insertions(+), 74 deletions(-) create mode 100644 app/test/test_cryptodev_snow3g_hash_test_vectors.h create mode 100644 app/test/test_cryptodev_snow3g_test_vectors.h -- 2.1.0
[dpdk-dev] [PATCH v3 0/3] Snow3G support for Intel Quick Assist Devices
Tested-by: Min Cao - Tested Commit: 1b9cb73ecef109593081ab9efbd9d1429607bb99 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 42 cases, 42 passed, 0 failed - test case 1: QAT Unit test Total 31 cases, 31 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Deepak Kumar JAIN Sent: Thursday, March 03, 2016 9:01 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v3 0/3] Snow3G support for Intel Quick Assist Devices This patchset contains fixes and refactoring for Snow3G(UEA2 and UIA2) wireless algorithm for Intel Quick Assist devices. QAT PMD previously supported only cipher/hash alg-chaining for AES/SHA. The code has been refactored to also support cipher-only and hash only (for Snow3G only) functionality along with alg-chaining. Changes from v2: 1) Rebasing based on below mentioned patchset. This patchset depends on cryptodev API changes http://dpdk.org/ml/archives/dev/2016-February/034212.html Deepak Kumar JAIN (3): crypto: add cipher/auth only support qat: add support for Snow3G app/test: add Snow3G tests app/test/test_cryptodev.c | 1037 +++- app/test/test_cryptodev.h |3 +- app/test/test_cryptodev_snow3g_hash_test_vectors.h | 415 app/test/test_cryptodev_snow3g_test_vectors.h | 379 +++ doc/guides/cryptodevs/qat.rst |8 +- doc/guides/rel_notes/release_16_04.rst |6 + drivers/crypto/qat/qat_adf/qat_algs.h | 19 +- drivers/crypto/qat/qat_adf/qat_algs_build_desc.c | 280 +- drivers/crypto/qat/qat_crypto.c| 149 ++- drivers/crypto/qat/qat_crypto.h| 10 + 10 files changed, 2231 insertions(+), 75 deletions(-) create mode 100644 app/test/test_cryptodev_snow3g_hash_test_vectors.h create mode 100644 app/test/test_cryptodev_snow3g_test_vectors.h -- 2.1.0
[dpdk-dev] [PATCH v4 0/3] Snow3G support for Intel Quick Assist Devices
Tested-by: Min Cao - Tested Commit: 1b9cb73ecef109593081ab9efbd9d1429607bb99 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 42 cases, 42 passed, 0 failed - test case 1: QAT Unit test Total 31 cases, 31 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Deepak Kumar JAIN Sent: Friday, March 11, 2016 1:13 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v4 0/3] Snow3G support for Intel Quick Assist Devices This patchset contains fixes and refactoring for Snow3G(UEA2 and UIA2) wireless algorithm for Intel Quick Assist devices. QAT PMD previously supported only cipher/hash alg-chaining for AES/SHA. The code has been refactored to also support cipher-only and hash only (for Snow3G only) functionality along with alg-chaining. Changes from V3: 1) Rebase based on below mentioned patchset. 2) Fixes test failure which happens only after applying patch 1 only. Changes from v2: 1) Rebasing based on below mentioned patchset. This patchset depends on cryptodev API changes http://dpdk.org/ml/archives/dev/2016-March/035451.html Deepak Kumar JAIN (3): crypto: add cipher/auth only support qat: add support for Snow3G app/test: add Snow3G tests app/test/test_cryptodev.c | 1037 +++- app/test/test_cryptodev.h |3 +- app/test/test_cryptodev_snow3g_hash_test_vectors.h | 415 app/test/test_cryptodev_snow3g_test_vectors.h | 379 +++ doc/guides/cryptodevs/qat.rst |8 +- doc/guides/rel_notes/release_16_04.rst |6 + drivers/crypto/qat/qat_adf/qat_algs.h | 19 +- drivers/crypto/qat/qat_adf/qat_algs_build_desc.c | 284 +- drivers/crypto/qat/qat_crypto.c| 149 ++- drivers/crypto/qat/qat_crypto.h| 10 + 10 files changed, 2236 insertions(+), 74 deletions(-) create mode 100644 app/test/test_cryptodev_snow3g_hash_test_vectors.h create mode 100644 app/test/test_cryptodev_snow3g_test_vectors.h -- 2.1.0
[dpdk-dev] [PATCH v2 0/2] cryptodev API changes
Tested-by: Min Cao - Tested Commit: e45ef10c34540c3f543689d833db8bb7296d9e85 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 24 cases, 24 passed, 0 failed - test case 1: QAT Unit test Total 13 cases, 13 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Declan Doherty Sent: Friday, February 19, 2016 7:01 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v2 0/2] cryptodev API changes This patch set separates the symmetric crypto operations from generic operations and then modifies the cryptodev burst API to accept bursts of rte_crypto_op rather than rte_mbufs. This patch set is dependent on the following bug fixes patches: aesni_mb: strict-aliasing rule compilation fix (http://dpdk.org/ml/archives/dev/2016-February/033193.html) qat:fix build on 32-bit systems (http://dpdk.org/ml/archives/dev/2016-February/033442.html) aesni_mb: fix wrong return value (http://dpdk.org/ml/archives/dev/2016-February/033193.html) Various fixes for L2fwd-crypto Declan Doherty (1): cryptodev: change burst API to be crypto op oriented Fiona Trahe (1): cryptodev: API tidy and changes to support future extensions MAINTAINERS| 4 - app/test/test_cryptodev.c | 890 +++-- app/test/test_cryptodev.h | 9 +- app/test/test_cryptodev_perf.c | 270 --- config/common_bsdapp | 7 - config/common_linuxapp | 11 +- doc/api/doxy-api-index.md | 1 - drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 199 ++--- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 18 +- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_private.h | 6 +- drivers/crypto/qat/qat_crypto.c| 154 ++-- drivers/crypto/qat/qat_crypto.h| 14 +- drivers/crypto/qat/rte_qat_cryptodev.c | 8 +- examples/l2fwd-crypto/main.c | 281 --- lib/Makefile | 1 - lib/librte_cryptodev/Makefile | 1 + lib/librte_cryptodev/rte_crypto.h | 802 +++ lib/librte_cryptodev/rte_crypto_sym.h | 642 +++ lib/librte_cryptodev/rte_cryptodev.c | 113 ++- lib/librte_cryptodev/rte_cryptodev.h | 183 ++--- lib/librte_cryptodev/rte_cryptodev_pmd.h | 32 +- lib/librte_cryptodev/rte_cryptodev_version.map | 1 + lib/librte_mbuf/rte_mbuf.h | 6 - lib/librte_mbuf_offload/Makefile | 52 -- lib/librte_mbuf_offload/rte_mbuf_offload.c | 100 --- lib/librte_mbuf_offload/rte_mbuf_offload.h | 307 --- .../rte_mbuf_offload_version.map | 7 - 27 files changed, 2114 insertions(+), 2005 deletions(-) create mode 100644 lib/librte_cryptodev/rte_crypto_sym.h delete mode 100644 lib/librte_mbuf_offload/Makefile delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.c delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.h delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload_version.map -- 2.5.0
[dpdk-dev] [PATCH v3 0/2] cryptodev API changes
Tested-by: Min Cao - Tested Commit: e45ef10c34540c3f543689d833db8bb7296d9e85 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 24 cases, 24 passed, 0 failed - test case 1: QAT Unit test Total 13 cases, 13 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Declan Doherty Sent: Saturday, February 27, 2016 1:30 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v3 0/2] cryptodev API changes This patch set separates the symmetric crypto operations from generic operations and then modifies the cryptodev burst API to accept bursts of rte_crypto_op rather than rte_mbufs. V3: - Addresses V2 comments - Rebased for head Declan Doherty (1): cryptodev: change burst API to be crypto op oriented Fiona Trahe (1): cryptodev: API tidy and changes to support future extensions MAINTAINERS| 6 +- app/test/test_cryptodev.c | 894 +++-- app/test/test_cryptodev.h | 9 +- app/test/test_cryptodev_perf.c | 270 --- config/common_bsdapp | 8 - config/common_linuxapp | 8 - doc/api/doxy-api-index.md | 1 - drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 199 ++--- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 18 +- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_private.h | 6 +- drivers/crypto/qat/qat_crypto.c| 150 ++-- drivers/crypto/qat/qat_crypto.h| 14 +- drivers/crypto/qat/rte_qat_cryptodev.c | 8 +- examples/l2fwd-crypto/main.c | 300 --- lib/Makefile | 1 - lib/librte_cryptodev/Makefile | 1 + lib/librte_cryptodev/rte_crypto.h | 822 --- lib/librte_cryptodev/rte_crypto_sym.h | 642 +++ lib/librte_cryptodev/rte_cryptodev.c | 115 ++- lib/librte_cryptodev/rte_cryptodev.h | 185 ++--- lib/librte_cryptodev/rte_cryptodev_pmd.h | 32 +- lib/librte_cryptodev/rte_cryptodev_version.map | 3 +- lib/librte_mbuf/rte_mbuf.h | 6 - lib/librte_mbuf_offload/Makefile | 52 -- lib/librte_mbuf_offload/rte_mbuf_offload.c | 100 --- lib/librte_mbuf_offload/rte_mbuf_offload.h | 310 --- .../rte_mbuf_offload_version.map | 7 - 27 files changed, 2146 insertions(+), 2021 deletions(-) create mode 100644 lib/librte_cryptodev/rte_crypto_sym.h delete mode 100644 lib/librte_mbuf_offload/Makefile delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.c delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.h delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload_version.map -- 2.5.0
[dpdk-dev] [PATCH v4 0/2] cryptodev API changes
Tested-by: Min Cao - Tested Commit: e45ef10c34540c3f543689d833db8bb7296d9e85 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 24 cases, 24 passed, 0 failed - test case 1: QAT Unit test Total 13 cases, 13 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Declan Doherty Sent: Tuesday, March 01, 2016 12:52 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v4 0/2] cryptodev API changes This patch set separates the symmetric crypto operations from generic operations and then modifies the cryptodev burst API to accept bursts of rte_crypto_op rather than rte_mbufs. V4: - Fixes for issues introduced in __rte_crypto_op_raw_bulk_alloc in V3 patcheset. - Typo fix in cached attribute on rte_crypto_op structure. V3: - Addresses V2 comments - Rebased for head Declan Doherty (1): cryptodev: change burst API to be crypto op oriented Fiona Trahe (1): cryptodev: API tidy and changes to support future extensions MAINTAINERS| 6 +- app/test/test_cryptodev.c | 894 +++-- app/test/test_cryptodev.h | 9 +- app/test/test_cryptodev_perf.c | 270 --- config/common_bsdapp | 8 - config/common_linuxapp | 8 - doc/api/doxy-api-index.md | 1 - drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 199 ++--- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 18 +- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_private.h | 6 +- drivers/crypto/qat/qat_crypto.c| 150 ++-- drivers/crypto/qat/qat_crypto.h| 14 +- drivers/crypto/qat/rte_qat_cryptodev.c | 8 +- examples/l2fwd-crypto/main.c | 300 --- lib/Makefile | 1 - lib/librte_cryptodev/Makefile | 1 + lib/librte_cryptodev/rte_crypto.h | 819 +++ lib/librte_cryptodev/rte_crypto_sym.h | 642 +++ lib/librte_cryptodev/rte_cryptodev.c | 115 ++- lib/librte_cryptodev/rte_cryptodev.h | 185 ++--- lib/librte_cryptodev/rte_cryptodev_pmd.h | 32 +- lib/librte_cryptodev/rte_cryptodev_version.map | 3 +- lib/librte_mbuf/rte_mbuf.h | 6 - lib/librte_mbuf_offload/Makefile | 52 -- lib/librte_mbuf_offload/rte_mbuf_offload.c | 100 --- lib/librte_mbuf_offload/rte_mbuf_offload.h | 310 --- .../rte_mbuf_offload_version.map | 7 - 27 files changed, 2143 insertions(+), 2021 deletions(-) create mode 100644 lib/librte_cryptodev/rte_crypto_sym.h delete mode 100644 lib/librte_mbuf_offload/Makefile delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.c delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.h delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload_version.map -- 2.5.0
[dpdk-dev] [PATCH v5 0/2] cryptodev API changes
Tested-by: Min Cao - Tested Commit: e45ef10c34540c3f543689d833db8bb7296d9e85 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 23 cases, 23 passed, 0 failed - test case 1: QAT Unit test Total 13 cases, 13 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Fiona Trahe Sent: Saturday, March 05, 2016 1:18 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v5 0/2] cryptodev API changes This patch set separates the symmetric crypto operations from generic operations and then modifies the cryptodev burst API to accept bursts of rte_crypto_op rather than rte_mbufs. V5: - updates .map file - removes EXPERIMENTAL label from rte_cryptodev.h V4: - Fixes for issues introduced in __rte_crypto_op_raw_bulk_alloc in V3 patcheset. - Typo fix in cached attribute on rte_crypto_op structure. V3: - Addresses V2 comments - Rebased for head Declan Doherty (1): cryptodev: change burst API to be crypto op oriented Fiona Trahe (1): cryptodev: API tidy and changes to support future extensions MAINTAINERS| 6 +- app/test/test_cryptodev.c | 894 +++-- app/test/test_cryptodev.h | 9 +- app/test/test_cryptodev_perf.c | 270 --- config/common_bsdapp | 8 - config/common_linuxapp | 8 - doc/api/doxy-api-index.md | 1 - drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 199 ++--- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 18 +- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_private.h | 6 +- drivers/crypto/qat/qat_crypto.c| 150 ++-- drivers/crypto/qat/qat_crypto.h| 14 +- drivers/crypto/qat/rte_qat_cryptodev.c | 8 +- examples/l2fwd-crypto/main.c | 300 --- lib/Makefile | 1 - lib/librte_cryptodev/Makefile | 1 + lib/librte_cryptodev/rte_crypto.h | 819 +++ lib/librte_cryptodev/rte_crypto_sym.h | 642 +++ lib/librte_cryptodev/rte_cryptodev.c | 115 ++- lib/librte_cryptodev/rte_cryptodev.h | 189 ++--- lib/librte_cryptodev/rte_cryptodev_pmd.h | 32 +- lib/librte_cryptodev/rte_cryptodev_version.map | 7 +- lib/librte_mbuf/rte_mbuf.h | 6 - lib/librte_mbuf_offload/Makefile | 52 -- lib/librte_mbuf_offload/rte_mbuf_offload.c | 100 --- lib/librte_mbuf_offload/rte_mbuf_offload.h | 310 --- .../rte_mbuf_offload_version.map | 7 - 27 files changed, 2145 insertions(+), 2027 deletions(-) create mode 100644 lib/librte_cryptodev/rte_crypto_sym.h delete mode 100644 lib/librte_mbuf_offload/Makefile delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.c delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.h delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload_version.map -- 2.1.0
[dpdk-dev] [PATCH v6 0/2] cryptodev API changes
Tested-by: Min Cao - Tested Commit: e45ef10c34540c3f543689d833db8bb7296d9e85 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 24 cases, 24 passed, 0 failed - test case 1: QAT Unit test Total 13 cases, 13 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Fiona Trahe Sent: Saturday, March 05, 2016 2:30 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v6 0/2] cryptodev API changes This patch set separates the symmetric crypto operations from generic operations and then modifies the cryptodev burst API to accept bursts of rte_crypto_op rather than rte_mbufs. v6: - restore EXPERIMENTAL label to cryptodev. Will handle removal in separate thread. (email subject was incorrect in v5, so v5 hasn't arrived in patchwork, therefore v6 is in-reply-to v4 message id) V5: - updates .map file - removes EXPERIMENTAL label from rte_cryptodev.h V4: - Fixes for issues introduced in __rte_crypto_op_raw_bulk_alloc in V3 patcheset. - Typo fix in cached attribute on rte_crypto_op structure. V3: - Addresses V2 comments - Rebased for head Declan Doherty (1): cryptodev: change burst API to be crypto op oriented Fiona Trahe (1): cryptodev: API tidy and changes to support future extensions MAINTAINERS| 4 - app/test/test_cryptodev.c | 894 +++-- app/test/test_cryptodev.h | 9 +- app/test/test_cryptodev_perf.c | 270 --- config/common_bsdapp | 9 +- config/common_linuxapp | 9 +- doc/api/doxy-api-index.md | 1 - drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 199 ++--- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 18 +- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_private.h | 6 +- drivers/crypto/qat/qat_crypto.c| 150 ++-- drivers/crypto/qat/qat_crypto.h| 14 +- drivers/crypto/qat/rte_qat_cryptodev.c | 8 +- examples/l2fwd-crypto/main.c | 300 --- lib/Makefile | 1 - lib/librte_cryptodev/Makefile | 1 + lib/librte_cryptodev/rte_crypto.h | 819 +++ lib/librte_cryptodev/rte_crypto_sym.h | 642 +++ lib/librte_cryptodev/rte_cryptodev.c | 115 ++- lib/librte_cryptodev/rte_cryptodev.h | 191 ++--- lib/librte_cryptodev/rte_cryptodev_pmd.h | 32 +- lib/librte_cryptodev/rte_cryptodev_version.map | 7 +- lib/librte_mbuf/rte_mbuf.h | 6 - lib/librte_mbuf_offload/Makefile | 52 -- lib/librte_mbuf_offload/rte_mbuf_offload.c | 100 --- lib/librte_mbuf_offload/rte_mbuf_offload.h | 310 --- .../rte_mbuf_offload_version.map | 7 - 27 files changed, 2148 insertions(+), 2026 deletions(-) create mode 100644 lib/librte_cryptodev/rte_crypto_sym.h delete mode 100644 lib/librte_mbuf_offload/Makefile delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.c delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.h delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload_version.map -- 2.1.0
[dpdk-dev] [PATCH v7 0/2] cryptodev API changes
Tested-by: Min Cao - Tested Commit: e702183bab5a13f6e7d77be0d414914319469020 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 24 cases, 24 passed, 0 failed - test case 1: QAT Unit test Total 13 cases, 13 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Fiona Trahe Sent: Monday, March 07, 2016 7:50 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v7 0/2] cryptodev API changes This patch set separates the symmetric crypto operations from generic operations and then modifies the cryptodev burst API to accept bursts of rte_crypto_op rather than rte_mbufs. v7: - remove trailing spaces introduced in v6 - rebase against recent config file changes v6: - restore EXPERIMENTAL label to cryptodev. Will handle removal in separate thread. (email subject was incorrect in v5, so v5 hasn't arrived in patchwork, therefore v6 is in-reply-to v4 message id) V5: - updates .map file - removes EXPERIMENTAL label from rte_cryptodev.h V4: - Fixes for issues introduced in __rte_crypto_op_raw_bulk_alloc in V3 patcheset. - Typo fix in cached attribute on rte_crypto_op structure. V3: - Addresses V2 comments - Rebased for head Declan Doherty (1): cryptodev: change burst API to be crypto op oriented Fiona Trahe (2): cryptodev: API tidy and changes to support future extensions cryptodev: change burst API to be crypto op oriented MAINTAINERS| 4 - app/test/test_cryptodev.c | 894 +++-- app/test/test_cryptodev.h | 9 +- app/test/test_cryptodev_perf.c | 270 --- config/common_base | 7 - doc/api/doxy-api-index.md | 1 - drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 199 ++--- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 18 +- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_private.h | 6 +- drivers/crypto/qat/qat_crypto.c| 150 ++-- drivers/crypto/qat/qat_crypto.h| 14 +- drivers/crypto/qat/rte_qat_cryptodev.c | 8 +- examples/l2fwd-crypto/main.c | 300 --- lib/Makefile | 1 - lib/librte_cryptodev/Makefile | 1 + lib/librte_cryptodev/rte_crypto.h | 819 +++ lib/librte_cryptodev/rte_crypto_sym.h | 642 +++ lib/librte_cryptodev/rte_cryptodev.c | 115 ++- lib/librte_cryptodev/rte_cryptodev.h | 189 ++--- lib/librte_cryptodev/rte_cryptodev_pmd.h | 32 +- lib/librte_cryptodev/rte_cryptodev_version.map | 7 +- lib/librte_mbuf/rte_mbuf.h | 6 - lib/librte_mbuf_offload/Makefile | 52 -- lib/librte_mbuf_offload/rte_mbuf_offload.c | 100 --- lib/librte_mbuf_offload/rte_mbuf_offload.h | 310 --- .../rte_mbuf_offload_version.map | 7 - 26 files changed, 2145 insertions(+), 2016 deletions(-) create mode 100644 lib/librte_cryptodev/rte_crypto_sym.h delete mode 100644 lib/librte_mbuf_offload/Makefile delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.c delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.h delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload_version.map -- 2.1.0
[dpdk-dev] [PATCH v8 0/5] cryptodev API changes
Tested-by: Min Cao - Tested Commit: 4c387fcdf7776d3bb9f47789580a57bd18d4dbf3 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 23 cases, 23 passed, 0 failed - test case 1: QAT Unit test Total 13 cases, 13 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Fiona Trahe Sent: Thursday, March 10, 2016 9:43 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v8 0/5] cryptodev API changes This patch set separates the symmetric crypto operations from generic operations and then modifies the cryptodev burst API to accept bursts of rte_crypto_op rather than rte_mbufs. v8: - split patchset for easier review - fix broken /examples/l2fwd-crypto build in intermediate patch - split removal of rte_mbuf_offload into separate commit v7: - remove trailing spaces introduced in v6 - rebase against recent config file changes v6: - restore EXPERIMENTAL label to cryptodev. Will handle removal in separate thread. (email subject was incorrect in v5, so v5 hasn't arrived in patchwork, therefore v6 is in-reply-to v4 message id) V5: - updates .map file - removes EXPERIMENTAL label from rte_cryptodev.h V4: - Fixes for issues introduced in __rte_crypto_op_raw_bulk_alloc in V3 patcheset. - Typo fix in cached attribute on rte_crypto_op structure. V3: - Addresses V2 comments - Rebased for head Declan Doherty (2): cryptodev: change burst API to be crypto op oriented mbuf_offload: remove library Fiona Trahe (3): cryptodev: code cleanup cryptodev: refactor to partition common from symmetric-specific code cryptodev: remove unused phys_addr field from key MAINTAINERS| 4 - app/test/test_cryptodev.c | 883 +++-- app/test/test_cryptodev.h | 5 +- app/test/test_cryptodev_perf.c | 270 --- config/common_base | 7 - doc/api/doxy-api-index.md | 1 - drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 190 +++-- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 30 +- drivers/crypto/aesni_mb/rte_aesni_mb_pmd_private.h | 10 +- drivers/crypto/qat/qat_crypto.c| 160 ++-- drivers/crypto/qat/qat_crypto.h| 14 +- drivers/crypto/qat/rte_qat_cryptodev.c | 8 +- examples/l2fwd-crypto/main.c | 234 +++--- lib/Makefile | 1 - lib/librte_cryptodev/Makefile | 1 + lib/librte_cryptodev/rte_crypto.h | 819 --- lib/librte_cryptodev/rte_crypto_sym.h | 642 +++ lib/librte_cryptodev/rte_cryptodev.c | 115 ++- lib/librte_cryptodev/rte_cryptodev.h | 189 ++--- lib/librte_cryptodev/rte_cryptodev_pmd.h | 32 +- lib/librte_cryptodev/rte_cryptodev_version.map | 7 +- lib/librte_mbuf/rte_mbuf.h | 6 - lib/librte_mbuf_offload/Makefile | 52 -- lib/librte_mbuf_offload/rte_mbuf_offload.c | 100 --- lib/librte_mbuf_offload/rte_mbuf_offload.h | 310 .../rte_mbuf_offload_version.map | 7 - 26 files changed, 2130 insertions(+), 1967 deletions(-) create mode 100644 lib/librte_cryptodev/rte_crypto_sym.h delete mode 100644 lib/librte_mbuf_offload/Makefile delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.c delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload.h delete mode 100644 lib/librte_mbuf_offload/rte_mbuf_offload_version.map -- 2.1.0
[dpdk-dev] [PATCH v2] cryptodev: add capabilities discovery mechanism
Tested-by: Min Cao - Tested Commit: 94b0ad8e0aa556230183f4c4d06b68bfd145dce3 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 56 cases, 56 passed, 0 failed - test case 1: QAT Unit test Total 45 cases, 45 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Pablo de Lara Sent: Friday, March 11, 2016 1:07 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v2] cryptodev: add capabilities discovery mechanism From: Declan DohertyThis patch add a mechanism for discovery of crypto device features and supported crypto operations and algorithms. It also provides a method for a crypto PMD to publish any data range limitations it may have for the operations and algorithms it supports. The parameter feature_flags added to rte_cryptodev struct is used to capture features such as operations supported (symmetric crypto, operation chaining etc) as well parameter such as whether the device is hardware accelerated or uses SIMD instructions. The capabilities parameter allows a PMD to define an array of supported operations with any limitation which that implementation may have. Finally the rte_cryptodev_info struct has been extended to allow retrieval of these parameter using the existing rte_cryptodev_info_get() API. Signed-off-by: Declan Doherty Signed-off-by: Pablo de Lara --- This patch depends on "null_crypto_pmd: PMD to support null crypto operations" patch (http://dpdk.org/dev/patchwork/patch/11428/) and "snow3g: Bit-wise handling for Wireless Algorithm" patch (http://dpdk.org/dev/patchwork/patch/11429/) Changes in v2: - Fixed incorrect values for sizes - Renamed some fields in capabilities structure - Added capabilities for new PMDs drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 18 +++ drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c | 49 ++ drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 18 +++ drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 175 + drivers/crypto/null/null_crypto_pmd.c | 3 + drivers/crypto/null/null_crypto_pmd_ops.c | 47 ++ drivers/crypto/qat/qat_crypto.c| 201 - drivers/crypto/qat/rte_qat_cryptodev.c | 3 + drivers/crypto/snow3g/rte_snow3g_pmd.c | 3 + drivers/crypto/snow3g/rte_snow3g_pmd_ops.c | 51 +++ lib/librte_cryptodev/rte_cryptodev.c | 28 lib/librte_cryptodev/rte_cryptodev.h | 137 + lib/librte_cryptodev/rte_cryptodev_version.map | 1 + 13 files changed, 733 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c index 83aa272..c94bb7d 100644 --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c @@ -445,6 +445,24 @@ aesni_gcm_create(const char *name, dev->dequeue_burst = aesni_gcm_pmd_dequeue_burst; dev->enqueue_burst = aesni_gcm_pmd_enqueue_burst; + dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO | + RTE_CRYPTODEV_FF_OPERATION_CHAINING | + RTE_CRYPTODEV_FF_CPU_AESNI; + + switch (vector_mode) { + case RTE_AESNI_GCM_SSE: + dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_SSE; + break; + case RTE_AESNI_GCM_AVX: + dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_AVX; + break; + case RTE_AESNI_GCM_AVX2: + dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_AVX2; + break; + default: + break; + } + /* Set vector instructions mode supported */ internals = dev->data->dev_private; diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c index f865e0d..af7907b 100644 --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c @@ -38,6 +38,55 @@ #include "aesni_gcm_pmd_private.h" +static const struct rte_cryptodev_capabilities aesni_gcm_pmd_capabilities[] = { + { /* AES GCM (AUTH) */ + .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, + .sym = { + .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, + .auth = { + .algo = RTE_CRYPTO_AUTH_AES_GCM, + .block_size = 16, + .key_size = { + .min = 16, + .max = 32, + .increment = 8 + }, +
[dpdk-dev] [PATCH v3] cryptodev: add capabilities discovery mechanism
Tested-by: Min Cao - Tested Commit: 94b0ad8e0aa556230183f4c4d06b68bfd145dce3 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 56 cases, 56 passed, 0 failed - test case 1: QAT Unit test Total 45 cases, 45 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Pablo de Lara Sent: Friday, March 11, 2016 3:55 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v3] cryptodev: add capabilities discovery mechanism From: Declan DohertyThis patch add a mechanism for discovery of crypto device features and supported crypto operations and algorithms. It also provides a method for a crypto PMD to publish any data range limitations it may have for the operations and algorithms it supports. The parameter feature_flags added to rte_cryptodev struct is used to capture features such as operations supported (symmetric crypto, operation chaining etc) as well parameter such as whether the device is hardware accelerated or uses SIMD instructions. The capabilities parameter allows a PMD to define an array of supported operations with any limitation which that implementation may have. Finally the rte_cryptodev_info struct has been extended to allow retrieval of these parameter using the existing rte_cryptodev_info_get() API. Signed-off-by: Declan Doherty Signed-off-by: Pablo de Lara --- This patch depends on "null_crypto_pmd: PMD to support null crypto operations" patch (http://dpdk.org/dev/patchwork/patch/11428/) and "snow3g: Bit-wise handling for Wireless Algorithm" patch (http://dpdk.org/dev/patchwork/patch/11429/) Changes in v3: - Renamed macro to specify symmetric algo chaining Changes in v2: - Fixed incorrect values for sizes - Renamed some fields in capabilities structure - Added capabilities for new PMDs drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 18 +++ drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c | 49 ++ drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 18 +++ drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 175 + drivers/crypto/null/null_crypto_pmd.c | 3 + drivers/crypto/null/null_crypto_pmd_ops.c | 47 ++ drivers/crypto/qat/qat_crypto.c| 201 - drivers/crypto/qat/rte_qat_cryptodev.c | 3 + drivers/crypto/snow3g/rte_snow3g_pmd.c | 3 + drivers/crypto/snow3g/rte_snow3g_pmd_ops.c | 51 +++ lib/librte_cryptodev/rte_cryptodev.c | 28 lib/librte_cryptodev/rte_cryptodev.h | 137 + lib/librte_cryptodev/rte_cryptodev_version.map | 1 + 13 files changed, 733 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c index 83aa272..35577bc 100644 --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c @@ -445,6 +445,24 @@ aesni_gcm_create(const char *name, dev->dequeue_burst = aesni_gcm_pmd_dequeue_burst; dev->enqueue_burst = aesni_gcm_pmd_enqueue_burst; + dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO | + RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING | + RTE_CRYPTODEV_FF_CPU_AESNI; + + switch (vector_mode) { + case RTE_AESNI_GCM_SSE: + dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_SSE; + break; + case RTE_AESNI_GCM_AVX: + dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_AVX; + break; + case RTE_AESNI_GCM_AVX2: + dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_AVX2; + break; + default: + break; + } + /* Set vector instructions mode supported */ internals = dev->data->dev_private; diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c index f865e0d..af7907b 100644 --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c @@ -38,6 +38,55 @@ #include "aesni_gcm_pmd_private.h" +static const struct rte_cryptodev_capabilities aesni_gcm_pmd_capabilities[] = { + { /* AES GCM (AUTH) */ + .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, + .sym = { + .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, + .auth = { + .algo = RTE_CRYPTO_AUTH_AES_GCM, + .block_size = 16, + .key_size = { + .min = 16, + .max = 32, +
[dpdk-dev] [PATCH v4] cryptodev: add capabilities discovery mechanism
Tested-by: Min Cao - Tested Commit: 94b0ad8e0aa556230183f4c4d06b68bfd145dce3 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 56 cases, 56 passed, 0 failed - test case 1: QAT Unit test Total 45 cases, 45 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: l2fwd-crypto Total 1 cases, 1 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Pablo de Lara Sent: Friday, March 11, 2016 9:37 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v4] cryptodev: add capabilities discovery mechanism From: Declan DohertyThis patch add a mechanism for discovery of crypto device features and supported crypto operations and algorithms. It also provides a method for a crypto PMD to publish any data range limitations it may have for the operations and algorithms it supports. The parameter feature_flags added to rte_cryptodev struct is used to capture features such as operations supported (symmetric crypto, operation chaining etc) as well parameter such as whether the device is hardware accelerated or uses SIMD instructions. The capabilities parameter allows a PMD to define an array of supported operations with any limitation which that implementation may have. Finally the rte_cryptodev_info struct has been extended to allow retrieval of these parameter using the existing rte_cryptodev_info_get() API. Signed-off-by: Declan Doherty Signed-off-by: Pablo de Lara Acked-by: Fiona Trahe --- This patch depends on "null_crypto_pmd: PMD to support null crypto operations" patch (http://dpdk.org/dev/patchwork/patch/11428/) and "snow3g: Bit-wise handling for Wireless Algorithm" patch (http://dpdk.org/dev/patchwork/patch/11429/) Changes in v4: - Added missing capabilities information in device info Changes in v3: - Renamed macro to specify symmetric algo chaining Changes in v2: - Fixed incorrect values for sizes - Renamed some fields in capabilities structure - Added capabilities for new PMDs drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 18 +++ drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c | 51 +++ drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 18 +++ drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 175 + drivers/crypto/null/null_crypto_pmd.c | 3 + drivers/crypto/null/null_crypto_pmd_ops.c | 47 ++ drivers/crypto/qat/qat_crypto.c| 201 - drivers/crypto/qat/rte_qat_cryptodev.c | 3 + drivers/crypto/snow3g/rte_snow3g_pmd.c | 3 + drivers/crypto/snow3g/rte_snow3g_pmd_ops.c | 51 +++ lib/librte_cryptodev/rte_cryptodev.c | 28 lib/librte_cryptodev/rte_cryptodev.h | 137 + lib/librte_cryptodev/rte_cryptodev_version.map | 1 + 13 files changed, 735 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c index 83aa272..35577bc 100644 --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c @@ -445,6 +445,24 @@ aesni_gcm_create(const char *name, dev->dequeue_burst = aesni_gcm_pmd_dequeue_burst; dev->enqueue_burst = aesni_gcm_pmd_enqueue_burst; + dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO | + RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING | + RTE_CRYPTODEV_FF_CPU_AESNI; + + switch (vector_mode) { + case RTE_AESNI_GCM_SSE: + dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_SSE; + break; + case RTE_AESNI_GCM_AVX: + dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_AVX; + break; + case RTE_AESNI_GCM_AVX2: + dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_AVX2; + break; + default: + break; + } + /* Set vector instructions mode supported */ internals = dev->data->dev_private; diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c index f865e0d..387f8d1 100644 --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c @@ -38,6 +38,55 @@ #include "aesni_gcm_pmd_private.h" +static const struct rte_cryptodev_capabilities aesni_gcm_pmd_capabilities[] = { + { /* AES GCM (AUTH) */ + .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, + .sym = { + .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, + .auth = { + .algo = RTE_CRYPTO_AUTH_AES_GCM, + .block_size = 16, + .key_size = { + .min = 16, +
[dpdk-dev] [PATCH 0/6] L2fwd-crypto enhancements
Tested-by: Min Cao - Tested Commit: 94b0ad8e0aa556230183f4c4d06b68bfd145dce3 - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc (GCC) 4.8.3 - CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz - NIC: Niantic - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 65 cases, 65 passed, 0 failed - test case 1: QAT Unit test Total 45 cases, 45 passed, 0 failed - test case 2: AES_NI Unit test Total 10 cases, 10 passed, 0 failed - test case 3: AES_NI GCM Unit test Total 10 cases, 10 passed, 0 failed -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Pablo de Lara Sent: Friday, March 11, 2016 8:03 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH 0/6] L2fwd-crypto enhancements This patchset cleans up the l2fwd-crypto app, implements some missing functionality and makes use of the new capability discovery mechanism that cryptodev library offers to discover which crypto operations a PMD can provide. This patchset depends on "cryptodev: add capabilities discovery mechanism" patch (http://dpdk.org/dev/patchwork/patch/11434/) Pablo de Lara (6): l2fwd-crypto: code cleanup l2fwd-crypto: update auth algo list l2fwd-crypto: implement parse_key function l2fwd_crypto: add AAD parsing l2fwd-crypto: add missing cipher/hash only cases l2fwd-crypto: use cryptodev capability discovery examples/l2fwd-crypto/main.c | 517 +-- 1 file changed, 348 insertions(+), 169 deletions(-) -- 2.5.0
[dpdk-dev] [PATCH v4 0/3] Keepalive monitoring & reporting
Tested-by: Min Cao - OS/Kernel: Fedora 21/ 3.17.4-301 - GCC: gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6) - CPU: Intel(R) Xeon(R) CPU E5-2658 0 @ 2.10GHz - NIC: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) - Total 3 cases, 3 passed, 0 failed. Test Case 1: Disable/Enable parameter T PERIOD Test case 2: Maximum value with parameter K and T Test case 3: Keep Alive -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Remy Horton Sent: Thursday, November 05, 2015 7:33 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v4 0/3] Keepalive monitoring & reporting This patch-set adds functions for detecting and reporting live-ness of LCores, the primary requirement of which is minimal overheads for the core(s) being checked. Core failures are notified via an application defined callback. As an example l2fwd with random failures is used. Remy Horton (3): rte: add keep alive functionality docs: add keep alive sample app guide & release notes example: add keep alive sample application MAINTAINERS | 4 + doc/guides/rel_notes/release_2_2.rst| 3 + doc/guides/sample_app_ug/index.rst | 1 + doc/guides/sample_app_ug/keep_alive.rst | 191 ++ examples/l2fwd-keepalive/Makefile | 50 ++ examples/l2fwd-keepalive/main.c | 806 lib/librte_eal/bsdapp/eal/Makefile | 1 + lib/librte_eal/bsdapp/eal/rte_eal_version.map | 6 +- lib/librte_eal/common/Makefile | 2 +- lib/librte_eal/common/include/rte_keepalive.h | 146 + lib/librte_eal/common/rte_keepalive.c | 124 lib/librte_eal/linuxapp/eal/Makefile| 1 + lib/librte_eal/linuxapp/eal/rte_eal_version.map | 6 +- 13 files changed, 1338 insertions(+), 3 deletions(-) create mode 100644 doc/guides/sample_app_ug/keep_alive.rst create mode 100644 examples/l2fwd-keepalive/Makefile create mode 100644 examples/l2fwd-keepalive/main.c create mode 100644 lib/librte_eal/common/include/rte_keepalive.h create mode 100644 lib/librte_eal/common/rte_keepalive.c -- 1.9.3
[dpdk-dev] [PATCH v2 0/6] support i40e QinQ stripping and insertion
Tested-by: Min Cao - OS: Fedora20 3.11.10-301 - GCC: gcc version 4.8.2 20131212 - CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz - NIC: Ethernet controller: Intel Corporation Device 1572 (rev 01) - Default x86_64-native-linuxapp-gcc configuration - Total 2 cases, 2 passed, 0 failed - Case: double vlan filter - Case: double vlan insertion > -Original Message- > From: Zhang, Helin > Sent: Tuesday, June 2, 2015 11:16 AM > To: dev at dpdk.org > Cc: Cao, Min; Liu, Jijiang; Wu, Jingjing; Ananyev, Konstantin; > Richardson, Bruce; olivier.matz at 6wind.com; Zhang, Helin > Subject: [PATCH v2 0/6] support i40e QinQ stripping and insertion > > As i40e hardware can be reconfigured to support QinQ stripping and > insertion, this patch set is to enable that together with using the > reserved 16 bits in 'struct rte_mbuf' for the second vlan tag. > Corresponding command is added in testpmd for testing. > Note that no need to rework vPMD, as nothings used in it changed. > > v2 changes: > * Added more commit logs of which commit it fix for. > * Fixed a typo. > * Kept the original RX/TX offload flags as they were, added new > flags after with new bit masks, for ABI compatibility. > * Supported double vlan stripping/insertion in examples/ipv4_multicast. > > Helin Zhang (6): > ixgbe: remove a discarded source line > mbuf: use the reserved 16 bits for double vlan > i40e: support double vlan stripping and insertion > i40evf: add supported offload capability flags > app/testpmd: add test cases for qinq stripping and insertion > examples/ipv4_multicast: support double vlan stripping and insertion > > app/test-pmd/cmdline.c| 78 + > app/test-pmd/config.c | 21 +- > app/test-pmd/flowgen.c| 4 +- > app/test-pmd/macfwd.c | 3 ++ > app/test-pmd/macswap.c| 3 ++ > app/test-pmd/rxonly.c | 3 ++ > app/test-pmd/testpmd.h| 6 ++- > app/test-pmd/txonly.c | 8 +++- > drivers/net/i40e/i40e_ethdev.c| 52 + > drivers/net/i40e/i40e_ethdev_vf.c | 13 +++ > drivers/net/i40e/i40e_rxtx.c | 81 > +-- > drivers/net/ixgbe/ixgbe_rxtx.c| 1 - > examples/ipv4_multicast/main.c| 1 + > lib/librte_ether/rte_ethdev.h | 2 + > lib/librte_mbuf/rte_mbuf.h| 10 - > 15 files changed, 243 insertions(+), 43 deletions(-) > > -- > 1.9.3
[dpdk-dev] [PATCH] i40e: fix the issue reported by klocwork
Tested-by: Min Cao Patch name: [dpdk-dev] [PATCH] i40e: fix the issue reported by klocwork Test Flag: Tested-by Tester name:min.cao at intel.com Result summary: total 2 cases, 2passed, 0 failed Test Case 1: Name: ipv4 fwd Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle Test result:PASSED Detail: ipv4 fwd Test Case 2: Name: ipv6 fwd Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle Test result:PASSED Detail: ipv6 fwd -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Jingjing Wu Sent: Thursday, February 12, 2015 7:22 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH] i40e: fix the issue reported by klocwork Klocwork reports array 'src_offset' may use index 16. In function i40e_srcoff_to_flx_pit, index j + 1 can reach I40E_FDIR_MAX_FLEX_LEN. This patch fixes this issue to avoid array bound. Signed-off-by: Jingjing Wu --- lib/librte_pmd_i40e/i40e_fdir.c | 35 +-- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/lib/librte_pmd_i40e/i40e_fdir.c b/lib/librte_pmd_i40e/i40e_fdir.c index 68511c8..bc36d8e 100644 --- a/lib/librte_pmd_i40e/i40e_fdir.c +++ b/lib/librte_pmd_i40e/i40e_fdir.c @@ -402,28 +402,27 @@ i40e_srcoff_to_flx_pit(const uint16_t *src_offset, while (j < I40E_FDIR_MAX_FLEX_LEN) { size = 1; - for (; j < I40E_FDIR_MAX_FLEX_LEN; j++) { + for (; j < I40E_FDIR_MAX_FLEX_LEN - 1; j++) { if (src_offset[j + 1] == src_offset[j] + 1) size++; - else { - src_tmp = src_offset[j] + 1 - size; - /* the flex_pit need to be sort by scr_offset */ - for (i = 0; i < num; i++) { - if (src_tmp < flex_pit[i].src_offset) - break; - } - /* if insert required, move backward */ - for (k = num; k > i; k--) - flex_pit[k] = flex_pit[k - 1]; - /* insert */ - flex_pit[i].dst_offset = j + 1 - size; - flex_pit[i].src_offset = src_tmp; - flex_pit[i].size = size; - j++; - num++; + else + break; + } + src_tmp = src_offset[j] + 1 - size; + /* the flex_pit need to be sort by src_offset */ + for (i = 0; i < num; i++) { + if (src_tmp < flex_pit[i].src_offset) break; - } } + /* if insert required, move backward */ + for (k = num; k > i; k--) + flex_pit[k] = flex_pit[k - 1]; + /* insert */ + flex_pit[i].dst_offset = j + 1 - size; + flex_pit[i].src_offset = src_tmp; + flex_pit[i].size = size; + j++; + num++; } return num; } -- 1.9.3
[dpdk-dev] [PATCH v3 0/3] support TSO on i40e
Tested-by: min.cao Patch name: [dpdk-dev] [PATCH v3 0/3] support TSO on i40e Test Flag: Tested-by Tester name:min.cao at intel.com Result summary: total 3 cases, 3 passed, 0 failed Test Case 1: Name: ipv4 Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle Test result:PASSED Detail: TSO enable in ipv4 Test Case 2: Name: ipv6 Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle Test result:PASSED Detail: TSO enable in ipv6 Test Case 3: Name: nvgre Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle Test result:PASSED Detail: TSO enable in nvgre -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Jijiang Liu Sent: Thursday, February 26, 2015 11:37 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v3 0/3] support TSO on i40e This patch set enables i40e TSO feature for both non-tunneling packet and tunneling packet. Change logs: v2 change: rework based on Olivier's patch set [PATCH v2 00/20] enhance Tx checksum offload API http://dpdk.org/ml/archives/dev/2015-February/012375.html v3 change: 1. split 'enable i40e TSO' patch in v2 into two patches. One patch is for moving tx offloads parameters of i40e to separate structure. And other patch is for enabling i40e TSO feature for both non-tunneling packet and tunneling packet 2. patch order change Jijiang Liu (3): Move Tx offloads parameters of i40e to separate structure Enable i40e TSO feature for both non-tunneling packet and tunneling packet Advertise the DEV_TX_OFFLOAD_TCP_TSO flag in the PMD features lib/librte_pmd_i40e/i40e_ethdev.c |3 +- lib/librte_pmd_i40e/i40e_rxtx.c | 99 +++-- lib/librte_pmd_i40e/i40e_rxtx.h | 13 + 3 files changed, 87 insertions(+), 28 deletions(-) -- 1.7.7.6
[dpdk-dev] [PATCH 0/2] enable SRIOV switch in i40e driver
Tested-by: min.cao Patch name: [PATCH 0/2] enable SRIOV switch in i40e driver Test Flag: Tested-by Tester name:min.cao at intel.com Result summary: total 1 cases, 1 passed, 0 failed Test Case 1: Name: packet forwarding of SRIOV switch in i40e driver Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle Test result:PASSED Detail: packet forwarding of SRIOV switch in i40e driver are successful between 2 vms. -Original Message- From: Wu, Jingjing Sent: Thursday, January 29, 2015 9:42 AM To: dev at dpdk.org Cc: Wu, Jingjing; Zhang, Helin; Chen, Jing D; Cao, Min Subject: [PATCH 0/2] enable SRIOV switch in i40e driver Enable SRIOV switch in i40e driver. With this patch set, SRIOV switch can be done on Fortville NICs. Jingjing Wu (2): i40e: fix the bug when configuring vsi i40e: enable internal switch of pf lib/librte_pmd_i40e/i40e_ethdev.c | 38 +- 1 file changed, 37 insertions(+), 1 deletion(-) -- 1.9.3
[dpdk-dev] [PATCH 0/2] enable SRIOV switch in i40e driver
Test by: min.cao Patch name: [PATCH 0/2] enable SRIOV switch in i40e driver Test Flag: Tested-by Tester name:min.cao at intel.com Result summary: total 1 cases, 1 passed, 0 failed Test Case 1: Name: packet forwarding of SRIOV switch in i40e driver Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle Test result:PASSED Detail: packet forwarding of SRIOV switch in i40e driver are successful between 2 vms. -Original Message- From: Wu, Jingjing Sent: Thursday, January 29, 2015 9:42 AM To: dev at dpdk.org Cc: Wu, Jingjing; Zhang, Helin; Chen, Jing D; Cao, Min Subject: [PATCH 0/2] enable SRIOV switch in i40e driver Enable SRIOV switch in i40e driver. With this patch set, SRIOV switch can be done on Fortville NICs. Jingjing Wu (2): i40e: fix the bug when configuring vsi i40e: enable internal switch of pf lib/librte_pmd_i40e/i40e_ethdev.c | 38 +- 1 file changed, 37 insertions(+), 1 deletion(-) -- 1.9.3
[dpdk-dev] [PATCH 0/6] Support NVGRE on i40e
Test by: min.cao Patch name: [dpdk-dev] [PATCH 0/6] Support NVGRE on i40e Test Flag: Tested-by Tester name:min.cao at intel.com Result summary: total 2 cases, 2 passed, 0 failed Test Case 1: Name: nvgre filter Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle Test result:PASSED Detail: check normal packet + ip filter check vxlan packet + inner ip filter check vxlan packet + outer ip filter check vxlan packet + outer ip + inner ip filter check vxlan packet + inner udp filter check vxlan packet + inner tcp filter check vlan vxlan packet + outer ip filter check vlan vxlan packet + inner ip filter check vlan vxlan packet + outer ip filter check vlan vxlan packet + inner vlan + outer ip filter check vlan vxlan packet + inner vlan + inner ip filter check vlan vxlan packet + inner vlan + outer ip filter check vlan vxlan packet + inner vlan + inner udp filter check vlan vxlan packet + inner vlan + inner tcp filter Test Case 2: Name: nvgre checksum Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle Test result:PASSED Detail: check normal packet + ip checksum invalid check vxlan packet + inner ip checksum invalid check vxlan packet + outer ip checksum invalid check vxlan packet + outer ip + inner ip checksum invalid check vxlan packet + inner udp checksum invalid check vxlan packet + inner tcp checksum invalid check vlan vxlan packet + outer ip checksum invalid check vlan vxlan packet + inner ip checksum invalid check vlan vxlan packet + outer ip checksum invalid check vlan vxlan packet + inner vlan + outer ip checksum invalid check vlan vxlan packet + inner vlan + inner ip checksum invalid check vlan vxlan packet + inner vlan + outer ip checksum invalid check vlan vxlan packet + inner vlan + inner udp checksum invalid check vlan vxlan packet + inner vlan + inner tcp checksum invalid -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Jijiang Liu Sent: Monday, January 26, 2015 11:43 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH 0/6] Support NVGRE on i40e The patch set supports NVGRE on i40e. It includes: - Support RX filters for NVGRE packet. It uses MAC and VLAN to point to a queue. The filter types supported are listed below: 1. Inner MAC and Inner VLAN ID 2. Inner MAC address, inner VLAN ID and tenant ID. 3. Inner MAC and tenant ID 4. Inner MAC address 5. Outer MAC address, tenant ID and inner MAC 6. Inner IP - Support TX checksum offload for NVGRE packet, which include outer L3(IP), inner L3(IP) and inner L4(UDP, TCP and SCTP) Jijiang Liu (6): add gre header defination add nvgre RX filter in i40e test nvgre RX filters add GRE packet offload flag support GRE packet TX checksum offload test nvgre TX checksum offload app/test-pmd/cmdline.c| 37 - app/test-pmd/csumonly.c | 105 +++-- app/test-pmd/testpmd.h|4 +- lib/librte_ether/rte_ether.h | 12 lib/librte_mbuf/rte_mbuf.h|6 ++ lib/librte_pmd_i40e/i40e_ethdev.c |6 ++ lib/librte_pmd_i40e/i40e_rxtx.c | 15 - 7 files changed, 139 insertions(+), 46 deletions(-) -- 1.7.7.6
[dpdk-dev] [PATCH v3 0/6] i40e VMDQ support
Tested-by: Min Cao Patch name: i40e VMDQ support Brief description: Test Flag: Tested-by Tester name:min.cao at intel.com Result summary: total 1 cases, 1 passed, 0 failed Test Case 1: Name: perf_vmdq_performance Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle Test result:PASSED -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Chen Jing D(Mark) Sent: Tuesday, November 04, 2014 6:01 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v3 0/6] i40e VMDQ support From: "Chen Jing D(Mark)"v3: - Fix comments style. - Simplify words in comments. - Add variable defintion for BSD config file. - Code rebase to latest DPDK repo. v2: - Fix a few typos. - Add comments for RX mq mode flags. - Remove '\n' from some log messages. - Remove 'Acked-by' in commit log. v1: Define extra VMDQ arguments to expand VMDQ configuration. This also includes change in igb and ixgbe PMD driver. In the meanwhile, fix 2 defects in rte_ether library. Add full VMDQ support in i40e PMD driver. renamed some functions, setup VMDQ VSI after it's enabled in application. It also make some improvement on macaddr add/delete to support setting multiple macaddr for single or multiple pools. Finally, change i40e rx/tx_queue_setup and dev_start/stop functions to configure/switch queues belonging to VMDQ pools. Chen Jing D(Mark) (6): ether: enhancement for VMDQ support igb: change for VMDQ arguments expansion ixgbe: change for VMDQ arguments expansion i40e: add VMDQ support i40e: macaddr add/del enhancement i40e: Add full VMDQ pools support config/common_bsdapp|1 + config/common_linuxapp |1 + lib/librte_ether/rte_ethdev.c |6 +- lib/librte_ether/rte_ethdev.h | 41 ++- lib/librte_pmd_e1000/igb_ethdev.c |3 + lib/librte_pmd_i40e/i40e_ethdev.c | 498 ++- lib/librte_pmd_i40e/i40e_ethdev.h | 21 ++- lib/librte_pmd_i40e/i40e_rxtx.c | 125 +++-- lib/librte_pmd_ixgbe/ixgbe_ethdev.c |1 + 9 files changed, 532 insertions(+), 165 deletions(-) -- 1.7.7.6
[dpdk-dev] [PATCH v2] i40e: link flow control support
Tested-by: Min Cao Patch name: [dpdk-dev] [PATCH v2] i40e: link flow control support Test Flag: Tested-by Tester name:min.cao at intel.com Result summary: total 4 cases, 4 passed, 0 failed Test Case 1: Name: flowctrl_off_pause_fwd_off Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 2: Name: flowctrl_on_pause_fwd_off Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 3: Name: flowctrl_off_pause_fwd_on Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 4: Name: flowctrl_on_pause_fwd_on Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of zhida zang Sent: Thursday, November 20, 2014 4:59 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v2] i40e: link flow control support From: zzangAdd link flow control support for i40e Signed-off-by: zhida zang --- lib/librte_pmd_i40e/i40e_ethdev.c | 155 +- lib/librte_pmd_i40e/i40e_ethdev.h | 10 +++ 2 files changed, 162 insertions(+), 3 deletions(-) diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c b/lib/librte_pmd_i40e/i40e_ethdev.c index a860af7..183b0be 100644 --- a/lib/librte_pmd_i40e/i40e_ethdev.c +++ b/lib/librte_pmd_i40e/i40e_ethdev.c @@ -69,6 +69,18 @@ #define I40E_DEFAULT_TX_WTHRESH 0 #define I40E_DEFAULT_TX_RSBIT_THRESH 32 +/* Flow control default timer */ +#define I40E_DEFAULT_PAUSE_TIME 0xU + +/* Flow control default high water */ +#define I40E_DEFAULT_HIGH_WATER 0x1C40 + +/* Flow control default low water */ +#define I40E_DEFAULT_LOW_WATER 0x1A40 + +/* Flow control enable fwd bit */ +#define I40E_PRTMAC_FWD_CTRL 0x0001 + /* Maximun number of MAC addresses */ #define I40E_NUM_MACADDR_MAX 64 #define I40E_CLEAR_PXE_WAIT_MS 200 @@ -98,6 +110,12 @@ #define I40E_PRE_TX_Q_CFG_WAIT_US 10 /* 10 us */ +/* Receive Packet Buffer size */ +#define I40E_RXPBSIZE (968 * 1024) + +/* Receive Average Packet Size in Byte*/ +#define I40E_PACKET_AVERAGE_SIZE 128 + static int eth_i40e_dev_init(\ __attribute__((unused)) struct eth_driver *eth_drv, struct rte_eth_dev *eth_dev); @@ -131,6 +149,8 @@ static void i40e_vlan_strip_queue_set(struct rte_eth_dev *dev, static int i40e_vlan_pvid_set(struct rte_eth_dev *dev, uint16_t pvid, int on); static int i40e_dev_led_on(struct rte_eth_dev *dev); static int i40e_dev_led_off(struct rte_eth_dev *dev); +static int i40e_flow_ctrl_get(struct rte_eth_dev *dev, + struct rte_eth_fc_conf *fc_conf); static int i40e_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf); static int i40e_priority_flow_ctrl_set(struct rte_eth_dev *dev, @@ -237,6 +257,7 @@ static struct eth_dev_ops i40e_eth_dev_ops = { .tx_queue_release = i40e_dev_tx_queue_release, .dev_led_on = i40e_dev_led_on, .dev_led_off = i40e_dev_led_off, + .flow_ctrl_get= i40e_flow_ctrl_get, .flow_ctrl_set= i40e_flow_ctrl_set, .priority_flow_ctrl_set = i40e_priority_flow_ctrl_set, .mac_addr_add = i40e_macaddr_add, @@ -358,6 +379,9 @@ eth_i40e_dev_init(__rte_unused struct eth_driver *eth_drv, pf->adapter = I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); pf->adapter->eth_dev = dev; pf->dev_data = dev->data; + pf->fc_conf.pause_time = I40E_DEFAULT_PAUSE_TIME; + pf->fc_conf.high_water[0] = I40E_DEFAULT_HIGH_WATER; + pf->fc_conf.low_water[0] = I40E_DEFAULT_LOW_WATER; hw->back = I40E_PF_TO_ADAPTER(pf); hw->hw_addr = (uint8_t *)(pci_dev->mem_resource[0].addr); @@ -1516,12 +1540,137 @@ i40e_dev_led_off(struct rte_eth_dev *dev) } static int -i40e_flow_ctrl_set(__rte_unused
[dpdk-dev] [PATCH v5 02/21] i40e: tear down flow director
Tested-by: Min Cao Patch name: [PATCH v5 00/21] Support flow director programming on Fortville Test Flag: Tested-by Tester name:min.cao at intel.com Result summary: total 3 cases, 3 passed, 0 failed Test Case 1: Name: Fortville flow director with no flexible playload(IPv4/IPv6) Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 2: Name: Fortville flow director with flexible playload(IPv4/IPv6) Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 3: Name: Fortville flow director flush Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 4: Name: Fortville flow director performance Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED -Original Message- From: Wu, Jingjing Sent: Thursday, October 30, 2014 3:26 PM To: dev at dpdk.org Cc: Wu, Jingjing; Cao, Min Subject: [PATCH v5 02/21] i40e: tear down flow director To support flow director tear down, this patch includes - queue 0 pair release - release vsi Signed-off-by: Jingjing Wu --- lib/librte_pmd_i40e/i40e_ethdev.c | 4 +++- lib/librte_pmd_i40e/i40e_ethdev.h | 1 + lib/librte_pmd_i40e/i40e_fdir.c | 19 +++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c b/lib/librte_pmd_i40e/i40e_ethdev.c index cea7725..812c91d 100644 --- a/lib/librte_pmd_i40e/i40e_ethdev.c +++ b/lib/librte_pmd_i40e/i40e_ethdev.c @@ -514,7 +514,8 @@ eth_i40e_dev_init(__rte_unused struct eth_driver *eth_drv, return 0; err_setup_pf_switch: - rte_free(pf->main_vsi); + i40e_fdir_teardown(pf); + i40e_vsi_release(pf->main_vsi); err_get_mac_addr: err_configure_lan_hmc: (void)i40e_shutdown_lan_hmc(hw); @@ -849,6 +850,7 @@ i40e_dev_close(struct rte_eth_dev *dev) i40e_shutdown_lan_hmc(hw); /* release all the existing VSIs and VEBs */ + i40e_fdir_teardown(pf); i40e_vsi_release(pf->main_vsi); /* shutdown the adminq */ diff --git a/lib/librte_pmd_i40e/i40e_ethdev.h b/lib/librte_pmd_i40e/i40e_ethdev.h index 6d30f75..35fcc46 100644 --- a/lib/librte_pmd_i40e/i40e_ethdev.h +++ b/lib/librte_pmd_i40e/i40e_ethdev.h @@ -379,6 +379,7 @@ enum i40e_status_code i40e_fdir_setup_tx_resources(struct i40e_pf *pf, enum i40e_status_code i40e_fdir_setup_rx_resources(struct i40e_pf *pf, unsigned int socket_id); int i40e_fdir_setup(struct i40e_pf *pf); +void i40e_fdir_teardown(struct i40e_pf *pf); /* I40E_DEV_PRIVATE_TO */ #define I40E_DEV_PRIVATE_TO_PF(adapter) \ diff --git a/lib/librte_pmd_i40e/i40e_fdir.c b/lib/librte_pmd_i40e/i40e_fdir.c index a44bb73..bb474d2 100644 --- a/lib/librte_pmd_i40e/i40e_fdir.c +++ b/lib/librte_pmd_i40e/i40e_fdir.c @@ -219,4 +219,23 @@ fail_setup_tx: i40e_vsi_release(vsi); pf->fdir.fdir_vsi = NULL; return err; +} + +/* + * i40e_fdir_teardown - release the Flow Director resources + * @pf: board private structure + */ +void +i40e_fdir_teardown(struct i40e_pf *pf) +{ + struct i40e_vsi *vsi; + + vsi = pf->fdir.fdir_vsi; + i40e_dev_rx_queue_release(pf->fdir.rxq); + pf->fdir.rxq = NULL; + i40e_dev_tx_queue_release(pf->fdir.txq); + pf->fdir.txq = NULL; + i40e_vsi_release(vsi); + pf->fdir.fdir_vsi = NULL; + return; } \ No newline at end of file -- 1.8.1.4
[dpdk-dev] [PATCH v4 00/21] Support flow director programming on Fortville
Tested-by: Min Cao Patch name: [PATCH v4 00/21] Support flow director programming on Fortville Test Flag: Tested-by Tester name:min.cao at intel.com Result summary: total 3 cases, 3 passed, 0 failed Test Case 1: Name: Fortville flow director with no flexible playload(IPv4/IPv6) Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 2: Name: Fortville flow director with flexible playload(IPv4/IPv6) Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 3: Name: Fortville flow director flush Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 4: Name: Fortville flow director performance Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED -Original Message- From: Wu, Jingjing Sent: Wednesday, October 22, 2014 9:01 AM To: dev at dpdk.org Cc: Wu, Jingjing; Cao, Min Subject: [PATCH v4 00/21] Support flow director programming on Fortville The patch set supports flow director on fortville. It includes: - set up/tear down fortville resources to support flow director, such as queue and vsi. - support operation to add or delete 8 flow types of the flow director filters, they are ipv4, tcpv4, udpv4, sctpv4, ipv6, tcpv6, udpv6, sctpv6. - support flushing flow director table (all filters). - support operation to get flow director information. - match status statistics, FD_ID report. - support operation to configure flexible payload and its mask - support flexible payload involved in comparison and flex bytes report. v2 changes: - create real fdir vsi and assign queue 0 pair to it. - check filter status report on the rx queue 0 v3 changes: - redefine filter APIs to support multi-kind filters - support sctpv4 and sctpv6 type flows - support flexible payload involved in comparison v4 changes: - strip the filter APIs definitions from this patch set - extend mbuf field to support flex bytes report - fix typos Jingjing Wu (21): i40e: set up and initialize flow director i40e: tear down flow director i40e: initialize flexible payload setting ethdev: define structures for adding/deleting flow director i40e: implement operations to add/delete flow director testpmd: add test commands to add/delete flow director filter i40e: match counter for flow director mbuf: extend fdir field i40e: report flow director match info to mbuf testpmd: print extended fdir info in mbuf ethdev: define structures for getting flow director information i40e: implement operations to get fdir info testpmd: display fdir statistics i40e: implement operation to flush flow director table testpmd: add test command to flush flow director table ethdev: define structures for configuring flexible payload i40e: implement operations to configure flexible payload testpmd: add test command to configure flexible payload ethdev: define structures for configuring flex masks i40e: implement operations to configure flexible masks testpmd: add test command to configure flexible masks app/test-pmd/cmdline.c| 812 app/test-pmd/config.c | 38 +- app/test-pmd/rxonly.c | 14 +- app/test-pmd/testpmd.h|3 + lib/librte_ether/rte_eth_ctrl.h | 266 lib/librte_ether/rte_ethdev.h | 23 - lib/librte_mbuf/rte_mbuf.h| 12 +- lib/librte_pmd_i40e/Makefile |2 + lib/librte_pmd_i40e/i40e_ethdev.c | 127 +++- lib/librte_pmd_i40e/i40e_ethdev.h | 34 +- lib/librte_pmd_i40e/i40e_fdir.c | 1222 + lib/librte_pmd_i40e/i40e_rxtx.c | 225 ++- 12 files changed, 2723 insertions(+), 55 deletions(-) create mode 100644 lib/librte_pmd_i40e/i40e_fdir.c -- 1.8.1.4
[dpdk-dev] [PATCH v4 00/21] Support flow director programming on Fortville
Tested-by: Min Cao Patch name: Support flow director programming on Fortville Brief description: add flexible payload Test Flag: Tested-by Tester name:min.cao at intel.com Result summary: total 3 cases, 3 passed, 0 failed Test Case 1: Name: Fortville flow director with no flexible playload(IPv4/IPv6) Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 2: Name: Fortville flow director with flexible playload(IPv4/IPv6) Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 3: Name: Fortville flow director flush Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED -Original Message- From: Wu, Jingjing Sent: Wednesday, October 22, 2014 9:01 AM To: dev at dpdk.org Cc: Wu, Jingjing; Cao, Min Subject: [PATCH v4 00/21] Support flow director programming on Fortville The patch set supports flow director on fortville. It includes: - set up/tear down fortville resources to support flow director, such as queue and vsi. - support operation to add or delete 8 flow types of the flow director filters, they are ipv4, tcpv4, udpv4, sctpv4, ipv6, tcpv6, udpv6, sctpv6. - support flushing flow director table (all filters). - support operation to get flow director information. - match status statistics, FD_ID report. - support operation to configure flexible payload and its mask - support flexible payload involved in comparison and flex bytes report. v2 changes: - create real fdir vsi and assign queue 0 pair to it. - check filter status report on the rx queue 0 v3 changes: - redefine filter APIs to support multi-kind filters - support sctpv4 and sctpv6 type flows - support flexible payload involved in comparison v4 changes: - strip the filter APIs definitions from this patch set - extend mbuf field to support flex bytes report - fix typos Jingjing Wu (21): i40e: set up and initialize flow director i40e: tear down flow director i40e: initialize flexible payload setting ethdev: define structures for adding/deleting flow director i40e: implement operations to add/delete flow director testpmd: add test commands to add/delete flow director filter i40e: match counter for flow director mbuf: extend fdir field i40e: report flow director match info to mbuf testpmd: print extended fdir info in mbuf ethdev: define structures for getting flow director information i40e: implement operations to get fdir info testpmd: display fdir statistics i40e: implement operation to flush flow director table testpmd: add test command to flush flow director table ethdev: define structures for configuring flexible payload i40e: implement operations to configure flexible payload testpmd: add test command to configure flexible payload ethdev: define structures for configuring flex masks i40e: implement operations to configure flexible masks testpmd: add test command to configure flexible masks app/test-pmd/cmdline.c| 812 app/test-pmd/config.c | 38 +- app/test-pmd/rxonly.c | 14 +- app/test-pmd/testpmd.h|3 + lib/librte_ether/rte_eth_ctrl.h | 266 lib/librte_ether/rte_ethdev.h | 23 - lib/librte_mbuf/rte_mbuf.h| 12 +- lib/librte_pmd_i40e/Makefile |2 + lib/librte_pmd_i40e/i40e_ethdev.c | 127 +++- lib/librte_pmd_i40e/i40e_ethdev.h | 34 +- lib/librte_pmd_i40e/i40e_fdir.c | 1222 + lib/librte_pmd_i40e/i40e_rxtx.c | 225 ++- 12 files changed, 2723 insertions(+), 55 deletions(-) create mode 100644 lib/librte_pmd_i40e/i40e_fdir.c -- 1.8.1.4
[dpdk-dev] [PATCH v3 00/20] Support flow director programming on Fortville
Tested-by: Min Cao Patch name: Support flow director programming on Fortville Brief description: add flexible payload Test Flag: Tested-by Tester name:min.cao at intel.com Result summary: total 3 cases, 3 passed, 0 failed Test Case 1: Name: Fortville flow director with no flexible playload(IPv4/IPv6) Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 2: Name: Fortville flow director with flexible playload(IPv4/IPv6) Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED Test Case 3: Name: Fortville flow director flush Environment:OS: Fedora20 3.11.10-301.fc20.x86_64 gcc (GCC) 4.8.2 CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz NIC: Fortville eagle/spirit Test result:PASSED -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Jingjing Wu Sent: Friday, September 26, 2014 2:03 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v3 00/20] Support flow director programming on Fortville The patch set supports flow director on fortville. It includes: - set up/tear down fortville resources to support flow director, such as queue and vsi. - define new APIs to support multi-kind filters and their operations. - support operation to add or delete 8 flow types of the flow director filters, they are ipv4, tcpv4, udpv4, sctpv4, ipv6, tcpv6, udpv6, sctpv6. - support flushing flow director table (all filters). - support operation to get flow director information. - match status statistics and FD_ID report . - support operation to configure flexible payload and its mask - support flexible payload involved in comparison v2 changes: - create real fdir vsi and assign queue 0 pair to it. - check filter status report on the rx queue 0 v3 change: - redefine filter APIs to support multi-kind filters - support sctpv4 and sctpv6 type flows - support flexible payload involved in comparison Jingjing Wu (20): i40e: set up and initialize flow director i40e: tear down flow director i40e: initialize flexible payload setting lib/librte_ether: new filter APIs definition lib/librte_ether: define structures for adding/deleting flow director i40e: implement operations to add/delete flow director app/test-pmd: add test commands to add/delete flow director filter i40e: match counter for flow director i40e: report flow director match info to mbuf lib/librte_ether: define structures for getting flow director information i40e: implement operations to get fdir info app/test-pmd: display fdir statistics i40e: implement operation to flush flow director table app/test-pmd: add test command to flush flow director table lib/librte_ether: define structures for configuring flexible payload i40e: implement operations to configure flexible payload app/test-pmd: add test command to configure flexible payload lib/librte_ether: define structures for configuring flex masks i40e: implement operations to configure flexible masks app/test-pmd: add test command to configure flexible masks app/test-pmd/cmdline.c| 813 + app/test-pmd/config.c | 40 +- app/test-pmd/testpmd.h|3 + lib/librte_ether/Makefile |1 + lib/librte_ether/rte_eth_ctrl.h | 343 +++ lib/librte_ether/rte_ethdev.c | 32 + lib/librte_ether/rte_ethdev.h | 67 ++- lib/librte_pmd_i40e/Makefile |2 + lib/librte_pmd_i40e/i40e_ethdev.c | 148 - lib/librte_pmd_i40e/i40e_ethdev.h | 34 +- lib/librte_pmd_i40e/i40e_fdir.c | 1202 + lib/librte_pmd_i40e/i40e_rxtx.c | 175 ++ 12 files changed, 2815 insertions(+), 45 deletions(-) create mode 100644 lib/librte_ether/rte_eth_ctrl.h create mode 100644 lib/librte_pmd_i40e/i40e_fdir.c -- 1.8.1.4
[dpdk-dev] [PATCH] examples/vmdq: support i40e in vmdq example
Tested-by: Min Cao This patch has been verified on fortville and it is ready to be integrated to dpdk.org. -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Huawei Xie Sent: Wednesday, September 24, 2014 6:54 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH] examples/vmdq: support i40e in vmdq example With i40e, the queue index of VMDQ pools doesn't always start from zero, and the queues aren't all occupied by VMDQ. These information are retrieved through rte_eth_dev_info_get, and used to initialise VMDQ. Huawei Xie (1): support i40e in vmdq example examples/vmdq/main.c | 162 ++- 1 file changed, 97 insertions(+), 65 deletions(-) -- 1.8.1.4
[dpdk-dev] [PATCH 0/6] i40e VMDQ support
Tested-by: Min Cao This patch has been verified on fortville and it is ready to be integrated to dpdk.org. -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Chen Jing D(Mark) Sent: Tuesday, September 23, 2014 9:14 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH 0/6] i40e VMDQ support From: "Chen Jing D(Mark)"Define extra VMDQ arguments to expand VMDQ configuration. This also includes change in igb and ixgbe PMD driver. In the meanwhile, fix 2 defects in rte_ether library. Add full VMDQ support in i40e PMD driver. renamed some functions, setup VMDQ VSI after it's enabled in application. It also make some improvement on macaddr add/delete to support setting multiple macaddr for single or multiple pools. Finally, change i40e rx/tx_queue_setup and dev_start/stop functions to configure/switch queues belonging to VMDQ pools. Chen Jing D(Mark) (6): ether: enhancement for VMDQ support igb: change for VMDQ arguments expansion ixgbe: change for VMDQ arguments expansion i40e: add VMDQ support i40e: macaddr add/del enhancement i40e: Add full VMDQ pools support config/common_linuxapp |1 + lib/librte_ether/rte_ethdev.c | 12 +- lib/librte_ether/rte_ethdev.h | 39 ++- lib/librte_pmd_e1000/igb_ethdev.c |3 + lib/librte_pmd_i40e/i40e_ethdev.c | 509 ++- lib/librte_pmd_i40e/i40e_ethdev.h | 21 ++- lib/librte_pmd_i40e/i40e_rxtx.c | 125 +++-- lib/librte_pmd_ixgbe/ixgbe_ethdev.c |1 + 8 files changed, 537 insertions(+), 174 deletions(-) -- 1.7.7.6
[dpdk-dev] [PATCH v2 0/6] i40e VMDQ support
Tested-by: Min Cao This patch has been verified on fortville and it is ready to be integrated to dpdk.org. -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Chen Jing D(Mark) Sent: Thursday, October 16, 2014 6:07 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v2 0/6] i40e VMDQ support From: "Chen Jing D(Mark)"v2: - Fix a few typos. - Add comments for RX mq mode flags. - Remove '\n' from some log messages. - Remove 'Acked-by' in commit log. v1: Define extra VMDQ arguments to expand VMDQ configuration. This also includes change in igb and ixgbe PMD driver. In the meanwhile, fix 2 defects in rte_ether library. Add full VMDQ support in i40e PMD driver. renamed some functions, setup VMDQ VSI after it's enabled in application. It also make some improvement on macaddr add/delete to support setting multiple macaddr for single or multiple pools. Finally, change i40e rx/tx_queue_setup and dev_start/stop functions to configure/switch queues belonging to VMDQ pools. Chen Jing D(Mark) (6): ether: enhancement for VMDQ support igb: change for VMDQ arguments expansion ixgbe: change for VMDQ arguments expansion i40e: add VMDQ support i40e: macaddr add/del enhancement i40e: Add full VMDQ pools support config/common_linuxapp |1 + lib/librte_ether/rte_ethdev.c | 12 +- lib/librte_ether/rte_ethdev.h | 43 +++- lib/librte_pmd_e1000/igb_ethdev.c |3 + lib/librte_pmd_i40e/i40e_ethdev.c | 499 ++- lib/librte_pmd_i40e/i40e_ethdev.h | 21 ++- lib/librte_pmd_i40e/i40e_rxtx.c | 125 +++-- lib/librte_pmd_ixgbe/ixgbe_ethdev.c |1 + 8 files changed, 536 insertions(+), 169 deletions(-) -- 1.7.7.6
[dpdk-dev] [PATCH 0/3] fix of lsc interrupt in i40e PF
Tested-by: Min Cao This patch has been verified on FC20 with Eagle Fountain: 4*10G . The i40e base driver update patch works well on FC20 with basic function. The test environment detail information as the following: HOST environment: CPU: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz OS: Linux 3.11.10 GCC: 4.8.3 NIC: Eagle Fountain: 4*10G -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Helin Zhang Sent: Wednesday, September 17, 2014 3:54 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH 0/3] fix of lsc interrupt in i40e PF The patches include the fix for link status change interrupt in i40e PF, and code style fixes. Helin Zhang (3): i40e: renaming some local variables i40e: rework of PF interrupt cause enable flags processing i40e: fix of interrupt based link status change lib/librte_pmd_i40e/i40e_ethdev.c | 174 ++ 1 file changed, 122 insertions(+), 52 deletions(-) -- 1.8.1.4
[dpdk-dev] [PATCH v2 0/7] Support flow director programming on fortville
Tested-by: Min Cao I have tested this patch with Fortville. Flow director is tested with 2*40G, 1*40G and 4*10G NIC. -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Jingjing Wu Sent: Wednesday, August 27, 2014 10:14 AM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v2 0/7] Support flow director programming on fortville The patch set supports flow director programming on fortville. It includes: - reserve i40e resources for flow director, such as queue and vsi. - support the new ethdev API rx_classification_filter_ctl for all the configuration or queries for receive classification filters. - support programming 6 flow types for the flow director filters, which is called PCTYPE in fortville: ipv4, tcpv4, udpv4, ipv6, tcpv6, udpv6. - support flushing flow director table (all filters). - support to get flow diretor information. - support match statistics and FD ID report. - fix the the Marco conflict between rte_ip.h and netinet/in.h. v2 changes: - create real fdir vsi and assign queue 0 pair to it. - check filter status report on the rx queue 0 further plan: - add flexible payload comprasion as flow director's input - support sctpv4 and sctpv6 PCTYPEs jingjing.wu (7): flow director resource reserve and initialize on i40e define new ethdev API rx_classification_filter_ctl function implement in i40e for flow director filter programming function implement in i40e for flow director flush and info get fix the Marco conflict support FD ID report and match counter for i40e flow director add commands and config functions for i40e flow director support app/test-pmd/cmdline.c | 665 app/test-pmd/config.c | 54 ++- app/test-pmd/testpmd.c | 22 ++ app/test-pmd/testpmd.h | 57 lib/librte_ether/Makefile | 3 +- lib/librte_ether/rte_eth_features.h | 65 lib/librte_ether/rte_ethdev.c | 19 +- lib/librte_ether/rte_ethdev.h | 108 +++--- lib/librte_net/rte_ip.h | 5 +- lib/librte_pmd_i40e/Makefile| 5 + lib/librte_pmd_i40e/i40e_ethdev.c | 137 +++- lib/librte_pmd_i40e/i40e_ethdev.h | 32 +- lib/librte_pmd_i40e/i40e_fdir.c | 500 +++ lib/librte_pmd_i40e/i40e_rxtx.c | 176 +- lib/librte_pmd_i40e/rte_i40e.h | 125 +++ 15 files changed, 1906 insertions(+), 67 deletions(-) create mode 100644 lib/librte_ether/rte_eth_features.h create mode 100644 lib/librte_pmd_i40e/i40e_fdir.c create mode 100644 lib/librte_pmd_i40e/rte_i40e.h -- 1.8.1.4
[dpdk-dev] [RFC PATCH 00/14] Extend the mbuf structure
Tested-by: Cao Min This patch modifies the mbuf data struct, function and performace tests can work OK with it. It is ready to be integrated to dpdk.org. -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Bruce Richardson Sent: Tuesday, August 12, 2014 4:45 AM To: dev at dpdk.org Subject: [dpdk-dev] [RFC PATCH 00/14] Extend the mbuf structure This patch set expands and enhances the mbuf data structure. This set includes patches previously submitted by Olivier to rework the mbuf, but takes the rework further than proposed there. NOTE: This is still a work in progress! Feedback at this stage is still welcome though. Outline of changes are: * adds a second cache line to the structure * moves some fields to that cache line to make space * eliminates the control mbuf structure again to save space * compresses the data pointer down to an offset to save space * adds in new fields for: - packet type - sequence number - inner_l3, l4 lengths - max segment size - user data pointer - second vlan tag * the flags field is expanded out to 64-bit, giving 48 new flags. The hash field is now called filters and is also expanded. * some other structures are flattened out or otherwise reworked, e.g. vlan_macip field is gone. * the field order has changed as fields are ordered more by function where they are used, e.g. rearm vs RX vs TX. Following this patch set, the mbuf is larger, but still has free space in it for future expansion. The first cache line has 8 bytes free, and the second has 32 bytes free. Current status: This patch set compiles on 64-bit gcc and clang, and handles throughput traffic using testpmd, in the fast path, and the full-features path cases, including handling jumbo frames. No performance regressions are seen in either of those cases, however further testing is needed, and is ongoing. Also, 32-bit support is not yet done. Bruce Richardson (10): mbuf: rename in_port to just port mbuf: reorder fields by time-of-use ixgbe: rework vector pmd following mbuf changes mbuf: split mbuf across two cache lines. Fix performance regression due to moved pool ptr mbuf: set next pointer to NULL on mbuf free. ixgbe: make mbuf_initializer queue variable global ixgbe: Make vector stores unaligned mbuf: cleanup + added in additional mbuf fields. ixgbe: Allow vector RX of scattered packets Olivier Matz (4): mbuf: rename RTE_MBUF_SCATTER_GATHER into RTE_MBUF_REFCNT mbuf: remove rte_ctrlmbuf mbuf: remove the rte_pktmbuf structure mbuf: replace data pointer by an offset app/test-pmd/cmdline.c | 2 - app/test-pmd/csumonly.c| 6 +- app/test-pmd/flowgen.c | 18 +- app/test-pmd/icmpecho.c| 4 +- app/test-pmd/ieee1588fwd.c | 6 +- app/test-pmd/macfwd-retry.c| 2 +- app/test-pmd/macfwd.c | 8 +- app/test-pmd/macswap.c | 8 +- app/test-pmd/rxonly.c | 13 +- app/test-pmd/testpmd.c | 11 +- app/test-pmd/testpmd.h | 2 +- app/test-pmd/txonly.c | 45 +-- app/test/commands.c| 2 - app/test/packet_burst_generator.c | 47 +-- app/test/test_distributor.c| 18 +- app/test/test_distributor_perf.c | 4 +- app/test/test_mbuf.c | 102 + app/test/test_sched.c | 4 +- app/test/test_table_acl.c | 7 +- app/test/test_table_pipeline.c | 10 +- config/common_bsdapp | 2 +- config/common_linuxapp | 2 +- doc/doxy-api.conf | 2 +- examples/dpdk_qat/crypto.c | 22 +- examples/dpdk_qat/main.c | 2 +- examples/exception_path/main.c | 11 +- examples/ip_pipeline/main.c| 2 +- examples/ip_reassembly/main.c | 8 +- examples/ipv4_multicast/Makefile | 4 +- examples/ipv4_multicast/main.c | 16 +- examples/l3fwd-acl/main.c | 2 +- examples/l3fwd-power/main.c| 2 +- examples/l3fwd-vf/main.c | 2 +- examples/l3fwd/main.c | 10 +- examples/load_balancer/runtime.c | 2 +- .../client_server_mp/mp_client/client.c| 2 +- examples/quota_watermark/qw/main.c | 4 +- examples/vhost/main.c | 79 ++-- examples/vhost_xen/main.c | 22 +- lib
[dpdk-dev] [PATCH 0/6] Support flow director programming on fortville
Tested-by: Cao Min This patch add i40e flow director fucntion, testpmd can works OK with it. It is ready to be integrated to dpdk.org. -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Jingjing Wu Sent: Friday, August 01, 2014 3:09 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH 0/6] Support flow director programming on fortville The patch set supports flow director programming on fortville. It includes: - reserve i40e resources for flow director, such as queue and vsi. - support the new ethdev AP Irx_classification_filter_ctl for all the configuration or queries for receive classification filters. - support programming 6 flow types for the flow director filters, which is called PCTYPE in fortville: ipv4, tcpv4, udpv4, ipv6, tcpv6, udpv6. - support flushing flow director table (all filters). - support match statistics and FD ID report. - all fix the the Marco conflict between rte_ip.h and netinet/in.h. jingjing.wu (6): i40e: flow director resource reserve and initialize on i40e lib/librte_net: fix the Marco conflict between rte_ip.h and netinet/in.h ethdev: define new ethdev API rx_classification_filter_ctl i40e: function implement in i40e for flow director filter programming app/test-pmd: add commands and config functions for i40e flow director support i40e: support FD ID report and match counter for i40e flow director app/test-pmd/cmdline.c | 665 app/test-pmd/config.c | 54 ++- app/test-pmd/testpmd.c | 22 ++ app/test-pmd/testpmd.h | 57 lib/librte_ether/Makefile | 3 +- lib/librte_ether/rte_eth_features.h | 64 lib/librte_ether/rte_ethdev.c | 19 +- lib/librte_ether/rte_ethdev.h | 108 +++--- lib/librte_net/rte_ip.h | 5 +- lib/librte_pmd_i40e/Makefile| 5 + lib/librte_pmd_i40e/i40e_ethdev.c | 98 +- lib/librte_pmd_i40e/i40e_ethdev.h | 32 +- lib/librte_pmd_i40e/i40e_fdir.c | 355 +++ lib/librte_pmd_i40e/i40e_rxtx.c | 176 +- lib/librte_pmd_i40e/rte_i40e.h | 125 +++ 15 files changed, 1727 insertions(+), 61 deletions(-) create mode 100644 lib/librte_ether/rte_eth_features.h create mode 100644 lib/librte_pmd_i40e/i40e_fdir.c create mode 100644 lib/librte_pmd_i40e/rte_i40e.h -- 1.8.1.4
[dpdk-dev] [PATCH 2/4] i40e: PF Add support for per-queue start/stop
I will verified this next week. :) -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Chen Jing D(Mark) Sent: Thursday, August 14, 2014 3:35 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH 2/4] i40e: PF Add support for per-queue start/stop From: "Chen Jing D(Mark)"I40E driver add function pointer to start/stop specific RX/TX queue. Signed-off-by: Chen Jing D(Mark) Reviewed-by: Konstantin Ananyev Reviewed-by: Changchun Ouyang Reviewed-by: Huawei Xie --- lib/librte_pmd_i40e/i40e_ethdev.c |4 + lib/librte_pmd_i40e/i40e_rxtx.c | 112 + lib/librte_pmd_i40e/i40e_rxtx.h |4 + 3 files changed, 120 insertions(+), 0 deletions(-) diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c b/lib/librte_pmd_i40e/i40e_ethdev.c index 9ed31b5..81a1deb 100644 --- a/lib/librte_pmd_i40e/i40e_ethdev.c +++ b/lib/librte_pmd_i40e/i40e_ethdev.c @@ -232,6 +232,10 @@ static struct eth_dev_ops i40e_eth_dev_ops = { .vlan_offload_set = i40e_vlan_offload_set, .vlan_strip_queue_set = i40e_vlan_strip_queue_set, .vlan_pvid_set= i40e_vlan_pvid_set, + .rx_queue_start = i40e_dev_rx_queue_start, + .rx_queue_stop= i40e_dev_rx_queue_stop, + .tx_queue_start = i40e_dev_tx_queue_start, + .tx_queue_stop= i40e_dev_tx_queue_stop, .rx_queue_setup = i40e_dev_rx_queue_setup, .rx_queue_release = i40e_dev_rx_queue_release, .rx_queue_count = i40e_dev_rx_queue_count, diff --git a/lib/librte_pmd_i40e/i40e_rxtx.c b/lib/librte_pmd_i40e/i40e_rxtx.c index 83b9462..323c004 100644 --- a/lib/librte_pmd_i40e/i40e_rxtx.c +++ b/lib/librte_pmd_i40e/i40e_rxtx.c @@ -1429,6 +1429,118 @@ i40e_xmit_pkts_simple(void *tx_queue, } int +i40e_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id) +{ + struct i40e_vsi *vsi = I40E_DEV_PRIVATE_TO_VSI(dev->data->dev_private); + struct i40e_rx_queue *rxq; + int err = -1; + struct i40e_hw *hw = I40E_VSI_TO_HW(vsi); + uint16_t q_base = vsi->base_queue; + + PMD_INIT_FUNC_TRACE(); + + if (rx_queue_id < dev->data->nb_rx_queues) { + rxq = dev->data->rx_queues[rx_queue_id]; + + err = i40e_alloc_rx_queue_mbufs(rxq); + if (err) { + PMD_DRV_LOG(ERR, "Failed to allocate RX queue mbuf\n"); + return err; + } + + rte_wmb(); + + /* Init the RX tail regieter. */ + I40E_PCI_REG_WRITE(rxq->qrx_tail, rxq->nb_rx_desc - 1); + + err = i40e_switch_rx_queue(hw, rx_queue_id + q_base, TRUE); + + if (err) { + PMD_DRV_LOG(ERR, "Failed to switch RX queue %u on\n", + rx_queue_id); + + i40e_rx_queue_release_mbufs(rxq); + i40e_reset_rx_queue(rxq); + } + } + + return err; +} + +int +i40e_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id) +{ + struct i40e_vsi *vsi = I40E_DEV_PRIVATE_TO_VSI(dev->data->dev_private); + struct i40e_rx_queue *rxq; + int err; + struct i40e_hw *hw = I40E_VSI_TO_HW(vsi); + uint16_t q_base = vsi->base_queue; + + if (rx_queue_id < dev->data->nb_rx_queues) { + rxq = dev->data->rx_queues[rx_queue_id]; + + err = i40e_switch_rx_queue(hw, rx_queue_id + q_base, FALSE); + + if (err) { + PMD_DRV_LOG(ERR, "Failed to switch RX queue %u off\n", + rx_queue_id); + return err; + } + i40e_rx_queue_release_mbufs(rxq); + i40e_reset_rx_queue(rxq); + } + + return 0; +} + +int +i40e_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id) +{ + struct i40e_vsi *vsi = I40E_DEV_PRIVATE_TO_VSI(dev->data->dev_private); + int err = -1; + struct i40e_hw *hw = I40E_VSI_TO_HW(vsi); + uint16_t q_base = vsi->base_queue; + + PMD_INIT_FUNC_TRACE(); + + if (tx_queue_id < dev->data->nb_tx_queues) { + err = i40e_switch_tx_queue(hw, tx_queue_id + q_base, TRUE); + if (err) + PMD_DRV_LOG(ERR, "Failed to switch TX queue %u on\n", + tx_queue_id); + } + + return err; +} + +int +i40e_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id) +{ + struct i40e_vsi *vsi = I40E_DEV_PRIVATE_TO_VSI(dev->data->dev_private); + struct i40e_tx_queue *txq; + int err; + struct i40e_hw *hw = I40E_VSI_TO_HW(vsi); + uint16_t q_base = vsi->base_queue; + + if (tx_queue_id < dev->data->nb_tx_queues) { + txq = dev->data->tx_queues[tx_queue_id]; + +
[dpdk-dev] [PATCH 0/2] i40e improvements
Test-by: Min Cao This patch includes 3 files, and has been tested by Intel. Please see test environment information as the following: Fedora 20 x86_64, Linux Kernel 3.11.10-301, GCC 4.8.2 Intel Xeon CPU E5-2680 v2 @ 2.80GHz NIC: Intel Fortville 4*10G. We verified testpmd.