[lng-odp] [PATCH v3 0/1] shippable implement main page stats

2017-11-10 Thread Github ODP bot
Signed-off-by: Maxim Uvarov maxim.uva...@linaro.org

github
/** Email created from pull request 293 (muvarov:devel/master_shippable)
 ** https://github.com/Linaro/odp/pull/293
 ** Patch: https://github.com/Linaro/odp/pull/293.patch
 ** Base sha: fc020907bee7ec2ba976bc02399f6fd47f110d65
 ** Merge commit sha: 2753bf70ba928c3f6a2d53743d88f562b989c041
 **/
/github

checkpatch.pl
WARNING: line over 80 characters
#36: FILE: scripts/shipabble-stats.sh:12:
+  

WARNING: line over 80 characters
#37: FILE: scripts/shipabble-stats.sh:13:
+  

WARNING: line over 80 characters
#38: FILE: scripts/shipabble-stats.sh:14:
+  

total: 0 errors, 3 warnings, 0 checks, 28 lines checked


to_send-p-000.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
/checkpatch.pl


[lng-odp] [PATCH v3 1/1] shippable implement main page stats

2017-11-10 Thread Github ODP bot
From: Maxim Uvarov 

Signed-off-by: Maxim Uvarov 
---
/** Email created from pull request 293 (muvarov:devel/master_shippable)
 ** https://github.com/Linaro/odp/pull/293
 ** Patch: https://github.com/Linaro/odp/pull/293.patch
 ** Base sha: fc020907bee7ec2ba976bc02399f6fd47f110d65
 ** Merge commit sha: 2753bf70ba928c3f6a2d53743d88f562b989c041
 **/
 scripts/shipabble-stats.sh | 28 
 1 file changed, 28 insertions(+)
 create mode 100755 scripts/shipabble-stats.sh

diff --git a/scripts/shipabble-stats.sh b/scripts/shipabble-stats.sh
new file mode 100755
index 0..c2560fd4f
--- /dev/null
+++ b/scripts/shipabble-stats.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+
+cat < $SHIPPABLE_BUILD_DIR/shippable/testresults/test_results.xml
+
+
+http://www.w3.org/1999/XSL/Transform";>
+
+
+   
+  
+  
+  
+  
+  
+  
+  
+   
+
+
+EOF



[lng-odp] [PATCH v2 1/1] shippable implement main page stats

2017-11-10 Thread Github ODP bot
From: Maxim Uvarov 

Signed-off-by: Maxim Uvarov 
---
/** Email created from pull request 293 (muvarov:devel/master_shippable)
 ** https://github.com/Linaro/odp/pull/293
 ** Patch: https://github.com/Linaro/odp/pull/293.patch
 ** Base sha: fc020907bee7ec2ba976bc02399f6fd47f110d65
 ** Merge commit sha: 58fe98dfbff2d17d1643cb33291d47a9002962d3
 **/
 .shippable.yml |  1 +
 scripts/shipabble-stats.sh | 28 
 2 files changed, 29 insertions(+)
 create mode 100755 scripts/shipabble-stats.sh

diff --git a/.shippable.yml b/.shippable.yml
index 9fbb29190..3ddeb98e3 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -39,6 +39,7 @@ build:
 - ./configure --disable-test-perf
 - make
 - sudo env ODP_SHM_DIR=/dev/shm/odp make check
+- scripts/shipabble-stats.sh
 
   on_failure:
 - cat config.log
diff --git a/scripts/shipabble-stats.sh b/scripts/shipabble-stats.sh
new file mode 100755
index 0..c2560fd4f
--- /dev/null
+++ b/scripts/shipabble-stats.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+
+cat < $SHIPPABLE_BUILD_DIR/shippable/testresults/test_results.xml
+
+
+http://www.w3.org/1999/XSL/Transform";>
+
+
+   
+  
+  
+  
+  
+  
+  
+  
+   
+
+
+EOF



[lng-odp] [PATCH v2 0/1] shippable implement main page stats

2017-11-10 Thread Github ODP bot
Signed-off-by: Maxim Uvarov maxim.uva...@linaro.org

github
/** Email created from pull request 293 (muvarov:devel/master_shippable)
 ** https://github.com/Linaro/odp/pull/293
 ** Patch: https://github.com/Linaro/odp/pull/293.patch
 ** Base sha: fc020907bee7ec2ba976bc02399f6fd47f110d65
 ** Merge commit sha: 58fe98dfbff2d17d1643cb33291d47a9002962d3
 **/
/github

checkpatch.pl
WARNING: line over 80 characters
#49: FILE: scripts/shipabble-stats.sh:12:
+  

WARNING: line over 80 characters
#50: FILE: scripts/shipabble-stats.sh:13:
+  

WARNING: line over 80 characters
#51: FILE: scripts/shipabble-stats.sh:14:
+  

total: 0 errors, 3 warnings, 0 checks, 35 lines checked


to_send-p-000.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
/checkpatch.pl


Re: [lng-odp] [PATCH v1] DPDK pktio fixes

2017-11-10 Thread Github ODP bot
nagarahalli replied on github web page:

