[dpdk-dev] [PATCH] l2fwd-crypto: fix supported key size check

2016-04-19 Thread Cao, Min
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

2016-03-31 Thread Cao, Min
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

2016-03-16 Thread Cao, Min
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

2016-03-16 Thread Cao, Min
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

2016-03-16 Thread Cao, Min
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

2016-03-15 Thread Cao, Min
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

2016-03-15 Thread Cao, Min
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

2016-03-15 Thread Cao, Min
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

2016-03-15 Thread Cao, Min
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

2016-03-15 Thread Cao, Min
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

2016-03-15 Thread Cao, Min
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

2016-03-14 Thread Cao, Min
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

2016-03-14 Thread Cao, Min
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 Doherty 

This 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

2016-03-14 Thread Cao, Min
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 Doherty 

This 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

2016-03-14 Thread Cao, Min
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 Doherty 

This 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

2016-03-11 Thread Cao, Min
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

2015-11-11 Thread Cao, Min
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

2015-06-08 Thread Cao, Min
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

2015-03-31 Thread Cao, Min
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

2015-03-02 Thread Cao, Min
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

2015-02-15 Thread Cao, Min
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

2015-02-15 Thread Cao, Min
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

2015-01-27 Thread Cao, Min
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

2014-12-11 Thread Cao, Min
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

2014-12-02 Thread Cao, Min
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: zzang 

Add 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

2014-11-19 Thread Cao, Min
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

2014-11-19 Thread Cao, Min
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

2014-10-30 Thread Cao, Min
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

2014-10-30 Thread Cao, Min
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

2014-10-21 Thread Cao, Min
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

2014-10-21 Thread Cao, Min
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

2014-10-21 Thread Cao, Min
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

2014-09-30 Thread Cao, Min
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

2014-09-24 Thread Cao, Min
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

2014-08-20 Thread Cao, Min
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

2014-08-15 Thread Cao, Min
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

2014-08-14 Thread Cao, Min
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

2014-07-02 Thread Cao, Min
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.