platform/linux-generic/pktio/dpdk.c
line 70
@@ -1372,10 +1382,10 @@ static int dpdk_recv(pktio_entry_t *pktio_entry, int 
index,
if (!pkt_dpdk->lockless_rx)
odp_ticketlock_lock(&pkt_dpdk->rx_lock[index]);
/**
-* ixgbe_pmd has a minimum supported RX burst size ('min_rx_burst'). If
-* 'num' < 'min_rx_burst', 'min_rx_burst' is used as rte_eth_rx_burst()
-* argument and the possibly received extra packets are cached for the
-* next dpdk_recv_queue() call to use.
+* ixgbe and i40e drivers have a minimum supported RX burst size


Comment:
@matiaselo I see these kind of validations in data plane functions at multiple 
places. If we combine all of them, it is significant improvement (I see 1% 
improvement in Linux-dpdk/l2fwd application by removing all the validation 
checks in pkt I/O module alone). But on an individual basis, you will not see 
much of a difference.

It might be few device drivers, but from ODP perspective, it is a capability of 
the device that should be exposed through capability API. We could do it 
outside of this PR as well.

> Matias Elo(matiaselo) wrote:
> @nagarahalli I don't see a new capability parameter being very useful as 
> these two dpdk drivers are likely the only devices which would use it. At 
> least we haven't come across any other network devices which have this kind 
> of limitation.
> 
> I ran a quick test and the two additional if statements caused by rx caching 
> have a minuscule  performance impact.


>> nagarahalli wrote
>> @matiaselo Agree on the simple applications. But for real applications or 
>> for performance benchmarking, this adds additional cycles. If this is made 
>> as part of capability, application can decide the burst size upfront.


>>> Matias Elo(matiaselo) wrote:
>>> @lumag That would be the best solution but I don't see it happening anytime 
>>> soon. The number of rx queues returned by rte_eth_dev_info_get() is in 
>>> principle correct. Here the limiting factor is RSS capability and as far as 
>>> I can see there is no way to query this information.


 Matias Elo(matiaselo) wrote:
 I'm not sure I got your point but anyway dev_info is type 'struct 
 rte_eth_dev_info' and comes from dpdk, so nothing can be added there.
 
 As @lumag noted this fix is required because of a dpdk defect. With ixgbe 
 drivers rte_eth_dev_info_get() returns a max_rx_queues value which is not 
 valid (at least when using RSS). This is the only driver a have observer 
 this issue with.
 
 The number 16 is explained in the comment line (1139) just above.


> Matias Elo(matiaselo) wrote:
> @Bill-Fischofer-Linaro Yes, the application has to request at least 
> 'min_rx_burst' packets but it may receive less.


>> Matias Elo(matiaselo) wrote:
>> @nagarahalli This dpdk driver "feature" can be completely hidden from 
>> odp applications (and it already is), so I don't support adding a new 
>> device capability parameter. This would make writing simple applications 
>> more complex. E.g. an application wouldn't be able to receive one packet 
>> at a time anymore.


>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>>> Again, shouldn't this sort of configuration be a field in the 
>>> `dev_info` struct rather than having to be special-cased for each 
>>> driver? Also, must 16 be a "magic number" here?


 Dmitry Eremin-Solenikov(lumag) wrote:
 It looks like this should be fixed inside DPDK rather than here.


> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
> Presumably these drivers have a way of flushing short bursts? If the 
> `min_rx_burst` is 4 and the other side sends an odd number of 
> packets, presumably the receiver application isn't left hanging 
> forever waiting for the rest of a burst that will never arrive?


>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>> Wouldn't it be simpler (and more extensible) to have `min_rx_burst` 
>> as a field in the `dev_info` struct? 


>>> nagarahalli wrote
>>> 'min_rx_burst' should be added to the capability as it is a 
>>> restriction from the device. The application should adjust the 
>>> 'num' according to the capability it reads from the pkt I/O.


https://github.com/Linaro/odp/pull/287#discussion_r150275895
updated_at 2017-11-10 16:17:05


[lng-odp] [PATCH 2.0 v2 2/6] linux-gen: modular-framework: move buffer subsystem header to a public folder

2017-11-10 Thread Github ODP bot
From: Bogdan Pricope 

Move buffer subsystem header to a public folder.

Signed-off-by: Bogdan Pricope 
---
/** Email created from pull request 261 (bogdanPricope:2_0_mf_include_pr)
 ** https://github.com/Linaro/odp/pull/261
 ** Patch: https://github.com/Linaro/odp/pull/261.patch
 ** Base sha: 65419c16086369f86dea068e54ce492526fa4f41
 ** Merge commit sha: 3034b865079536d2064a7ceb890b5bf6876949a6
 **/
 include/Makefile.am   | 4 
 include/odp_mf.h  | 1 +
 .../subsystem/spec/buffer_subsystem.h | 1 -
 platform/linux-dpdk/Makefile.am   | 1 -
 platform/linux-dpdk/buffer/dpdk.c | 2 +-
 platform/linux-generic/Makefile.am| 1 -
 platform/linux-generic/buffer/generic.c   | 2 +-
 platform/linux-generic/buffer/subsystem.c | 2 +-
 8 files changed, 8 insertions(+), 6 deletions(-)
 rename platform/linux-generic/include/odp_buffer_subsystem.h => 
include/subsystem/spec/buffer_subsystem.h (99%)

diff --git a/include/Makefile.am b/include/Makefile.am
index 1aeec1c72..3f4df 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -74,6 +74,10 @@ frameworksmodularspecinclude_HEADERS = \
  frameworks/modular/spec/module.h \
  frameworks/modular/spec/list.h
 
+subsystemspecincludedir= $(includedir)/subsystem/spec
+subsystemspecinclude_HEADERS = \
+ subsystem/spec/buffer_subsystem.h
+
 odpapiabidefaultincludedir= $(includedir)/odp/arch/default/api/abi
 odpapiabidefaultinclude_HEADERS = \
odp/arch/default/api/abi/buffer.h \
diff --git a/include/odp_mf.h b/include/odp_mf.h
index f29ae6cee..a4e6474fd 100644
--- a/include/odp_mf.h
+++ b/include/odp_mf.h
@@ -19,6 +19,7 @@ extern C {
 #endif
 
 #include 
+#include 
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp_buffer_subsystem.h 
b/include/subsystem/spec/buffer_subsystem.h
similarity index 99%
rename from platform/linux-generic/include/odp_buffer_subsystem.h
rename to include/subsystem/spec/buffer_subsystem.h
index 35b2a06e1..3817a04a1 100644
--- a/platform/linux-generic/include/odp_buffer_subsystem.h
+++ b/include/subsystem/spec/buffer_subsystem.h
@@ -61,4 +61,3 @@ typedef ODP_MODULE_CLASS(buffer) {
 
 #include 
 #endif
-
diff --git a/platform/linux-dpdk/Makefile.am b/platform/linux-dpdk/Makefile.am
index aa7990873..948518f90 100644
--- a/platform/linux-dpdk/Makefile.am
+++ b/platform/linux-dpdk/Makefile.am
@@ -175,7 +175,6 @@ odpdrvplatinclude_HEADERS = \
 
 
 noinst_HEADERS = \
- 
${top_srcdir}/platform/linux-generic/include/odp_buffer_subsystem.h \
  
${top_srcdir}/platform/linux-generic/include/_fdserver_internal.h \
  ${top_srcdir}/platform/linux-generic/include/_ishm_internal.h 
\
  
${top_srcdir}/platform/linux-generic/include/_ishmphy_internal.h \
diff --git a/platform/linux-dpdk/buffer/dpdk.c 
b/platform/linux-dpdk/buffer/dpdk.c
index 704468eea..22e1123b0 100644
--- a/platform/linux-dpdk/buffer/dpdk.c
+++ b/platform/linux-dpdk/buffer/dpdk.c
@@ -9,7 +9,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 #include 
 #include 
 
diff --git a/platform/linux-generic/Makefile.am 
b/platform/linux-generic/Makefile.am
index afbb0edba..60e1fccb4 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -159,7 +159,6 @@ noinst_HEADERS = \
  include/odp_bitmap_internal.h \
  include/odp_bitset.h \
  include/odp_buffer_internal.h \
- include/odp_buffer_subsystem.h \
  include/odp_classification_datamodel.h \
  include/odp_classification_inlines.h \
  include/odp_classification_internal.h \
diff --git a/platform/linux-generic/buffer/generic.c 
b/platform/linux-generic/buffer/generic.c
index 3281119be..cf99407cc 100644
--- a/platform/linux-generic/buffer/generic.c
+++ b/platform/linux-generic/buffer/generic.c
@@ -11,7 +11,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 
 #include 
 #include 
diff --git a/platform/linux-generic/buffer/subsystem.c 
b/platform/linux-generic/buffer/subsystem.c
index 767113975..883781756 100644
--- a/platform/linux-generic/buffer/subsystem.c
+++ b/platform/linux-generic/buffer/subsystem.c
@@ -6,7 +6,7 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 #include 
-#include 
+#include 
 #include 
 
 ODP_SUBSYSTEM_DEFINE(buffer, "memory buffer public APIs",



[lng-odp] [PATCH 2.0 v2 4/6] linux-gen: modular-framework: move queue subsystem header to a public folder

2017-11-10 Thread Github ODP bot
From: Bogdan Pricope 

Move queue subsystem header to a public folder.

Signed-off-by: Bogdan Pricope 
---
/** Email created from pull request 261 (bogdanPricope:2_0_mf_include_pr)
 ** https://github.com/Linaro/odp/pull/261
 ** Patch: https://github.com/Linaro/odp/pull/261.patch
 ** Base sha: 65419c16086369f86dea068e54ce492526fa4f41
 ** Merge commit sha: 3034b865079536d2064a7ceb890b5bf6876949a6
 **/
 include/Makefile.am| 3 ++-
 include/odp_mf.h   | 1 +
 .../odp_queue_subsystem.h => include/subsystem/spec/queue_subsystem.h  | 0
 platform/linux-dpdk/Makefile.am| 1 -
 platform/linux-generic/Makefile.am | 1 -
 platform/linux-generic/queue/generic.c | 2 +-
 platform/linux-generic/queue/scalable.c| 2 +-
 platform/linux-generic/queue/subsystem.c   | 2 +-
 8 files changed, 6 insertions(+), 6 deletions(-)
 rename platform/linux-generic/include/odp_queue_subsystem.h => 
include/subsystem/spec/queue_subsystem.h (100%)

diff --git a/include/Makefile.am b/include/Makefile.am
index f794be53f..3ced809b0 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -77,7 +77,8 @@ frameworksmodularspecinclude_HEADERS = \
 subsystemspecincludedir= $(includedir)/subsystem/spec
 subsystemspecinclude_HEADERS = \
  subsystem/spec/buffer_subsystem.h \
- subsystem/spec/pool_subsystem.h
+ subsystem/spec/pool_subsystem.h \
+ subsystem/spec/queue_subsystem.h
 
 odpapiabidefaultincludedir= $(includedir)/odp/arch/default/api/abi
 odpapiabidefaultinclude_HEADERS = \
diff --git a/include/odp_mf.h b/include/odp_mf.h
index 787746817..29caec22b 100644
--- a/include/odp_mf.h
+++ b/include/odp_mf.h
@@ -21,6 +21,7 @@ extern C {
 #include 
 #include 
 #include 
+#include 
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp_queue_subsystem.h 
b/include/subsystem/spec/queue_subsystem.h
similarity index 100%
rename from platform/linux-generic/include/odp_queue_subsystem.h
rename to include/subsystem/spec/queue_subsystem.h
diff --git a/platform/linux-dpdk/Makefile.am b/platform/linux-dpdk/Makefile.am
index 29440714b..fd427c7f6 100644
--- a/platform/linux-dpdk/Makefile.am
+++ b/platform/linux-dpdk/Makefile.am
@@ -210,7 +210,6 @@ noinst_HEADERS = \
  ${srcdir}/include/odp_posix_extensions.h \
  
${top_srcdir}/platform/linux-generic/include/odp_queue_internal.h \
  ${top_srcdir}/platform/linux-generic/include/odp_queue_if.h \
- 
${top_srcdir}/platform/linux-generic/include/odp_queue_subsystem.h \
  
${top_srcdir}/platform/linux-generic/include/odp_ring_internal.h \
  
${top_srcdir}/platform/linux-generic/include/odp_schedule_if.h \
  
${top_srcdir}/platform/linux-generic/include/odp_schedule_subsystem.h \
diff --git a/platform/linux-generic/Makefile.am 
b/platform/linux-generic/Makefile.am
index d3cf48a84..002370f7e 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -186,7 +186,6 @@ noinst_HEADERS = \
  include/odp_pktio_ops_tap.h \
  include/odp_pktio_ops_subsystem.h \
  include/odp_pkt_queue_internal.h \
- include/odp_queue_subsystem.h \
  include/odp_pool_internal.h \
  include/odp_posix_extensions.h \
  include/odp_queue_internal.h \
diff --git a/platform/linux-generic/queue/generic.c 
b/platform/linux-generic/queue/generic.c
index ab2b97048..37c02380f 100644
--- a/platform/linux-generic/queue/generic.c
+++ b/platform/linux-generic/queue/generic.c
@@ -9,7 +9,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 #include 
 #include 
 #include 
diff --git a/platform/linux-generic/queue/scalable.c 
b/platform/linux-generic/queue/scalable.c
index 00cd8da65..f4f5efb85 100644
--- a/platform/linux-generic/queue/scalable.c
+++ b/platform/linux-generic/queue/scalable.c
@@ -23,7 +23,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 #include 
 #include <_ishm_internal.h>
 #include <_ishmpool_internal.h>
diff --git a/platform/linux-generic/queue/subsystem.c 
b/platform/linux-generic/queue/subsystem.c
index 05e8edb8e..ddf6b52d8 100644
--- a/platform/linux-generic/queue/subsystem.c
+++ b/platform/linux-generic/queue/subsystem.c
@@ -11,7 +11,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 
 ODP_SUBSYSTEM_DEFINE(queue, "queue public APIs", QUEUE_SUBSYSTEM_VERSION);
 



[lng-odp] [PATCH 2.0 v2 3/6] linux-gen: modular-framework: move pool subsystem header to a public folder

2017-11-10 Thread Github ODP bot
From: Bogdan Pricope 

Move pool subsystem header to a public folder.

Signed-off-by: Bogdan Pricope 
---
/** Email created from pull request 261 (bogdanPricope:2_0_mf_include_pr)
 ** https://github.com/Linaro/odp/pull/261
 ** Patch: https://github.com/Linaro/odp/pull/261.patch
 ** Base sha: 65419c16086369f86dea068e54ce492526fa4f41
 ** Merge commit sha: 3034b865079536d2064a7ceb890b5bf6876949a6
 **/
 include/Makefile.am| 3 ++-
 include/odp_mf.h   | 1 +
 .../odp_pool_subsystem.h => include/subsystem/spec/pool_subsystem.h| 0
 platform/linux-dpdk/Makefile.am| 1 -
 platform/linux-dpdk/include/odp_pool_internal.h| 2 +-
 platform/linux-generic/Makefile.am | 1 -
 platform/linux-generic/include/odp_pool_internal.h | 2 +-
 platform/linux-generic/pool/subsystem.c| 2 +-
 8 files changed, 6 insertions(+), 6 deletions(-)
 rename platform/linux-generic/include/odp_pool_subsystem.h => 
include/subsystem/spec/pool_subsystem.h (100%)

diff --git a/include/Makefile.am b/include/Makefile.am
index 3f4df..f794be53f 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -76,7 +76,8 @@ frameworksmodularspecinclude_HEADERS = \
 
 subsystemspecincludedir= $(includedir)/subsystem/spec
 subsystemspecinclude_HEADERS = \
- subsystem/spec/buffer_subsystem.h
+ subsystem/spec/buffer_subsystem.h \
+ subsystem/spec/pool_subsystem.h
 
 odpapiabidefaultincludedir= $(includedir)/odp/arch/default/api/abi
 odpapiabidefaultinclude_HEADERS = \
diff --git a/include/odp_mf.h b/include/odp_mf.h
index a4e6474fd..787746817 100644
--- a/include/odp_mf.h
+++ b/include/odp_mf.h
@@ -20,6 +20,7 @@ extern C {
 
 #include 
 #include 
+#include 
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp_pool_subsystem.h 
b/include/subsystem/spec/pool_subsystem.h
similarity index 100%
rename from platform/linux-generic/include/odp_pool_subsystem.h
rename to include/subsystem/spec/pool_subsystem.h
diff --git a/platform/linux-dpdk/Makefile.am b/platform/linux-dpdk/Makefile.am
index 948518f90..29440714b 100644
--- a/platform/linux-dpdk/Makefile.am
+++ b/platform/linux-dpdk/Makefile.am
@@ -207,7 +207,6 @@ noinst_HEADERS = \
  
${top_srcdir}/platform/linux-generic/include/odp_packet_io_ring_internal.h \
  
${top_srcdir}/platform/linux-generic/include/odp_pkt_queue_internal.h \
  ${srcdir}/include/odp_pool_internal.h \
- 
${top_srcdir}/platform/linux-generic/include/odp_pool_subsystem.h \
  ${srcdir}/include/odp_posix_extensions.h \
  
${top_srcdir}/platform/linux-generic/include/odp_queue_internal.h \
  ${top_srcdir}/platform/linux-generic/include/odp_queue_if.h \
diff --git a/platform/linux-dpdk/include/odp_pool_internal.h 
b/platform/linux-dpdk/include/odp_pool_internal.h
index 2b3fc18c0..7d8fba14e 100644
--- a/platform/linux-dpdk/include/odp_pool_internal.h
+++ b/platform/linux-dpdk/include/odp_pool_internal.h
@@ -20,7 +20,7 @@ extern "C" {
 
 #include 
 #include 
-#include 
+#include 
 #include 
 #include 
 #include 
diff --git a/platform/linux-generic/Makefile.am 
b/platform/linux-generic/Makefile.am
index 60e1fccb4..d3cf48a84 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -188,7 +188,6 @@ noinst_HEADERS = \
  include/odp_pkt_queue_internal.h \
  include/odp_queue_subsystem.h \
  include/odp_pool_internal.h \
- include/odp_pool_subsystem.h \
  include/odp_posix_extensions.h \
  include/odp_queue_internal.h \
  include/odp_queue_scalable_internal.h \
diff --git a/platform/linux-generic/include/odp_pool_internal.h 
b/platform/linux-generic/include/odp_pool_internal.h
index 5004e283c..adbdc4917 100644
--- a/platform/linux-generic/include/odp_pool_internal.h
+++ b/platform/linux-generic/include/odp_pool_internal.h
@@ -21,7 +21,7 @@ extern "C" {
 #include 
 #include 
 
-#include 
+#include 
 #include 
 #include 
 #include 
diff --git a/platform/linux-generic/pool/subsystem.c 
b/platform/linux-generic/pool/subsystem.c
index 073a9fa98..66c84380d 100644
--- a/platform/linux-generic/pool/subsystem.c
+++ b/platform/linux-generic/pool/subsystem.c
@@ -7,7 +7,7 @@
  */
 #include 
 #include 
-#include 
+#include 
 #include 
 
 #define SUBSYSTEM_VERSION 0x0001UL



[lng-odp] [PATCH 2.0 v2 6/6] linux-gen: modular-framework: move pktio_ops subsystem header to a public folder

2017-11-10 Thread Github ODP bot
From: Bogdan Pricope 

Move pktio_ops subsystem header to a public folder.

Signed-off-by: Bogdan Pricope 
---
/** Email created from pull request 261 (bogdanPricope:2_0_mf_include_pr)
 ** https://github.com/Linaro/odp/pull/261
 ** Patch: https://github.com/Linaro/odp/pull/261.patch
 ** Base sha: 65419c16086369f86dea068e54ce492526fa4f41
 ** Merge commit sha: 3034b865079536d2064a7ceb890b5bf6876949a6
 **/
 include/Makefile.am| 3 ++-
 include/odp_mf.h   | 1 +
 .../subsystem/spec/pktio_ops_subsystem.h   | 0
 platform/linux-dpdk/Makefile.am| 1 -
 platform/linux-generic/Makefile.am | 1 -
 platform/linux-generic/include/odp_packet_io_internal.h| 2 +-
 6 files changed, 4 insertions(+), 4 deletions(-)
 rename platform/linux-generic/include/odp_pktio_ops_subsystem.h => 
include/subsystem/spec/pktio_ops_subsystem.h (100%)

diff --git a/include/Makefile.am b/include/Makefile.am
index 095456ff7..3a784619e 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -79,7 +79,8 @@ subsystemspecinclude_HEADERS = \
  subsystem/spec/buffer_subsystem.h \
  subsystem/spec/pool_subsystem.h \
  subsystem/spec/queue_subsystem.h \
- subsystem/spec/schedule_subsystem.h
+ subsystem/spec/schedule_subsystem.h \
+ subsystem/spec/pktio_ops_subsystem.h
 
 odpapiabidefaultincludedir= $(includedir)/odp/arch/default/api/abi
 odpapiabidefaultinclude_HEADERS = \
diff --git a/include/odp_mf.h b/include/odp_mf.h
index de3a06a23..31ced6fb4 100644
--- a/include/odp_mf.h
+++ b/include/odp_mf.h
@@ -23,6 +23,7 @@ extern C {
 #include 
 #include 
 #include 
+#include 
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp_pktio_ops_subsystem.h 
b/include/subsystem/spec/pktio_ops_subsystem.h
similarity index 100%
rename from platform/linux-generic/include/odp_pktio_ops_subsystem.h
rename to include/subsystem/spec/pktio_ops_subsystem.h
diff --git a/platform/linux-dpdk/Makefile.am b/platform/linux-dpdk/Makefile.am
index 703592b1a..6d3a16a59 100644
--- a/platform/linux-dpdk/Makefile.am
+++ b/platform/linux-dpdk/Makefile.am
@@ -198,7 +198,6 @@ noinst_HEADERS = \
  ${srcdir}/pktio/dpdk.h \
  ${srcdir}/include/odp_packet_internal.h \
  
${top_srcdir}/platform/linux-generic/include/odp_pktio_ops_ipc.h \
- 
${top_srcdir}/platform/linux-generic/include/odp_pktio_ops_subsystem.h \
  
${top_srcdir}/platform/linux-generic/include/odp_pktio_ops_socket.h \
  
${top_srcdir}/platform/linux-generic/include/odp_pktio_ops_loopback.h \
  
${top_srcdir}/platform/linux-generic/include/odp_name_table_internal.h \
diff --git a/platform/linux-generic/Makefile.am 
b/platform/linux-generic/Makefile.am
index 303a34882..b1349056d 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -184,7 +184,6 @@ noinst_HEADERS = \
  include/odp_pktio_ops_pcap.h \
  include/odp_pktio_ops_socket.h \
  include/odp_pktio_ops_tap.h \
- include/odp_pktio_ops_subsystem.h \
  include/odp_pkt_queue_internal.h \
  include/odp_pool_internal.h \
  include/odp_posix_extensions.h \
diff --git a/platform/linux-generic/include/odp_packet_io_internal.h 
b/platform/linux-generic/include/odp_packet_io_internal.h
index 7df11618e..397a5cb61 100644
--- a/platform/linux-generic/include/odp_packet_io_internal.h
+++ b/platform/linux-generic/include/odp_packet_io_internal.h
@@ -34,7 +34,7 @@ extern "C" {
 #define PKTIO_MAX_QUEUES 64
 /* Forward declaration */
 typedef union pktio_entry_u pktio_entry_t;
-#include 
+#include 
 
 #define PKTIO_NAME_LEN 256
 



[lng-odp] [PATCH 2.0 v2 5/6] linux-gen: modular-framework: move schedule subsystem header to a public folder

2017-11-10 Thread Github ODP bot
From: Bogdan Pricope 

Move schedule subsystem header to a public folder.

Signed-off-by: Bogdan Pricope 
---
/** Email created from pull request 261 (bogdanPricope:2_0_mf_include_pr)
 ** https://github.com/Linaro/odp/pull/261
 ** Patch: https://github.com/Linaro/odp/pull/261.patch
 ** Base sha: 65419c16086369f86dea068e54ce492526fa4f41
 ** Merge commit sha: 3034b865079536d2064a7ceb890b5bf6876949a6
 **/
 include/Makefile.am| 3 ++-
 include/odp_mf.h   | 1 +
 .../subsystem/spec/schedule_subsystem.h| 0
 platform/linux-dpdk/Makefile.am| 1 -
 platform/linux-generic/Makefile.am | 1 -
 platform/linux-generic/schedule/generic.c  | 2 +-
 platform/linux-generic/schedule/iquery.c   | 2 +-
 platform/linux-generic/schedule/scalable.c | 2 +-
 platform/linux-generic/schedule/sp.c   | 2 +-
 platform/linux-generic/schedule/subsystem.c| 2 +-
 10 files changed, 8 insertions(+), 8 deletions(-)
 rename platform/linux-generic/include/odp_schedule_subsystem.h => 
include/subsystem/spec/schedule_subsystem.h (100%)

diff --git a/include/Makefile.am b/include/Makefile.am
index 3ced809b0..095456ff7 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -78,7 +78,8 @@ subsystemspecincludedir= $(includedir)/subsystem/spec
 subsystemspecinclude_HEADERS = \
  subsystem/spec/buffer_subsystem.h \
  subsystem/spec/pool_subsystem.h \
- subsystem/spec/queue_subsystem.h
+ subsystem/spec/queue_subsystem.h \
+ subsystem/spec/schedule_subsystem.h
 
 odpapiabidefaultincludedir= $(includedir)/odp/arch/default/api/abi
 odpapiabidefaultinclude_HEADERS = \
diff --git a/include/odp_mf.h b/include/odp_mf.h
index 29caec22b..de3a06a23 100644
--- a/include/odp_mf.h
+++ b/include/odp_mf.h
@@ -22,6 +22,7 @@ extern C {
 #include 
 #include 
 #include 
+#include 
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp_schedule_subsystem.h 
b/include/subsystem/spec/schedule_subsystem.h
similarity index 100%
rename from platform/linux-generic/include/odp_schedule_subsystem.h
rename to include/subsystem/spec/schedule_subsystem.h
diff --git a/platform/linux-dpdk/Makefile.am b/platform/linux-dpdk/Makefile.am
index fd427c7f6..703592b1a 100644
--- a/platform/linux-dpdk/Makefile.am
+++ b/platform/linux-dpdk/Makefile.am
@@ -212,7 +212,6 @@ noinst_HEADERS = \
  ${top_srcdir}/platform/linux-generic/include/odp_queue_if.h \
  
${top_srcdir}/platform/linux-generic/include/odp_ring_internal.h \
  
${top_srcdir}/platform/linux-generic/include/odp_schedule_if.h \
- 
${top_srcdir}/platform/linux-generic/include/odp_schedule_subsystem.h \
  
${top_srcdir}/platform/linux-generic/include/odp_sorted_list_internal.h \
  
${top_srcdir}/platform/linux-generic/include/odp_shm_internal.h \
  
${top_srcdir}/platform/linux-generic/include/odp_time_internal.h \
diff --git a/platform/linux-generic/Makefile.am 
b/platform/linux-generic/Makefile.am
index 002370f7e..303a34882 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -196,7 +196,6 @@ noinst_HEADERS = \
  include/odp_schedule_scalable.h \
  include/odp_schedule_scalable_config.h \
  include/odp_schedule_scalable_ordered.h \
- include/odp_schedule_subsystem.h \
  include/odp_sorted_list_internal.h \
  include/odp_shm_internal.h \
  include/odp_time_internal.h \
diff --git a/platform/linux-generic/schedule/generic.c 
b/platform/linux-generic/schedule/generic.c
index 73fef40cb..e22762856 100644
--- a/platform/linux-generic/schedule/generic.c
+++ b/platform/linux-generic/schedule/generic.c
@@ -25,7 +25,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 #include 
 
 /* Should remove this dependency */
diff --git a/platform/linux-generic/schedule/iquery.c 
b/platform/linux-generic/schedule/iquery.c
index 5de229832..76d96ff59 100644
--- a/platform/linux-generic/schedule/iquery.c
+++ b/platform/linux-generic/schedule/iquery.c
@@ -25,7 +25,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 #include 
 
 /* Should remove this dependency */
diff --git a/platform/linux-generic/schedule/scalable.c 
b/platform/linux-generic/schedule/scalable.c
index d8f538202..de9c65285 100644
--- a/platform/linux-generic/schedule/scalable.c
+++ b/platform/linux-generic/schedule/scalable.c
@@ -29,7 +29,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 #include 
 #include 
 
diff --git a/platform/linux-generic/schedule/sp.c 

[lng-odp] [PATCH 2.0 v2 1/6] linux-gen: modular-framework: move modular framework headers to a public folder

2017-11-10 Thread Github ODP bot
From: Bogdan Pricope 

Move modular framework headers to a public folder.

Signed-off-by: Bogdan Pricope 
---
/** Email created from pull request 261 (bogdanPricope:2_0_mf_include_pr)
 ** https://github.com/Linaro/odp/pull/261
 ** Patch: https://github.com/Linaro/odp/pull/261.patch
 ** Base sha: 65419c16086369f86dea068e54ce492526fa4f41
 ** Merge commit sha: 3034b865079536d2064a7ceb890b5bf6876949a6
 **/
 frameworks/modular/module.h| 19 
 frameworks/modular/odp_module.c|  2 +-
 include/Makefile.am|  8 ++-
 .../frameworks/modular/spec}/list.h|  0
 .../frameworks/modular/spec/module.h   |  0
 include/odp_mf.h   | 26 ++
 platform/linux-dpdk/Makefile.am|  7 +++---
 platform/linux-generic/Makefile.am |  4 +---
 platform/linux-generic/buffer/subsystem.c  |  1 -
 .../linux-generic/include/odp_buffer_subsystem.h   |  2 +-
 .../include/odp_pktio_ops_subsystem.h  |  2 +-
 .../linux-generic/include/odp_pool_subsystem.h |  2 +-
 .../linux-generic/include/odp_queue_subsystem.h|  2 +-
 .../linux-generic/include/odp_schedule_subsystem.h |  4 +---
 platform/linux-generic/pool/subsystem.c|  1 -
 platform/linux-generic/queue/subsystem.c   |  1 -
 platform/linux-generic/schedule/subsystem.c|  1 -
 17 files changed, 62 insertions(+), 20 deletions(-)
 create mode 100644 frameworks/modular/module.h
 rename {frameworks/modular => include/frameworks/modular/spec}/list.h (100%)
 rename frameworks/modular/odp_module.h => 
include/frameworks/modular/spec/module.h (100%)
 create mode 100644 include/odp_mf.h

diff --git a/frameworks/modular/module.h b/frameworks/modular/module.h
new file mode 100644
index 0..866a89b7d
--- /dev/null
+++ b/frameworks/modular/module.h
@@ -0,0 +1,19 @@
+/* Copyright (c) 2013, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef ODP_CORE_MODULE_H_
+#define ODP_CORE_MODULE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include 
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* ODP_CORE_MODULE_H_ */
diff --git a/frameworks/modular/odp_module.c b/frameworks/modular/odp_module.c
index 475bcd5e2..596befd55 100644
--- a/frameworks/modular/odp_module.c
+++ b/frameworks/modular/odp_module.c
@@ -10,7 +10,7 @@
 
 #include 
 #include 
-#include "odp_module.h"
+#include "module.h"
 
 #define MODULE_FRAMEWORK_VERSION 0x0001UL
 ODP_SUBSYSTEM_DEFINE(module, "module framework", MODULE_FRAMEWORK_VERSION);
diff --git a/include/Makefile.am b/include/Makefile.am
index 376916723..1aeec1c72 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -1,7 +1,8 @@
 include_HEADERS = \
  odp.h \
  odp_api.h \
- odp_drv.h
+ odp_drv.h \
+ odp_mf.h
 
 odpapispecincludedir= $(includedir)/odp/api/spec
 odpapispecinclude_HEADERS = \
@@ -68,6 +69,11 @@ odpdrvspecinclude_HEADERS = \
  odp/drv/spec/std_types.h \
  odp/drv/spec/sync.h
 
+frameworksmodularspecincludedir= $(includedir)/frameworks/modular/spec
+frameworksmodularspecinclude_HEADERS = \
+ frameworks/modular/spec/module.h \
+ frameworks/modular/spec/list.h
+
 odpapiabidefaultincludedir= $(includedir)/odp/arch/default/api/abi
 odpapiabidefaultinclude_HEADERS = \
odp/arch/default/api/abi/buffer.h \
diff --git a/frameworks/modular/list.h b/include/frameworks/modular/spec/list.h
similarity index 100%
rename from frameworks/modular/list.h
rename to include/frameworks/modular/spec/list.h
diff --git a/frameworks/modular/odp_module.h 
b/include/frameworks/modular/spec/module.h
similarity index 100%
rename from frameworks/modular/odp_module.h
rename to include/frameworks/modular/spec/module.h
diff --git a/include/odp_mf.h b/include/odp_mf.h
new file mode 100644
index 0..f29ae6cee
--- /dev/null
+++ b/include/odp_mf.h
@@ -0,0 +1,26 @@
+/* Copyright (c) 2016, Linaro Limited
+ * All rights reserved
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/**
+ * @file
+ *
+ * The OpenDataPlane modular framework programming interface
+ *
+ */
+
+#ifndef ODP_MF_H_
+#define ODP_MF_H_
+
+#ifdef __cplusplus
+extern C {
+#endif
+
+#include 
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* ODP_MF_H_ */
diff --git a/platform/linux-dpdk/Makefile.am b/platform/linux-dpdk/Makefile.am
index f27d2b50c..aa7990873 100644
--- a/platform/linux-dpdk/Makefile.am
+++ b/platform/linux-dpdk/Makefile.am
@@ -22,7 +22,6 @@ AM_CPPFLAGS +=  -I$(top_srcdir)/platform/linux-dpdk/include
 AM_CPPFLAGS +=  -I$(top_srcdir)/platform/linux-generic/include
 AM_CPPFLAGS +=  -I$(srcdir)/include
 AM_CPPFLAGS +=  -I$(top_srcdir)/include
-AM_CPPFLAGS +=  -I$(top_srcdir)/frameworks/modular
 AM_CPPFLAGS +=  -I$(top_srcdir)/include/odp/arch/@ARCH_ABI@
 AM_CPP

[lng-odp] [PATCH 2.0 v2 0/6] Make public modular framework and subsystem headers

2017-11-10 Thread Github ODP bot
Make public modular framework and subsystem headers

github
/** Email created from pull request 261 (bogdanPricope:2_0_mf_include_pr)
 ** https://github.com/Linaro/odp/pull/261
 ** Patch: https://github.com/Linaro/odp/pull/261.patch
 ** Base sha: 65419c16086369f86dea068e54ce492526fa4f41
 ** Merge commit sha: 3034b865079536d2064a7ceb890b5bf6876949a6
 **/
/github

checkpatch.pl
total: 0 errors, 0 warnings, 0 checks, 184 lines checked


to_send-p-000.patch has no obvious style problems and is ready for submission.
total: 0 errors, 0 warnings, 0 checks, 58 lines checked


to_send-p-001.patch has no obvious style problems and is ready for submission.
total: 0 errors, 0 warnings, 0 checks, 54 lines checked


to_send-p-002.patch has no obvious style problems and is ready for submission.
total: 0 errors, 0 warnings, 0 checks, 54 lines checked


to_send-p-003.patch has no obvious style problems and is ready for submission.
total: 0 errors, 0 warnings, 0 checks, 70 lines checked


to_send-p-004.patch has no obvious style problems and is ready for submission.
total: 0 errors, 0 warnings, 0 checks, 38 lines checked


to_send-p-005.patch has no obvious style problems and is ready for submission.
/checkpatch.pl


[lng-odp] [PATCH v1 0/1] shippable implement main page stats

2017-11-10 Thread Github ODP bot
Signed-off-by: Maxim Uvarov maxim.uva...@linaro.org

github
/** Email created from pull request 293 (muvarov:devel/master_shippable)
 ** https://github.com/Linaro/odp/pull/293
 ** Patch: https://github.com/Linaro/odp/pull/293.patch
 ** Base sha: fc020907bee7ec2ba976bc02399f6fd47f110d65
 ** Merge commit sha: cec596361ede77c09b56ab7421a6781f93b262ca
 **/
/github

checkpatch.pl
WARNING: line over 80 characters
#36: FILE: scripts/shipabble-stats.sh:12:
+  

WARNING: line over 80 characters
#37: FILE: scripts/shipabble-stats.sh:13:
+  

WARNING: line over 80 characters
#38: FILE: scripts/shipabble-stats.sh:14:
+  

total: 0 errors, 3 warnings, 0 checks, 28 lines checked


to_send-p-000.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
/checkpatch.pl


[lng-odp] [PATCH v1 1/1] shippable implement main page stats

2017-11-10 Thread Github ODP bot
From: Maxim Uvarov 

Signed-off-by: Maxim Uvarov 
---
/** Email created from pull request 293 (muvarov:devel/master_shippable)
 ** https://github.com/Linaro/odp/pull/293
 ** Patch: https://github.com/Linaro/odp/pull/293.patch
 ** Base sha: fc020907bee7ec2ba976bc02399f6fd47f110d65
 ** Merge commit sha: cec596361ede77c09b56ab7421a6781f93b262ca
 **/
 scripts/shipabble-stats.sh | 28 
 1 file changed, 28 insertions(+)
 create mode 100755 scripts/shipabble-stats.sh

diff --git a/scripts/shipabble-stats.sh b/scripts/shipabble-stats.sh
new file mode 100755
index 0..c2560fd4f
--- /dev/null
+++ b/scripts/shipabble-stats.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+
+cat < $SHIPPABLE_BUILD_DIR/shippable/testresults/test_results.xml
+
+
+http://www.w3.org/1999/XSL/Transform";>
+
+
+   
+  
+  
+  
+  
+  
+  
+  
+   
+
+
+EOF



[lng-odp] [Linaro/odp]

2017-11-10 Thread GitHub
  Branch: refs/heads/2.0-native-drivers
  Home:   https://github.com/Linaro/odp


[lng-odp] [Linaro/odp]

2017-11-10 Thread GitHub
  Branch: refs/heads/devel/native-drivers
  Home:   https://github.com/Linaro/odp


[lng-odp] [Linaro/odp] 9ff682: linux-gen: crypto: drop DES-CBC support

2017-11-10 Thread GitHub
  Branch: refs/heads/api-next
  Home:   https://github.com/Linaro/odp
  Commit: 9ff682c8d0315f3f1921d5b9fe13d62897c78710
  
https://github.com/Linaro/odp/commit/9ff682c8d0315f3f1921d5b9fe13d62897c78710
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M platform/linux-generic/odp_crypto.c

  Log Message:
  ---
  linux-gen: crypto: drop DES-CBC support

DES-CBC (not 3DES-CBC) support is invalid (DES should use 8 bytes key,
not 24 bytes), it is not covered by testsuite and DES is
cracable/deprecated/etc since long ago. Stop providing single-key DES
support. In case one really needs it, it can be emulated through
supplying same key triple times to 3DES-CBC.

Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 




[lng-odp] [Linaro/odp] f4d6c9: doxygen: remove drv types

2017-11-10 Thread GitHub
  Branch: refs/heads/master
  Home:   https://github.com/Linaro/odp
  Commit: f4d6c91588b414fcb70abcc83941e8e4c1cd2f5e
  
https://github.com/Linaro/odp/commit/f4d6c91588b414fcb70abcc83941e8e4c1cd2f5e
  Author: Maxim Uvarov 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M doc/Doxyfile_common

  Log Message:
  ---
  doxygen: remove drv types

Signed-off-by: Maxim Uvarov 


  Commit: fc020907bee7ec2ba976bc02399f6fd47f110d65
  
https://github.com/Linaro/odp/commit/fc020907bee7ec2ba976bc02399f6fd47f110d65
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M platform/linux-generic/odp_crypto.c

  Log Message:
  ---
  linux-gen: crypto: drop DES-CBC support

DES-CBC (not 3DES-CBC) support is invalid (DES should use 8 bytes key,
not 24 bytes), it is not covered by testsuite and DES is
cracable/deprecated/etc since long ago. Stop providing single-key DES
support. In case one really needs it, it can be emulated through
supplying same key triple times to 3DES-CBC.

Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


Compare: https://github.com/Linaro/odp/compare/2cfe11680ecc...fc020907bee7


[lng-odp] [Linaro/odp] a57dc0: linux-gen: packet: add L3/L4 checksum validation f...

2017-11-10 Thread GitHub
  Branch: refs/heads/api-next
  Home:   https://github.com/Linaro/odp
  Commit: a57dc0bce7aab4600548096dd358e88ca2f4fe1c
  
https://github.com/Linaro/odp/commit/a57dc0bce7aab4600548096dd358e88ca2f4fe1c
  Author: Bogdan Pricope 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M platform/linux-generic/include/odp/api/plat/packet_types.h
M platform/linux-generic/include/odp_packet_internal.h

  Log Message:
  ---
  linux-gen: packet: add L3/L4 checksum validation flags

Add L3/L4 checksum validation flags to signal if operation was performed
by the platform and its result.

Signed-off-by: Bogdan Pricope 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 9b3a29ddb261d2b030a7806933787aaaee497aab
  
https://github.com/Linaro/odp/commit/9b3a29ddb261d2b030a7806933787aaaee497aab
  Author: Bogdan Pricope 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M platform/linux-generic/odp_packet.c

  Log Message:
  ---
  linux-gen: packet: implement checksum validation status functions

Checksum validation status functions return the status of the latest
checksum check done for the packet based on packet input flags and
packet error flags.

Signed-off-by: Bogdan Pricope 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 58bc37399f6bdb2426bf2eb6ba4eee6791a9c8a4
  
https://github.com/Linaro/odp/commit/58bc37399f6bdb2426bf2eb6ba4eee6791a9c8a4
  Author: Bogdan Pricope 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M platform/linux-generic/pktio/dpdk.c

  Log Message:
  ---
  linux-gen: pktio: dpdk: set L3/L4 checksum validation flags

L3/L4 checksum validation flags are used to report L3/L4
checksum check status for the incoming packets.

Signed-off-by: Bogdan Pricope 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 1ae234f54c17374997a89e5858f9e0d7855f8cf0
  
https://github.com/Linaro/odp/commit/1ae234f54c17374997a89e5858f9e0d7855f8cf0
  Author: Bogdan Pricope 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M example/generator/odp_generator.c

  Log Message:
  ---
  example: generator: use L3/L4 checksum validation status functions

Update odp_generator example application to use L3/L4 checksum
validation status functions.

Signed-off-by: Bogdan Pricope 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


Compare: https://github.com/Linaro/odp/compare/a1312ccf3836...1ae234f54c17


[lng-odp] [PATCH v1 1/1] travis: add build only test stage

2017-11-10 Thread Github ODP bot
From: Matias Elo 

Add basic build only test stage to the beginning of test run. This way
potential build errors are caught early on without having to wait for the
longer test jobs to finish.

Signed-off-by: Matias Elo 
---
/** Email created from pull request 292 (matiaselo:dev/multi_stage)
 ** https://github.com/Linaro/odp/pull/292
 ** Patch: https://github.com/Linaro/odp/pull/292.patch
 ** Base sha: 2cfe11680ecc2186339183e94f291ce586740f8b
 ** Merge commit sha: 10dc84270c3aa24fe0a49ecdfb81874c4b1c0217
 **/
 .travis.yml | 37 -
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 6bd03a0c1..b5c1b6417 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,6 +11,9 @@ language: c
 sudo: required
 dist: trusty
 group: deprecated-2017Q2
+stages:
+  - "build only"
+  - test
 env:
   global:
 # COVERITY_SCAN_TOKEN
@@ -256,7 +259,7 @@ jobs:
   - ./configure --prefix=$HOME/odp-install
 --enable-user-guides
   - sudo PATH="$PATH" 
LD_LIBRARY_PATH="$HOME/cunit-install/$CROSS_ARCH/lib:$LD_LIBRARY_PATH" make 
distcheck
-- stage: test
+- stage: "build only"
   env: TEST=doxygen
   compiler: gcc
   install:
@@ -282,6 +285,38 @@ jobs:
   - echo ${TRAVIS_COMMIT_RANGE};
   - ODP_PATCHES=`echo ${TRAVIS_COMMIT_RANGE} | sed 
's/\.//'`;
   - ./scripts/ci-checkpatches.sh ${ODP_PATCHES};
+- stage: "build only"
+  env: CONF=""
+  compiler: gcc
+  install: true
+  script:
+  - ./bootstrap
+  - ./configure --enable-helper-linux
+  - make
+- stage: "build only"
+  env: CONF=""
+  compiler: clang-3.8
+  install: true
+  script:
+  - ./bootstrap
+  - ./configure --enable-helper-linux
+  - make
+- stage: "build only"
+  env: CROSS_ARCH="i386"
+  compiler: gcc
+  install: true
+  script:
+  - ./bootstrap
+  - ./configure --enable-helper-linux $CROSS
+  - make
+- stage: "build only"
+  env: CROSS_ARCH="arm64"
+  compiler: gcc
+  install: true
+  script:
+  - ./bootstrap
+  - ./configure --enable-helper-linux $CROSS
+  - make
 
 after_failure:
   - cat config.log



[lng-odp] [PATCH v1 0/1] travis: add build only test stage

2017-11-10 Thread Github ODP bot
Add basic build only test stage to the beginning of test run. This way
potential build errors are caught early on without having to wait for the
longer test jobs to finish.
Checkpatch is not moved to the build only stage as potential false
positives would prevent the next test stage being run.

github
/** Email created from pull request 292 (matiaselo:dev/multi_stage)
 ** https://github.com/Linaro/odp/pull/292
 ** Patch: https://github.com/Linaro/odp/pull/292.patch
 ** Base sha: 2cfe11680ecc2186339183e94f291ce586740f8b
 ** Merge commit sha: 10dc84270c3aa24fe0a49ecdfb81874c4b1c0217
 **/
/github

checkpatch.pl
total: 0 errors, 0 warnings, 0 checks, 55 lines checked


to_send-p-000.patch has no obvious style problems and is ready for submission.
/checkpatch.pl


[lng-odp] [PATCH v1 1/1] doxygen: remove drv types

2017-11-10 Thread Github ODP bot
From: Maxim Uvarov 

Signed-off-by: Maxim Uvarov 
---
/** Email created from pull request 291 (muvarov:master_drv_doxygen)
 ** https://github.com/Linaro/odp/pull/291
 ** Patch: https://github.com/Linaro/odp/pull/291.patch
 ** Base sha: 2cfe11680ecc2186339183e94f291ce586740f8b
 ** Merge commit sha: 026edd2473ab4943816978c9d13817fd80292b1f
 **/
 doc/Doxyfile_common | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/doc/Doxyfile_common b/doc/Doxyfile_common
index 0471dcf3c..779442d00 100644
--- a/doc/Doxyfile_common
+++ b/doc/Doxyfile_common
@@ -33,12 +33,9 @@ DOT_IMAGE_FORMAT = svg
 PREDEFINED = __GNUC__ \
 __attribute__(x)= \
 ODP_ALIGNED(x)= \
-ODPDRV_ALIGNED(x)= \
 __BIG_ENDIAN_BITFIELD \
 __LITTLE_ENDIAN_BITFIELD \
 __x86_64__ \
 ODP_PACKED \
-ODPDRV_PACKED \
 ODP_DEPRECATE(x)=x \
-"ODP_HANDLE_T(type)=odp_handle_t type" \
-"ODPDRV_HANDLE_T(type)=odpdrv_handle_t type"
+"ODP_HANDLE_T(type)=odp_handle_t type"



[lng-odp] [PATCH v1 0/1] doxygen: remove drv types

2017-11-10 Thread Github ODP bot
Signed-off-by: Maxim Uvarov maxim.uva...@linaro.org

github
/** Email created from pull request 291 (muvarov:master_drv_doxygen)
 ** https://github.com/Linaro/odp/pull/291
 ** Patch: https://github.com/Linaro/odp/pull/291.patch
 ** Base sha: 2cfe11680ecc2186339183e94f291ce586740f8b
 ** Merge commit sha: 026edd2473ab4943816978c9d13817fd80292b1f
 **/
/github

checkpatch.pl
total: 0 errors, 0 warnings, 0 checks, 13 lines checked


to_send-p-000.patch has no obvious style problems and is ready for submission.
/checkpatch.pl


[lng-odp] [Linaro/odp] f6d3bc: api: packet: ones complement sum

2017-11-10 Thread GitHub
  Branch: refs/heads/api-next
  Home:   https://github.com/Linaro/odp
  Commit: f6d3bc302664e2c4121e798e86758d93fdb156f5
  
https://github.com/Linaro/odp/commit/f6d3bc302664e2c4121e798e86758d93fdb156f5
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/api/spec/packet.h

  Log Message:
  ---
  api: packet: ones complement sum

Added packet metadata for ones complement sum over
packet data. Some NICs calculate the sum during packet
input (at least for IP fragments) and store the value
into the packet descriptor. This offloads L4 checksum
calculation for IP fragments as SW does not need sum
all payload data, but just combine pre-calculated
sums from packet descriptors and remove extra header fields
from the sum.

Signed-off-by: Petri Savolainen 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 4da1cb6040dece2ece108cd383ab4212e7f7fe85
  
https://github.com/Linaro/odp/commit/4da1cb6040dece2ece108cd383ab4212e7f7fe85
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M platform/linux-generic/odp_packet.c

  Log Message:
  ---
  linux-gen: packet: dummy ones complement implementation

Added dummy implementation of ones complement calls. Linux
generic implementation does not calculate the sum for all
incoming packets as it would be wasteful in SW. It's better
to wait until application asks it with odp_chksum_ones_comp16().
Later on, the sum could be stored into the packet header,
if we found a way to get it from the HW.

Signed-off-by: Petri Savolainen 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: a1312ccf383637b5711c0f8c4bab6f43e63325dc
  
https://github.com/Linaro/odp/commit/a1312ccf383637b5711c0f8c4bab6f43e63325dc
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M test/validation/api/packet/packet.c
M test/validation/api/pktio/pktio.c

  Log Message:
  ---
  validation: packet: add call to ones complement

Call ones complement function. Actual validation of
correctness of the sum is to be done, when an implementation
exist which sets the sum on packet input.

Signed-off-by: Petri Savolainen 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


Compare: https://github.com/Linaro/odp/compare/6333b39f1bd5...a1312ccf3836


[lng-odp] [Linaro/odp] 9c389e: api: packet: add parse functions

2017-11-10 Thread GitHub
  Branch: refs/heads/api-next
  Home:   https://github.com/Linaro/odp
  Commit: 9c389e1785fd000203eb2198f9fc2778be8f83e6
  
https://github.com/Linaro/odp/commit/9c389e1785fd000203eb2198f9fc2778be8f83e6
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/api/spec/packet.h

  Log Message:
  ---
  api: packet: add parse functions

Application may need help on packet parsing e.g. after decrypt
or IP reassembly of a packet. Application specifies from where
to start and where to stop parsing. Implementation may be
vectorized (more efficient) when multiple packets are parsed
together with the same parse requirements.

Signed-off-by: Petri Savolainen 
Reviewed-by: Bill Fischofer 
Reviewed-by: Dmitry Eremin-Solenikov 
Signed-off-by: Maxim Uvarov 


  Commit: 0ec5bc6b5c3a178d7b316bdf9e18db452ba5ed58
  
https://github.com/Linaro/odp/commit/0ec5bc6b5c3a178d7b316bdf9e18db452ba5ed58
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/api/spec/packet_io.h
M platform/linux-generic/include/odp/api/plat/packet_inlines.h

  Log Message:
  ---
  api: pktio: use common protocol layer enum

Use common values between pktio parser layer and
packet protocol layer enums.

Signed-off-by: Petri Savolainen 
Reviewed-by: Bill Fischofer 
Reviewed-by: Dmitry Eremin-Solenikov 
Signed-off-by: Maxim Uvarov 


  Commit: 23b6eee83bc5717f4797441bddbb035e3388ff10
  
https://github.com/Linaro/odp/commit/23b6eee83bc5717f4797441bddbb035e3388ff10
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/api/spec/ipsec.h

  Log Message:
  ---
  api: ipsec: use common protocol layer enum

Use common values between ipsec parse and
packet protocol layer enums.

Signed-off-by: Petri Savolainen 
Reviewed-by: Bill Fischofer 
Reviewed-by: Dmitry Eremin-Solenikov 
Signed-off-by: Maxim Uvarov 


  Commit: fbb6a7feba146acb1495fbdcd93e1b691a7363a0
  
https://github.com/Linaro/odp/commit/fbb6a7feba146acb1495fbdcd93e1b691a7363a0
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M platform/linux-generic/include/odp_packet_internal.h
M platform/linux-generic/odp_packet.c

  Log Message:
  ---
  linux-gen: packet: add parse API

Implemented new API functions for packet parsing.

Signed-off-by: Petri Savolainen 
Reviewed-by: Bill Fischofer 
Reviewed-by: Dmitry Eremin-Solenikov 
Signed-off-by: Maxim Uvarov 


  Commit: 78ced32df325dac7ff58ff28684fdb941f5ec1b3
  
https://github.com/Linaro/odp/commit/78ced32df325dac7ff58ff28684fdb941f5ec1b3
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M test/common/Makefile.am
A test/common/test_packet_parser.h
M test/validation/api/pktio/parser.c
M test/validation/api/pktio/parser.h

  Log Message:
  ---
  validation: pktio: add parser test packet header

Moved parser test packet definitions into a new, common
header file. The same test packets can be used in various
test suites.

Signed-off-by: Petri Savolainen 
Reviewed-by: Bill Fischofer 
Reviewed-by: Dmitry Eremin-Solenikov 
Signed-off-by: Maxim Uvarov 


  Commit: 6333b39f1bd5ebe184780260566b84340104efeb
  
https://github.com/Linaro/odp/commit/6333b39f1bd5ebe184780260566b84340104efeb
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M test/validation/api/packet/packet.c
M test/validation/api/packet/packet.h

  Log Message:
  ---
  validation: packet: add parse tests

Added validation tests for the new packet parse APIs.

Signed-off-by: Petri Savolainen 
Reviewed-by: Bill Fischofer 
Reviewed-by: Dmitry Eremin-Solenikov 
Signed-off-by: Maxim Uvarov 


Compare: https://github.com/Linaro/odp/compare/3d254a24a1a9...6333b39f1bd5


[lng-odp] [Bug 2861] Remove redundant loop_support parameter in pktio capability

2017-11-10 Thread bugzilla-daemon
https://bugs.linaro.org/show_bug.cgi?id=2861

--- Comment #7 from Maxim Uvarov  ---
https://github.com/Linaro/odp/commit/5f095cc66bc3fcafe8f44ed7348ef127f40c9026
refs/heads/api-next
2017-11-10T14:03:29+03:00
Balasubramanian Manoharan bala.manoha...@linaro.org
api: packetio: deprecate redundant loop_supported field in capability

removes redundant loop_supported boolean in odp_pktio_capability_t
Fixes https://bugs.linaro.org/show_bug.cgi?id=2861

Signed-off-by: Balasubramanian Manoharan 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[lng-odp] [Bug 3411] wrong openssl_lock pointer type

2017-11-10 Thread bugzilla-daemon
https://bugs.linaro.org/show_bug.cgi?id=3411

--- Comment #3 from Maxim Uvarov  ---
https://github.com/Linaro/odp/commit/0e04be4851ecc94da8b4cac3c576260c0518c936
refs/heads/api-next
2017-11-08T22:32:30+03:00
Petri Savolainen petri.savolai...@linaro.org
linux-gen: crypto: fix openssl_lock pointer type

Wrong pointer type (pointer to pointer) to openssl_lock array
caused data overlapping when running on other than 64-bit
machines.

Fixed pointer type and simplified global data structure to
contain only one dynamically sized array (openssl locks).
Session array was already fixed size but was not defined as
such.

Fixes bug: https://bugs.linaro.org/show_bug.cgi?id=3411

Signed-off-by: Petri Savolainen 
Signed-off-by: Viktor Tikkanen 
Reviewed-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[lng-odp] [Linaro/odp] 29c7a0: test: l2fwd script: run generator on a single core

2017-11-10 Thread GitHub
  Branch: refs/heads/api-next
  Home:   https://github.com/Linaro/odp
  Commit: 29c7a054f7151d33795a0d8d7df5594bf4fddb55
  
https://github.com/Linaro/odp/commit/29c7a054f7151d33795a0d8d7df5594bf4fddb55
  Author: Matias Elo 
  Date:   2017-11-08 (Wed, 08 Nov 2017)

  Changed paths:
M test/performance/odp_l2fwd_run.sh

  Log Message:
  ---
  test: l2fwd script: run generator on a single core

Run packet generator on a single core to minimize the penalty from running
generator and l2fwd applications on overlapping cores (both use
odp_cpumask_default_worker()). On a generic server this change increases
packet rate by ~40X.

Fixes https://bugs.linaro.org/show_bug.cgi?id=2407

Signed-off-by: Matias Elo 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: d59c00c5f0255a5f1fc462332eef291bb2993f64
  
https://github.com/Linaro/odp/commit/d59c00c5f0255a5f1fc462332eef291bb2993f64
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-11-08 (Wed, 08 Nov 2017)

  Changed paths:
M example/l2fwd/README
M example/l2fwd/odp_l2fwd.c

  Log Message:
  ---
  example: fix pointers to odp_l2fwd.c source

During mass-move of tests I forgot to update odp_l2fwd example to point
to new locattion. Fix that now.

Signed-off-by: Dmitry Eremin-Solenikov 
Signed-off-by: Maxim Uvarov 


  Commit: 0e04be4851ecc94da8b4cac3c576260c0518c936
  
https://github.com/Linaro/odp/commit/0e04be4851ecc94da8b4cac3c576260c0518c936
  Author: Petri Savolainen 
  Date:   2017-11-08 (Wed, 08 Nov 2017)

  Changed paths:
M platform/linux-generic/odp_crypto.c

  Log Message:
  ---
  linux-gen: crypto: fix openssl_lock pointer type

Wrong pointer type (pointer to pointer) to openssl_lock array
caused data overlapping when running on other than 64-bit
machines.

Fixed pointer type and simplified global data structure to
contain only one dynamically sized array (openssl locks).
Session array was already fixed size but was not defined as
such.

Fixes bug: https://bugs.linaro.org/show_bug.cgi?id=3411

Signed-off-by: Petri Savolainen 
Signed-off-by: Viktor Tikkanen 
Reviewed-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: dd31792d10772c3e41519fc0b6d68cf13b0fe9d4
  
https://github.com/Linaro/odp/commit/dd31792d10772c3e41519fc0b6d68cf13b0fe9d4
  Author: Christophe Milard 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M test/Makefile.inc

  Log Message:
  ---
  test: preventing odp.conf loading for tests

The tests should not be affected by any system or user ODP configuration
file. The ODP_SYSCONFIG_FILE environment variables is therefore set
to "none" in TESTS_ENVIRONMENT.
Tests which need specific a configuration file will have to overwrite
this setting.
Note that tests ran manually (not using make check) may be affected
by configuration files. Setting ODP_SYSCONFIG_FILE to an appropriate value
(possibly "none") may be required.

Signed-off-by: Christophe Milard 
Reviewed-and-tested-by: Yi He 
Signed-off-by: Maxim Uvarov 


  Commit: bae53291795e9c19cbfde9c0d0e11a19d9870623
  
https://github.com/Linaro/odp/commit/bae53291795e9c19cbfde9c0d0e11a19d9870623
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/arch/default/api/abi/event.h

  Log Message:
  ---
  abi: event: add ODP_EVENT_IPSEC_RESULT

Update ABI spec with the new IPSEC event type.

Signed-off-by: Petri Savolainen 
Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Dmitry Eremin-Solenikov 
Signed-off-by: Maxim Uvarov 


  Commit: b6b667b1e95635a6ba77a19078d7d28013bcde1d
  
https://github.com/Linaro/odp/commit/b6b667b1e95635a6ba77a19078d7d28013bcde1d
  Author: Bill Fischofer 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M doc/users-guide/users-guide.adoc

  Log Message:
  ---
  doc: userguide: add odp_init_global() documentation for unused features

Update User Guide startup section to include current parameters for
odp_init_global() and odp_init_local() as well as optimization hints for
unused features.

Signed-off-by: Bill Fischofer 
Reviewed-by: Petri Savolainen 
Signed-off-by: Maxim Uvarov 


  Commit: f972ef61a9693b7895cb7f85084c1c53c3b13131
  
https://github.com/Linaro/odp/commit/f972ef61a9693b7895cb7f85084c1c53c3b13131
  Author: Brian Brooks 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M test/performance/odp_pktio_ordered.c

  Log Message:
  ---
  test: odp_pktio_ordered: add queue size

Signed-off-by: Brian Brooks 
Reviewed-and-tested-by: Yi He 
Signed-off-by: Maxim Uvarov 


  Commit: c4a8f43ff08b954d14857c5a59544f8d914205e3
  
https://github.com/Linaro/odp/commit/c4a8f43ff08b954d14857c5a59544f8d914205e3
  Author: Matias Elo 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/api/spec/system_info.h

  Log Message:
  ---
  api: system_info: add function for fetching all supported huge page sizes

A 

[lng-odp] [Linaro/odp] 5e840b: drv: doc, linux-gen, include: drop incomplete drv ...

2017-11-10 Thread GitHub
  Branch: refs/heads/api-next
  Home:   https://github.com/Linaro/odp
  Commit: 5e840b83992bba2f64750bb3a4599478d6ea9260
  
https://github.com/Linaro/odp/commit/5e840b83992bba2f64750bb3a4599478d6ea9260
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-11-02 (Thu, 02 Nov 2017)

  Changed paths:
M doc/Makefile.am
M doc/application-api-guide/Doxyfile
R doc/driver-api-guide/.gitignore
R doc/driver-api-guide/Doxyfile
R doc/driver-api-guide/Makefile.am
R doc/driver-api-guide/odp.dox
M doc/implementers-guide/implementers-guide.adoc
M doc/m4/configure.m4
R include/odp/drv/spec/README
R include/odp/drv/spec/compiler.h
R include/odp/drv/spec/std_types.h
R include/odp_drv.h
M platform/linux-generic/Makefile.am
R platform/linux-generic/include/odp/drv/README
R platform/linux-generic/include/odp/drv/compiler.h
R platform/linux-generic/include/odp/drv/std_types.h

  Log Message:
  ---
  drv: doc, linux-gen, include: drop incomplete drv interface

Driver interface at master branch is incomplete. Drop it for now.
API-next will receive update DDF framework separately.

Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: ea9f2aa440a653a77cbcadc2862c5af298205272
  
https://github.com/Linaro/odp/commit/ea9f2aa440a653a77cbcadc2862c5af298205272
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-11-03 (Fri, 03 Nov 2017)

  Changed paths:
M configure.ac

  Log Message:
  ---
  configure: don't try building driver api guide

driver api guide was removed from master branch. Drop it from
configure.ac.

Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: b13eba4e9b9cb814f115627addf763322fe22a76
  
https://github.com/Linaro/odp/commit/b13eba4e9b9cb814f115627addf763322fe22a76
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-11-03 (Fri, 03 Nov 2017)

  Changed paths:
M Makefile.am
M doc/application-api-guide/Makefile.am

  Log Message:
  ---
  doc: include Doxyfile into EXTRA_DIST

As it is done with the rest of Doxygen docs, include Doxyfile into
EXTRA_DIST of corresponding doc directory. Drop $(DX_CONFIG) from
top-level Makefile.am, as it becomes unused now.

Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 449c693b2678bc29577b64fb76003bb10b86db6e
  
https://github.com/Linaro/odp/commit/449c693b2678bc29577b64fb76003bb10b86db6e
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-11-03 (Fri, 03 Nov 2017)

  Changed paths:
M .travis.yml

  Log Message:
  ---
  travis: move Doxygen compilation to before_install

Move Doxygen compilation to before_install to make it available to make
distcheck.

Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 2dd964e170d71078cfe03d4c9e00c6f592b4326b
  
https://github.com/Linaro/odp/commit/2dd964e170d71078cfe03d4c9e00c6f592b4326b
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-11-03 (Fri, 03 Nov 2017)

  Changed paths:
M Makefile.am

  Log Message:
  ---
  build: run doxygen-doc during make distcheck

Check that distribution has all files necessary to build doxygen
documentation.

Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 43cff7996bcdd6264bf6066a8be9424b2e12ca21
  
https://github.com/Linaro/odp/commit/43cff7996bcdd6264bf6066a8be9424b2e12ca21
  Author: Maxim Uvarov 
  Date:   2017-11-03 (Fri, 03 Nov 2017)

  Changed paths:
M .travis.yml
M Makefile.am
M configure.ac
M doc/Makefile.am
M doc/application-api-guide/Doxyfile
M doc/application-api-guide/Makefile.am
R doc/driver-api-guide/.gitignore
R doc/driver-api-guide/Makefile.am
R doc/driver-api-guide/odp.dox
M doc/implementers-guide/implementers-guide.adoc
M doc/m4/configure.m4
R include/odp/drv/spec/README
R include/odp/drv/spec/compiler.h
R include/odp/drv/spec/std_types.h
M platform/linux-generic/Makefile.am
R platform/linux-generic/include/odp/drv/README
R platform/linux-generic/include/odp/drv/compiler.h
R platform/linux-generic/include/odp/drv/std_types.h

  Log Message:
  ---
  Merge branch 'master' into api-next

Signed-off-by: Maxim Uvarov 


  Commit: fd192cba9c4e1f36a1bf3819f35f5e684ca80b1e
  
https://github.com/Linaro/odp/commit/fd192cba9c4e1f36a1bf3819f35f5e684ca80b1e
  Author: Maxim Uvarov 
  Date:   2017-11-03 (Fri, 03 Nov 2017)

  Changed paths:
M doc/Doxyfile_common
M include/Makefile.am
R include/odp/drv/spec/align.h
R include/odp/drv/spec/atomic.h
R include/odp/drv/spec/barrier.h
R include/odp/drv/spec/byteorder.h
R include/odp/drv/spec/driver.h
R include/odp/drv/spec/shm.h
R include/odp/drv/spec/spinlock.h
R include/odp/drv/spec/sync.h
R include/odp_drv.h
M platfor

[lng-odp] [Linaro/odp]

2017-11-10 Thread GitHub
  Branch: refs/tags/v1.16.0.0
  Home:   https://github.com/Linaro/odp


[lng-odp] [Linaro/odp] dd3179: test: preventing odp.conf loading for tests

2017-11-10 Thread GitHub
  Branch: refs/heads/master
  Home:   https://github.com/Linaro/odp
  Commit: dd31792d10772c3e41519fc0b6d68cf13b0fe9d4
  
https://github.com/Linaro/odp/commit/dd31792d10772c3e41519fc0b6d68cf13b0fe9d4
  Author: Christophe Milard 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M test/Makefile.inc

  Log Message:
  ---
  test: preventing odp.conf loading for tests

The tests should not be affected by any system or user ODP configuration
file. The ODP_SYSCONFIG_FILE environment variables is therefore set
to "none" in TESTS_ENVIRONMENT.
Tests which need specific a configuration file will have to overwrite
this setting.
Note that tests ran manually (not using make check) may be affected
by configuration files. Setting ODP_SYSCONFIG_FILE to an appropriate value
(possibly "none") may be required.

Signed-off-by: Christophe Milard 
Reviewed-and-tested-by: Yi He 
Signed-off-by: Maxim Uvarov 


  Commit: bae53291795e9c19cbfde9c0d0e11a19d9870623
  
https://github.com/Linaro/odp/commit/bae53291795e9c19cbfde9c0d0e11a19d9870623
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/arch/default/api/abi/event.h

  Log Message:
  ---
  abi: event: add ODP_EVENT_IPSEC_RESULT

Update ABI spec with the new IPSEC event type.

Signed-off-by: Petri Savolainen 
Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Dmitry Eremin-Solenikov 
Signed-off-by: Maxim Uvarov 


  Commit: b6b667b1e95635a6ba77a19078d7d28013bcde1d
  
https://github.com/Linaro/odp/commit/b6b667b1e95635a6ba77a19078d7d28013bcde1d
  Author: Bill Fischofer 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M doc/users-guide/users-guide.adoc

  Log Message:
  ---
  doc: userguide: add odp_init_global() documentation for unused features

Update User Guide startup section to include current parameters for
odp_init_global() and odp_init_local() as well as optimization hints for
unused features.

Signed-off-by: Bill Fischofer 
Reviewed-by: Petri Savolainen 
Signed-off-by: Maxim Uvarov 


  Commit: f972ef61a9693b7895cb7f85084c1c53c3b13131
  
https://github.com/Linaro/odp/commit/f972ef61a9693b7895cb7f85084c1c53c3b13131
  Author: Brian Brooks 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M test/performance/odp_pktio_ordered.c

  Log Message:
  ---
  test: odp_pktio_ordered: add queue size

Signed-off-by: Brian Brooks 
Reviewed-and-tested-by: Yi He 
Signed-off-by: Maxim Uvarov 


  Commit: c4a8f43ff08b954d14857c5a59544f8d914205e3
  
https://github.com/Linaro/odp/commit/c4a8f43ff08b954d14857c5a59544f8d914205e3
  Author: Matias Elo 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/api/spec/system_info.h

  Log Message:
  ---
  api: system_info: add function for fetching all supported huge page sizes

A system may simultaneously support multiple huge page sizes. Add a new API
function odp_sys_huge_page_size_all() which returns all supported page
sizes. odp_sys_huge_page_size() stays unmodified to maintain backward
compatibility.

Signed-off-by: Matias Elo 
Reviewed-and-tested-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 43d7f57b9f9f24526330c51fda8554d52414b82f
  
https://github.com/Linaro/odp/commit/43d7f57b9f9f24526330c51fda8554d52414b82f
  Author: Matias Elo 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M platform/linux-generic/odp_system_info.c

  Log Message:
  ---
  linux-gen: system_info: implement odp_sys_huge_page_size_all()

Directory /sys/kernel/mm/hugepages contains subdirectories for all huge
page sizes supported by the running kernel. Loop through the contents of
this directory to find the supported huge page sizes.

Signed-off-by: Matias Elo 
Reviewed-and-tested-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 3d6cf1de61e0b5c846317b3ffcbd0cfd07531b90
  
https://github.com/Linaro/odp/commit/3d6cf1de61e0b5c846317b3ffcbd0cfd07531b90
  Author: Matias Elo 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M test/validation/api/system/system.c
M test/validation/api/system/system.h

  Log Message:
  ---
  validation: system_info: add test for odp_sys_huge_page_size_all()

Signed-off-by: Matias Elo 
Reviewed-and-tested-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 5f095cc66bc3fcafe8f44ed7348ef127f40c9026
  
https://github.com/Linaro/odp/commit/5f095cc66bc3fcafe8f44ed7348ef127f40c9026
  Author: Balasubramanian Manoharan 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/api/spec/packet_io.h
M platform/linux-generic/odp_packet_io.c

  Log Message:
  ---
  api: packetio: deprecate redundant loop_supported field in capability

removes redundant loop_supported boolean in odp_pktio_capability_t
Fixes https://bugs.linaro.org/show_bug.cgi?id=2861

Signed-off-by: Balasubramanian Manoharan 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: c8f2

[lng-odp] [Bug 2861] Remove redundant loop_support parameter in pktio capability

2017-11-10 Thread bugzilla-daemon
https://bugs.linaro.org/show_bug.cgi?id=2861

--- Comment #6 from Maxim Uvarov  ---
https://github.com/Linaro/odp/commit/5f095cc66bc3fcafe8f44ed7348ef127f40c9026
refs/heads/master
2017-11-10T14:03:29+03:00
Balasubramanian Manoharan bala.manoha...@linaro.org
api: packetio: deprecate redundant loop_supported field in capability

removes redundant loop_supported boolean in odp_pktio_capability_t
Fixes https://bugs.linaro.org/show_bug.cgi?id=2861

Signed-off-by: Balasubramanian Manoharan 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Re: [lng-odp] ODP vs Protocol headers

2017-11-10 Thread Savolainen, Petri (Nokia - FI/Espoo)


> -Original Message-
> From: lng-odp [mailto:lng-odp-boun...@lists.linaro.org] On Behalf Of
> Dmitry Eremin-Solenikov
> Sent: Friday, November 10, 2017 1:36 PM
> To: lng-odp-forward 
> Subject: [lng-odp] ODP vs Protocol headers
> 
> Hello,
> 
> Historically ODP helper provided protocol-related headers with
> linux-generic ODP implementation using modified private copy of them.
> The main reason for that was, if I remember correctly, that ODP should
> not provide protocol-related definitions.
> 
> I'd like to return to that question:
>  - I'm now adding more definitions to private protocol headers and I
> would not like for them to be too much out of sync.
>  - We started adding more and more protocol-specific handling in form of
> odp_packet_parse, odp packet flags, etc.
> 
> I'd propose to put protocol headers (ip.h, tcp.h, udp.h, eth.h) into
> public ODP namespace (to ) with the following
> phrase specifying them:
> 
> 
> These headers are not a part of ODP API specification, however they are
> provided to enable applications to use standard definitions for the
> protocol data. While neither of ODP API/ABI headers uses these protocol
> headers, an implementation SHOULD provide them AS IS to ease porting
> applications between ODP implementations.
> 
> 
> --
> With best wishes
> Dmitry

Protocol definitions in ODP API are high level - e.g. has_ip, has_ipv6, 
ipv4_chksum_status. Full protocol header definitions are not needed for using 
those feature flags.

Protocol headers definitions in the API (when the API itself does not need 
those) is an extra maintenance burden. Headers have type, flag, option, etc 
fields which value/usage tend to extend over time (new RFCs define new values 
and usage for old fields, etc). Once you add first headers into ODP API, people 
start requesting "one more value", "one more extension header", etc. After a 
while there would be a full protocol suite worth of protocol definitions to 
maintain.

Application have better change to maintain protocol definitions, since they 
need to concentrate to only those they implement - ODP would need to define 
all, but would not implement anything.

-Petri




Re: [lng-odp] [EXT] Re: classifier with pktio in ODP_PKTIN_MODE_QUEUE

2017-11-10 Thread Savolainen, Petri (Nokia - FI/Espoo)


> -Original Message-
> From: Liron Himi [mailto:lir...@marvell.com]
> Sent: Friday, November 10, 2017 1:32 PM
> To: Savolainen, Petri (Nokia - FI/Espoo) ;
> Bala Manoharan 
> Cc: lng-odp@lists.linaro.org; Liron Himi 
> Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in
> ODP_PKTIN_MODE_QUEUE
> 
> Hi Petri,
> 
> See comments inline
> 
> Liron
> 
> -Original Message-
> From: Savolainen, Petri (Nokia - FI/Espoo)
> [mailto:petri.savolai...@nokia.com]
> Sent: Friday, November 10, 2017 13:13
> To: Liron Himi ; Bala Manoharan
> 
> Cc: lng-odp@lists.linaro.org
> Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in
> ODP_PKTIN_MODE_QUEUE
> 
> odp_pktin_event_queue() is *not* used when classifier is enabled.
> 
> odp_queue_deq(q)
>   1) if q has events, return an event
>   2) if q does not have events, poll packet input
> [L.H.] how do I know which is the packet input?
> Maybe it is expected to set the ' dequeue_multi' of the queue once it's
> cos was somehow assigned to PKTIO. If so, does it means a queue can only
> be attached to one PKTIO?

These bullets describe what odp_queue_deq() implementation does. Application 
just polls event queues how it wishes.

Implementation may drive pktin polling from those queues that are linked to the 
pktin, or any queue linked to any pktin may cause all pktins to be polled, or 
... It's implementation defined how it's arranged. Current implementation may 
have a gap there.

-Petri 
 

>  * packet input poll finds a packet
>  * classify the packet
>  * enqueue the packet into an event queue
>  * some later odp_queue_deq() call will find the packet from the queue
> (not necessary q, but the destination queue of the CoS)
> 
> -Petri
> 
> 
> > -Original Message-
> > From: Liron Himi [mailto:lir...@marvell.com]
> > Sent: Friday, November 10, 2017 12:23 PM
> > To: Bala Manoharan ; Savolainen, Petri
> > (Nokia -
> > FI/Espoo) 
> > Cc: lng-odp@lists.linaro.org; Liron Himi 
> > Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in
> > ODP_PKTIN_MODE_QUEUE
> >
> > Hi,
> >
> > I understand what you are saying, but I don't understand (probably I
> > miss something here) how classifier is working in PKTIO in a
> > ODP_PKTIN_MODE_QUEUE mode.
> > Application create its own queues, associate them to the cos and
> > connect them to the classifier.
> > In order to receive packets, application will call ' odp_queue_deq()'.
> > But how the packets will be enqueued to this queue?
> > Who will call ' odp_pktin_recv' to receive the packets, as in the
> > schedule mode case?
> >
> > Consider the following scenario and let me know if it is acceptable:
> > Application wants to configure classifier but doesn't want to use the
> > odp- schedule. So,
> > - PKTIO is configure with ' ODP_PKTIN_MODE_QUEUE' mode and classifier
> > enable.
> > - application will call ' odp_pktin_event_queue' to get all pktio's
> > event queues.
> > - application will associate those queues in the desired cos and
> > configure the classifier with them.
> > - application will call ' odp_queue_deq()' and as a result the '
> > odp_pktin_recv' will be triggered (as it is a PKTIO's event queue).
> > Implementation should not set the 'dst_queue' in this mode and
> as a
> > result the packet will be return to originated queue.
> >
> > Liron
> >
> > -Original Message-
> > From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> > Sent: Friday, November 10, 2017 11:27
> > To: Liron Himi 
> > Cc: lng-odp@lists.linaro.org
> > Subject: Re: [EXT] Re: [lng-odp] classifier with pktio in
> > ODP_PKTIN_MODE_QUEUE
> >
> > Comments inline...
> >
> > On 10 November 2017 at 12:01, Liron Himi  wrote:
> > > Hi Bala,
> > >
> > > According to the documentation, classifier can be operate with
> > PKTIN_QUEUE_MODE.
> > > /** Enable classifier
> > >   *
> > >   * * 0: Classifier is disabled (default)
> > >   * * 1: Classifier is enabled. Use classifier to direct
> > incoming
> > >   *  packets into pktin event queues. Classifier can be
> > enabled
> > >   *  only in ODP_PKTIN_MODE_SCHED and ODP_PKTIN_MODE_QUEUE
> > modes.
> > >   *  Both classifier and hashing cannot be enabled
> > simultaneously
> > >   *  ('hash_enable' must be 0). */
> > > odp_bool_t classifier_enable;
> > >
> > > So, Is there a mistake in the documentation or this combination
> > > should
> > be supported?
> >
> > odp_pktin_event_queue() can only be used when hashing is enabled since
> > when you connect more than one queue to pktio you need some mechanism
> > to spread the traffic. This configuration is given using
> > odp_pktin_hash_proto_t which is valid only when hashing is enabled.
> >
> > Since classifier and hashing are orthogonal you cannot use
> > classification and get packets using event queues configured using
> > odp_pktin_event_queue().
> > Packets delivered after classification can be received by application
> > ei

[lng-odp] ODP vs Protocol headers

2017-11-10 Thread Dmitry Eremin-Solenikov
Hello,

Historically ODP helper provided protocol-related headers with
linux-generic ODP implementation using modified private copy of them.
The main reason for that was, if I remember correctly, that ODP should
not provide protocol-related definitions.

I'd like to return to that question:
 - I'm now adding more definitions to private protocol headers and I
would not like for them to be too much out of sync.
 - We started adding more and more protocol-specific handling in form of
odp_packet_parse, odp packet flags, etc.

I'd propose to put protocol headers (ip.h, tcp.h, udp.h, eth.h) into
public ODP namespace (to ) with the following
phrase specifying them:


These headers are not a part of ODP API specification, however they are
provided to enable applications to use standard definitions for the
protocol data. While neither of ODP API/ABI headers uses these protocol
headers, an implementation SHOULD provide them AS IS to ease porting
applications between ODP implementations.


-- 
With best wishes
Dmitry


Re: [lng-odp] [EXT] Re: classifier with pktio in ODP_PKTIN_MODE_QUEUE

2017-11-10 Thread Liron Himi
This is great.
On which version it will be released? 1.16? or later?

Liron

-Original Message-
From: Savolainen, Petri (Nokia - FI/Espoo) [mailto:petri.savolai...@nokia.com] 
Sent: Friday, November 10, 2017 13:19
To: Liron Himi ; Bala Manoharan 
Cc: lng-odp@lists.linaro.org
Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in ODP_PKTIN_MODE_QUEUE

To mix things, api-next introduces queue hashing *within* a CoS. But also there 
you use odp_cls_cos_queues() to get the implementation created queue handles, 
not odp_pktin_event_queue().

-Petri


> -Original Message-
> From: Savolainen, Petri (Nokia - FI/Espoo)
> Sent: Friday, November 10, 2017 1:13 PM
> To: 'Liron Himi' ; Bala Manoharan 
> 
> Cc: lng-odp@lists.linaro.org
> Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in 
> ODP_PKTIN_MODE_QUEUE
> 
> odp_pktin_event_queue() is *not* used when classifier is enabled.
> 
> odp_queue_deq(q)
>   1) if q has events, return an event
>   2) if q does not have events, poll packet input
>  * packet input poll finds a packet
>  * classify the packet
>  * enqueue the packet into an event queue
>  * some later odp_queue_deq() call will find the packet from the 
> queue (not necessary q, but the destination queue of the CoS)
> 
> -Petri
> 
> 
> > -Original Message-
> > From: Liron Himi [mailto:lir...@marvell.com]
> > Sent: Friday, November 10, 2017 12:23 PM
> > To: Bala Manoharan ; Savolainen, Petri 
> > (Nokia
> -
> > FI/Espoo) 
> > Cc: lng-odp@lists.linaro.org; Liron Himi 
> > Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in 
> > ODP_PKTIN_MODE_QUEUE
> >
> > Hi,
> >
> > I understand what you are saying, but I don't understand (probably I
> miss
> > something here) how classifier is working in PKTIO in a 
> > ODP_PKTIN_MODE_QUEUE mode.
> > Application create its own queues, associate them to the cos and 
> > connect them to the classifier.
> > In order to receive packets, application will call ' odp_queue_deq()'.
> But
> > how the packets will be enqueued to this queue?
> > Who will call ' odp_pktin_recv' to receive the packets, as in the
> schedule
> > mode case?
> >
> > Consider the following scenario and let me know if it is acceptable:
> > Application wants to configure classifier but doesn't want to use 
> > the
> odp-
> > schedule. So,
> > - PKTIO is configure with ' ODP_PKTIN_MODE_QUEUE' mode and 
> > classifier enable.
> > - application will call ' odp_pktin_event_queue' to get all pktio's
> event
> > queues.
> > - application will associate those queues in the desired cos and
> configure
> > the classifier with them.
> > - application will call ' odp_queue_deq()' and as a result the '
> > odp_pktin_recv' will be triggered (as it is a PKTIO's event queue).
> > Implementation should not set the 'dst_queue' in this mode and as a 
> > result the packet will be return to originated queue.
> >
> > Liron
> >
> > -Original Message-
> > From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> > Sent: Friday, November 10, 2017 11:27
> > To: Liron Himi 
> > Cc: lng-odp@lists.linaro.org
> > Subject: Re: [EXT] Re: [lng-odp] classifier with pktio in 
> > ODP_PKTIN_MODE_QUEUE
> >
> > Comments inline...
> >
> > On 10 November 2017 at 12:01, Liron Himi  wrote:
> > > Hi Bala,
> > >
> > > According to the documentation, classifier can be operate with
> > PKTIN_QUEUE_MODE.
> > > /** Enable classifier
> > >   *
> > >   * * 0: Classifier is disabled (default)
> > >   * * 1: Classifier is enabled. Use classifier to direct
> > incoming
> > >   *  packets into pktin event queues. Classifier can be
> > enabled
> > >   *  only in ODP_PKTIN_MODE_SCHED and ODP_PKTIN_MODE_QUEUE
> > modes.
> > >   *  Both classifier and hashing cannot be enabled
> > simultaneously
> > >   *  ('hash_enable' must be 0). */
> > > odp_bool_t classifier_enable;
> > >
> > > So, Is there a mistake in the documentation or this combination 
> > > should
> > be supported?
> >
> > odp_pktin_event_queue() can only be used when hashing is enabled 
> > since when you connect more than one queue to pktio you need some 
> > mechanism to spread the traffic. This configuration is given using 
> > odp_pktin_hash_proto_t which is valid only when hashing is enabled.
> >
> > Since classifier and hashing are orthogonal you cannot use
> classification
> > and get packets using event queues configured using 
> > odp_pktin_event_queue().
> > Packets delivered after classification can be received by 
> > application either using odp_queue_deq() or odp_schedule() function 
> > depending upon
> the
> > dst_queue configured with CoS.
> >
> > Regards,
> > Bala
> >
> > >
> > > Liron
> > >
> > > -Original Message-
> > > From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> > > Sent: Friday, November 10, 2017 07:18
> > > To: Liron Himi 
> > > Cc: lng-odp@lists.linaro.org
> > > Subject: [EXT] Re: [lng-odp] classifier with

Re: [lng-odp] [EXT] Re: classifier with pktio in ODP_PKTIN_MODE_QUEUE

2017-11-10 Thread Liron Himi
Hi Petri,

See comments inline

Liron

-Original Message-
From: Savolainen, Petri (Nokia - FI/Espoo) [mailto:petri.savolai...@nokia.com] 
Sent: Friday, November 10, 2017 13:13
To: Liron Himi ; Bala Manoharan 
Cc: lng-odp@lists.linaro.org
Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in ODP_PKTIN_MODE_QUEUE

odp_pktin_event_queue() is *not* used when classifier is enabled.

odp_queue_deq(q)
  1) if q has events, return an event
  2) if q does not have events, poll packet input
[L.H.] how do I know which is the packet input?
Maybe it is expected to set the ' dequeue_multi' of the queue once it's cos was 
somehow assigned to PKTIO. If so, does it means a queue can only be attached to 
one PKTIO?
 * packet input poll finds a packet
 * classify the packet
 * enqueue the packet into an event queue
 * some later odp_queue_deq() call will find the packet from the queue (not 
necessary q, but the destination queue of the CoS)

-Petri


> -Original Message-
> From: Liron Himi [mailto:lir...@marvell.com]
> Sent: Friday, November 10, 2017 12:23 PM
> To: Bala Manoharan ; Savolainen, Petri 
> (Nokia -
> FI/Espoo) 
> Cc: lng-odp@lists.linaro.org; Liron Himi 
> Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in 
> ODP_PKTIN_MODE_QUEUE
> 
> Hi,
> 
> I understand what you are saying, but I don't understand (probably I 
> miss something here) how classifier is working in PKTIO in a 
> ODP_PKTIN_MODE_QUEUE mode.
> Application create its own queues, associate them to the cos and 
> connect them to the classifier.
> In order to receive packets, application will call ' odp_queue_deq()'. 
> But how the packets will be enqueued to this queue?
> Who will call ' odp_pktin_recv' to receive the packets, as in the 
> schedule mode case?
> 
> Consider the following scenario and let me know if it is acceptable:
> Application wants to configure classifier but doesn't want to use the 
> odp- schedule. So,
> - PKTIO is configure with ' ODP_PKTIN_MODE_QUEUE' mode and classifier 
> enable.
> - application will call ' odp_pktin_event_queue' to get all pktio's 
> event queues.
> - application will associate those queues in the desired cos and 
> configure the classifier with them.
> - application will call ' odp_queue_deq()' and as a result the '
> odp_pktin_recv' will be triggered (as it is a PKTIO's event queue).
>   Implementation should not set the 'dst_queue' in this mode and as a 
> result the packet will be return to originated queue.
> 
> Liron
> 
> -Original Message-
> From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> Sent: Friday, November 10, 2017 11:27
> To: Liron Himi 
> Cc: lng-odp@lists.linaro.org
> Subject: Re: [EXT] Re: [lng-odp] classifier with pktio in 
> ODP_PKTIN_MODE_QUEUE
> 
> Comments inline...
> 
> On 10 November 2017 at 12:01, Liron Himi  wrote:
> > Hi Bala,
> >
> > According to the documentation, classifier can be operate with
> PKTIN_QUEUE_MODE.
> > /** Enable classifier
> >   *
> >   * * 0: Classifier is disabled (default)
> >   * * 1: Classifier is enabled. Use classifier to direct
> incoming
> >   *  packets into pktin event queues. Classifier can be
> enabled
> >   *  only in ODP_PKTIN_MODE_SCHED and ODP_PKTIN_MODE_QUEUE
> modes.
> >   *  Both classifier and hashing cannot be enabled
> simultaneously
> >   *  ('hash_enable' must be 0). */
> > odp_bool_t classifier_enable;
> >
> > So, Is there a mistake in the documentation or this combination 
> > should
> be supported?
> 
> odp_pktin_event_queue() can only be used when hashing is enabled since 
> when you connect more than one queue to pktio you need some mechanism 
> to spread the traffic. This configuration is given using 
> odp_pktin_hash_proto_t which is valid only when hashing is enabled.
> 
> Since classifier and hashing are orthogonal you cannot use 
> classification and get packets using event queues configured using 
> odp_pktin_event_queue().
> Packets delivered after classification can be received by application 
> either using odp_queue_deq() or odp_schedule() function depending upon 
> the dst_queue configured with CoS.
> 
> Regards,
> Bala
> 
> >
> > Liron
> >
> > -Original Message-
> > From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> > Sent: Friday, November 10, 2017 07:18
> > To: Liron Himi 
> > Cc: lng-odp@lists.linaro.org
> > Subject: [EXT] Re: [lng-odp] classifier with pktio in 
> > ODP_PKTIN_MODE_QUEUE
> >
> > External Email
> >
> > 
> > --
> > Hi,
> >
> > Both these modes cannot co-exist.
> >
> > There is a parameter 'classifier_enable' and 'hash_enable' as part 
> > of
> odp_pktin_queue_param_t which is used to identify whether classifier 
> or hashing is enabled for a particular pktio interface.
> > Both classifier and hash configuration are orthogonal and only one 
> > of
> the two can be enabled at an

Re: [lng-odp] [EXT] Re: classifier with pktio in ODP_PKTIN_MODE_QUEUE

2017-11-10 Thread Liron Himi
Hi,

See comments inline

Liron
-Original Message-
From: Bala Manoharan [mailto:bala.manoha...@linaro.org] 
Sent: Friday, November 10, 2017 13:07
To: Liron Himi 
Cc: Savolainen, Petri (Nokia - FI/Espoo) ; 
lng-odp@lists.linaro.org
Subject: Re: [EXT] Re: [lng-odp] classifier with pktio in ODP_PKTIN_MODE_QUEUE

On 10 November 2017 at 15:52, Liron Himi  wrote:
> Hi,
>
> I understand what you are saying, but I don't understand (probably I 
> miss something here) how classifier is working in PKTIO in a 
> ODP_PKTIN_MODE_QUEUE mode.
> Application create its own queues, associate them to the cos and connect them 
> to the classifier.
> In order to receive packets, application will call ' odp_queue_deq()'. But 
> how the packets will be enqueued to this queue?
> Who will call ' odp_pktin_recv' to receive the packets, as in the schedule 
> mode case?

The classifier is efficient only when the platform has an HW classifier engine 
(using either a BCAM or TCAM). So when a platform has HW classifier support the 
packet is classified by the HW classification engine and is enqueued into the 
queue belonging to different CoS by the HW based on the classification rule.

The packets are received by the application by either calling
odp_queue_deq() or odp_schedule() depending upon the queue type either POLL or 
SCHEDULE which was linked to the CoS. odp_pktin_recv() function is only called 
for "odp_pktin_queue_t" type queues and this function odp_pktin_recv() is not 
called when classifier is enabled.

>
> Consider the following scenario and let me know if it is acceptable:
> Application wants to configure classifier but doesn't want to use the 
> odp-schedule. So,
> - PKTIO is configure with ' ODP_PKTIN_MODE_QUEUE' mode and classifier enable.
> - application will call ' odp_pktin_event_queue' to get all pktio's event 
> queues.
> - application will associate those queues in the desired cos and configure 
> the classifier with them.
> - application will call ' odp_queue_deq()' and as a result the ' 
> odp_pktin_recv' will be triggered (as it is a PKTIO's event queue).
> Implementation should not set the 'dst_queue' in this mode and as a 
> result the packet will be return to originated queue.

The following example will have to be configured as follows Application wants 
to configure classifier but doesn't want to use odp-schedule
 - PKTIO is configured with "classifier_enable" set
- The application creates odp_queue_t of type POLL and links them as 
'dst_queue' to CoS Lets say CoS1.
- Application configures CoS to pktio based on classification rules - eg create 
a CoS1 with DST IP addr 10.10.x.x and link to queue1.
- When the packet is received by HW classification engine the engine will 
classify the packets and deliver to respective CoS and their associated 
dst_queues.
[L.H.] how this stage is triggered in this case? i.e. which component is 
calling the receive function of the PKTIO?
I don't see in the linux-generic code how this happened.
Maybe it is expected to set the ' dequeue_multi' of the queue once it's cos was 
somehow assigned to PKTIO. If so, does it means a queue can only be attached to 
one PKTIO?
- Since the application knows the queues which it has created and linked to 
CoS, the application will have to call 'odp_queue_deq()' on the odp_queue_t 
which was created by the application to receive the packets from different CoS.
- Based on the above configuration Lets s the pktio receives a packet with DST 
ip addr 10.10.x.x it will be delivered to queue1 (CoS1) and the application 
will have to call odp_queue_deq(queue1) to receive this packet.

Regards,
Bala

>
> Liron
>
> -Original Message-
> From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> Sent: Friday, November 10, 2017 11:27
> To: Liron Himi 
> Cc: lng-odp@lists.linaro.org
> Subject: Re: [EXT] Re: [lng-odp] classifier with pktio in 
> ODP_PKTIN_MODE_QUEUE
>
> Comments inline...
>
> On 10 November 2017 at 12:01, Liron Himi  wrote:
>> Hi Bala,
>>
>> According to the documentation, classifier can be operate with 
>> PKTIN_QUEUE_MODE.
>> /** Enable classifier
>>   *
>>   * * 0: Classifier is disabled (default)
>>   * * 1: Classifier is enabled. Use classifier to direct incoming
>>   *  packets into pktin event queues. Classifier can be enabled
>>   *  only in ODP_PKTIN_MODE_SCHED and ODP_PKTIN_MODE_QUEUE modes.
>>   *  Both classifier and hashing cannot be enabled simultaneously
>>   *  ('hash_enable' must be 0). */
>> odp_bool_t classifier_enable;
>>
>> So, Is there a mistake in the documentation or this combination should be 
>> supported?
>
> odp_pktin_event_queue() can only be used when hashing is enabled since when 
> you connect more than one queue to pktio you need some mechanism to spread 
> the traffic. This configuration is given using odp_pktin_hash_proto_t which 
> is valid only when hashing is enabled.
>
> Since classifier and

Re: [lng-odp] [EXT] Re: classifier with pktio in ODP_PKTIN_MODE_QUEUE

2017-11-10 Thread Savolainen, Petri (Nokia - FI/Espoo)
To mix things, api-next introduces queue hashing *within* a CoS. But also there 
you use odp_cls_cos_queues() to get the implementation created queue handles, 
not odp_pktin_event_queue().

-Petri


> -Original Message-
> From: Savolainen, Petri (Nokia - FI/Espoo)
> Sent: Friday, November 10, 2017 1:13 PM
> To: 'Liron Himi' ; Bala Manoharan
> 
> Cc: lng-odp@lists.linaro.org
> Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in
> ODP_PKTIN_MODE_QUEUE
> 
> odp_pktin_event_queue() is *not* used when classifier is enabled.
> 
> odp_queue_deq(q)
>   1) if q has events, return an event
>   2) if q does not have events, poll packet input
>  * packet input poll finds a packet
>  * classify the packet
>  * enqueue the packet into an event queue
>  * some later odp_queue_deq() call will find the packet from the queue
> (not necessary q, but the destination queue of the CoS)
> 
> -Petri
> 
> 
> > -Original Message-
> > From: Liron Himi [mailto:lir...@marvell.com]
> > Sent: Friday, November 10, 2017 12:23 PM
> > To: Bala Manoharan ; Savolainen, Petri (Nokia
> -
> > FI/Espoo) 
> > Cc: lng-odp@lists.linaro.org; Liron Himi 
> > Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in
> > ODP_PKTIN_MODE_QUEUE
> >
> > Hi,
> >
> > I understand what you are saying, but I don't understand (probably I
> miss
> > something here) how classifier is working in PKTIO in a
> > ODP_PKTIN_MODE_QUEUE mode.
> > Application create its own queues, associate them to the cos and connect
> > them to the classifier.
> > In order to receive packets, application will call ' odp_queue_deq()'.
> But
> > how the packets will be enqueued to this queue?
> > Who will call ' odp_pktin_recv' to receive the packets, as in the
> schedule
> > mode case?
> >
> > Consider the following scenario and let me know if it is acceptable:
> > Application wants to configure classifier but doesn't want to use the
> odp-
> > schedule. So,
> > - PKTIO is configure with ' ODP_PKTIN_MODE_QUEUE' mode and classifier
> > enable.
> > - application will call ' odp_pktin_event_queue' to get all pktio's
> event
> > queues.
> > - application will associate those queues in the desired cos and
> configure
> > the classifier with them.
> > - application will call ' odp_queue_deq()' and as a result the '
> > odp_pktin_recv' will be triggered (as it is a PKTIO's event queue).
> > Implementation should not set the 'dst_queue' in this mode and
> > as a result the packet will be return to originated queue.
> >
> > Liron
> >
> > -Original Message-
> > From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> > Sent: Friday, November 10, 2017 11:27
> > To: Liron Himi 
> > Cc: lng-odp@lists.linaro.org
> > Subject: Re: [EXT] Re: [lng-odp] classifier with pktio in
> > ODP_PKTIN_MODE_QUEUE
> >
> > Comments inline...
> >
> > On 10 November 2017 at 12:01, Liron Himi  wrote:
> > > Hi Bala,
> > >
> > > According to the documentation, classifier can be operate with
> > PKTIN_QUEUE_MODE.
> > > /** Enable classifier
> > >   *
> > >   * * 0: Classifier is disabled (default)
> > >   * * 1: Classifier is enabled. Use classifier to direct
> > incoming
> > >   *  packets into pktin event queues. Classifier can be
> > enabled
> > >   *  only in ODP_PKTIN_MODE_SCHED and ODP_PKTIN_MODE_QUEUE
> > modes.
> > >   *  Both classifier and hashing cannot be enabled
> > simultaneously
> > >   *  ('hash_enable' must be 0). */
> > > odp_bool_t classifier_enable;
> > >
> > > So, Is there a mistake in the documentation or this combination should
> > be supported?
> >
> > odp_pktin_event_queue() can only be used when hashing is enabled since
> > when you connect more than one queue to pktio you need some mechanism to
> > spread the traffic. This configuration is given using
> > odp_pktin_hash_proto_t which is valid only when hashing is enabled.
> >
> > Since classifier and hashing are orthogonal you cannot use
> classification
> > and get packets using event queues configured using
> > odp_pktin_event_queue().
> > Packets delivered after classification can be received by application
> > either using odp_queue_deq() or odp_schedule() function depending upon
> the
> > dst_queue configured with CoS.
> >
> > Regards,
> > Bala
> >
> > >
> > > Liron
> > >
> > > -Original Message-
> > > From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> > > Sent: Friday, November 10, 2017 07:18
> > > To: Liron Himi 
> > > Cc: lng-odp@lists.linaro.org
> > > Subject: [EXT] Re: [lng-odp] classifier with pktio in
> > > ODP_PKTIN_MODE_QUEUE
> > >
> > > External Email
> > >
> > > --
> > > Hi,
> > >
> > > Both these modes cannot co-exist.
> > >
> > > There is a parameter 'classifier_enable' and 'hash_enable' as part of
> > odp_pktin_queue_param_t which is used to identify whether classifier or
> > hashing is enabled for a particular

Re: [lng-odp] [EXT] Re: classifier with pktio in ODP_PKTIN_MODE_QUEUE

2017-11-10 Thread Savolainen, Petri (Nokia - FI/Espoo)
odp_pktin_event_queue() is *not* used when classifier is enabled.

odp_queue_deq(q)
  1) if q has events, return an event
  2) if q does not have events, poll packet input
 * packet input poll finds a packet
 * classify the packet
 * enqueue the packet into an event queue
 * some later odp_queue_deq() call will find the packet from the queue (not 
necessary q, but the destination queue of the CoS)

-Petri


> -Original Message-
> From: Liron Himi [mailto:lir...@marvell.com]
> Sent: Friday, November 10, 2017 12:23 PM
> To: Bala Manoharan ; Savolainen, Petri (Nokia -
> FI/Espoo) 
> Cc: lng-odp@lists.linaro.org; Liron Himi 
> Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in
> ODP_PKTIN_MODE_QUEUE
> 
> Hi,
> 
> I understand what you are saying, but I don't understand (probably I miss
> something here) how classifier is working in PKTIO in a
> ODP_PKTIN_MODE_QUEUE mode.
> Application create its own queues, associate them to the cos and connect
> them to the classifier.
> In order to receive packets, application will call ' odp_queue_deq()'. But
> how the packets will be enqueued to this queue?
> Who will call ' odp_pktin_recv' to receive the packets, as in the schedule
> mode case?
> 
> Consider the following scenario and let me know if it is acceptable:
> Application wants to configure classifier but doesn't want to use the odp-
> schedule. So,
> - PKTIO is configure with ' ODP_PKTIN_MODE_QUEUE' mode and classifier
> enable.
> - application will call ' odp_pktin_event_queue' to get all pktio's event
> queues.
> - application will associate those queues in the desired cos and configure
> the classifier with them.
> - application will call ' odp_queue_deq()' and as a result the '
> odp_pktin_recv' will be triggered (as it is a PKTIO's event queue).
>   Implementation should not set the 'dst_queue' in this mode and
> as a result the packet will be return to originated queue.
> 
> Liron
> 
> -Original Message-
> From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> Sent: Friday, November 10, 2017 11:27
> To: Liron Himi 
> Cc: lng-odp@lists.linaro.org
> Subject: Re: [EXT] Re: [lng-odp] classifier with pktio in
> ODP_PKTIN_MODE_QUEUE
> 
> Comments inline...
> 
> On 10 November 2017 at 12:01, Liron Himi  wrote:
> > Hi Bala,
> >
> > According to the documentation, classifier can be operate with
> PKTIN_QUEUE_MODE.
> > /** Enable classifier
> >   *
> >   * * 0: Classifier is disabled (default)
> >   * * 1: Classifier is enabled. Use classifier to direct
> incoming
> >   *  packets into pktin event queues. Classifier can be
> enabled
> >   *  only in ODP_PKTIN_MODE_SCHED and ODP_PKTIN_MODE_QUEUE
> modes.
> >   *  Both classifier and hashing cannot be enabled
> simultaneously
> >   *  ('hash_enable' must be 0). */
> > odp_bool_t classifier_enable;
> >
> > So, Is there a mistake in the documentation or this combination should
> be supported?
> 
> odp_pktin_event_queue() can only be used when hashing is enabled since
> when you connect more than one queue to pktio you need some mechanism to
> spread the traffic. This configuration is given using
> odp_pktin_hash_proto_t which is valid only when hashing is enabled.
> 
> Since classifier and hashing are orthogonal you cannot use classification
> and get packets using event queues configured using
> odp_pktin_event_queue().
> Packets delivered after classification can be received by application
> either using odp_queue_deq() or odp_schedule() function depending upon the
> dst_queue configured with CoS.
> 
> Regards,
> Bala
> 
> >
> > Liron
> >
> > -Original Message-
> > From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> > Sent: Friday, November 10, 2017 07:18
> > To: Liron Himi 
> > Cc: lng-odp@lists.linaro.org
> > Subject: [EXT] Re: [lng-odp] classifier with pktio in
> > ODP_PKTIN_MODE_QUEUE
> >
> > External Email
> >
> > --
> > Hi,
> >
> > Both these modes cannot co-exist.
> >
> > There is a parameter 'classifier_enable' and 'hash_enable' as part of
> odp_pktin_queue_param_t which is used to identify whether classifier or
> hashing is enabled for a particular pktio interface.
> > Both classifier and hash configuration are orthogonal and only one of
> the two can be enabled at any time. When you configure classification on
> the pktio interface then the packets will be routed only through
> classifier 'dst_queue' and not through event queues configured with the
> pktio interface and vice versa for 'hash_enable'.
> >
> > odp_pktin_event_queue() API is useful only for platforms which do not
> support classifier system. This is mainly targetted for HWs which only
> have RSS configured on the pktio and does not support flow-based
> classification. The same is documented in odp_pktin_queue_param_t
> structure pls check the documentation and let us know if you find

Re: [lng-odp] [EXT] Re: classifier with pktio in ODP_PKTIN_MODE_QUEUE

2017-11-10 Thread Bala Manoharan
On 10 November 2017 at 15:52, Liron Himi  wrote:
> Hi,
>
> I understand what you are saying, but I don't understand (probably I miss 
> something here) how classifier is working in PKTIO in a
> ODP_PKTIN_MODE_QUEUE mode.
> Application create its own queues, associate them to the cos and connect them 
> to the classifier.
> In order to receive packets, application will call ' odp_queue_deq()'. But 
> how the packets will be enqueued to this queue?
> Who will call ' odp_pktin_recv' to receive the packets, as in the schedule 
> mode case?

The classifier is efficient only when the platform has an HW
classifier engine (using either a BCAM or TCAM). So when a platform
has HW classifier support the packet is classified by the HW
classification engine and is enqueued into the queue belonging to
different CoS by the HW based on the classification rule.

The packets are received by the application by either calling
odp_queue_deq() or odp_schedule() depending upon the queue type either
POLL or SCHEDULE which was linked to the CoS. odp_pktin_recv()
function is only called for "odp_pktin_queue_t" type queues and this
function odp_pktin_recv() is not called when classifier is enabled.

>
> Consider the following scenario and let me know if it is acceptable:
> Application wants to configure classifier but doesn't want to use the 
> odp-schedule. So,
> - PKTIO is configure with ' ODP_PKTIN_MODE_QUEUE' mode and classifier enable.
> - application will call ' odp_pktin_event_queue' to get all pktio's event 
> queues.
> - application will associate those queues in the desired cos and configure 
> the classifier with them.
> - application will call ' odp_queue_deq()' and as a result the ' 
> odp_pktin_recv' will be triggered (as it is a PKTIO's event queue).
> Implementation should not set the 'dst_queue' in this mode and as a 
> result the packet will be return to originated queue.

The following example will have to be configured as follows
Application wants to configure classifier but doesn't want to use odp-schedule
 - PKTIO is configured with "classifier_enable" set
- The application creates odp_queue_t of type POLL and links them as
'dst_queue' to CoS Lets say CoS1.
- Application configures CoS to pktio based on classification rules -
eg create a CoS1 with DST IP addr 10.10.x.x and link to queue1.
- When the packet is received by HW classification engine the engine
will classify the packets and deliver to respective CoS and their
associated dst_queues.
- Since the application knows the queues which it has created and
linked to CoS, the application will have to call 'odp_queue_deq()' on
the odp_queue_t which was created by the application to receive the
packets from different CoS.
- Based on the above configuration Lets s the pktio receives a packet
with DST ip addr 10.10.x.x it will be delivered to queue1 (CoS1) and
the application will have to call odp_queue_deq(queue1) to receive
this packet.

Regards,
Bala

>
> Liron
>
> -Original Message-
> From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> Sent: Friday, November 10, 2017 11:27
> To: Liron Himi 
> Cc: lng-odp@lists.linaro.org
> Subject: Re: [EXT] Re: [lng-odp] classifier with pktio in ODP_PKTIN_MODE_QUEUE
>
> Comments inline...
>
> On 10 November 2017 at 12:01, Liron Himi  wrote:
>> Hi Bala,
>>
>> According to the documentation, classifier can be operate with 
>> PKTIN_QUEUE_MODE.
>> /** Enable classifier
>>   *
>>   * * 0: Classifier is disabled (default)
>>   * * 1: Classifier is enabled. Use classifier to direct incoming
>>   *  packets into pktin event queues. Classifier can be enabled
>>   *  only in ODP_PKTIN_MODE_SCHED and ODP_PKTIN_MODE_QUEUE modes.
>>   *  Both classifier and hashing cannot be enabled simultaneously
>>   *  ('hash_enable' must be 0). */
>> odp_bool_t classifier_enable;
>>
>> So, Is there a mistake in the documentation or this combination should be 
>> supported?
>
> odp_pktin_event_queue() can only be used when hashing is enabled since when 
> you connect more than one queue to pktio you need some mechanism to spread 
> the traffic. This configuration is given using odp_pktin_hash_proto_t which 
> is valid only when hashing is enabled.
>
> Since classifier and hashing are orthogonal you cannot use classification and 
> get packets using event queues configured using odp_pktin_event_queue().
> Packets delivered after classification can be received by application either 
> using odp_queue_deq() or odp_schedule() function depending upon the dst_queue 
> configured with CoS.
>
> Regards,
> Bala
>
>>
>> Liron
>>
>> -Original Message-
>> From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
>> Sent: Friday, November 10, 2017 07:18
>> To: Liron Himi 
>> Cc: lng-odp@lists.linaro.org
>> Subject: [EXT] Re: [lng-odp] classifier with pktio in
>> ODP_PKTIN_MODE_QUEUE
>>
>> External Email
>>
>> -

[lng-odp] [Linaro/odp] dd3179: test: preventing odp.conf loading for tests

2017-11-10 Thread GitHub
  Branch: refs/heads/next
  Home:   https://github.com/Linaro/odp
  Commit: dd31792d10772c3e41519fc0b6d68cf13b0fe9d4
  
https://github.com/Linaro/odp/commit/dd31792d10772c3e41519fc0b6d68cf13b0fe9d4
  Author: Christophe Milard 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M test/Makefile.inc

  Log Message:
  ---
  test: preventing odp.conf loading for tests

The tests should not be affected by any system or user ODP configuration
file. The ODP_SYSCONFIG_FILE environment variables is therefore set
to "none" in TESTS_ENVIRONMENT.
Tests which need specific a configuration file will have to overwrite
this setting.
Note that tests ran manually (not using make check) may be affected
by configuration files. Setting ODP_SYSCONFIG_FILE to an appropriate value
(possibly "none") may be required.

Signed-off-by: Christophe Milard 
Reviewed-and-tested-by: Yi He 
Signed-off-by: Maxim Uvarov 


  Commit: bae53291795e9c19cbfde9c0d0e11a19d9870623
  
https://github.com/Linaro/odp/commit/bae53291795e9c19cbfde9c0d0e11a19d9870623
  Author: Petri Savolainen 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/arch/default/api/abi/event.h

  Log Message:
  ---
  abi: event: add ODP_EVENT_IPSEC_RESULT

Update ABI spec with the new IPSEC event type.

Signed-off-by: Petri Savolainen 
Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Dmitry Eremin-Solenikov 
Signed-off-by: Maxim Uvarov 


  Commit: b6b667b1e95635a6ba77a19078d7d28013bcde1d
  
https://github.com/Linaro/odp/commit/b6b667b1e95635a6ba77a19078d7d28013bcde1d
  Author: Bill Fischofer 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M doc/users-guide/users-guide.adoc

  Log Message:
  ---
  doc: userguide: add odp_init_global() documentation for unused features

Update User Guide startup section to include current parameters for
odp_init_global() and odp_init_local() as well as optimization hints for
unused features.

Signed-off-by: Bill Fischofer 
Reviewed-by: Petri Savolainen 
Signed-off-by: Maxim Uvarov 


  Commit: f972ef61a9693b7895cb7f85084c1c53c3b13131
  
https://github.com/Linaro/odp/commit/f972ef61a9693b7895cb7f85084c1c53c3b13131
  Author: Brian Brooks 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M test/performance/odp_pktio_ordered.c

  Log Message:
  ---
  test: odp_pktio_ordered: add queue size

Signed-off-by: Brian Brooks 
Reviewed-and-tested-by: Yi He 
Signed-off-by: Maxim Uvarov 


  Commit: c4a8f43ff08b954d14857c5a59544f8d914205e3
  
https://github.com/Linaro/odp/commit/c4a8f43ff08b954d14857c5a59544f8d914205e3
  Author: Matias Elo 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/api/spec/system_info.h

  Log Message:
  ---
  api: system_info: add function for fetching all supported huge page sizes

A system may simultaneously support multiple huge page sizes. Add a new API
function odp_sys_huge_page_size_all() which returns all supported page
sizes. odp_sys_huge_page_size() stays unmodified to maintain backward
compatibility.

Signed-off-by: Matias Elo 
Reviewed-and-tested-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 43d7f57b9f9f24526330c51fda8554d52414b82f
  
https://github.com/Linaro/odp/commit/43d7f57b9f9f24526330c51fda8554d52414b82f
  Author: Matias Elo 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M platform/linux-generic/odp_system_info.c

  Log Message:
  ---
  linux-gen: system_info: implement odp_sys_huge_page_size_all()

Directory /sys/kernel/mm/hugepages contains subdirectories for all huge
page sizes supported by the running kernel. Loop through the contents of
this directory to find the supported huge page sizes.

Signed-off-by: Matias Elo 
Reviewed-and-tested-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 3d6cf1de61e0b5c846317b3ffcbd0cfd07531b90
  
https://github.com/Linaro/odp/commit/3d6cf1de61e0b5c846317b3ffcbd0cfd07531b90
  Author: Matias Elo 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M test/validation/api/system/system.c
M test/validation/api/system/system.h

  Log Message:
  ---
  validation: system_info: add test for odp_sys_huge_page_size_all()

Signed-off-by: Matias Elo 
Reviewed-and-tested-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 5f095cc66bc3fcafe8f44ed7348ef127f40c9026
  
https://github.com/Linaro/odp/commit/5f095cc66bc3fcafe8f44ed7348ef127f40c9026
  Author: Balasubramanian Manoharan 
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
M include/odp/api/spec/packet_io.h
M platform/linux-generic/odp_packet_io.c

  Log Message:
  ---
  api: packetio: deprecate redundant loop_supported field in capability

removes redundant loop_supported boolean in odp_pktio_capability_t
Fixes https://bugs.linaro.org/show_bug.cgi?id=2861

Signed-off-by: Balasubramanian Manoharan 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: c8f250

Re: [lng-odp] [PATCH v1] DPDK pktio fixes

2017-11-10 Thread Github ODP bot
Matias Elo(matiaselo) replied on github web page:

platform/linux-generic/pktio/dpdk.c
line 70
@@ -1372,10 +1382,10 @@ static int dpdk_recv(pktio_entry_t *pktio_entry, int 
index,
if (!pkt_dpdk->lockless_rx)
odp_ticketlock_lock(&pkt_dpdk->rx_lock[index]);
/**
-* ixgbe_pmd has a minimum supported RX burst size ('min_rx_burst'). If
-* 'num' < 'min_rx_burst', 'min_rx_burst' is used as rte_eth_rx_burst()
-* argument and the possibly received extra packets are cached for the
-* next dpdk_recv_queue() call to use.
+* ixgbe and i40e drivers have a minimum supported RX burst size


Comment:
@nagarahalli I don't see a new capability parameter being very useful as these 
two dpdk drivers are likely the only devices which would use it. At least we 
haven't come across any other network devices which have this kind of 
limitation.

I ran a quick test and the two additional if statements caused by rx caching 
have a minuscule  performance impact.


> nagarahalli wrote
> @matiaselo Agree on the simple applications. But for real applications or for 
> performance benchmarking, this adds additional cycles. If this is made as 
> part of capability, application can decide the burst size upfront.


>> Matias Elo(matiaselo) wrote:
>> @lumag That would be the best solution but I don't see it happening anytime 
>> soon. The number of rx queues returned by rte_eth_dev_info_get() is in 
>> principle correct. Here the limiting factor is RSS capability and as far as 
>> I can see there is no way to query this information.


>>> Matias Elo(matiaselo) wrote:
>>> I'm not sure I got your point but anyway dev_info is type 'struct 
>>> rte_eth_dev_info' and comes from dpdk, so nothing can be added there.
>>> 
>>> As @lumag noted this fix is required because of a dpdk defect. With ixgbe 
>>> drivers rte_eth_dev_info_get() returns a max_rx_queues value which is not 
>>> valid (at least when using RSS). This is the only driver a have observer 
>>> this issue with.
>>> 
>>> The number 16 is explained in the comment line (1139) just above.


 Matias Elo(matiaselo) wrote:
 @Bill-Fischofer-Linaro Yes, the application has to request at least 
 'min_rx_burst' packets but it may receive less.


> Matias Elo(matiaselo) wrote:
> @nagarahalli This dpdk driver "feature" can be completely hidden from odp 
> applications (and it already is), so I don't support adding a new device 
> capability parameter. This would make writing simple applications more 
> complex. E.g. an application wouldn't be able to receive one packet at a 
> time anymore.


>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>> Again, shouldn't this sort of configuration be a field in the `dev_info` 
>> struct rather than having to be special-cased for each driver? Also, 
>> must 16 be a "magic number" here?


>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>> It looks like this should be fixed inside DPDK rather than here.


 Bill Fischofer(Bill-Fischofer-Linaro) wrote:
 Presumably these drivers have a way of flushing short bursts? If the 
 `min_rx_burst` is 4 and the other side sends an odd number of packets, 
 presumably the receiver application isn't left hanging forever waiting 
 for the rest of a burst that will never arrive?


> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
> Wouldn't it be simpler (and more extensible) to have `min_rx_burst` 
> as a field in the `dev_info` struct? 


>> nagarahalli wrote
>> 'min_rx_burst' should be added to the capability as it is a 
>> restriction from the device. The application should adjust the 'num' 
>> according to the capability it reads from the pkt I/O.


https://github.com/Linaro/odp/pull/287#discussion_r150198861
updated_at 2017-11-10 10:19:17


Re: [lng-odp] abi version support

2017-11-10 Thread Dmitry Eremin-Solenikov
10 нояб. 2017 г. 13:22 пользователь "Maxim Uvarov" 
написал:

I see that dpdk started to support abi versions in following ways

I.e. they describe in .map file which functions to expert and what ABI/API
level they are.
We can use something the same. But I'm not big fun of manually writing such
files. And maybe maintain different ABI versions in one source is not a
good idea. But we can try to generate .map and filter out all not "odp_"
functions, then specify this .map to linked.


This requires maintaining ABI compatibility between releases. The whole
point of versioning symbols is to be able to declare that this symbol
conforms to old ABI and this one is new. And yes, this requires manual
listings.


Re: [lng-odp] [EXT] Re: classifier with pktio in ODP_PKTIN_MODE_QUEUE

2017-11-10 Thread Liron Himi
Hi,

I understand what you are saying, but I don't understand (probably I miss 
something here) how classifier is working in PKTIO in a 
ODP_PKTIN_MODE_QUEUE mode.
Application create its own queues, associate them to the cos and connect them 
to the classifier.
In order to receive packets, application will call ' odp_queue_deq()'. But how 
the packets will be enqueued to this queue?
Who will call ' odp_pktin_recv' to receive the packets, as in the schedule mode 
case?

Consider the following scenario and let me know if it is acceptable:
Application wants to configure classifier but doesn't want to use the 
odp-schedule. So,
- PKTIO is configure with ' ODP_PKTIN_MODE_QUEUE' mode and classifier enable.
- application will call ' odp_pktin_event_queue' to get all pktio's event 
queues.
- application will associate those queues in the desired cos and configure the 
classifier with them.
- application will call ' odp_queue_deq()' and as a result the ' 
odp_pktin_recv' will be triggered (as it is a PKTIO's event queue).
Implementation should not set the 'dst_queue' in this mode and as a 
result the packet will be return to originated queue.

Liron

-Original Message-
From: Bala Manoharan [mailto:bala.manoha...@linaro.org] 
Sent: Friday, November 10, 2017 11:27
To: Liron Himi 
Cc: lng-odp@lists.linaro.org
Subject: Re: [EXT] Re: [lng-odp] classifier with pktio in ODP_PKTIN_MODE_QUEUE

Comments inline...

On 10 November 2017 at 12:01, Liron Himi  wrote:
> Hi Bala,
>
> According to the documentation, classifier can be operate with 
> PKTIN_QUEUE_MODE.
> /** Enable classifier
>   *
>   * * 0: Classifier is disabled (default)
>   * * 1: Classifier is enabled. Use classifier to direct incoming
>   *  packets into pktin event queues. Classifier can be enabled
>   *  only in ODP_PKTIN_MODE_SCHED and ODP_PKTIN_MODE_QUEUE modes.
>   *  Both classifier and hashing cannot be enabled simultaneously
>   *  ('hash_enable' must be 0). */
> odp_bool_t classifier_enable;
>
> So, Is there a mistake in the documentation or this combination should be 
> supported?

odp_pktin_event_queue() can only be used when hashing is enabled since when you 
connect more than one queue to pktio you need some mechanism to spread the 
traffic. This configuration is given using odp_pktin_hash_proto_t which is 
valid only when hashing is enabled.

Since classifier and hashing are orthogonal you cannot use classification and 
get packets using event queues configured using odp_pktin_event_queue().
Packets delivered after classification can be received by application either 
using odp_queue_deq() or odp_schedule() function depending upon the dst_queue 
configured with CoS.

Regards,
Bala

>
> Liron
>
> -Original Message-
> From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> Sent: Friday, November 10, 2017 07:18
> To: Liron Himi 
> Cc: lng-odp@lists.linaro.org
> Subject: [EXT] Re: [lng-odp] classifier with pktio in 
> ODP_PKTIN_MODE_QUEUE
>
> External Email
>
> --
> Hi,
>
> Both these modes cannot co-exist.
>
> There is a parameter 'classifier_enable' and 'hash_enable' as part of 
> odp_pktin_queue_param_t which is used to identify whether classifier or 
> hashing is enabled for a particular pktio interface.
> Both classifier and hash configuration are orthogonal and only one of the two 
> can be enabled at any time. When you configure classification on the pktio 
> interface then the packets will be routed only through classifier 'dst_queue' 
> and not through event queues configured with the pktio interface and vice 
> versa for 'hash_enable'.
>
> odp_pktin_event_queue() API is useful only for platforms which do not support 
> classifier system. This is mainly targetted for HWs which only have RSS 
> configured on the pktio and does not support flow-based classification. The 
> same is documented in odp_pktin_queue_param_t structure pls check the 
> documentation and let us know if you find any discrepancy.
>
> Hope this clarifies,
> Bala
>
>
> On 9 November 2017 at 23:04, Liron Himi  wrote:
>> Hi,
>>
>> I'm trying to understand how odp-classifier can work with PKTIO in 
>> ODP_PKTIN_MODE_QUEUE mode, as this combination is allow in the API.
>> When configuring PKTIO in ODP_PKTIN_MODE_QUEUE then application should call 
>> 'odp_pktin_event_queue' to retrieve the odp-queues.
>> When application create a cos, to be used for classification, does it needs 
>> to create new odp-queue or used the pktio's ones?
>> When application wants to receive packets from this PKTIO, it needs to call 
>> 'odp_queue_deq_multi' on one of the PKTIO's queues,right?
>> As a result of a received packet, the matched cos is being selected and it's 
>> queue is being set as the dst_queue of the packet.
>> Then the 'pktin_recv_buf' function will enqueuer this packet to the 
>> 'dst_queue' if it was s

[lng-odp] abi version support

2017-11-10 Thread Maxim Uvarov
I see that dpdk started to support abi versions in following ways:

DPDK_2.0 {
global:

rte_jobstats_context_finish;
rte_jobstats_context_init;
.
rte_jobstats_set_update_period_function;
rte_jobstats_start;

local: *;
};

DPDK_16.04 {
global:

rte_jobstats_abort;

} DPDK_2.0;

./dpdk/lib/librte_jobstats/Makefile:EXPORT_MAP := rte_jobstats_version.map
./dpdk/mk/rte.lib.mk:CPU_LDFLAGS += --version-script=$(SRCDIR)/$(EXPORT_MAP)

I.e. they describe in .map file which functions to expert and what ABI/API
level they are.
We can use something the same. But I'm not big fun of manually writing such
files. And maybe maintain different ABI versions in one source is not a
good idea. But we can try to generate .map and filter out all not "odp_"
functions, then specify this .map to linked.

Maxim.


[lng-odp] [PATCH 2.0 v6 0/1] linux-gen: buffer: remove burst metadata from odp_buffer_hdr_t

2017-11-10 Thread Github ODP bot
The total packet meta data size was 7 cache lines for Linux-generic.
With this change the size of the meta data is 4 cache lines for
Linux-generic.
Make scalable scheduler as the default scheduler.

github
/** Email created from pull request 266 (kevinwangsk:2.0-buffer-meta)
 ** https://github.com/Linaro/odp/pull/266
 ** Patch: https://github.com/Linaro/odp/pull/266.patch
 ** Base sha: 65419c16086369f86dea068e54ce492526fa4f41
 ** Merge commit sha: 193958fbcb3c29e7b4c5def01cf7988f232cedbe
 **/
/github

checkpatch.pl
total: 0 errors, 0 warnings, 0 checks, 63 lines checked


to_send-p-000.patch has no obvious style problems and is ready for submission.
/checkpatch.pl


[lng-odp] [PATCH 2.0 v6 1/1] linux-gen: buffer: remove burst metadata from odp_buffer_hdr_t

2017-11-10 Thread Github ODP bot
From: Kevin Wang 

The total packet meta data size was 7 cache lines for Linux-generic.
For scalable scheduler, the burst metadata is not required. So just
remove it for scalable scheduler. After the changes, the size of
the meta data is 4 cache lines for Linux-generic.

Signed-off-by: Kevin Wang 
Reviewed-by: Honnappa Nagarahalli 
Reviewed-by: Brian Brooks 
Reviewed-by: Yi He 
---
/** Email created from pull request 266 (kevinwangsk:2.0-buffer-meta)
 ** https://github.com/Linaro/odp/pull/266
 ** Patch: https://github.com/Linaro/odp/pull/266.patch
 ** Base sha: 65419c16086369f86dea068e54ce492526fa4f41
 ** Merge commit sha: 193958fbcb3c29e7b4c5def01cf7988f232cedbe
 **/
 platform/linux-generic/Makefile.am | 23 --
 .../linux-generic/include/odp_buffer_internal.h|  3 ++-
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/platform/linux-generic/Makefile.am 
b/platform/linux-generic/Makefile.am
index 3c5054958..56ef03c6f 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -261,16 +261,9 @@ __LIB__libodp_linux_la_SOURCES = \
   odp_pkt_queue.c \
   odp_queue_if.c \
   queue/subsystem.c \
-  queue/generic.c \
-  queue/scalable.c \
   odp_rwlock.c \
   odp_rwlock_recursive.c \
   odp_schedule_if.c \
-  schedule/generic.c \
-  schedule/iquery.c \
-  schedule/scalable.c \
-  schedule/scalable_ordered.c \
-  schedule/sp.c \
   schedule/subsystem.c \
   odp_shared_memory.c \
   odp_sorted_list.c \
@@ -359,19 +352,29 @@ endif
 pool/generic.lo: AM_CFLAGS += -DIM_ACTIVE_MODULE
 buffer/generic.lo: AM_CFLAGS += -DIM_ACTIVE_MODULE
 if ODP_SCHEDULE_SCALABLE
+__LIB__libodp_linux_la_SOURCES += schedule/scalable.c \
+ schedule/scalable_ordered.c
 schedule/scalable.lo: AM_CFLAGS += -DIM_ACTIVE_MODULE
 else
-schedule/generic.lo: AM_CFLAGS += -DIM_ACTIVE_MODULE
-endif
 if ODP_SCHEDULE_SP
+__LIB__libodp_linux_la_SOURCES += schedule/sp.c
 schedule/sp.lo: AM_CFLAGS += -DIM_ACTIVE_MODULE
-endif
+else
 if ODP_SCHEDULE_IQUERY
+__LIB__libodp_linux_la_SOURCES += schedule/iquery.c
 schedule/iquery.lo: AM_CFLAGS += -DIM_ACTIVE_MODULE
+else
+__LIB__libodp_linux_la_SOURCES += schedule/generic.c
+schedule/generic.lo: AM_CFLAGS += -DIM_ACTIVE_MODULE
+endif
 endif
+endif
+
 if ODP_SCHEDULE_SCALABLE
+__LIB__libodp_linux_la_SOURCES += queue/scalable.c
 queue/scalable.lo: AM_CFLAGS += -DIM_ACTIVE_MODULE
 else
+__LIB__libodp_linux_la_SOURCES += queue/generic.c
 queue/generic.lo: AM_CFLAGS += -DIM_ACTIVE_MODULE
 endif
 
diff --git a/platform/linux-generic/include/odp_buffer_internal.h 
b/platform/linux-generic/include/odp_buffer_internal.h
index 86f6208f2..514e24798 100644
--- a/platform/linux-generic/include/odp_buffer_internal.h
+++ b/platform/linux-generic/include/odp_buffer_internal.h
@@ -73,6 +73,7 @@ struct odp_buffer_hdr_t {
/* Segments */
seg_entry_t seg[CONFIG_PACKET_SEGS_PER_HDR];
 
+#ifndef ODP_SCHEDULE_SCALABLE
/* Burst counts */
uint8_t   burst_num;
uint8_t   burst_first;
@@ -82,7 +83,7 @@ struct odp_buffer_hdr_t {
 
/* Burst table */
struct odp_buffer_hdr_t *burst[BUFFER_BURST_SIZE];
-
+#endif
/* --- Mostly read only data --- */
 
/* User context pointer or u64 */



Re: [lng-odp] [EXT] Re: classifier with pktio in ODP_PKTIN_MODE_QUEUE

2017-11-10 Thread Bala Manoharan
Comments inline...

On 10 November 2017 at 12:01, Liron Himi  wrote:
> Hi Bala,
>
> According to the documentation, classifier can be operate with 
> PKTIN_QUEUE_MODE.
> /** Enable classifier
>   *
>   * * 0: Classifier is disabled (default)
>   * * 1: Classifier is enabled. Use classifier to direct incoming
>   *  packets into pktin event queues. Classifier can be enabled
>   *  only in ODP_PKTIN_MODE_SCHED and ODP_PKTIN_MODE_QUEUE modes.
>   *  Both classifier and hashing cannot be enabled simultaneously
>   *  ('hash_enable' must be 0). */
> odp_bool_t classifier_enable;
>
> So, Is there a mistake in the documentation or this combination should be 
> supported?

odp_pktin_event_queue() can only be used when hashing is enabled since
when you connect more than one queue to pktio you need some mechanism
to spread the traffic. This configuration is given using
odp_pktin_hash_proto_t which is valid only when hashing is enabled.

Since classifier and hashing are orthogonal you cannot use
classification and get packets using event queues configured using
odp_pktin_event_queue().
Packets delivered after classification can be received by application
either using odp_queue_deq() or odp_schedule() function depending upon
the dst_queue configured with CoS.

Regards,
Bala

>
> Liron
>
> -Original Message-
> From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> Sent: Friday, November 10, 2017 07:18
> To: Liron Himi 
> Cc: lng-odp@lists.linaro.org
> Subject: [EXT] Re: [lng-odp] classifier with pktio in ODP_PKTIN_MODE_QUEUE
>
> External Email
>
> --
> Hi,
>
> Both these modes cannot co-exist.
>
> There is a parameter 'classifier_enable' and 'hash_enable' as part of 
> odp_pktin_queue_param_t which is used to identify whether classifier or 
> hashing is enabled for a particular pktio interface.
> Both classifier and hash configuration are orthogonal and only one of the two 
> can be enabled at any time. When you configure classification on the pktio 
> interface then the packets will be routed only through classifier 'dst_queue' 
> and not through event queues configured with the pktio interface and vice 
> versa for 'hash_enable'.
>
> odp_pktin_event_queue() API is useful only for platforms which do not support 
> classifier system. This is mainly targetted for HWs which only have RSS 
> configured on the pktio and does not support flow-based classification. The 
> same is documented in odp_pktin_queue_param_t structure pls check the 
> documentation and let us know if you find any discrepancy.
>
> Hope this clarifies,
> Bala
>
>
> On 9 November 2017 at 23:04, Liron Himi  wrote:
>> Hi,
>>
>> I'm trying to understand how odp-classifier can work with PKTIO in 
>> ODP_PKTIN_MODE_QUEUE mode, as this combination is allow in the API.
>> When configuring PKTIO in ODP_PKTIN_MODE_QUEUE then application should call 
>> 'odp_pktin_event_queue' to retrieve the odp-queues.
>> When application create a cos, to be used for classification, does it needs 
>> to create new odp-queue or used the pktio's ones?
>> When application wants to receive packets from this PKTIO, it needs to call 
>> 'odp_queue_deq_multi' on one of the PKTIO's queues,right?
>> As a result of a received packet, the matched cos is being selected and it's 
>> queue is being set as the dst_queue of the packet.
>> Then the 'pktin_recv_buf' function will enqueuer this packet to the 
>> 'dst_queue' if it was set.
>> So finally the packet will be located at the cos's queue and not at
>> the PKTIO's queue and the application will get zero packets from 
>> 'odp_queue_deq_multi'.
>> So, either this mode isn't supported with classifier or if this mode is set 
>> then the 'dst_queue' shouldn't be set and the packets will be located at the 
>> PKTIO's queue.
>>
>> Regards,
>> Liron
>>


Re: [lng-odp] [EXT] Re: classifier with pktio in ODP_PKTIN_MODE_QUEUE

2017-11-10 Thread Savolainen, Petri (Nokia - FI/Espoo)
odp_pktin_event_queue() is used when ODP creates the event queues == when 
hashing is enabled. When  classifier is enabled, application itself creates 
event queues and links those to CoS. So, application knows which event queues 
to poll.

Classifier can be used with both types of event queues, but 
odp_pktin_event_queue() is not used in either case.


-Petri


> -Original Message-
> From: lng-odp [mailto:lng-odp-boun...@lists.linaro.org] On Behalf Of Liron
> Himi
> Sent: Friday, November 10, 2017 8:32 AM
> To: Bala Manoharan 
> Cc: lng-odp@lists.linaro.org
> Subject: Re: [lng-odp] [EXT] Re: classifier with pktio in
> ODP_PKTIN_MODE_QUEUE
> 
> Hi Bala,
> 
> According to the documentation, classifier can be operate with
> PKTIN_QUEUE_MODE.
>   /** Enable classifier
> *
> * * 0: Classifier is disabled (default)
> * * 1: Classifier is enabled. Use classifier to direct
> incoming
> *  packets into pktin event queues. Classifier can be
> enabled
> *  only in ODP_PKTIN_MODE_SCHED and ODP_PKTIN_MODE_QUEUE
> modes.
> *  Both classifier and hashing cannot be enabled
> simultaneously
> *  ('hash_enable' must be 0). */
>   odp_bool_t classifier_enable;
> 
> So, Is there a mistake in the documentation or this combination should be
> supported?
> 
> Liron
> 
> -Original Message-
> From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> Sent: Friday, November 10, 2017 07:18
> To: Liron Himi 
> Cc: lng-odp@lists.linaro.org
> Subject: [EXT] Re: [lng-odp] classifier with pktio in ODP_PKTIN_MODE_QUEUE
> 
> External Email
> 
> --
> Hi,
> 
> Both these modes cannot co-exist.
> 
> There is a parameter 'classifier_enable' and 'hash_enable' as part of
> odp_pktin_queue_param_t which is used to identify whether classifier or
> hashing is enabled for a particular pktio interface.
> Both classifier and hash configuration are orthogonal and only one of the
> two can be enabled at any time. When you configure classification on the
> pktio interface then the packets will be routed only through classifier
> 'dst_queue' and not through event queues configured with the pktio
> interface and vice versa for 'hash_enable'.
> 
> odp_pktin_event_queue() API is useful only for platforms which do not
> support classifier system. This is mainly targetted for HWs which only
> have RSS configured on the pktio and does not support flow-based
> classification. The same is documented in odp_pktin_queue_param_t
> structure pls check the documentation and let us know if you find any
> discrepancy.
> 
> Hope this clarifies,
> Bala
> 
> 
> On 9 November 2017 at 23:04, Liron Himi  wrote:
> > Hi,
> >
> > I'm trying to understand how odp-classifier can work with PKTIO in
> ODP_PKTIN_MODE_QUEUE mode, as this combination is allow in the API.
> > When configuring PKTIO in ODP_PKTIN_MODE_QUEUE then application should
> call 'odp_pktin_event_queue' to retrieve the odp-queues.
> > When application create a cos, to be used for classification, does it
> needs to create new odp-queue or used the pktio's ones?
> > When application wants to receive packets from this PKTIO, it needs to
> call 'odp_queue_deq_multi' on one of the PKTIO's queues,right?
> > As a result of a received packet, the matched cos is being selected and
> it's queue is being set as the dst_queue of the packet.
> > Then the 'pktin_recv_buf' function will enqueuer this packet to the
> 'dst_queue' if it was set.
> > So finally the packet will be located at the cos's queue and not at
> > the PKTIO's queue and the application will get zero packets from
> 'odp_queue_deq_multi'.
> > So, either this mode isn't supported with classifier or if this mode is
> set then the 'dst_queue' shouldn't be set and the packets will be located
> at the PKTIO's queue.
> >
> > Regards,
> > Liron
> >


Re: [lng-odp] issues with usage of mellanox 100G NICs with ODP & ODP-DPDK

2017-11-10 Thread gyanesh patra
I was trying without the dpdk and it was not working properly. I
guess i have to compile ODP with DPDK support to work with mellanox.
Thank you for the details.

P Gyanesh Kumar Patra

On Thu, Nov 9, 2017 at 12:47 PM, Elo, Matias (Nokia - FI/Espoo) <
matias@nokia.com> wrote:

> Hi Gyanesh,
>
> Pretty much the same steps should also work with odp linux-generic. The
> main difference is configure script. With linux-generic you use
> '--with-dpdk-path=' option and optionally
> --enable-dpdk-zero-copy flag. The supported dpdk  version is v17.08.
>
> -Matias
>
> > On 9 Nov 2017, at 10:34, gyanesh patra  wrote:
> >
> > Hi Maxim,
> > Thanks for the help. I managed to figure out the configuration error and
> it
> > works fine for "ODP-DPDK". The MLX5 pmd was not included properly.
> >
> > But regarding "ODP" repo (not odp-dpdk), do i need to follow any steps to
> > be able to use MLX ???
> >
> >
> > P Gyanesh Kumar Patra
> >
> > On Wed, Nov 8, 2017 at 7:56 PM, Maxim Uvarov 
> > wrote:
> >
> >> On 11/08/17 19:32, gyanesh patra wrote:
> >>> I am not sure what you mean. Can you please elaborate?
> >>>
> >>> As i mentioned before I am able to run dpdk examples. Hence the drivers
> >>> are available and working fine.
> >>> I configured ODP & ODP-DPDK with "LDFLAGS=-libverbs" and compiled to
> >>> work with mellanox. I followed the same while compiling dpdk too.
> >>>
> >>> Is there anything i am missing?
> >>>
> >>> P Gyanesh Kumar Patra
> >>
> >>
> >> in general if CONFIG_RTE_LIBRTE_MLX5_PMD=y was specified then it has to
> >> work. I think we did test only with ixgbe. But in general it's common
> code.
> >>
> >> "Unable to init any I/O type." means it it called all open for all pktio
> >> in list here:
> >> ./platform/linux-generic/pktio/io_ops.c
> >>
> >> and setup_pkt_dpdk() failed for some reason.
> >>
> >> I do not like allocations errors in your log.
> >>
> >> Try to compile ODP with --enable-debug-print --enable-debug it will make
> >> ODP_DBG() macro work and it will be visible why it does not opens pktio.
> >>
> >> Maxim
> >>
> >>
> >>>
> >>> On Wed, Nov 8, 2017 at 5:22 PM, Maxim Uvarov  >>> > wrote:
> >>>
> >>>is Mellanox pmd compiled in?
> >>>
> >>>Maxim.
> >>>
> >>>On 11/08/17 17:58, gyanesh patra wrote:
>  Hi,
>  I am trying to run ODP & ODP-DPDK examples on our server with
> >>>mellanox 100G
>  NICs. I am using the odp_l2fwd example. While running the example,
> >>>I am
>  facing some issues.
>  -> When I run "ODP" example using the if names given by kernel as
>  arguments, I am not getting enough throughput.(the value is very
> >> low)
>  -> And when I try "ODP-DPDK" example using port ID as "0,1", it
> >> can't
>  create pktio. Whereas I am able to run the examples from "DPDK"
>  repo with portID "0,1" for the same mellanox NICs. I tried running
> >>>with
>  "81:00.0,81:00.1" and also with if-names too without any success.
> >>>Adding
>  the whitelist using ODP_PLATFORM_PARAMS doesn't help either.
> 
>  Am I missing any steps to use mellanox NICs? OR is there a
> >>>different method
>  to specify the device details to create pktio?
>  I am providing the output of "odp_l2fwd" examples for ODP and
> >> ODP-DPDK
>  repository here.
> 
>  The NICs being used:
> 
>  :81:00.0 'MT27700 Family [ConnectX-4]' if=enp129s0f0
> >> drv=mlx5_core
>  unused=
>  :81:00.1 'MT27700 Family [ConnectX-4]' if=enp129s0f1
> >> drv=mlx5_core
>  unused=
> 
>  ODP l2fwd example run details:
>  --
>  root@ubuntu:/home/ubuntu/odp/test/performance# ./odp_l2fwd -i
>  enp129s0f0,enp129s0f1
>  HW time counter freq: 239886 
> >>><(239)%20999-9886> hz
> 
>  _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >> memory
>  _ishm.c:880:_odp_ishm_reserve():No huge pages, fall back to normal
> >>>pages.
>  check: /proc/sys/vm/nr_hugepages.
>  _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >> memory
>  _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >> memory
>  _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >> memory
>  PKTIO: initialized loop interface.
>  PKTIO: initialized pcap interface.
>  PKTIO: initialized ipc interface.
>  PKTIO: initialized socket mmap, use export
> >>>ODP_PKTIO_DISABLE_SOCKET_MMAP=1
>  to disable.
>  PKTIO: initialized socket mmsg,use export
> >>>ODP_PKTIO_DISABLE_SOCKET_MMSG=1
>  to disable.
>  _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >> memory
>  _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >> memory
>  _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >> memory
>  _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >> memory
> 
>  ODP system info
>  ---
> 

Re: [lng-odp] issues with usage of mellanox 100G NICs with ODP & ODP-DPDK

2017-11-10 Thread gyanesh patra
With my initial testing, ODP-DPDK is working perfectly with mellanox
drivers.
Thank you

P Gyanesh Kumar Patra

On Thu, Nov 9, 2017 at 2:18 PM, Maxim Uvarov 
wrote:

> Nice to see it working. I think we did not yet tested it with Mellanox
> drivers.
>
> For linux-generic refer to .travis.yaml or ./scripts/build-pktio-dpdk
> scripts. Also all required steps are in README.
>
> Maxim.
>
> On 11/09/17 14:47, Elo, Matias (Nokia - FI/Espoo) wrote:
> > Hi Gyanesh,
> >
> > Pretty much the same steps should also work with odp linux-generic. The
> main difference is configure script. With linux-generic you use
> '--with-dpdk-path=' option and optionally
> --enable-dpdk-zero-copy flag. The supported dpdk  version is v17.08.
> >
> > -Matias
> >
> >> On 9 Nov 2017, at 10:34, gyanesh patra 
> wrote:
> >>
> >> Hi Maxim,
> >> Thanks for the help. I managed to figure out the configuration error
> and it
> >> works fine for "ODP-DPDK". The MLX5 pmd was not included properly.
> >>
> >> But regarding "ODP" repo (not odp-dpdk), do i need to follow any steps
> to
> >> be able to use MLX ???
> >>
> >>
> >> P Gyanesh Kumar Patra
> >>
> >> On Wed, Nov 8, 2017 at 7:56 PM, Maxim Uvarov 
> >> wrote:
> >>
> >>> On 11/08/17 19:32, gyanesh patra wrote:
>  I am not sure what you mean. Can you please elaborate?
> 
>  As i mentioned before I am able to run dpdk examples. Hence the
> drivers
>  are available and working fine.
>  I configured ODP & ODP-DPDK with "LDFLAGS=-libverbs" and compiled to
>  work with mellanox. I followed the same while compiling dpdk too.
> 
>  Is there anything i am missing?
> 
>  P Gyanesh Kumar Patra
> >>>
> >>>
> >>> in general if CONFIG_RTE_LIBRTE_MLX5_PMD=y was specified then it has to
> >>> work. I think we did test only with ixgbe. But in general it's common
> code.
> >>>
> >>> "Unable to init any I/O type." means it it called all open for all
> pktio
> >>> in list here:
> >>> ./platform/linux-generic/pktio/io_ops.c
> >>>
> >>> and setup_pkt_dpdk() failed for some reason.
> >>>
> >>> I do not like allocations errors in your log.
> >>>
> >>> Try to compile ODP with --enable-debug-print --enable-debug it will
> make
> >>> ODP_DBG() macro work and it will be visible why it does not opens
> pktio.
> >>>
> >>> Maxim
> >>>
> >>>
> 
>  On Wed, Nov 8, 2017 at 5:22 PM, Maxim Uvarov   > wrote:
> 
> is Mellanox pmd compiled in?
> 
> Maxim.
> 
> On 11/08/17 17:58, gyanesh patra wrote:
> > Hi,
> > I am trying to run ODP & ODP-DPDK examples on our server with
> mellanox 100G
> > NICs. I am using the odp_l2fwd example. While running the example,
> I am
> > facing some issues.
> > -> When I run "ODP" example using the if names given by kernel as
> > arguments, I am not getting enough throughput.(the value is very
> >>> low)
> > -> And when I try "ODP-DPDK" example using port ID as "0,1", it
> >>> can't
> > create pktio. Whereas I am able to run the examples from "DPDK"
> > repo with portID "0,1" for the same mellanox NICs. I tried running
> with
> > "81:00.0,81:00.1" and also with if-names too without any success.
> Adding
> > the whitelist using ODP_PLATFORM_PARAMS doesn't help either.
> >
> > Am I missing any steps to use mellanox NICs? OR is there a
> different method
> > to specify the device details to create pktio?
> > I am providing the output of "odp_l2fwd" examples for ODP and
> >>> ODP-DPDK
> > repository here.
> >
> > The NICs being used:
> >
> > :81:00.0 'MT27700 Family [ConnectX-4]' if=enp129s0f0
> >>> drv=mlx5_core
> > unused=
> > :81:00.1 'MT27700 Family [ConnectX-4]' if=enp129s0f1
> >>> drv=mlx5_core
> > unused=
> >
> > ODP l2fwd example run details:
> > --
> > root@ubuntu:/home/ubuntu/odp/test/performance# ./odp_l2fwd -i
> > enp129s0f0,enp129s0f1
> > HW time counter freq: 239886 
> <(239)%20999-9886> hz
> >
> > _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >>> memory
> > _ishm.c:880:_odp_ishm_reserve():No huge pages, fall back to normal
> pages.
> > check: /proc/sys/vm/nr_hugepages.
> > _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >>> memory
> > _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >>> memory
> > _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >>> memory
> > PKTIO: initialized loop interface.
> > PKTIO: initialized pcap interface.
> > PKTIO: initialized ipc interface.
> > PKTIO: initialized socket mmap, use export
> ODP_PKTIO_DISABLE_SOCKET_MMAP=1
> > to disable.
> > PKTIO: initialized socket mmsg,use export
> ODP_PKTIO_DISABLE_SOCKET_MMSG=1
> > to disable.
> > _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
> >>>

Re: [lng-odp] issues with usage of mellanox 100G NICs with ODP & ODP-DPDK

2017-11-10 Thread gyanesh patra
This is good news. I was wondering if it was in the pipeline. Thank you

P Gyanesh Kumar Patra

On Thu, Nov 9, 2017 at 7:25 PM, Francois Ozog 
wrote:

> ODP2.0 should allow ODP to leverage directly libiverbs from a native ODP
> pktio without DPDK layer.
> Mellanox has created a userland framework based on libiverbs while we try
> to promote an extension of Mediated Device (vfio-mdev).
>
> FF
>
> On 9 November 2017 at 14:18, Maxim Uvarov  wrote:
>
>> Nice to see it working. I think we did not yet tested it with Mellanox
>> drivers.
>>
>> For linux-generic refer to .travis.yaml or ./scripts/build-pktio-dpdk
>> scripts. Also all required steps are in README.
>>
>> Maxim.
>>
>> On 11/09/17 14:47, Elo, Matias (Nokia - FI/Espoo) wrote:
>> > Hi Gyanesh,
>> >
>> > Pretty much the same steps should also work with odp linux-generic. The
>> main difference is configure script. With linux-generic you use
>> '--with-dpdk-path=' option and optionally
>> --enable-dpdk-zero-copy flag. The supported dpdk  version is v17.08.
>> >
>> > -Matias
>> >
>> >> On 9 Nov 2017, at 10:34, gyanesh patra 
>> wrote:
>> >>
>> >> Hi Maxim,
>> >> Thanks for the help. I managed to figure out the configuration error
>> and it
>> >> works fine for "ODP-DPDK". The MLX5 pmd was not included properly.
>> >>
>> >> But regarding "ODP" repo (not odp-dpdk), do i need to follow any steps
>> to
>> >> be able to use MLX ???
>> >>
>> >>
>> >> P Gyanesh Kumar Patra
>> >>
>> >> On Wed, Nov 8, 2017 at 7:56 PM, Maxim Uvarov 
>> >> wrote:
>> >>
>> >>> On 11/08/17 19:32, gyanesh patra wrote:
>>  I am not sure what you mean. Can you please elaborate?
>> 
>>  As i mentioned before I am able to run dpdk examples. Hence the
>> drivers
>>  are available and working fine.
>>  I configured ODP & ODP-DPDK with "LDFLAGS=-libverbs" and compiled to
>>  work with mellanox. I followed the same while compiling dpdk too.
>> 
>>  Is there anything i am missing?
>> 
>>  P Gyanesh Kumar Patra
>> >>>
>> >>>
>> >>> in general if CONFIG_RTE_LIBRTE_MLX5_PMD=y was specified then it has
>> to
>> >>> work. I think we did test only with ixgbe. But in general it's common
>> code.
>> >>>
>> >>> "Unable to init any I/O type." means it it called all open for all
>> pktio
>> >>> in list here:
>> >>> ./platform/linux-generic/pktio/io_ops.c
>> >>>
>> >>> and setup_pkt_dpdk() failed for some reason.
>> >>>
>> >>> I do not like allocations errors in your log.
>> >>>
>> >>> Try to compile ODP with --enable-debug-print --enable-debug it will
>> make
>> >>> ODP_DBG() macro work and it will be visible why it does not opens
>> pktio.
>> >>>
>> >>> Maxim
>> >>>
>> >>>
>> 
>>  On Wed, Nov 8, 2017 at 5:22 PM, Maxim Uvarov <
>> maxim.uva...@linaro.org
>>  > wrote:
>> 
>> is Mellanox pmd compiled in?
>> 
>> Maxim.
>> 
>> On 11/08/17 17:58, gyanesh patra wrote:
>> > Hi,
>> > I am trying to run ODP & ODP-DPDK examples on our server with
>> mellanox 100G
>> > NICs. I am using the odp_l2fwd example. While running the example,
>> I am
>> > facing some issues.
>> > -> When I run "ODP" example using the if names given by kernel as
>> > arguments, I am not getting enough throughput.(the value is very
>> >>> low)
>> > -> And when I try "ODP-DPDK" example using port ID as "0,1", it
>> >>> can't
>> > create pktio. Whereas I am able to run the examples from "DPDK"
>> > repo with portID "0,1" for the same mellanox NICs. I tried running
>> with
>> > "81:00.0,81:00.1" and also with if-names too without any success.
>> Adding
>> > the whitelist using ODP_PLATFORM_PARAMS doesn't help either.
>> >
>> > Am I missing any steps to use mellanox NICs? OR is there a
>> different method
>> > to specify the device details to create pktio?
>> > I am providing the output of "odp_l2fwd" examples for ODP and
>> >>> ODP-DPDK
>> > repository here.
>> >
>> > The NICs being used:
>> >
>> > :81:00.0 'MT27700 Family [ConnectX-4]' if=enp129s0f0
>> >>> drv=mlx5_core
>> > unused=
>> > :81:00.1 'MT27700 Family [ConnectX-4]' if=enp129s0f1
>> >>> drv=mlx5_core
>> > unused=
>> >
>> > ODP l2fwd example run details:
>> > --
>> > root@ubuntu:/home/ubuntu/odp/test/performance# ./odp_l2fwd -i
>> > enp129s0f0,enp129s0f1
>> > HW time counter freq: 239886 <(239)%20999-9886> > <(239)%20999-9886>>
>> <(239)%20999-9886> hz
>> >
>> > _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
>> >>> memory
>> > _ishm.c:880:_odp_ishm_reserve():No huge pages, fall back to normal
>> pages.
>> > check: /proc/sys/vm/nr_hugepages.
>> > _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
>> >>> memory
>> > _ishmphy.c:152:_odp_ishmphy_map():mmap failed:Cannot allocate
>> >>> memory
>> > _ishmphy.c:152