Re: [lng-odp] api-next merge with ODP 2.0

2017-10-16 Thread Honnappa Nagarahalli
I have fixed the issue. I will post the PR once the internal review is
completed.

Thanks,
Honnappa

On 16 October 2017 at 14:40, Maxim Uvarov  wrote:

> (gdb) bt
> #0  0x7fbe66d26c37 in __GI_raise (sig=sig@entry=6) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:56
> #1  0x7fbe66d2a028 in __GI_abort () at abort.c:89
> #2  0x0042e279 in odp_override_abort () at odp_weak.c:42
> #3  0x00424604 in llq_enqueue (node=,
> llq=) at ./include/odp_llqueue.h:220
> #4  schedq_push (elem=, schedq=) at
> schedule/scalable.c:175
> #5  _schedule (from=from@entry=0x0, ev=ev@entry=0x7fffd51030b8,
> num_evts=num_evts@entry=1) at schedule/scalable.c:910
> #6  0x004249da in schedule (from=0x0, wait=0) at
> schedule/scalable.c:1310
> #7  0x00406485 in flush_input_queue (pktio=,
> imode=imode@entry=ODP_PKTIN_MODE_SCHED) at pktio.c:397
> #8  0x00408f00 in test_txrx 
> (in_mode=in_mode@entry=ODP_PKTIN_MODE_SCHED,
> num_pkts=num_pkts@entry=4,
> mode=mode@entry=TXRX_MODE_MULTI) at pktio.c:731
> #9  0x00409508 in pktio_test_sched_multi () at pktio.c:763
> #10 0x7fbe670c0482 in run_single_test () from
> /usr/local/lib/libcunit.so.1
> #11 0x7fbe670c00b2 in run_single_suite () from
> /usr/local/lib/libcunit.so.1
> #12 0x7fbe670bdd55 in CU_run_all_tests () from
> /usr/local/lib/libcunit.so.1
> #13 0x7fbe670c2245 in basic_run_all_tests () from
> /usr/local/lib/libcunit.so.1
> #14 0x7fbe670c1fe7 in CU_basic_run_tests () from
> /usr/local/lib/libcunit.so.1
> #15 0x0040bc3b in odp_cunit_run () at odp_cunit_common.c:300
> #16 0x7fbe66d11f45 in __libc_start_main (main=0x404480 , argc=1,
> argv=0x7fffd5103548, init=,
> fini=, rtld_fini=,
> stack_end=0x7fffd5103538) at libc-start.c:287
> #17 0x0040483d in _start ()
> (gdb)
>
>
> On 16 October 2017 at 22:34, Maxim Uvarov  wrote:
>
>> ./configure --enable-schedule-scalable
>> sudo make check
>>
>>   Test: pktio_test_sched_multi 
>> /include/odp_llqueue.h:269:llq_dequeue_cond():node->next
>> == SENTINEL
>> Aborted
>>
>> full log is attached.
>>
>>
>>
>> On 16 October 2017 at 19:53, Honnappa Nagarahalli <
>> honnappa.nagaraha...@linaro.org> wrote:
>>
>>> Dmitry had taken a look at these. He mentioned they can be ignored for
>>> now.
>>> Thanks,
>>> Honnappa
>>>
>>> On 16 October 2017 at 03:52, Maxim Uvarov 
>>> wrote:
>>>
 bootstrap generates a lot of errors, I can reproduce them locally also

 https://travis-ci.org/nagarahalli/odp/jobs/287783022

 On 16 October 2017 at 09:21, Maxim Uvarov 
 wrote:

> I will take a look. But please check that you added this 3 commits.
>
>
> c16af648 travis: purge dpdk cache on version change
> 3cb45201 travis: build dpdk for general cpu
> 73bc4619 travis: temporary turn off dpdk caching
>
> In general Travis stopped due to no output. You can make tests more
> verbose with make check V=1
>
> But I would start with adding dpdk commits because without them result
> was also unclear.
>
> Maxim.
>
>
> On 16 October 2017 at 06:45, Honnappa Nagarahalli <
> honnappa.nagaraha...@linaro.org> wrote:
>
>> Hi Maxim,
>>  The test cases validation/api/pktio_run.sh and
>> validation/api/pktio_run_tap.sh are failing on Travis for the
>> following configurations:
>>
>> [image: Inline images 1]
>>
>> I am not able to reproduce these issues on my local machine. How do I
>> debug these? Is there any more log information that I can get from 
>> Travis?
>>
>> The merge is available at: https://github.com/nagarah
>> alli/odp/tree/2.0-api-next-merge-11Oct2017.
>>
>> Thank you,
>> Honnappa
>>
>
>

>>>
>>
>


Re: [lng-odp] [PATCH API-NEXT v1 1/8] api: pool: relax packet pool param num

2017-10-16 Thread Bill Fischofer
On Mon, Oct 16, 2017 at 7:59 AM, Github ODP bot  wrote:
> From: Petri Savolainen 
>
> Added packet pool parameter 'max_num', so that 'num' parameter
> can be round up by the implementation. Most implementations have
> a fixed segment size, and need this flexibility. For example,
> when 'len' is larger than the pool segment size, there may be
> e.g. 2 x 'num' segments in the poool, and thus it would be
> able to allocate 2 x 'num' small packets. When application
> needs to limit maximum number of packets on a pool, it can
> use the new max_num param for that. Otherwise, it would leave
> 'max_num' to zero (== no limit).
>
> Signed-off-by: Petri Savolainen 
> ---
> /** Email created from pull request 234 (psavol:next-pool-param)
>  ** https://github.com/Linaro/odp/pull/234
>  ** Patch: https://github.com/Linaro/odp/pull/234.patch
>  ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
>  ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
>  **/
>  include/odp/api/spec/pool.h | 44 +++-
>  1 file changed, 31 insertions(+), 13 deletions(-)
>
> diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h
> index 221798ee8..f1c8b1158 100644
> --- a/include/odp/api/spec/pool.h
> +++ b/include/odp/api/spec/pool.h
> @@ -164,10 +164,11 @@ int odp_pool_capability(odp_pool_capability_t *capa);
>
>  /**
>   * Pool parameters
> - * Used to communicate pool creation options.
> - * @note A single thread may not be able to allocate all 'num' elements
> - * from the pool at any particular time, as other threads or hardware
> - * blocks are allowed to keep some for caching purposes.
> + *
> + * A note for all pool types: a single thread may not be able to allocate all
> + * 'num' elements from the pool at any particular time, as implementations 
> are
> + * allowed to store some elements (per thread and HW engine) for caching
> + * purposes.
>   */
>  typedef struct odp_pool_param_t {
> /** Pool type */
> @@ -192,17 +193,34 @@ typedef struct odp_pool_param_t {
>
> /** Parameters for packet pools */
> struct {
> -   /** The number of packets that the pool must provide
> -   that are packet length 'len' bytes or smaller.
> -   The maximum value is defined by pool capability
> -   pkt.max_num. */
> +   /** Minimum number of 'len' byte packets.
> +*
> +*  The pool must contain at least this many packets
> +*  that are 'len' bytes or smaller. An implementation
> +*  may round up the value, as long as the 'max_num'
> +*  parameter below is not violated. The maximum value
> +*  for this field is defined by pool capability
> +*  pkt.max_num.
> +*/
> uint32_t num;
>
> -   /** Minimum packet length that the pool must provide
> -   'num' packets. The number of packets may be less
> -   than 'num' when packets are larger than 'len'.
> -   The maximum value is defined by pool capability
> -   pkt.max_len. Use 0 for default. */
> +   /** Maximum number of packets.
> +*
> +*  This is the maximum number of packets of any 
> length
> +*  that can be allocated from the pool. The maximum
> +*  value is defined by pool capability pkt.max_num.
> +*  Use 0 when there's no requirement for the maximum
> +*  number of packets. The default value is 0.
> +*/
> +   uint32_t max_num;

I'd put max_num first so that num and len are adjacent parameters for
consistency with how the odp_pool_pkt_subparam_t is organized.

> +
> +   /** Minimum length of 'num' packets.
> +*
> +*  The pool must contain at least 'num' packets up to
> +*  this packet length (1 ... 'len' bytes). The 
> maximum
> +*  value for this field is defined by pool capability
> +*  pkt.max_len. Use 0 for default.
> +*/
> uint32_t len;
>
> /** Maximum packet length that will be allocated from
>


Re: [lng-odp] [PATCH API-NEXT v1 5/8] api: pool: remove union from params

2017-10-16 Thread Bill Fischofer
On Mon, Oct 16, 2017 at 8:00 AM, Github ODP bot  wrote:
> From: Petri Savolainen 
>
> Remove anonymous union from pool parameter structure.
> Union makes it impossible to initialize parameters per
> pool type (use other values than all zeros). This change
> is not visible to applications (union was anonymous).

The reason for the union was to reduce the size of the
odp_pool_param_t. I'm not sure I understand the remark about making
initializations impossible. Pool parameters are initialized to their
default values via the odp_pool_param_init() API. Failure to use this
API exposes the application to portability issues as different
implementations may have different default values. If the use of
anonymous unions discourages attempts to have static copies of
odp_pool_param_t variables, so much the better.

>
> Signed-off-by: Petri Savolainen 
> ---
> /** Email created from pull request 234 (psavol:next-pool-param)
>  ** https://github.com/Linaro/odp/pull/234
>  ** Patch: https://github.com/Linaro/odp/pull/234.patch
>  ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
>  ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
>  **/
>  include/odp/api/spec/pool.h | 215 
> ++--
>  1 file changed, 109 insertions(+), 106 deletions(-)
>
> diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h
> index 7c9bee8ee..7b1e2d467 100644
> --- a/include/odp/api/spec/pool.h
> +++ b/include/odp/api/spec/pool.h
> @@ -195,112 +195,115 @@ typedef struct odp_pool_param_t {
> /** Pool type */
> int type;
>
> -   /** Variant parameters for different pool types */
> -   union {
> -   /** Parameters for buffer pools */
> -   struct {
> -   /** Number of buffers in the pool */
> -   uint32_t num;
> -
> -   /** Buffer size in bytes. The maximum number of bytes
> -   application will store in each buffer. */
> -   uint32_t size;
> -
> -   /** Minimum buffer alignment in bytes. Valid values 
> are
> -   powers of two. Use 0 for default alignment.
> -   Default will always be a multiple of 8. */
> -   uint32_t align;
> -   } buf;
> -
> -   /** Parameters for packet pools */
> -   struct {
> -   /** Minimum number of 'len' byte packets.
> -*
> -*  The pool must contain at least this many packets
> -*  that are 'len' bytes or smaller. An implementation
> -*  may round up the value, as long as the 'max_num'
> -*  parameter below is not violated. The maximum value
> -*  for this field is defined by pool capability
> -*  pkt.max_num.
> -*/
> -   uint32_t num;
> -
> -   /** Maximum number of packets.
> -*
> -*  This is the maximum number of packets of any 
> length
> -*  that can be allocated from the pool. The maximum
> -*  value is defined by pool capability pkt.max_num.
> -*  Use 0 when there's no requirement for the maximum
> -*  number of packets. The default value is 0.
> -*/
> -   uint32_t max_num;
> -
> -   /** Minimum length of 'num' packets.
> -*
> -*  The pool must contain at least 'num' packets up to
> -*  this packet length (1 ... 'len' bytes). The 
> maximum
> -*  value for this field is defined by pool capability
> -*  pkt.max_len. Use 0 for default.
> -*/
> -   uint32_t len;
> -
> -   /** Maximum packet length that will be allocated from
> -   the pool. The maximum value is defined by pool
> -   capability pkt.max_len. Use 0 for default (the
> -   pool maximum). */
> -   uint32_t max_len;
> -
> -   /** Minimum number of packet data bytes that are 
> stored
> -   in the first segment of a packet. The maximum 
> value
> -   is defined by pool capability pkt.max_seg_len.
> -   Use 0 for default. */
> -   uint32_t seg_len;
> -
> -   /** User area size in bytes. The maximum value is
> -   defined by pool capability pkt.max_uarea_size.
> -   

Re: [lng-odp] [PATCH API-NEXT v1 2/8] api: pool: add packet pool subparameters

2017-10-16 Thread Bill Fischofer
On Mon, Oct 16, 2017 at 7:59 AM, Github ODP bot  wrote:
> From: Petri Savolainen 
>
> Additional packet length and number specification gives
> more information to implementation about intended packet
> length distribution in the pool. This enables e.g. correct
> initialization when pool implementation is based on multiple
> fixed packet / segment sizes (subpools). The specification
> does require subpool implementation but allows it.
>
> Signed-off-by: Petri Savolainen 
> ---
> /** Email created from pull request 234 (psavol:next-pool-param)
>  ** https://github.com/Linaro/odp/pull/234
>  ** Patch: https://github.com/Linaro/odp/pull/234.patch
>  ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
>  ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
>  **/
>  include/odp/api/spec/pool.h | 47 
> +
>  1 file changed, 47 insertions(+)
>
> diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h
> index f1c8b1158..7c9bee8ee 100644
> --- a/include/odp/api/spec/pool.h
> +++ b/include/odp/api/spec/pool.h
> @@ -41,6 +41,9 @@ extern "C" {
>   * Maximum pool name length in chars including null char
>   */
>
> +/** Maximum number of packet pool subparameters */
> +#define ODP_POOL_MAX_SUBPARAMS  7
> +
>  /**
>   * Pool capabilities
>   */
> @@ -134,6 +137,12 @@ typedef struct odp_pool_capability_t {
>  * The value of zero means that limited only by the available
>  * memory size for the pool. */
> uint32_t max_uarea_size;
> +
> +   /** Maximum number of subparameters
> +*
> +*  Maximum number of packet pool subparameters. Valid range 
> is
> +*  0 ... ODP_POOL_MAX_SUBPARAMS. */
> +   uint8_t max_num_sub;

max_num_subparam or max_subparam would be clearer. "sub" by itself
seems a bit too short to be intuitive.

> } pkt;
>
> /** Timeout pool capabilities  */
> @@ -163,6 +172,18 @@ typedef struct odp_pool_capability_t {
>  int odp_pool_capability(odp_pool_capability_t *capa);
>
>  /**
> + * Packet pool subparameters
> + */
> +typedef struct odp_pool_pkt_subparam_t {
> +   /** Number of 'len' byte packets. */
> +   uint32_t num;
> +
> +   /** Packet length in bytes */
> +   uint32_t len;
> +
> +} odp_pool_pkt_subparam_t;
> +
> +/**
>   * Pool parameters
>   *
>   * A note for all pool types: a single thread may not be able to allocate all
> @@ -246,6 +267,32 @@ typedef struct odp_pool_param_t {
> capability pkt.max_headroom.
> Use zero if headroom is not needed. */
> uint32_t headroom;
> +
> +   /** Number of subparameters
> +*
> +*  The number of subparameter table entries used.
> +*  The maximum value is defined by pool
> +*  capability pkt.max_num_sub. The default value is 
> 0.
> +*/
> +   uint8_t num_sub;

uint8_t num_subparam would be consistent with the above suggestion.

> +
> +   /** Subparameter table
> +*
> +*  Subparameters continue pool configuration with
> +*  additional packet length requirements. The first
> +*  table entry follows the num/len specification 
> above.
> +*  So that, sub[0].len > 'len', and sub[0].num refers
> +*  to packet lengths between 'len' + 1 and 
> sub[0].len.
> +*  Similarly, sub[1] follows sub[0] specification, 
> and
> +*  so on.
> +*
> +*  Each requirement is supported separately and may 
> be
> +*  rounded up, as long as the 'max_num' parameter is
> +*  not violated. It's implementation specific if some
> +*  requirements are supported simultaneously (e.g.
> +*  due to subpool design).

I thought these were supposed to be optimization hints, not
requirements. It's OK for the application to advise the implementation
about how it expects to make use of pools. It seems contrary to the
spirit of ODP to make demands on how ODP implementations must organize
pools internally. So, for example, the only thing we require is that
the pool support a minimum of num packets of size len and may contain
no more than max_num packets of any size. I don't think we can require
that the pool be able to satisfy limits specified in the
subparameters.

> +*/
> +   odp_pool_pkt_subparam_t sub[ODP_POOL_MAX_SUBPARAMS];
> } pkt;
>
> /** Parameters for 

Re: [lng-odp] [PATCH v1] linux-gen: pool: select packet pool segment size at runtime

2017-10-16 Thread Github ODP bot
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:

platform/linux-generic/odp_packet.c
line 241
@@ -2146,7 +2146,7 @@ odp_packet_t odp_packet_ref(odp_packet_t pkt, uint32_t 
offset)
link_hdr->buf_hdr.seg[0].len  = seg->len  - seg_offset;
buffer_ref_inc(seg->hdr);
 
-   for (i = 1; i < num_copy; i++) {
+   for (i = 1; CONFIG_PACKET_SEGS_PER_HDR > 1 && i < num_copy; i++) {


Comment:
Not clear why this is necessary. If `CONFIG_PACKET_SEGS_PER_HDR == 1` then 
`num_copy` should be 1 here so the original `for` loop will also not execute. 
Or am I missing something here?

> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
> Same comment here.


>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>> Again, not sure why you want to remove the case optimization here.


>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>>> Why not `if (CONFIG_PACKET_SEG_DISABLED || num == 1) ...` here? There was 
>>> an attempt to generate fast-path code if it's known at compile time that 
>>> multi-segment packets are not being used.


https://github.com/Linaro/odp/pull/233#discussion_r144968393
updated_at 2017-10-16 21:17:08


Re: [lng-odp] [PATCH v1] linux-gen: pool: select packet pool segment size at runtime

2017-10-16 Thread Github ODP bot
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:

platform/linux-generic/odp_packet.c
line 18
@@ -179,10 +179,7 @@ static inline void *packet_seg_data(odp_packet_hdr_t 
*pkt_hdr, uint32_t seg_idx)
 
 static inline uint16_t packet_last_seg(odp_packet_hdr_t *pkt_hdr)
 {
-   if (CONFIG_PACKET_MAX_SEGS == 1)
-   return 0;
-   else
-   return pkt_hdr->buf_hdr.segcount - 1;
+   return pkt_hdr->buf_hdr.segcount - 1;


Comment:
Again, not sure why you want to remove the case optimization here.

> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
> Why not `if (CONFIG_PACKET_SEG_DISABLED || num == 1) ...` here? There was an 
> attempt to generate fast-path code if it's known at compile time that 
> multi-segment packets are not being used.


https://github.com/Linaro/odp/pull/233#discussion_r144966370
updated_at 2017-10-16 21:17:08


Re: [lng-odp] [PATCH v1] linux-gen: pool: select packet pool segment size at runtime

2017-10-16 Thread Github ODP bot
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:

platform/linux-generic/odp_packet.c
line 27
@@ -291,7 +288,7 @@ static inline void *packet_map(odp_packet_hdr_t *pkt_hdr,
if (odp_unlikely(offset >= pkt_hdr->frame_len))
return NULL;
 
-   if (odp_likely(CONFIG_PACKET_MAX_SEGS == 1 || seg_count == 1)) {
+   if (odp_likely(seg_count == 1)) {


Comment:
Same comment here.

> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
> Again, not sure why you want to remove the case optimization here.


>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>> Why not `if (CONFIG_PACKET_SEG_DISABLED || num == 1) ...` here? There was an 
>> attempt to generate fast-path code if it's known at compile time that 
>> multi-segment packets are not being used.


https://github.com/Linaro/odp/pull/233#discussion_r144966498
updated_at 2017-10-16 21:17:08


Re: [lng-odp] [PATCH v1] linux-gen: pool: select packet pool segment size at runtime

2017-10-16 Thread Github ODP bot
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:

platform/linux-generic/include/odp_packet_internal.h
line 9
@@ -197,7 +197,7 @@ static inline void packet_init(odp_packet_hdr_t *pkt_hdr, 
uint32_t len)
uint32_t seg_len;
int num = pkt_hdr->buf_hdr.segcount;
 
-   if (odp_likely(CONFIG_PACKET_MAX_SEGS == 1 || num == 1)) {
+   if (odp_likely(num == 1)) {


Comment:
Why not `if (CONFIG_PACKET_SEG_DISABLED || num == 1) ...` here? There was an 
attempt to generate fast-path code if it's known at compile time that 
multi-segment packets are not being used.

https://github.com/Linaro/odp/pull/233#discussion_r144965894
updated_at 2017-10-16 21:17:08


[lng-odp] [PATCH v6 1/1] add Shippable CI config for Aarch64 hardware

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc
 ** Merge commit sha: 738c618a4f25f383f42a190abcf2c6cd6d52ce62
 **/
 scripts/Dockerfile | 23 
 shippable.yml  | 62 ++
 2 files changed, 85 insertions(+)
 create mode 100644 scripts/Dockerfile
 create mode 100644 shippable.yml

diff --git a/scripts/Dockerfile b/scripts/Dockerfile
new file mode 100644
index 0..ab879c102
--- /dev/null
+++ b/scripts/Dockerfile
@@ -0,0 +1,23 @@
+FROM drydockaarch64/u16:v5.10.1
+
+RUN if $(sudo update-alternatives --list gcc); \
+  then sudo update-alternatives --remove-all gcc; \
+fi
+
+RUN sudo apt-get update && sudo apt-get install -yy \
+  autoconf \
+  automake \
+  ccache \
+  clang-3.8 \
+  gcc-4.8 \
+  graphviz \
+  kmod \
+  mscgen \
+  libpcap-dev \
+  libssl-dev \
+  libtool \
+  linux-headers-`uname -r` \
+  ruby-dev
+
+RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 
+RUN sudo ln -s /usr/bin/clang-3.8 /usr/bin/clang
diff --git a/shippable.yml b/shippable.yml
new file mode 100644
index 0..1c54a09be
--- /dev/null
+++ b/shippable.yml
@@ -0,0 +1,62 @@
+
+language: c
+
+compiler:
+  - gcc
+  - clang
+
+env:
+  matrix:
+- CONF=""
+# - CONF="--disable-abi-compat"
+# - CONF="--enable-schedule-sp"
+# - CONF="--enable-schedule-iquery"
+# - CONF="--enable-dpdk-zero-copy"
+- CROSS_ARCH="arm64"
+# - CROSS_ARCH="armhf" CFLAGS="-march=armv7-a"
+# - CROSS_ARCH="powerpc"
+# - CROSS_ARCH="i386"
+  global:
+- PLACEHOLDER=""
+
+build:
+  pre_ci:
+# use Dockerfile to install additional CI dependencies
+- docker build -t=odp/dev ./scripts
+
+  # use image built in 'pre_ci' for CI job 
+  pre_ci_boot:
+image_name: odp/dev
+image_tag: latest
+pull: false
+options: 
+
+  ci:
+- echo 1000 | sudo tee /proc/sys/vm/nr_hugepages
+- sudo mkdir -p /mnt/huge
+- sudo mount -t hugetlbfs nodev /mnt/huge
+- mkdir -p /dev/shm/odp
+- export CUNIT_VERSION=2.1-3
+- |
+  curl -sSOL 
https://github.com/Linaro/libcunit/releases/download/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2
+  tar -jxf *.bz2
+  pushd CUnit*
+  libtoolize --force --copy
+  aclocal
+  autoheader
+  automake --add-missing --include-deps --copy
+  autoconf
+  ./configure --prefix=$HOME/cunit-install --enable-debug 
--enable-automated --enable-basic --enable-console --enable-examples 
--enable-test || cat config.log
+  make
+  sudo make install
+  popd
+- ./bootstrap
+- export 
PKG_CONFIG_PATH="$HOME/cunit-install/lib/pkgconfig:${PKG_CONFIG_PATH}"
+- export LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH"
+- ./configure --disable-test-perf
+- make
+- sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" 
ODP_SHM_DIR=/dev/shm/odp make check
+
+  on_failure:
+- cat config.log
+- find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec 
echo {} \; -exec cat {} \;



[lng-odp] [PATCH v6 0/1] add sample shippable.yml and Dockerfile for Aarch64 builds

2017-10-16 Thread Github ODP bot
Adds shippable.yml config file for testing ODP builds on Aarch64 hardware using 
Shippable. This CI config also uses a Dockerfile to install additional 
dependencies on top of the standard Shippable Aarch64 image.

github
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc
 ** Merge commit sha: 738c618a4f25f383f42a190abcf2c6cd6d52ce62
 **/
/github

checkpatch.pl
WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per 
line)
#15: 
 shippable.yml  | 62 ++

ERROR: trailing whitespace
#47: FILE: scripts/Dockerfile:22:
+RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 $

ERROR: trailing whitespace
#81: FILE: shippable.yml:27:
+  # use image built in 'pre_ci' for CI job $

ERROR: trailing whitespace
#86: FILE: shippable.yml:32:
+options: $

ERROR: Missing Signed-off-by: line(s)

total: 4 errors, 1 warnings, 0 checks, 85 lines checked

NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or
  scripts/cleanfile


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 v5 2/5] remove coverity variables

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc
 ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2
 **/
 shippable.yml | 21 +
 1 file changed, 1 insertion(+), 20 deletions(-)

diff --git a/shippable.yml b/shippable.yml
index 048803752..a6a373be4 100644
--- a/shippable.yml
+++ b/shippable.yml
@@ -17,26 +17,7 @@ env:
 # - CROSS_ARCH="powerpc"
 # - CROSS_ARCH="i386"
   global:
-# COVERITY_SCAN_TOKEN
-# ** specific to your project **
-# Note:
-# You should have a github account and travis linked travis account.
-# The secure key to be filled below is the 685 character long encrypted
-# token you can find as follow from your coverity dashboard
-# (at https://scan.coverity.com/dashboard):
-# Click on the github project (/odp)
-# Click on "submit build"
-# Click on "Configure Travis CI"
-# Look at the COVERITY_SCAN_TOKEN in the env: global: section
-# of the configuration example.
-# copy the secure: below
-#
-- secure: ""
-#
-# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see
-# for individual commit validation. But you you want to track tests history
-# you need generated new one at https://codecov.io specific for your repo.
-- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11
+- PLACEHOLDER=""
 
 build:
   pre_ci:



[lng-odp] [PATCH v5 4/5] move Dockerfile to scripts folder

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc
 ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2
 **/
 Dockerfile => scripts/Dockerfile | 0
 shippable.yml| 2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename Dockerfile => scripts/Dockerfile (100%)

diff --git a/Dockerfile b/scripts/Dockerfile
similarity index 100%
rename from Dockerfile
rename to scripts/Dockerfile
diff --git a/shippable.yml b/shippable.yml
index a6a373be4..9bb00148f 100644
--- a/shippable.yml
+++ b/shippable.yml
@@ -22,7 +22,7 @@ env:
 build:
   pre_ci:
 # use Dockerfile to install additional CI dependencies
-- docker build -t=odp/dev .
+- docker build -t=odp/dev ./scripts
 
   # use image built in 'pre_ci' for CI job 
   pre_ci_boot:



[lng-odp] [PATCH v5 5/5] move error output to on_failure section

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc
 ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2
 **/
 shippable.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/shippable.yml b/shippable.yml
index 9bb00148f..1c54a09be 100644
--- a/shippable.yml
+++ b/shippable.yml
@@ -57,6 +57,6 @@ build:
 - make
 - sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" 
ODP_SHM_DIR=/dev/shm/odp make check
 
-  post_ci:
+  on_failure:
 - cat config.log
 - find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec 
echo {} \; -exec cat {} \;



[lng-odp] [PATCH v5 3/5] alphabetize list of installed packages

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc
 ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2
 **/
 Dockerfile | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 0a511b09d..ab879c102 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,18 +5,18 @@ RUN if $(sudo update-alternatives --list gcc); \
 fi
 
 RUN sudo apt-get update && sudo apt-get install -yy \
-  gcc-4.8 \
-  clang-3.8 \
-  automake \
   autoconf \
+  automake \
   ccache \
+  clang-3.8 \
+  gcc-4.8 \
   graphviz \
   kmod \
+  mscgen \
   libpcap-dev \
   libssl-dev \
   libtool \
   linux-headers-`uname -r` \
-  mscgen \
   ruby-dev
 
 RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 



[lng-odp] [PATCH v5 1/5] add sample shippable.yml and Dockerfile for Aarch64 builds

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc
 ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2
 **/
 Dockerfile| 23 +
 shippable.yml | 81 +++
 2 files changed, 104 insertions(+)
 create mode 100644 Dockerfile
 create mode 100644 shippable.yml

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0..0a511b09d
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,23 @@
+FROM drydockaarch64/u16:v5.10.1
+
+RUN if $(sudo update-alternatives --list gcc); \
+  then sudo update-alternatives --remove-all gcc; \
+fi
+
+RUN sudo apt-get update && sudo apt-get install -yy \
+  gcc-4.8 \
+  clang-3.8 \
+  automake \
+  autoconf \
+  ccache \
+  graphviz \
+  kmod \
+  libpcap-dev \
+  libssl-dev \
+  libtool \
+  linux-headers-`uname -r` \
+  mscgen \
+  ruby-dev
+
+RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 
+RUN sudo ln -s /usr/bin/clang-3.8 /usr/bin/clang
diff --git a/shippable.yml b/shippable.yml
new file mode 100644
index 0..048803752
--- /dev/null
+++ b/shippable.yml
@@ -0,0 +1,81 @@
+
+language: c
+
+compiler:
+  - gcc
+  - clang
+
+env:
+  matrix:
+- CONF=""
+# - CONF="--disable-abi-compat"
+# - CONF="--enable-schedule-sp"
+# - CONF="--enable-schedule-iquery"
+# - CONF="--enable-dpdk-zero-copy"
+- CROSS_ARCH="arm64"
+# - CROSS_ARCH="armhf" CFLAGS="-march=armv7-a"
+# - CROSS_ARCH="powerpc"
+# - CROSS_ARCH="i386"
+  global:
+# COVERITY_SCAN_TOKEN
+# ** specific to your project **
+# Note:
+# You should have a github account and travis linked travis account.
+# The secure key to be filled below is the 685 character long encrypted
+# token you can find as follow from your coverity dashboard
+# (at https://scan.coverity.com/dashboard):
+# Click on the github project (/odp)
+# Click on "submit build"
+# Click on "Configure Travis CI"
+# Look at the COVERITY_SCAN_TOKEN in the env: global: section
+# of the configuration example.
+# copy the secure: below
+#
+- secure: ""
+#
+# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see
+# for individual commit validation. But you you want to track tests history
+# you need generated new one at https://codecov.io specific for your repo.
+- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11
+
+build:
+  pre_ci:
+# use Dockerfile to install additional CI dependencies
+- docker build -t=odp/dev .
+
+  # use image built in 'pre_ci' for CI job 
+  pre_ci_boot:
+image_name: odp/dev
+image_tag: latest
+pull: false
+options: 
+
+  ci:
+- echo 1000 | sudo tee /proc/sys/vm/nr_hugepages
+- sudo mkdir -p /mnt/huge
+- sudo mount -t hugetlbfs nodev /mnt/huge
+- mkdir -p /dev/shm/odp
+- export CUNIT_VERSION=2.1-3
+- |
+  curl -sSOL 
https://github.com/Linaro/libcunit/releases/download/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2
+  tar -jxf *.bz2
+  pushd CUnit*
+  libtoolize --force --copy
+  aclocal
+  autoheader
+  automake --add-missing --include-deps --copy
+  autoconf
+  ./configure --prefix=$HOME/cunit-install --enable-debug 
--enable-automated --enable-basic --enable-console --enable-examples 
--enable-test || cat config.log
+  make
+  sudo make install
+  popd
+- ./bootstrap
+- export 
PKG_CONFIG_PATH="$HOME/cunit-install/lib/pkgconfig:${PKG_CONFIG_PATH}"
+- export LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH"
+- ./configure --disable-test-perf
+- make
+- sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" 
ODP_SHM_DIR=/dev/shm/odp make check
+
+  post_ci:
+- cat config.log
+- find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec 
echo {} \; -exec cat {} \;



[lng-odp] [PATCH v5 0/5] add sample shippable.yml and Dockerfile for Aarch64 builds

2017-10-16 Thread Github ODP bot
Adds shippable.yml config file for testing ODP builds on Aarch64 hardware using 
Shippable. This CI config also uses a Dockerfile to install additional 
dependencies on top of the standard Shippable Aarch64 image.

github
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc
 ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2
 **/
/github

checkpatch.pl
WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per 
line)
#16: 
 shippable.yml | 81 +++

ERROR: trailing whitespace
#48: FILE: Dockerfile:22:
+RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 $

ERROR: trailing whitespace
#101: FILE: shippable.yml:46:
+  # use image built in 'pre_ci' for CI job $

ERROR: trailing whitespace
#106: FILE: shippable.yml:51:
+options: $

ERROR: Missing Signed-off-by: line(s)

total: 4 errors, 1 warnings, 0 checks, 104 lines checked

NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or
  scripts/cleanfile


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.
ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 27 lines checked


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

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 22 lines checked


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

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 8 lines checked


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

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 7 lines checked


to_send-p-004.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] [Bug 3343] New: aarch64 timer test fails

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

Bug ID: 3343
   Summary: aarch64 timer test fails
   Product: OpenDataPlane - linux- generic reference
   Version: v1.15.0.0
  Hardware: Other
OS: Linux
Status: UNCONFIRMED
  Severity: enhancement
  Priority: ---
 Component: Timers
  Assignee: lng-odp@lists.linaro.org
  Reporter: maxim.uva...@linaro.org
CC: lng-odp@lists.linaro.org
  Target Milestone: ---

timer.c:563:timer_test_odp_timer_all():Number of timeouts delivered/received
too late: 0
FAILED
1. timer.c:253  - CU_FAIL("Wrong status (stale) for fresh timeout")
2. timer.c:259  - CU_FAIL("odp_timeout_tick() wrong tick")

https://app.shippable.com/github/ttrahan/odp/runs/2/1/console

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

[lng-odp] [PATCH v4 2/5] remove coverity variables

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3
 **/
 shippable.yml | 21 +
 1 file changed, 1 insertion(+), 20 deletions(-)

diff --git a/shippable.yml b/shippable.yml
index 048803752..a6a373be4 100644
--- a/shippable.yml
+++ b/shippable.yml
@@ -17,26 +17,7 @@ env:
 # - CROSS_ARCH="powerpc"
 # - CROSS_ARCH="i386"
   global:
-# COVERITY_SCAN_TOKEN
-# ** specific to your project **
-# Note:
-# You should have a github account and travis linked travis account.
-# The secure key to be filled below is the 685 character long encrypted
-# token you can find as follow from your coverity dashboard
-# (at https://scan.coverity.com/dashboard):
-# Click on the github project (/odp)
-# Click on "submit build"
-# Click on "Configure Travis CI"
-# Look at the COVERITY_SCAN_TOKEN in the env: global: section
-# of the configuration example.
-# copy the secure: below
-#
-- secure: ""
-#
-# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see
-# for individual commit validation. But you you want to track tests history
-# you need generated new one at https://codecov.io specific for your repo.
-- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11
+- PLACEHOLDER=""
 
 build:
   pre_ci:



[lng-odp] [PATCH v4 1/5] add sample shippable.yml and Dockerfile for Aarch64 builds

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3
 **/
 Dockerfile| 23 +
 shippable.yml | 81 +++
 2 files changed, 104 insertions(+)
 create mode 100644 Dockerfile
 create mode 100644 shippable.yml

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0..0a511b09d
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,23 @@
+FROM drydockaarch64/u16:v5.10.1
+
+RUN if $(sudo update-alternatives --list gcc); \
+  then sudo update-alternatives --remove-all gcc; \
+fi
+
+RUN sudo apt-get update && sudo apt-get install -yy \
+  gcc-4.8 \
+  clang-3.8 \
+  automake \
+  autoconf \
+  ccache \
+  graphviz \
+  kmod \
+  libpcap-dev \
+  libssl-dev \
+  libtool \
+  linux-headers-`uname -r` \
+  mscgen \
+  ruby-dev
+
+RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 
+RUN sudo ln -s /usr/bin/clang-3.8 /usr/bin/clang
diff --git a/shippable.yml b/shippable.yml
new file mode 100644
index 0..048803752
--- /dev/null
+++ b/shippable.yml
@@ -0,0 +1,81 @@
+
+language: c
+
+compiler:
+  - gcc
+  - clang
+
+env:
+  matrix:
+- CONF=""
+# - CONF="--disable-abi-compat"
+# - CONF="--enable-schedule-sp"
+# - CONF="--enable-schedule-iquery"
+# - CONF="--enable-dpdk-zero-copy"
+- CROSS_ARCH="arm64"
+# - CROSS_ARCH="armhf" CFLAGS="-march=armv7-a"
+# - CROSS_ARCH="powerpc"
+# - CROSS_ARCH="i386"
+  global:
+# COVERITY_SCAN_TOKEN
+# ** specific to your project **
+# Note:
+# You should have a github account and travis linked travis account.
+# The secure key to be filled below is the 685 character long encrypted
+# token you can find as follow from your coverity dashboard
+# (at https://scan.coverity.com/dashboard):
+# Click on the github project (/odp)
+# Click on "submit build"
+# Click on "Configure Travis CI"
+# Look at the COVERITY_SCAN_TOKEN in the env: global: section
+# of the configuration example.
+# copy the secure: below
+#
+- secure: ""
+#
+# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see
+# for individual commit validation. But you you want to track tests history
+# you need generated new one at https://codecov.io specific for your repo.
+- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11
+
+build:
+  pre_ci:
+# use Dockerfile to install additional CI dependencies
+- docker build -t=odp/dev .
+
+  # use image built in 'pre_ci' for CI job 
+  pre_ci_boot:
+image_name: odp/dev
+image_tag: latest
+pull: false
+options: 
+
+  ci:
+- echo 1000 | sudo tee /proc/sys/vm/nr_hugepages
+- sudo mkdir -p /mnt/huge
+- sudo mount -t hugetlbfs nodev /mnt/huge
+- mkdir -p /dev/shm/odp
+- export CUNIT_VERSION=2.1-3
+- |
+  curl -sSOL 
https://github.com/Linaro/libcunit/releases/download/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2
+  tar -jxf *.bz2
+  pushd CUnit*
+  libtoolize --force --copy
+  aclocal
+  autoheader
+  automake --add-missing --include-deps --copy
+  autoconf
+  ./configure --prefix=$HOME/cunit-install --enable-debug 
--enable-automated --enable-basic --enable-console --enable-examples 
--enable-test || cat config.log
+  make
+  sudo make install
+  popd
+- ./bootstrap
+- export 
PKG_CONFIG_PATH="$HOME/cunit-install/lib/pkgconfig:${PKG_CONFIG_PATH}"
+- export LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH"
+- ./configure --disable-test-perf
+- make
+- sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" 
ODP_SHM_DIR=/dev/shm/odp make check
+
+  post_ci:
+- cat config.log
+- find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec 
echo {} \; -exec cat {} \;



[lng-odp] [PATCH v4 5/5] move error output to on_failure section

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3
 **/
 shippable.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/shippable.yml b/shippable.yml
index 9bb00148f..1c54a09be 100644
--- a/shippable.yml
+++ b/shippable.yml
@@ -57,6 +57,6 @@ build:
 - make
 - sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" 
ODP_SHM_DIR=/dev/shm/odp make check
 
-  post_ci:
+  on_failure:
 - cat config.log
 - find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec 
echo {} \; -exec cat {} \;



[lng-odp] [PATCH v4 4/5] move Dockerfile to scripts folder

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3
 **/
 Dockerfile => scripts/Dockerfile | 0
 shippable.yml| 2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename Dockerfile => scripts/Dockerfile (100%)

diff --git a/Dockerfile b/scripts/Dockerfile
similarity index 100%
rename from Dockerfile
rename to scripts/Dockerfile
diff --git a/shippable.yml b/shippable.yml
index a6a373be4..9bb00148f 100644
--- a/shippable.yml
+++ b/shippable.yml
@@ -22,7 +22,7 @@ env:
 build:
   pre_ci:
 # use Dockerfile to install additional CI dependencies
-- docker build -t=odp/dev .
+- docker build -t=odp/dev ./scripts
 
   # use image built in 'pre_ci' for CI job 
   pre_ci_boot:



[lng-odp] [PATCH v4 3/5] alphabetize list of installed packages

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3
 **/
 Dockerfile | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 0a511b09d..ab879c102 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,18 +5,18 @@ RUN if $(sudo update-alternatives --list gcc); \
 fi
 
 RUN sudo apt-get update && sudo apt-get install -yy \
-  gcc-4.8 \
-  clang-3.8 \
-  automake \
   autoconf \
+  automake \
   ccache \
+  clang-3.8 \
+  gcc-4.8 \
   graphviz \
   kmod \
+  mscgen \
   libpcap-dev \
   libssl-dev \
   libtool \
   linux-headers-`uname -r` \
-  mscgen \
   ruby-dev
 
 RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 



[lng-odp] [PATCH v4 0/5] add sample shippable.yml and Dockerfile for Aarch64 builds

2017-10-16 Thread Github ODP bot
Adds shippable.yml config file for testing ODP builds on Aarch64 hardware using 
Shippable. This CI config also uses a Dockerfile to install additional 
dependencies on top of the standard Shippable Aarch64 image.

github
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3
 **/
/github

checkpatch.pl
WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per 
line)
#16: 
 shippable.yml | 81 +++

ERROR: trailing whitespace
#48: FILE: Dockerfile:22:
+RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 $

ERROR: trailing whitespace
#101: FILE: shippable.yml:46:
+  # use image built in 'pre_ci' for CI job $

ERROR: trailing whitespace
#106: FILE: shippable.yml:51:
+options: $

ERROR: Missing Signed-off-by: line(s)

total: 4 errors, 1 warnings, 0 checks, 104 lines checked

NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or
  scripts/cleanfile


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.
ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 27 lines checked


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

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 22 lines checked


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

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 8 lines checked


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

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 7 lines checked


to_send-p-004.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] api-next merge with ODP 2.0

2017-10-16 Thread Maxim Uvarov
(gdb) bt
#0  0x7fbe66d26c37 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x7fbe66d2a028 in __GI_abort () at abort.c:89
#2  0x0042e279 in odp_override_abort () at odp_weak.c:42
#3  0x00424604 in llq_enqueue (node=, llq=) at ./include/odp_llqueue.h:220
#4  schedq_push (elem=, schedq=) at
schedule/scalable.c:175
#5  _schedule (from=from@entry=0x0, ev=ev@entry=0x7fffd51030b8,
num_evts=num_evts@entry=1) at schedule/scalable.c:910
#6  0x004249da in schedule (from=0x0, wait=0) at
schedule/scalable.c:1310
#7  0x00406485 in flush_input_queue (pktio=,
imode=imode@entry=ODP_PKTIN_MODE_SCHED) at pktio.c:397
#8  0x00408f00 in test_txrx
(in_mode=in_mode@entry=ODP_PKTIN_MODE_SCHED,
num_pkts=num_pkts@entry=4,
mode=mode@entry=TXRX_MODE_MULTI) at pktio.c:731
#9  0x00409508 in pktio_test_sched_multi () at pktio.c:763
#10 0x7fbe670c0482 in run_single_test () from
/usr/local/lib/libcunit.so.1
#11 0x7fbe670c00b2 in run_single_suite () from
/usr/local/lib/libcunit.so.1
#12 0x7fbe670bdd55 in CU_run_all_tests () from
/usr/local/lib/libcunit.so.1
#13 0x7fbe670c2245 in basic_run_all_tests () from
/usr/local/lib/libcunit.so.1
#14 0x7fbe670c1fe7 in CU_basic_run_tests () from
/usr/local/lib/libcunit.so.1
#15 0x0040bc3b in odp_cunit_run () at odp_cunit_common.c:300
#16 0x7fbe66d11f45 in __libc_start_main (main=0x404480 , argc=1,
argv=0x7fffd5103548, init=,
fini=, rtld_fini=,
stack_end=0x7fffd5103538) at libc-start.c:287
#17 0x0040483d in _start ()
(gdb)


On 16 October 2017 at 22:34, Maxim Uvarov  wrote:

> ./configure --enable-schedule-scalable
> sudo make check
>
>   Test: pktio_test_sched_multi /include/odp_llqueue.h:
> 269:llq_dequeue_cond():node->next == SENTINEL
> Aborted
>
> full log is attached.
>
>
>
> On 16 October 2017 at 19:53, Honnappa Nagarahalli <
> honnappa.nagaraha...@linaro.org> wrote:
>
>> Dmitry had taken a look at these. He mentioned they can be ignored for
>> now.
>> Thanks,
>> Honnappa
>>
>> On 16 October 2017 at 03:52, Maxim Uvarov 
>> wrote:
>>
>>> bootstrap generates a lot of errors, I can reproduce them locally also
>>>
>>> https://travis-ci.org/nagarahalli/odp/jobs/287783022
>>>
>>> On 16 October 2017 at 09:21, Maxim Uvarov 
>>> wrote:
>>>
 I will take a look. But please check that you added this 3 commits.


 c16af648 travis: purge dpdk cache on version change
 3cb45201 travis: build dpdk for general cpu
 73bc4619 travis: temporary turn off dpdk caching

 In general Travis stopped due to no output. You can make tests more
 verbose with make check V=1

 But I would start with adding dpdk commits because without them result
 was also unclear.

 Maxim.


 On 16 October 2017 at 06:45, Honnappa Nagarahalli <
 honnappa.nagaraha...@linaro.org> wrote:

> Hi Maxim,
>  The test cases validation/api/pktio_run.sh and
> validation/api/pktio_run_tap.sh are failing on Travis for the
> following configurations:
>
> [image: Inline images 1]
>
> I am not able to reproduce these issues on my local machine. How do I
> debug these? Is there any more log information that I can get from Travis?
>
> The merge is available at: https://github.com/nagarah
> alli/odp/tree/2.0-api-next-merge-11Oct2017.
>
> Thank you,
> Honnappa
>


>>>
>>
>


Re: [lng-odp] api-next merge with ODP 2.0

2017-10-16 Thread Maxim Uvarov
./configure --enable-schedule-scalable
sudo make check

  Test: pktio_test_sched_multi
/include/odp_llqueue.h:269:llq_dequeue_cond():node->next == SENTINEL
Aborted

full log is attached.



On 16 October 2017 at 19:53, Honnappa Nagarahalli <
honnappa.nagaraha...@linaro.org> wrote:

> Dmitry had taken a look at these. He mentioned they can be ignored for now.
> Thanks,
> Honnappa
>
> On 16 October 2017 at 03:52, Maxim Uvarov  wrote:
>
>> bootstrap generates a lot of errors, I can reproduce them locally also
>>
>> https://travis-ci.org/nagarahalli/odp/jobs/287783022
>>
>> On 16 October 2017 at 09:21, Maxim Uvarov 
>> wrote:
>>
>>> I will take a look. But please check that you added this 3 commits.
>>>
>>>
>>> c16af648 travis: purge dpdk cache on version change
>>> 3cb45201 travis: build dpdk for general cpu
>>> 73bc4619 travis: temporary turn off dpdk caching
>>>
>>> In general Travis stopped due to no output. You can make tests more
>>> verbose with make check V=1
>>>
>>> But I would start with adding dpdk commits because without them result
>>> was also unclear.
>>>
>>> Maxim.
>>>
>>>
>>> On 16 October 2017 at 06:45, Honnappa Nagarahalli <
>>> honnappa.nagaraha...@linaro.org> wrote:
>>>
 Hi Maxim,
  The test cases validation/api/pktio_run.sh and
 validation/api/pktio_run_tap.sh are failing on Travis for the
 following configurations:

 [image: Inline images 1]

 I am not able to reproduce these issues on my local machine. How do I
 debug these? Is there any more log information that I can get from Travis?

 The merge is available at: https://github.com/nagarah
 alli/odp/tree/2.0-api-next-merge-11Oct2017.

 Thank you,
 Honnappa

>>>
>>>
>>
>
running with pktio_main: 
pktio: using 'loop' device
_ishm.c:881:_odp_ishm_reserve():No huge pages, fall back to normal pages. check: /proc/sys/vm/nr_hugepages.
HW time counter freq: 2494233922 hz

 PKTIO: initialized ipc interface.
 PKTIO: initialized loop interface.
 PKTIO: initialized socket mmsg,use export ODP_PKTIO_DISABLE_SOCKET_MMSG=1 to disable.
 PKTIO: initialized socket mmap, use export ODP_PKTIO_DISABLE_SOCKET_MMAP=1 to disable.
 PKTIO: initialized pcap interface.
	ODP API version: 1.15.0
	ODP implementation name:linux-generic
	ODP implementation version: linux-generic 1.15.0-0 (v1.15.0) 1.15.0.0


 CUnit - A unit testing framework for C - Version 2.1-3
 http://cunit.sourceforge.net/

No interfaces specified, using default "loop".

Suite: Packet I/O Unsegmented
  Test: pktio_test_open ...pktio/socket.c:513:sock_setup_pkt():ioctl(SIOCGIFINDEX): No such device: "nothere".
pktio/socket.c:118:mac_addr_get_fd():ioctl(SIOCGIFHWADDR): No such device: "nothere".
odp_packet_io.c:204:setup_pktio_entry():Unable to init any I/O type.
passed
  Test: pktio_test_lookup ...passed
  Test: pktio_test_index ...passed
  Test: pktio_test_print ... 
pktio
  handle1
  name  loop
  type  loop
  state opened
  mac   02:e9:34:80:73:01
  mtu   2147483647
  promisc   no
  max input queues  1
  max output queues 1
 
passed
  Test: pktio_test_pktio_config ...passed
  Test: pktio_test_info ...pktio 0
  name   loop
  driver loop
passed
  Test: pktio_test_pktin_queue_config_direct ...passed
  Test: pktio_test_pktin_queue_config_sched ...passed
  Test: pktio_test_pktin_queue_config_queue ...passed
  Test: pktio_test_pktout_queue_config ...passed
  Test: pktio_test_plain_queue ...passed
  Test: pktio_test_plain_multi ...passed
  Test: pktio_test_sched_queue ...passed
  Test: pktio_test_sched_multi ...passed
  Test: pktio_test_recv ...passed
  Test: pktio_test_recv_multi ...passed
  Test: pktio_test_recv_queue ...passed
  Test: pktio_test_recv_tmo ...passed
  Test: pktio_test_recv_mq_tmo ...passed
  Test: pktio_test_recv_mtu ...passed
  Test: pktio_test_mtu ... 2147483647 passed
  Test: pktio_test_promisc ...passed
  Test: pktio_test_mac ...testing mac for loop
 2:E9:34:80:73:1 
 mac address set not supported for loop!
passed
  Test: pktio_test_start_stop ...passed
  Test: pktio_test_recv_on_wonly ...passed
  Test: pktio_test_send_on_ronly ...passed
  Test: pktio_test_plain_multi_event ...passed
  Test: pktio_test_sched_multi_event ...passed
  Test: pktio_test_recv_multi_event ...passed
  Test: pktio_test_statistics_counters ...passed
  Test: pktio_test_pktin_ts ...passedNo interfaces specified, using default "loop".

Suite: Packet I/O Segmented
  Test: pktio_test_plain_queue ...passed
  Test: pktio_test_plain_multi ...passed
  Test: pktio_test_sched_queue ...passed
  Test: pktio_test_sched_multi ...passed
  Test: pktio_test_recv ...passed
  Test: pktio_test_recv_multi ...passed
  Test: pktio_test_recv_mtu ...passedNo interfaces specified, using default "loop".

Suite: Packet parser
  Test: parser_test_arp ...passed
  Test: parser_test_ipv4_icmp ...passed
  Test: parser_test_ipv4_tcp 

[lng-odp] [Linaro/odp] 209c3a: .gitignore: ignore only libtool m4 files

2017-10-16 Thread GitHub
  Branch: refs/heads/master
  Home:   https://github.com/Linaro/odp
  Commit: 209c3a2e255de7aa82c4f08f8abb41c04bb3d86d
  
https://github.com/Linaro/odp/commit/209c3a2e255de7aa82c4f08f8abb41c04bb3d86d
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-10-16 (Mon, 16 Oct 2017)

  Changed paths:
M .gitignore

  Log Message:
  ---
  .gitignore: ignore only libtool m4 files

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


  Commit: 7dc5f21c7ca88e6c19d34dc1933eddef190add7a
  
https://github.com/Linaro/odp/commit/7dc5f21c7ca88e6c19d34dc1933eddef190add7a
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-10-16 (Mon, 16 Oct 2017)

  Changed paths:
A m4/odp_openssl.m4
M platform/linux-generic/m4/configure.m4
R platform/linux-generic/m4/odp_openssl.m4

  Log Message:
  ---
  m4: move openssl check to common place

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


  Commit: d0d0bd9787ee43db39ad4e7e9b224e70664d5663
  
https://github.com/Linaro/odp/commit/d0d0bd9787ee43db39ad4e7e9b224e70664d5663
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-10-16 (Mon, 16 Oct 2017)

  Changed paths:
A m4/odp_timer.m4
M platform/linux-generic/m4/configure.m4
R platform/linux-generic/m4/odp_timer.m4

  Log Message:
  ---
  m4: move timer_create check to common place

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


  Commit: e02f5545f97f90a75f2595bb1e9068f64bff133e
  
https://github.com/Linaro/odp/commit/e02f5545f97f90a75f2595bb1e9068f64bff133e
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-10-16 (Mon, 16 Oct 2017)

  Changed paths:
A m4/odp_visibility.m4
M platform/linux-generic/m4/configure.m4

  Log Message:
  ---
  m4: move -fvisibility=hidden check to separate file

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


  Commit: c657f3f3d9b2c5832b42a4344a526bf7d0c76a5d
  
https://github.com/Linaro/odp/commit/c657f3f3d9b2c5832b42a4344a526bf7d0c76a5d
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-10-16 (Mon, 16 Oct 2017)

  Changed paths:
A m4/odp_atomic.m4
M platform/linux-generic/m4/configure.m4

  Log Message:
  ---
  m4: move atomic checks to separate file

While we are at it, run 128bit atomic check only if __int128 is
available for the target platform.

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


  Commit: adaa3b434086346402999d09c2223681aba4b1a4
  
https://github.com/Linaro/odp/commit/adaa3b434086346402999d09c2223681aba4b1a4
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-10-16 (Mon, 16 Oct 2017)

  Changed paths:
M example/l3fwd/Makefile.am
M example/l3fwd/odp_l3fwd.c

  Log Message:
  ---
  example: switch odp_l3fwd from test_debug.h to example_debug.h

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


  Commit: 7d162deafa22535f8fab9ea39dcb4e3e0e7850b0
  
https://github.com/Linaro/odp/commit/7d162deafa22535f8fab9ea39dcb4e3e0e7850b0
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-10-16 (Mon, 16 Oct 2017)

  Changed paths:
M test/common_plat/Makefile.am
M test/common_plat/common/Makefile.am
A test/common_plat/common/run-test.sh
M test/linux-generic/Makefile.am
R test/linux-generic/run-test

  Log Message:
  ---
  test: move run-test script to test_common dir

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


  Commit: 6a119c79b59de3c8ee9e51f3ceba9d26f24c3ce4
  
https://github.com/Linaro/odp/commit/6a119c79b59de3c8ee9e51f3ceba9d26f24c3ce4
  Author: Dmitry Eremin-Solenikov 
  Date:   2017-10-16 (Mon, 16 Oct 2017)

  Changed paths:
M test/common_plat/validation/api/Makefile.am
M test/linux-generic/Makefile.am

  Log Message:
  ---
  test: move common validation tests handling to theirs own Makefile.am

Stop calling common_plat 

[lng-odp] [PATCH v3 2/4] remove coverity variables

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: dfd2ae6b5630b49c12ab2d4579a5e5916777be1f
 **/
 shippable.yml | 21 +
 1 file changed, 1 insertion(+), 20 deletions(-)

diff --git a/shippable.yml b/shippable.yml
index 048803752..a6a373be4 100644
--- a/shippable.yml
+++ b/shippable.yml
@@ -17,26 +17,7 @@ env:
 # - CROSS_ARCH="powerpc"
 # - CROSS_ARCH="i386"
   global:
-# COVERITY_SCAN_TOKEN
-# ** specific to your project **
-# Note:
-# You should have a github account and travis linked travis account.
-# The secure key to be filled below is the 685 character long encrypted
-# token you can find as follow from your coverity dashboard
-# (at https://scan.coverity.com/dashboard):
-# Click on the github project (/odp)
-# Click on "submit build"
-# Click on "Configure Travis CI"
-# Look at the COVERITY_SCAN_TOKEN in the env: global: section
-# of the configuration example.
-# copy the secure: below
-#
-- secure: ""
-#
-# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see
-# for individual commit validation. But you you want to track tests history
-# you need generated new one at https://codecov.io specific for your repo.
-- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11
+- PLACEHOLDER=""
 
 build:
   pre_ci:



[lng-odp] [PATCH v3 1/4] add sample shippable.yml and Dockerfile for Aarch64 builds

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: dfd2ae6b5630b49c12ab2d4579a5e5916777be1f
 **/
 Dockerfile| 23 +
 shippable.yml | 81 +++
 2 files changed, 104 insertions(+)
 create mode 100644 Dockerfile
 create mode 100644 shippable.yml

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0..0a511b09d
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,23 @@
+FROM drydockaarch64/u16:v5.10.1
+
+RUN if $(sudo update-alternatives --list gcc); \
+  then sudo update-alternatives --remove-all gcc; \
+fi
+
+RUN sudo apt-get update && sudo apt-get install -yy \
+  gcc-4.8 \
+  clang-3.8 \
+  automake \
+  autoconf \
+  ccache \
+  graphviz \
+  kmod \
+  libpcap-dev \
+  libssl-dev \
+  libtool \
+  linux-headers-`uname -r` \
+  mscgen \
+  ruby-dev
+
+RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 
+RUN sudo ln -s /usr/bin/clang-3.8 /usr/bin/clang
diff --git a/shippable.yml b/shippable.yml
new file mode 100644
index 0..048803752
--- /dev/null
+++ b/shippable.yml
@@ -0,0 +1,81 @@
+
+language: c
+
+compiler:
+  - gcc
+  - clang
+
+env:
+  matrix:
+- CONF=""
+# - CONF="--disable-abi-compat"
+# - CONF="--enable-schedule-sp"
+# - CONF="--enable-schedule-iquery"
+# - CONF="--enable-dpdk-zero-copy"
+- CROSS_ARCH="arm64"
+# - CROSS_ARCH="armhf" CFLAGS="-march=armv7-a"
+# - CROSS_ARCH="powerpc"
+# - CROSS_ARCH="i386"
+  global:
+# COVERITY_SCAN_TOKEN
+# ** specific to your project **
+# Note:
+# You should have a github account and travis linked travis account.
+# The secure key to be filled below is the 685 character long encrypted
+# token you can find as follow from your coverity dashboard
+# (at https://scan.coverity.com/dashboard):
+# Click on the github project (/odp)
+# Click on "submit build"
+# Click on "Configure Travis CI"
+# Look at the COVERITY_SCAN_TOKEN in the env: global: section
+# of the configuration example.
+# copy the secure: below
+#
+- secure: ""
+#
+# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see
+# for individual commit validation. But you you want to track tests history
+# you need generated new one at https://codecov.io specific for your repo.
+- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11
+
+build:
+  pre_ci:
+# use Dockerfile to install additional CI dependencies
+- docker build -t=odp/dev .
+
+  # use image built in 'pre_ci' for CI job 
+  pre_ci_boot:
+image_name: odp/dev
+image_tag: latest
+pull: false
+options: 
+
+  ci:
+- echo 1000 | sudo tee /proc/sys/vm/nr_hugepages
+- sudo mkdir -p /mnt/huge
+- sudo mount -t hugetlbfs nodev /mnt/huge
+- mkdir -p /dev/shm/odp
+- export CUNIT_VERSION=2.1-3
+- |
+  curl -sSOL 
https://github.com/Linaro/libcunit/releases/download/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2
+  tar -jxf *.bz2
+  pushd CUnit*
+  libtoolize --force --copy
+  aclocal
+  autoheader
+  automake --add-missing --include-deps --copy
+  autoconf
+  ./configure --prefix=$HOME/cunit-install --enable-debug 
--enable-automated --enable-basic --enable-console --enable-examples 
--enable-test || cat config.log
+  make
+  sudo make install
+  popd
+- ./bootstrap
+- export 
PKG_CONFIG_PATH="$HOME/cunit-install/lib/pkgconfig:${PKG_CONFIG_PATH}"
+- export LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH"
+- ./configure --disable-test-perf
+- make
+- sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" 
ODP_SHM_DIR=/dev/shm/odp make check
+
+  post_ci:
+- cat config.log
+- find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec 
echo {} \; -exec cat {} \;



[lng-odp] [PATCH v3 3/4] alphabetize list of installed packages

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: dfd2ae6b5630b49c12ab2d4579a5e5916777be1f
 **/
 Dockerfile | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 0a511b09d..ab879c102 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,18 +5,18 @@ RUN if $(sudo update-alternatives --list gcc); \
 fi
 
 RUN sudo apt-get update && sudo apt-get install -yy \
-  gcc-4.8 \
-  clang-3.8 \
-  automake \
   autoconf \
+  automake \
   ccache \
+  clang-3.8 \
+  gcc-4.8 \
   graphviz \
   kmod \
+  mscgen \
   libpcap-dev \
   libssl-dev \
   libtool \
   linux-headers-`uname -r` \
-  mscgen \
   ruby-dev
 
 RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 



[lng-odp] [PATCH v3 4/4] move Dockerfile to scripts folder

2017-10-16 Thread Github ODP bot
From: Tom Trahan 

---
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: dfd2ae6b5630b49c12ab2d4579a5e5916777be1f
 **/
 Dockerfile => scripts/Dockerfile | 0
 shippable.yml| 2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename Dockerfile => scripts/Dockerfile (100%)

diff --git a/Dockerfile b/scripts/Dockerfile
similarity index 100%
rename from Dockerfile
rename to scripts/Dockerfile
diff --git a/shippable.yml b/shippable.yml
index a6a373be4..9bb00148f 100644
--- a/shippable.yml
+++ b/shippable.yml
@@ -22,7 +22,7 @@ env:
 build:
   pre_ci:
 # use Dockerfile to install additional CI dependencies
-- docker build -t=odp/dev .
+- docker build -t=odp/dev ./scripts
 
   # use image built in 'pre_ci' for CI job 
   pre_ci_boot:



[lng-odp] [PATCH v3 0/4] add sample shippable.yml and Dockerfile for Aarch64 builds

2017-10-16 Thread Github ODP bot
Adds shippable.yml config file for testing ODP builds on Aarch64 hardware using 
Shippable. This CI config also uses a Dockerfile to install additional 
dependencies on top of the standard Shippable Aarch64 image.

github
/** Email created from pull request 231 (ttrahan:master)
 ** https://github.com/Linaro/odp/pull/231
 ** Patch: https://github.com/Linaro/odp/pull/231.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: dfd2ae6b5630b49c12ab2d4579a5e5916777be1f
 **/
/github

checkpatch.pl
WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per 
line)
#16: 
 shippable.yml | 81 +++

ERROR: trailing whitespace
#48: FILE: Dockerfile:22:
+RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 $

ERROR: trailing whitespace
#101: FILE: shippable.yml:46:
+  # use image built in 'pre_ci' for CI job $

ERROR: trailing whitespace
#106: FILE: shippable.yml:51:
+options: $

ERROR: Missing Signed-off-by: line(s)

total: 4 errors, 1 warnings, 0 checks, 104 lines checked

NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or
  scripts/cleanfile


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.
ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 27 lines checked


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

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 22 lines checked


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

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 8 lines checked


to_send-p-003.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] api-next merge with ODP 2.0

2017-10-16 Thread Honnappa Nagarahalli
Dmitry had taken a look at these. He mentioned they can be ignored for now.
Thanks,
Honnappa

On 16 October 2017 at 03:52, Maxim Uvarov  wrote:

> bootstrap generates a lot of errors, I can reproduce them locally also
>
> https://travis-ci.org/nagarahalli/odp/jobs/287783022
>
> On 16 October 2017 at 09:21, Maxim Uvarov  wrote:
>
>> I will take a look. But please check that you added this 3 commits.
>>
>>
>> c16af648 travis: purge dpdk cache on version change
>> 3cb45201 travis: build dpdk for general cpu
>> 73bc4619 travis: temporary turn off dpdk caching
>>
>> In general Travis stopped due to no output. You can make tests more
>> verbose with make check V=1
>>
>> But I would start with adding dpdk commits because without them result
>> was also unclear.
>>
>> Maxim.
>>
>>
>> On 16 October 2017 at 06:45, Honnappa Nagarahalli <
>> honnappa.nagaraha...@linaro.org> wrote:
>>
>>> Hi Maxim,
>>>  The test cases validation/api/pktio_run.sh and
>>> validation/api/pktio_run_tap.sh are failing on Travis for the following
>>> configurations:
>>>
>>> [image: Inline images 1]
>>>
>>> I am not able to reproduce these issues on my local machine. How do I
>>> debug these? Is there any more log information that I can get from Travis?
>>>
>>> The merge is available at: https://github.com/nagarah
>>> alli/odp/tree/2.0-api-next-merge-11Oct2017.
>>>
>>> Thank you,
>>> Honnappa
>>>
>>
>>
>


Re: [lng-odp] api-next merge with ODP 2.0

2017-10-16 Thread Honnappa Nagarahalli
On 16 October 2017 at 01:21, Maxim Uvarov  wrote:

> I will take a look. But please check that you added this 3 commits.
>
>
> c16af648 travis: purge dpdk cache on version change
>
This is not in the merge. The following 2 are in the merge


> 3cb45201 travis: build dpdk for general cpu
> 73bc4619 travis: temporary turn off dpdk caching
>
> In general Travis stopped due to no output. You can make tests more
> verbose with make check V=1
>
> But I would start with adding dpdk commits because without them result was
> also unclear.
>
> Maxim.
>
>
> On 16 October 2017 at 06:45, Honnappa Nagarahalli <
> honnappa.nagaraha...@linaro.org> wrote:
>
>> Hi Maxim,
>>  The test cases validation/api/pktio_run.sh and
>> validation/api/pktio_run_tap.sh are failing on Travis for the following
>> configurations:
>>
>> [image: Inline images 1]
>>
>> I am not able to reproduce these issues on my local machine. How do I
>> debug these? Is there any more log information that I can get from Travis?
>>
>> The merge is available at: https://github.com/nagarah
>> alli/odp/tree/2.0-api-next-merge-11Oct2017.
>>
>> Thank you,
>> Honnappa
>>
>
>


[lng-odp] [PATCH API-NEXT v2 1/1] api: ipsec: return maximum antireplay window size via capability

2017-10-16 Thread Github ODP bot
From: Dmitry Eremin-Solenikov 

Report maximum possible antireplay window size to application. Othersise
it can try requesting arbitrary window sizes not supported by
hardware/implementation.

Signed-off-by: Dmitry Eremin-Solenikov 
---
/** Email created from pull request 230 (lumag:ipsec-rws-cap)
 ** https://github.com/Linaro/odp/pull/230
 ** Patch: https://github.com/Linaro/odp/pull/230.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: aa5389cca5b69f6ad8a339b2ee3bd480c152010f
 **/
 include/odp/api/spec/ipsec.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/include/odp/api/spec/ipsec.h b/include/odp/api/spec/ipsec.h
index 3bd80b266..ddcdf75bb 100644
--- a/include/odp/api/spec/ipsec.h
+++ b/include/odp/api/spec/ipsec.h
@@ -282,6 +282,9 @@ typedef struct odp_ipsec_capability_t {
 *  be used for many SAs. */
uint32_t max_queues;
 
+   /** Maximum anti-replay window size. */
+   uint32_t max_antireplay_ws;
+
/** Supported cipher algorithms */
odp_crypto_cipher_algos_t ciphers;
 



[lng-odp] [PATCH API-NEXT v2 0/1] api: ipsec: return maximum antireplay window size via capability

2017-10-16 Thread Github ODP bot
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsoleni...@linaro.org

github
/** Email created from pull request 230 (lumag:ipsec-rws-cap)
 ** https://github.com/Linaro/odp/pull/230
 ** Patch: https://github.com/Linaro/odp/pull/230.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: aa5389cca5b69f6ad8a339b2ee3bd480c152010f
 **/
/github

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


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


[lng-odp] [PATCH v1 5/5] validation: packet: adjust segmented test packet length

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

Adjust 'segmented_packet_len' so that the test packet pool is able to
allocate at least PACKET_POOL_NUM_SEG possibly segmented test packets.
Several validation tests allocate new packets, so it is not enough to be
able allocate a single segmented packet.

Signed-off-by: Matias Elo 
---
/** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len)
 ** https://github.com/Linaro/odp/pull/233
 ** Patch: https://github.com/Linaro/odp/pull/233.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d
 **/
 test/common_plat/validation/api/packet/packet.c | 29 -
 1 file changed, 24 insertions(+), 5 deletions(-)

diff --git a/test/common_plat/validation/api/packet/packet.c 
b/test/common_plat/validation/api/packet/packet.c
index 641654642..bf8f5f442 100644
--- a/test/common_plat/validation/api/packet/packet.c
+++ b/test/common_plat/validation/api/packet/packet.c
@@ -16,6 +16,11 @@
 #define PACKET_TAILROOM_RESERVE  4
 /* Number of packets in the test packet pool */
 #define PACKET_POOL_NUM 300
+/* Number of large, possibly segmented, test packets */
+#define PACKET_POOL_NUM_SEG 4
+ODP_STATIC_ASSERT(PACKET_POOL_NUM_SEG > 1 &&
+ PACKET_POOL_NUM_SEG < PACKET_POOL_NUM,
+ "Invalid PACKET_POOL_NUM_SEG value");
 
 static odp_pool_t packet_pool, packet_pool_no_uarea, packet_pool_double_uarea;
 static uint32_t packet_len;
@@ -108,11 +113,13 @@ int packet_suite_init(void)
 {
odp_pool_param_t params;
odp_pool_capability_t capa;
+   odp_packet_t pkt_tbl[PACKET_POOL_NUM_SEG];
struct udata_struct *udat;
uint32_t udat_size;
uint8_t data = 0;
uint32_t i;
uint32_t num = PACKET_POOL_NUM;
+   int ret;
 
if (odp_pool_capability() < 0) {
printf("pool_capability failed\n");
@@ -178,14 +185,26 @@ int packet_suite_init(void)
data++;
}
 
-   /* Try to allocate the largest possible packet to see
+   /* Try to allocate PACKET_POOL_NUM_SEG largest possible packets to see
 * if segmentation is supported  */
do {
-   segmented_test_packet = odp_packet_alloc(packet_pool,
-segmented_packet_len);
-   if (segmented_test_packet == ODP_PACKET_INVALID)
+   ret = odp_packet_alloc_multi(packet_pool, segmented_packet_len,
+pkt_tbl, PACKET_POOL_NUM_SEG);
+   if (ret !=  PACKET_POOL_NUM_SEG) {
+   if (ret > 0)
+   odp_packet_free_multi(pkt_tbl, ret);
segmented_packet_len -= capa.pkt.min_seg_len;
-   } while (segmented_test_packet == ODP_PACKET_INVALID);
+   continue;
+   }
+   } while (ret != PACKET_POOL_NUM_SEG &&
+segmented_packet_len > capa.pkt.min_seg_len);
+
+   if (ret != PACKET_POOL_NUM_SEG) {
+   printf("packet alloc failed\n");
+   return -1;
+   }
+   segmented_test_packet = pkt_tbl[0];
+   odp_packet_free_multi(_tbl[1], PACKET_POOL_NUM_SEG - 1);
 
if (odp_packet_is_valid(test_packet) == 0 ||
odp_packet_is_valid(segmented_test_packet) == 0) {



[lng-odp] [PATCH v1 2/5] linux-gen: pool: modify packet pool config defines

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

Use separate defines for the maximum number of segments per packet
(CONFIG_PACKET_MAX_SEGS) and the number of segments stored in a packet
header (CONFIG_PACKET_SEGS_PER_HDR).

A separate define is also added for the maximum packet length.

Signed-off-by: Matias Elo 
---
/** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len)
 ** https://github.com/Linaro/odp/pull/233
 ** Patch: https://github.com/Linaro/odp/pull/233.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d
 **/
 .../linux-generic/include/odp_buffer_internal.h|  6 ++--
 .../linux-generic/include/odp_config_internal.h| 17 -
 .../linux-generic/include/odp_packet_internal.h|  2 +-
 platform/linux-generic/odp_packet.c| 40 +-
 platform/linux-generic/odp_pool.c  |  6 ++--
 5 files changed, 39 insertions(+), 32 deletions(-)

diff --git a/platform/linux-generic/include/odp_buffer_internal.h 
b/platform/linux-generic/include/odp_buffer_internal.h
index 5d40303b3..aefb13527 100644
--- a/platform/linux-generic/include/odp_buffer_internal.h
+++ b/platform/linux-generic/include/odp_buffer_internal.h
@@ -71,7 +71,7 @@ struct odp_buffer_hdr_t {
/* --- 40 bytes --- */
 
/* Segments */
-   seg_entry_t seg[CONFIG_PACKET_MAX_SEGS];
+   seg_entry_t seg[CONFIG_PACKET_SEGS_PER_HDR];
 
/* Burst counts */
uint8_t   burst_num;
@@ -122,8 +122,8 @@ struct odp_buffer_hdr_t {
uint8_t data[0];
 } ODP_ALIGNED_CACHE;
 
-ODP_STATIC_ASSERT(CONFIG_PACKET_MAX_SEGS < 256,
- "CONFIG_PACKET_MAX_SEGS_TOO_LARGE");
+ODP_STATIC_ASSERT(CONFIG_PACKET_SEGS_PER_HDR < 256,
+ "CONFIG_PACKET_SEGS_PER_HDR_TOO_LARGE");
 
 ODP_STATIC_ASSERT(BUFFER_BURST_SIZE < 256, "BUFFER_BURST_SIZE_TOO_LARGE");
 
diff --git a/platform/linux-generic/include/odp_config_internal.h 
b/platform/linux-generic/include/odp_config_internal.h
index a798851fb..598f26e1c 100644
--- a/platform/linux-generic/include/odp_config_internal.h
+++ b/platform/linux-generic/include/odp_config_internal.h
@@ -75,7 +75,22 @@ extern "C" {
 /*
  * Maximum number of segments per packet
  */
-#define CONFIG_PACKET_MAX_SEGS 6
+#define CONFIG_PACKET_MAX_SEGS 255
+
+/*
+ * Packet segmentation disabled
+ */
+#define CONFIG_PACKET_SEG_DISABLED (CONFIG_PACKET_MAX_SEGS == 1)
+
+/*
+ * Number of segments stored in a packet header
+ */
+#define CONFIG_PACKET_SEGS_PER_HDR 6
+
+/*
+ * Maximum packet data length in bytes
+ */
+#define CONFIG_PACKET_MAX_LEN (64 * 1024)
 
 /*
  * Maximum packet segment size including head- and tailrooms
diff --git a/platform/linux-generic/include/odp_packet_internal.h 
b/platform/linux-generic/include/odp_packet_internal.h
index 15cb53f41..97dd533d3 100644
--- a/platform/linux-generic/include/odp_packet_internal.h
+++ b/platform/linux-generic/include/odp_packet_internal.h
@@ -197,7 +197,7 @@ static inline void packet_init(odp_packet_hdr_t *pkt_hdr, 
uint32_t len)
uint32_t seg_len;
int num = pkt_hdr->buf_hdr.segcount;
 
-   if (odp_likely(CONFIG_PACKET_MAX_SEGS == 1 || num == 1)) {
+   if (odp_likely(num == 1)) {
seg_len = len;
pkt_hdr->buf_hdr.seg[0].len = len;
} else {
diff --git a/platform/linux-generic/odp_packet.c 
b/platform/linux-generic/odp_packet.c
index c330c629e..bc71ee166 100644
--- a/platform/linux-generic/odp_packet.c
+++ b/platform/linux-generic/odp_packet.c
@@ -179,10 +179,7 @@ static inline void *packet_seg_data(odp_packet_hdr_t 
*pkt_hdr, uint32_t seg_idx)
 
 static inline uint16_t packet_last_seg(odp_packet_hdr_t *pkt_hdr)
 {
-   if (CONFIG_PACKET_MAX_SEGS == 1)
-   return 0;
-   else
-   return pkt_hdr->buf_hdr.segcount - 1;
+   return pkt_hdr->buf_hdr.segcount - 1;
 }
 
 static inline uint32_t packet_first_seg_len(odp_packet_hdr_t *pkt_hdr)
@@ -291,7 +288,7 @@ static inline void *packet_map(odp_packet_hdr_t *pkt_hdr,
if (odp_unlikely(offset >= pkt_hdr->frame_len))
return NULL;
 
-   if (odp_likely(CONFIG_PACKET_MAX_SEGS == 1 || seg_count == 1)) {
+   if (odp_likely(seg_count == 1)) {
addr = pkt_hdr->buf_hdr.seg[0].data + offset;
len  = pkt_hdr->buf_hdr.seg[0].len - offset;
} else {
@@ -347,7 +344,7 @@ static inline void link_segments(odp_packet_hdr_t 
*pkt_hdr[], int num)
while (1) {
hdr = pkt_hdr[cur];
 
-   for (i = 0; i < CONFIG_PACKET_MAX_SEGS; i++) {
+   for (i = 0; i < CONFIG_PACKET_SEGS_PER_HDR; i++) {
odp_buffer_hdr_t *buf_hdr;
 
buf_hdr = _hdr[cur]->buf_hdr;
@@ -365,7 +362,7 @@ static inline void link_segments(odp_packet_hdr_t 
*pkt_hdr[], int num)
}
}
 
-   hdr->buf_hdr.num_seg  

[lng-odp] [PATCH v1 4/5] linux-gen: pool: select packet pool segment size at runtime

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

Use stored packet pool segment length (pool_t.seg_len) instead of a define.
This enables creating packet pools with different segment sizes.

Signed-off-by: Matias Elo 
---
/** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len)
 ** https://github.com/Linaro/odp/pull/233
 ** Patch: https://github.com/Linaro/odp/pull/233.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d
 **/
 .../linux-generic/include/odp_packet_internal.h|  6 ++--
 platform/linux-generic/odp_packet.c| 33 +++---
 platform/linux-generic/odp_pool.c  | 27 --
 platform/linux-generic/pktio/netmap.c  |  2 +-
 4 files changed, 44 insertions(+), 24 deletions(-)

diff --git a/platform/linux-generic/include/odp_packet_internal.h 
b/platform/linux-generic/include/odp_packet_internal.h
index 97dd533d3..5a050d9b9 100644
--- a/platform/linux-generic/include/odp_packet_internal.h
+++ b/platform/linux-generic/include/odp_packet_internal.h
@@ -194,6 +194,7 @@ static inline seg_entry_t *seg_entry_last(odp_packet_hdr_t 
*hdr)
  */
 static inline void packet_init(odp_packet_hdr_t *pkt_hdr, uint32_t len)
 {
+   pool_t *pool = pool_entry_from_hdl(pkt_hdr->buf_hdr.pool_hdl);
uint32_t seg_len;
int num = pkt_hdr->buf_hdr.segcount;
 
@@ -203,7 +204,7 @@ static inline void packet_init(odp_packet_hdr_t *pkt_hdr, 
uint32_t len)
} else {
seg_entry_t *last;
 
-   seg_len = len - ((num - 1) * CONFIG_PACKET_MAX_SEG_LEN);
+   seg_len = len - ((num - 1) * pool->seg_len);
 
/* Last segment data length */
last  = seg_entry_last(pkt_hdr);
@@ -226,8 +227,7 @@ static inline void packet_init(odp_packet_hdr_t *pkt_hdr, 
uint32_t len)
pkt_hdr->frame_len = len;
pkt_hdr->shared_len = 0;
pkt_hdr->headroom  = CONFIG_PACKET_HEADROOM;
-   pkt_hdr->tailroom  = CONFIG_PACKET_MAX_SEG_LEN - seg_len +
-CONFIG_PACKET_TAILROOM;
+   pkt_hdr->tailroom  = pool->seg_len - seg_len + CONFIG_PACKET_TAILROOM;
 
pkt_hdr->input = ODP_PKTIO_INVALID;
 }
diff --git a/platform/linux-generic/odp_packet.c 
b/platform/linux-generic/odp_packet.c
index ad2fed472..6937a2c77 100644
--- a/platform/linux-generic/odp_packet.c
+++ b/platform/linux-generic/odp_packet.c
@@ -23,9 +23,6 @@
 #include 
 #include 
 
-/* Initial packet segment data length */
-#define BASE_LEN  CONFIG_PACKET_MAX_SEG_LEN
-
 #include 
 
 /* Fill in packet header field offsets for inline functions */
@@ -338,6 +335,7 @@ static inline void link_segments(odp_packet_hdr_t 
*pkt_hdr[], int num)
int cur, i;
odp_packet_hdr_t *hdr;
odp_packet_hdr_t *head = pkt_hdr[0];
+   uint32_t seg_len = pool_entry_from_hdl(head->buf_hdr.pool_hdl)->seg_len;
 
cur = 0;
 
@@ -350,7 +348,7 @@ static inline void link_segments(odp_packet_hdr_t 
*pkt_hdr[], int num)
buf_hdr = _hdr[cur]->buf_hdr;
hdr->buf_hdr.seg[i].hdr  = buf_hdr;
hdr->buf_hdr.seg[i].data = buf_hdr->base_data;
-   hdr->buf_hdr.seg[i].len  = BASE_LEN;
+   hdr->buf_hdr.seg[i].len  = seg_len;
cur++;
 
if (cur == num) {
@@ -370,13 +368,15 @@ static inline void link_segments(odp_packet_hdr_t 
*pkt_hdr[], int num)
 static inline void init_segments(odp_packet_hdr_t *pkt_hdr[], int num)
 {
odp_packet_hdr_t *hdr;
+   uint32_t seg_len;
 
/* First segment is the packet descriptor */
hdr = pkt_hdr[0];
+   seg_len = pool_entry_from_hdl(hdr->buf_hdr.pool_hdl)->seg_len;
 
/* Defaults for single segment packet */
hdr->buf_hdr.seg[0].data = hdr->buf_hdr.base_data;
-   hdr->buf_hdr.seg[0].len  = BASE_LEN;
+   hdr->buf_hdr.seg[0].len  = seg_len;
 
hdr->buf_hdr.segcount = num;
hdr->buf_hdr.num_seg  = 1;
@@ -394,6 +394,7 @@ static inline void reset_seg(odp_packet_hdr_t *pkt_hdr, int 
first, int num)
void *base;
int i;
seg_entry_t *seg;
+   uint32_t seg_len = pool_entry_from_hdl(hdr->buf_hdr.pool_hdl)->seg_len;
uint8_t idx;
 
seg_entry_find_idx(, , first);
@@ -401,27 +402,25 @@ static inline void reset_seg(odp_packet_hdr_t *pkt_hdr, 
int first, int num)
for (i = 0; i < num; i++) {
base = hdr->buf_hdr.base_data;
seg = seg_entry_next(, );
-   seg->len  = BASE_LEN;
+   seg->len  = seg_len;
seg->data = base;
}
 }
 
 /* Calculate the number of segments */
-static inline int num_segments(uint32_t len)
+static inline int num_segments(uint32_t len, uint32_t seg_len)
 {
-   uint32_t max_seg_len;
int num;
 
if 

[lng-odp] [PATCH v1 1/5] linux-gen: pool: combine overlapping struct pool_t members

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

Struct pool_t members 'data_size' and 'max_seg_len' were both used to store
the same value. Replace them with a single 'seg_len' member.

Signed-off-by: Matias Elo 
---
/** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len)
 ** https://github.com/Linaro/odp/pull/233
 ** Patch: https://github.com/Linaro/odp/pull/233.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d
 **/
 platform/linux-generic/include/odp_pool_internal.h |  3 +--
 platform/linux-generic/odp_packet.c|  6 ++---
 platform/linux-generic/odp_pool.c  | 30 ++
 platform/linux-generic/pktio/dpdk.c|  6 ++---
 platform/linux-generic/pktio/socket_mmap.c |  2 +-
 5 files changed, 21 insertions(+), 26 deletions(-)

diff --git a/platform/linux-generic/include/odp_pool_internal.h 
b/platform/linux-generic/include/odp_pool_internal.h
index edf75d6e0..48945ee1d 100644
--- a/platform/linux-generic/include/odp_pool_internal.h
+++ b/platform/linux-generic/include/odp_pool_internal.h
@@ -60,9 +60,8 @@ typedef struct pool_t {
uint32_t align;
uint32_t headroom;
uint32_t tailroom;
-   uint32_t data_size;
+   uint32_t seg_len;
uint32_t max_len;
-   uint32_t max_seg_len;
uint32_t uarea_size;
uint32_t block_size;
uint32_t shm_size;
diff --git a/platform/linux-generic/odp_packet.c 
b/platform/linux-generic/odp_packet.c
index fff01ad9d..c330c629e 100644
--- a/platform/linux-generic/odp_packet.c
+++ b/platform/linux-generic/odp_packet.c
@@ -476,8 +476,8 @@ static inline odp_packet_hdr_t 
*add_segments(odp_packet_hdr_t *pkt_hdr,
if (new_hdr == NULL)
return NULL;
 
-   seg_len = len - ((num - 1) * pool->max_seg_len);
-   offset  = pool->max_seg_len - seg_len;
+   seg_len = len - ((num - 1) * pool->seg_len);
+   offset  = pool->seg_len - seg_len;
 
if (head) {
/* add into the head*/
@@ -906,7 +906,7 @@ int odp_packet_reset(odp_packet_t pkt, uint32_t len)
pool_t *pool = pkt_hdr->buf_hdr.pool_ptr;
int num = pkt_hdr->buf_hdr.segcount;
 
-   if (odp_unlikely(len > (pool->max_seg_len * num)))
+   if (odp_unlikely(len > (pool->seg_len * num)))
return -1;
 
reset_seg(pkt_hdr, 0, num);
diff --git a/platform/linux-generic/odp_pool.c 
b/platform/linux-generic/odp_pool.c
index 40cbb397c..44a40e83e 100644
--- a/platform/linux-generic/odp_pool.c
+++ b/platform/linux-generic/odp_pool.c
@@ -285,7 +285,7 @@ static void init_buffers(pool_t *pool)
 
memset(buf_hdr, 0, (uintptr_t)data - (uintptr_t)buf_hdr);
 
-   seg_size = pool->headroom + pool->data_size + pool->tailroom;
+   seg_size = pool->headroom + pool->seg_len + pool->tailroom;
 
/* Initialize buffer metadata */
buf_hdr->index = i;
@@ -305,13 +305,13 @@ static void init_buffers(pool_t *pool)
/* Pointer to data start (of the first segment) */
buf_hdr->seg[0].hdr   = buf_hdr;
buf_hdr->seg[0].data  = [offset];
-   buf_hdr->seg[0].len   = pool->data_size;
+   buf_hdr->seg[0].len   = pool->seg_len;
 
odp_atomic_init_u32(_hdr->ref_cnt, 0);
 
/* Store base values for fast init */
buf_hdr->base_data = buf_hdr->seg[0].data;
-   buf_hdr->buf_end   = [offset + pool->data_size +
+   buf_hdr->buf_end   = [offset + pool->seg_len +
 pool->tailroom];
 
/* Store buffer index into the global pool */
@@ -341,8 +341,8 @@ static odp_pool_t pool_create(const char *name, 
odp_pool_param_t *params,
pool_t *pool;
uint32_t uarea_size, headroom, tailroom;
odp_shm_t shm;
-   uint32_t data_size, align, num, hdr_size, block_size;
-   uint32_t max_len, max_seg_len;
+   uint32_t seg_len, align, num, hdr_size, block_size;
+   uint32_t max_len;
uint32_t ring_size;
uint32_t num_extra = 0;
int name_len;
@@ -371,15 +371,14 @@ static odp_pool_t pool_create(const char *name, 
odp_pool_param_t *params,
 
headroom= 0;
tailroom= 0;
-   data_size   = 0;
+   seg_len = 0;
max_len = 0;
-   max_seg_len = 0;
uarea_size  = 0;
 
switch (params->type) {
case ODP_POOL_BUFFER:
num  = params->buf.num;
-   data_size = params->buf.size;
+   seg_len = params->buf.size;
break;
 
case ODP_POOL_PACKET:
@@ -387,9 +386,8 @@ static odp_pool_t pool_create(const char *name, 
odp_pool_param_t *params,
tailroom= 

[lng-odp] [PATCH v1 3/5] linux-gen: packet: fix build error with single segment packet header

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

Fix (invalid) gcc error when CONFIG_PACKET_SEGS_PER_HDR is set to one.

Signed-off-by: Matias Elo 
---
/** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len)
 ** https://github.com/Linaro/odp/pull/233
 ** Patch: https://github.com/Linaro/odp/pull/233.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d
 **/
 platform/linux-generic/odp_packet.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/platform/linux-generic/odp_packet.c 
b/platform/linux-generic/odp_packet.c
index bc71ee166..ad2fed472 100644
--- a/platform/linux-generic/odp_packet.c
+++ b/platform/linux-generic/odp_packet.c
@@ -2146,7 +2146,7 @@ odp_packet_t odp_packet_ref(odp_packet_t pkt, uint32_t 
offset)
link_hdr->buf_hdr.seg[0].len  = seg->len  - seg_offset;
buffer_ref_inc(seg->hdr);
 
-   for (i = 1; i < num_copy; i++) {
+   for (i = 1; CONFIG_PACKET_SEGS_PER_HDR > 1 && i < num_copy; i++) {
/* Update link header reference count */
if (idx == 0 && seg_is_link(hdr))
buffer_ref_inc((odp_buffer_hdr_t *)hdr);



[lng-odp] [PATCH API-NEXT v1 7/8] linux-gen: pool: implement max_num info

2017-10-16 Thread Github ODP bot
From: Petri Savolainen 

Implemented max_num info for packet pools.

Signed-off-by: Petri Savolainen 
---
/** Email created from pull request 234 (psavol:next-pool-param)
 ** https://github.com/Linaro/odp/pull/234
 ** Patch: https://github.com/Linaro/odp/pull/234.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
 **/
 platform/linux-generic/odp_pool.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/platform/linux-generic/odp_pool.c 
b/platform/linux-generic/odp_pool.c
index b0b1adafc..b8ab99d98 100644
--- a/platform/linux-generic/odp_pool.c
+++ b/platform/linux-generic/odp_pool.c
@@ -682,6 +682,9 @@ int odp_pool_info(odp_pool_t pool_hdl, odp_pool_info_t 
*info)
info->name = pool->name;
info->params = pool->params;
 
+   if (pool->params.type == ODP_POOL_PACKET)
+   info->pkt.max_num = pool->num;
+
return 0;
 }
 



[lng-odp] [PATCH v1 0/5] linux-gen: pool: select packet pool segment size at runtime

2017-10-16 Thread Github ODP bot
This patch set modifies packet pool implementation to select segment size at 
runtime based on the pool parameters. After this patch set an application is 
able to create multiple packet pools with varying segment sizes.

github
/** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len)
 ** https://github.com/Linaro/odp/pull/233
 ** Patch: https://github.com/Linaro/odp/pull/233.patch
 ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9
 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d
 **/
/github

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


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


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


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


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


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


[lng-odp] [PATCH API-NEXT v1 8/8] validation: pool: add packet info test

2017-10-16 Thread Github ODP bot
From: Petri Savolainen 

Added odp_pool_info() test for packet pools.

Signed-off-by: Petri Savolainen 
---
/** Email created from pull request 234 (psavol:next-pool-param)
 ** https://github.com/Linaro/odp/pull/234
 ** Patch: https://github.com/Linaro/odp/pull/234.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
 **/
 test/common_plat/validation/api/pool/pool.c | 28 
 test/common_plat/validation/api/pool/pool.h |  1 +
 2 files changed, 29 insertions(+)

diff --git a/test/common_plat/validation/api/pool/pool.c 
b/test/common_plat/validation/api/pool/pool.c
index b4c2917b1..2be4f80a1 100644
--- a/test/common_plat/validation/api/pool/pool.c
+++ b/test/common_plat/validation/api/pool/pool.c
@@ -191,12 +191,40 @@ void pool_test_alloc_packet_subparam(void)
CU_ASSERT(odp_pool_destroy(pool) == 0);
 }
 
+void pool_test_info_packet(void)
+{
+   odp_pool_t pool;
+   odp_pool_info_t info;
+   odp_pool_param_t param;
+   const char pool_name[] = "test_pool_name";
+
+   odp_pool_param_init();
+
+   param.type = ODP_POOL_PACKET;
+   param.pkt.num  = PKT_NUM;
+   param.pkt.len  = PKT_LEN;
+
+   pool = odp_pool_create(pool_name, );
+   CU_ASSERT_FATAL(pool != ODP_POOL_INVALID);
+
+   CU_ASSERT_FATAL(odp_pool_info(pool, ) == 0);
+
+   CU_ASSERT(strncmp(pool_name, info.name, sizeof(pool_name)) == 0);
+   CU_ASSERT(info.params.type== ODP_POOL_PACKET);
+   CU_ASSERT(info.params.pkt.num == param.pkt.num);
+   CU_ASSERT(info.params.pkt.len == param.pkt.len);
+   CU_ASSERT(info.pkt.max_num>= param.pkt.num);
+
+   CU_ASSERT(odp_pool_destroy(pool) == 0);
+}
+
 odp_testinfo_t pool_suite[] = {
ODP_TEST_INFO(pool_test_create_destroy_buffer),
ODP_TEST_INFO(pool_test_create_destroy_packet),
ODP_TEST_INFO(pool_test_create_destroy_timeout),
ODP_TEST_INFO(pool_test_alloc_packet),
ODP_TEST_INFO(pool_test_alloc_packet_subparam),
+   ODP_TEST_INFO(pool_test_info_packet),
ODP_TEST_INFO(pool_test_lookup_info_print),
ODP_TEST_INFO_NULL,
 };
diff --git a/test/common_plat/validation/api/pool/pool.h 
b/test/common_plat/validation/api/pool/pool.h
index 3f8f5ebce..b284524e4 100644
--- a/test/common_plat/validation/api/pool/pool.h
+++ b/test/common_plat/validation/api/pool/pool.h
@@ -16,6 +16,7 @@ void pool_test_create_destroy_timeout(void);
 void pool_test_lookup_info_print(void);
 void pool_test_alloc_packet(void);
 void pool_test_alloc_packet_subparam(void);
+void pool_test_info_packet(void);
 
 /* test arrays: */
 extern odp_testinfo_t pool_suite[];



[lng-odp] [PATCH API-NEXT v1 3/8] validation: pool: add subparam test

2017-10-16 Thread Github ODP bot
From: Petri Savolainen 

Test packet pool subparameters when those are supported.

Signed-off-by: Petri Savolainen 
---
/** Email created from pull request 234 (psavol:next-pool-param)
 ** https://github.com/Linaro/odp/pull/234
 ** Patch: https://github.com/Linaro/odp/pull/234.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
 **/
 test/common_plat/validation/api/pool/pool.c | 98 +
 test/common_plat/validation/api/pool/pool.h |  3 +-
 2 files changed, 100 insertions(+), 1 deletion(-)

diff --git a/test/common_plat/validation/api/pool/pool.c 
b/test/common_plat/validation/api/pool/pool.c
index e633137ab..bffb6c2bb 100644
--- a/test/common_plat/validation/api/pool/pool.c
+++ b/test/common_plat/validation/api/pool/pool.c
@@ -10,6 +10,9 @@
 #include "odp_cunit_common.h"
 #include "pool.h"
 
+#define PKT_LEN 400
+#define PKT_NUM 500
+
 static const int default_buffer_size = 1500;
 static const int default_buffer_num = 1000;
 
@@ -96,10 +99,105 @@ void pool_test_lookup_info_print(void)
CU_ASSERT(odp_pool_destroy(pool) == 0);
 }
 
+void pool_test_alloc_packet(void)
+{
+   odp_pool_t pool;
+   odp_pool_param_t param;
+   uint32_t i, num;
+   odp_packet_t pkt[PKT_NUM];
+
+   odp_pool_param_init();
+
+   param.type= ODP_POOL_PACKET,
+   param.pkt.num = PKT_NUM;
+   param.pkt.len = PKT_LEN;
+
+   pool = odp_pool_create(NULL, );
+
+   CU_ASSERT_FATAL(pool != ODP_POOL_INVALID);
+
+   num = 0;
+
+   for (i = 0; i < PKT_NUM; i++) {
+   pkt[num] = odp_packet_alloc(pool, PKT_LEN);
+   CU_ASSERT(pkt[num] != ODP_PACKET_INVALID);
+
+   if (pkt[num] != ODP_PACKET_INVALID)
+   num++;
+   }
+
+   for (i = 0; i < num; i++)
+   odp_packet_free(pkt[i]);
+
+   CU_ASSERT(odp_pool_destroy(pool) == 0);
+}
+
+void pool_test_alloc_packet_subparam(void)
+{
+   odp_pool_t pool;
+   odp_pool_capability_t capa;
+   odp_pool_param_t param;
+   uint32_t i, j, num, num_sub;
+   odp_packet_t pkt[PKT_NUM];
+
+   CU_ASSERT_FATAL(odp_pool_capability() == 0);
+   num_sub = capa.pkt.max_num_sub;
+
+   CU_ASSERT_FATAL(num_sub <= ODP_POOL_MAX_SUBPARAMS);
+
+   odp_pool_param_init();
+
+   param.type= ODP_POOL_PACKET,
+   param.pkt.num = PKT_NUM;
+   param.pkt.len = PKT_LEN;
+   param.pkt.num_sub = num_sub;
+
+   for (i = 0; i < num_sub; i++) {
+   param.pkt.sub[i].num = PKT_NUM;
+   param.pkt.sub[i].len = PKT_LEN + (i * 100);
+   }
+
+   pool = odp_pool_create(NULL, );
+
+   CU_ASSERT_FATAL(pool != ODP_POOL_INVALID);
+
+   num = 0;
+
+   for (i = 0; i < PKT_NUM; i++) {
+   pkt[num] = odp_packet_alloc(pool, PKT_LEN);
+   CU_ASSERT(pkt[num] != ODP_PACKET_INVALID);
+
+   if (pkt[num] != ODP_PACKET_INVALID)
+   num++;
+   }
+
+   for (i = 0; i < num; i++)
+   odp_packet_free(pkt[i]);
+
+   for (j = 0; j < num_sub; j++) {
+   num = 0;
+
+   for (i = 0; i < param.pkt.sub[j].num; i++) {
+   pkt[num] = odp_packet_alloc(pool, param.pkt.sub[j].len);
+   CU_ASSERT(pkt[num] != ODP_PACKET_INVALID);
+
+   if (pkt[num] != ODP_PACKET_INVALID)
+   num++;
+   }
+
+   for (i = 0; i < num; i++)
+   odp_packet_free(pkt[i]);
+   }
+
+   CU_ASSERT(odp_pool_destroy(pool) == 0);
+}
+
 odp_testinfo_t pool_suite[] = {
ODP_TEST_INFO(pool_test_create_destroy_buffer),
ODP_TEST_INFO(pool_test_create_destroy_packet),
ODP_TEST_INFO(pool_test_create_destroy_timeout),
+   ODP_TEST_INFO(pool_test_alloc_packet),
+   ODP_TEST_INFO(pool_test_alloc_packet_subparam),
ODP_TEST_INFO(pool_test_lookup_info_print),
ODP_TEST_INFO_NULL,
 };
diff --git a/test/common_plat/validation/api/pool/pool.h 
b/test/common_plat/validation/api/pool/pool.h
index 29e517633..3f8f5ebce 100644
--- a/test/common_plat/validation/api/pool/pool.h
+++ b/test/common_plat/validation/api/pool/pool.h
@@ -13,8 +13,9 @@
 void pool_test_create_destroy_buffer(void);
 void pool_test_create_destroy_packet(void);
 void pool_test_create_destroy_timeout(void);
-void pool_test_create_destroy_buffer_shm(void);
 void pool_test_lookup_info_print(void);
+void pool_test_alloc_packet(void);
+void pool_test_alloc_packet_subparam(void);
 
 /* test arrays: */
 extern odp_testinfo_t pool_suite[];



[lng-odp] [PATCH API-NEXT v1 5/8] api: pool: remove union from params

2017-10-16 Thread Github ODP bot
From: Petri Savolainen 

Remove anonymous union from pool parameter structure.
Union makes it impossible to initialize parameters per
pool type (use other values than all zeros). This change
is not visible to applications (union was anonymous).

Signed-off-by: Petri Savolainen 
---
/** Email created from pull request 234 (psavol:next-pool-param)
 ** https://github.com/Linaro/odp/pull/234
 ** Patch: https://github.com/Linaro/odp/pull/234.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
 **/
 include/odp/api/spec/pool.h | 215 ++--
 1 file changed, 109 insertions(+), 106 deletions(-)

diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h
index 7c9bee8ee..7b1e2d467 100644
--- a/include/odp/api/spec/pool.h
+++ b/include/odp/api/spec/pool.h
@@ -195,112 +195,115 @@ typedef struct odp_pool_param_t {
/** Pool type */
int type;
 
-   /** Variant parameters for different pool types */
-   union {
-   /** Parameters for buffer pools */
-   struct {
-   /** Number of buffers in the pool */
-   uint32_t num;
-
-   /** Buffer size in bytes. The maximum number of bytes
-   application will store in each buffer. */
-   uint32_t size;
-
-   /** Minimum buffer alignment in bytes. Valid values are
-   powers of two. Use 0 for default alignment.
-   Default will always be a multiple of 8. */
-   uint32_t align;
-   } buf;
-
-   /** Parameters for packet pools */
-   struct {
-   /** Minimum number of 'len' byte packets.
-*
-*  The pool must contain at least this many packets
-*  that are 'len' bytes or smaller. An implementation
-*  may round up the value, as long as the 'max_num'
-*  parameter below is not violated. The maximum value
-*  for this field is defined by pool capability
-*  pkt.max_num.
-*/
-   uint32_t num;
-
-   /** Maximum number of packets.
-*
-*  This is the maximum number of packets of any length
-*  that can be allocated from the pool. The maximum
-*  value is defined by pool capability pkt.max_num.
-*  Use 0 when there's no requirement for the maximum
-*  number of packets. The default value is 0.
-*/
-   uint32_t max_num;
-
-   /** Minimum length of 'num' packets.
-*
-*  The pool must contain at least 'num' packets up to
-*  this packet length (1 ... 'len' bytes). The maximum
-*  value for this field is defined by pool capability
-*  pkt.max_len. Use 0 for default.
-*/
-   uint32_t len;
-
-   /** Maximum packet length that will be allocated from
-   the pool. The maximum value is defined by pool
-   capability pkt.max_len. Use 0 for default (the
-   pool maximum). */
-   uint32_t max_len;
-
-   /** Minimum number of packet data bytes that are stored
-   in the first segment of a packet. The maximum value
-   is defined by pool capability pkt.max_seg_len.
-   Use 0 for default. */
-   uint32_t seg_len;
-
-   /** User area size in bytes. The maximum value is
-   defined by pool capability pkt.max_uarea_size.
-   Specify as 0 if no user area is needed. */
-   uint32_t uarea_size;
-
-   /** Minimum Headroom size in bytes. Each newly allocated
-   packet from the pool must have at least this much
-   headroom. The maximum value is defined by pool
-   capability pkt.max_headroom.
-   Use zero if headroom is not needed. */
-   uint32_t headroom;
-
-   /** Number of subparameters
-*
-*  The number of subparameter table entries used.
-*  The maximum value is defined by pool
-*  capability 

[lng-odp] [PATCH API-NEXT v1 4/8] validation: pool: initialize params correctly

2017-10-16 Thread Github ODP bot
From: Petri Savolainen 

Use odp_pool_param_init() to initialize pool parameters.

Signed-off-by: Petri Savolainen 
---
/** Email created from pull request 234 (psavol:next-pool-param)
 ** https://github.com/Linaro/odp/pull/234
 ** Patch: https://github.com/Linaro/odp/pull/234.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
 **/
 test/common_plat/validation/api/pool/pool.c | 87 ++---
 1 file changed, 43 insertions(+), 44 deletions(-)

diff --git a/test/common_plat/validation/api/pool/pool.c 
b/test/common_plat/validation/api/pool/pool.c
index bffb6c2bb..b4c2917b1 100644
--- a/test/common_plat/validation/api/pool/pool.c
+++ b/test/common_plat/validation/api/pool/pool.c
@@ -16,11 +16,11 @@
 static const int default_buffer_size = 1500;
 static const int default_buffer_num = 1000;
 
-static void pool_create_destroy(odp_pool_param_t *params)
+static void pool_create_destroy(odp_pool_param_t *param)
 {
odp_pool_t pool;
 
-   pool = odp_pool_create(NULL, params);
+   pool = odp_pool_create(NULL, param);
CU_ASSERT_FATAL(pool != ODP_POOL_INVALID);
CU_ASSERT(odp_pool_to_u64(pool) !=
  odp_pool_to_u64(ODP_POOL_INVALID));
@@ -29,42 +29,41 @@ static void pool_create_destroy(odp_pool_param_t *params)
 
 void pool_test_create_destroy_buffer(void)
 {
-   odp_pool_param_t params = {
-   .buf = {
-   .size  = default_buffer_size,
-   .align = ODP_CACHE_LINE_SIZE,
-   .num   = default_buffer_num,
-   },
-   .type = ODP_POOL_BUFFER,
-   };
-
-   pool_create_destroy();
+   odp_pool_param_t param;
+
+   odp_pool_param_init();
+
+   param.type  = ODP_POOL_BUFFER,
+   param.buf.size  = default_buffer_size;
+   param.buf.align = ODP_CACHE_LINE_SIZE;
+   param.buf.num   = default_buffer_num;
+
+   pool_create_destroy();
 }
 
 void pool_test_create_destroy_packet(void)
 {
-   odp_pool_param_t params = {
-   .pkt = {
-   .seg_len = 0,
-   .len = default_buffer_size,
-   .num   = default_buffer_num,
-   },
-   .type = ODP_POOL_PACKET,
-   };
-
-   pool_create_destroy();
+   odp_pool_param_t param;
+
+   odp_pool_param_init();
+
+   param.type= ODP_POOL_PACKET;
+   param.pkt.len = default_buffer_size;
+   param.pkt.num = default_buffer_num;
+
+   pool_create_destroy();
 }
 
 void pool_test_create_destroy_timeout(void)
 {
-   odp_pool_param_t params = {
-   .tmo = {
-   .num   = default_buffer_num,
-   },
-   .type = ODP_POOL_TIMEOUT,
-   };
-
-   pool_create_destroy();
+   odp_pool_param_t param;
+
+   odp_pool_param_init();
+
+   param.type= ODP_POOL_TIMEOUT;
+   param.tmo.num = default_buffer_num;
+
+   pool_create_destroy();
 }
 
 void pool_test_lookup_info_print(void)
@@ -72,16 +71,16 @@ void pool_test_lookup_info_print(void)
odp_pool_t pool;
const char pool_name[] = "pool_for_lookup_test";
odp_pool_info_t info;
-   odp_pool_param_t params = {
-   .buf = {
-   .size  = default_buffer_size,
-   .align = ODP_CACHE_LINE_SIZE,
-   .num  = default_buffer_num,
-   },
-   .type  = ODP_POOL_BUFFER,
-   };
-
-   pool = odp_pool_create(pool_name, );
+   odp_pool_param_t param;
+
+   odp_pool_param_init();
+
+   param.type  = ODP_POOL_BUFFER;
+   param.buf.size  = default_buffer_size;
+   param.buf.align = ODP_CACHE_LINE_SIZE;
+   param.buf.num   = default_buffer_num;
+
+   pool = odp_pool_create(pool_name, );
CU_ASSERT_FATAL(pool != ODP_POOL_INVALID);
 
pool = odp_pool_lookup(pool_name);
@@ -89,10 +88,10 @@ void pool_test_lookup_info_print(void)
 
CU_ASSERT_FATAL(odp_pool_info(pool, ) == 0);
CU_ASSERT(strncmp(pool_name, info.name, sizeof(pool_name)) == 0);
-   CU_ASSERT(params.buf.size <= info.params.buf.size);
-   CU_ASSERT(params.buf.align <= info.params.buf.align);
-   CU_ASSERT(params.buf.num <= info.params.buf.num);
-   CU_ASSERT(params.type == info.params.type);
+   CU_ASSERT(param.buf.size <= info.params.buf.size);
+   CU_ASSERT(param.buf.align <= info.params.buf.align);
+   CU_ASSERT(param.buf.num <= info.params.buf.num);
+   CU_ASSERT(param.type == info.params.type);
 
odp_pool_print(pool);
 



[lng-odp] [PATCH API-NEXT v1 1/8] api: pool: relax packet pool param num

2017-10-16 Thread Github ODP bot
From: Petri Savolainen 

Added packet pool parameter 'max_num', so that 'num' parameter
can be round up by the implementation. Most implementations have
a fixed segment size, and need this flexibility. For example,
when 'len' is larger than the pool segment size, there may be
e.g. 2 x 'num' segments in the poool, and thus it would be
able to allocate 2 x 'num' small packets. When application
needs to limit maximum number of packets on a pool, it can
use the new max_num param for that. Otherwise, it would leave
'max_num' to zero (== no limit).

Signed-off-by: Petri Savolainen 
---
/** Email created from pull request 234 (psavol:next-pool-param)
 ** https://github.com/Linaro/odp/pull/234
 ** Patch: https://github.com/Linaro/odp/pull/234.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
 **/
 include/odp/api/spec/pool.h | 44 +++-
 1 file changed, 31 insertions(+), 13 deletions(-)

diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h
index 221798ee8..f1c8b1158 100644
--- a/include/odp/api/spec/pool.h
+++ b/include/odp/api/spec/pool.h
@@ -164,10 +164,11 @@ int odp_pool_capability(odp_pool_capability_t *capa);
 
 /**
  * Pool parameters
- * Used to communicate pool creation options.
- * @note A single thread may not be able to allocate all 'num' elements
- * from the pool at any particular time, as other threads or hardware
- * blocks are allowed to keep some for caching purposes.
+ *
+ * A note for all pool types: a single thread may not be able to allocate all
+ * 'num' elements from the pool at any particular time, as implementations are
+ * allowed to store some elements (per thread and HW engine) for caching
+ * purposes.
  */
 typedef struct odp_pool_param_t {
/** Pool type */
@@ -192,17 +193,34 @@ typedef struct odp_pool_param_t {
 
/** Parameters for packet pools */
struct {
-   /** The number of packets that the pool must provide
-   that are packet length 'len' bytes or smaller.
-   The maximum value is defined by pool capability
-   pkt.max_num. */
+   /** Minimum number of 'len' byte packets.
+*
+*  The pool must contain at least this many packets
+*  that are 'len' bytes or smaller. An implementation
+*  may round up the value, as long as the 'max_num'
+*  parameter below is not violated. The maximum value
+*  for this field is defined by pool capability
+*  pkt.max_num.
+*/
uint32_t num;
 
-   /** Minimum packet length that the pool must provide
-   'num' packets. The number of packets may be less
-   than 'num' when packets are larger than 'len'.
-   The maximum value is defined by pool capability
-   pkt.max_len. Use 0 for default. */
+   /** Maximum number of packets.
+*
+*  This is the maximum number of packets of any length
+*  that can be allocated from the pool. The maximum
+*  value is defined by pool capability pkt.max_num.
+*  Use 0 when there's no requirement for the maximum
+*  number of packets. The default value is 0.
+*/
+   uint32_t max_num;
+
+   /** Minimum length of 'num' packets.
+*
+*  The pool must contain at least 'num' packets up to
+*  this packet length (1 ... 'len' bytes). The maximum
+*  value for this field is defined by pool capability
+*  pkt.max_len. Use 0 for default.
+*/
uint32_t len;
 
/** Maximum packet length that will be allocated from



[lng-odp] [PATCH API-NEXT v1 6/8] api: pool: add max packet num info

2017-10-16 Thread Github ODP bot
From: Petri Savolainen 

Packet pool parameters does not require application to specify
the maximum number of packet. Application is more portable, if
it does not restrict max_num, but instead uses this info field
after pool creation.

Signed-off-by: Petri Savolainen 
---
/** Email created from pull request 234 (psavol:next-pool-param)
 ** https://github.com/Linaro/odp/pull/234
 ** Patch: https://github.com/Linaro/odp/pull/234.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
 **/
 include/odp/api/spec/pool.h | 21 ++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h
index 7b1e2d467..40834524e 100644
--- a/include/odp/api/spec/pool.h
+++ b/include/odp/api/spec/pool.h
@@ -360,8 +360,24 @@ odp_pool_t odp_pool_lookup(const char *name);
  * Used to get information about a pool.
  */
 typedef struct odp_pool_info_t {
-   const char *name;  /**< pool name */
-   odp_pool_param_t params;   /**< pool parameters */
+   /** Pool name */
+   const char *name;
+
+   /** Copy of pool parameters */
+   odp_pool_param_t params;
+
+   /** Additional info for packet pools */
+   struct {
+   /** Maximum number of packets of any length
+*
+*  This is the maximum number of packets that can be allocated
+*  from the pool at anytime. Application can use this e.g.
+*  to prepare enough per packet contexts.
+*/
+   uint32_t max_num;
+
+   } pkt;
+
 } odp_pool_info_t;
 
 /**
@@ -375,7 +391,6 @@ typedef struct odp_pool_info_t {
  * @retval 0 Success
  * @retval -1 Failure.  Info could not be retrieved.
  */
-
 int odp_pool_info(odp_pool_t pool, odp_pool_info_t *info);
 
 /**



[lng-odp] [PATCH API-NEXT v1 2/8] api: pool: add packet pool subparameters

2017-10-16 Thread Github ODP bot
From: Petri Savolainen 

Additional packet length and number specification gives
more information to implementation about intended packet
length distribution in the pool. This enables e.g. correct
initialization when pool implementation is based on multiple
fixed packet / segment sizes (subpools). The specification
does require subpool implementation but allows it.

Signed-off-by: Petri Savolainen 
---
/** Email created from pull request 234 (psavol:next-pool-param)
 ** https://github.com/Linaro/odp/pull/234
 ** Patch: https://github.com/Linaro/odp/pull/234.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
 **/
 include/odp/api/spec/pool.h | 47 +
 1 file changed, 47 insertions(+)

diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h
index f1c8b1158..7c9bee8ee 100644
--- a/include/odp/api/spec/pool.h
+++ b/include/odp/api/spec/pool.h
@@ -41,6 +41,9 @@ extern "C" {
  * Maximum pool name length in chars including null char
  */
 
+/** Maximum number of packet pool subparameters */
+#define ODP_POOL_MAX_SUBPARAMS  7
+
 /**
  * Pool capabilities
  */
@@ -134,6 +137,12 @@ typedef struct odp_pool_capability_t {
 * The value of zero means that limited only by the available
 * memory size for the pool. */
uint32_t max_uarea_size;
+
+   /** Maximum number of subparameters
+*
+*  Maximum number of packet pool subparameters. Valid range is
+*  0 ... ODP_POOL_MAX_SUBPARAMS. */
+   uint8_t max_num_sub;
} pkt;
 
/** Timeout pool capabilities  */
@@ -163,6 +172,18 @@ typedef struct odp_pool_capability_t {
 int odp_pool_capability(odp_pool_capability_t *capa);
 
 /**
+ * Packet pool subparameters
+ */
+typedef struct odp_pool_pkt_subparam_t {
+   /** Number of 'len' byte packets. */
+   uint32_t num;
+
+   /** Packet length in bytes */
+   uint32_t len;
+
+} odp_pool_pkt_subparam_t;
+
+/**
  * Pool parameters
  *
  * A note for all pool types: a single thread may not be able to allocate all
@@ -246,6 +267,32 @@ typedef struct odp_pool_param_t {
capability pkt.max_headroom.
Use zero if headroom is not needed. */
uint32_t headroom;
+
+   /** Number of subparameters
+*
+*  The number of subparameter table entries used.
+*  The maximum value is defined by pool
+*  capability pkt.max_num_sub. The default value is 0.
+*/
+   uint8_t num_sub;
+
+   /** Subparameter table
+*
+*  Subparameters continue pool configuration with
+*  additional packet length requirements. The first
+*  table entry follows the num/len specification above.
+*  So that, sub[0].len > 'len', and sub[0].num refers
+*  to packet lengths between 'len' + 1 and sub[0].len.
+*  Similarly, sub[1] follows sub[0] specification, and
+*  so on.
+*
+*  Each requirement is supported separately and may be
+*  rounded up, as long as the 'max_num' parameter is
+*  not violated. It's implementation specific if some
+*  requirements are supported simultaneously (e.g.
+*  due to subpool design).
+*/
+   odp_pool_pkt_subparam_t sub[ODP_POOL_MAX_SUBPARAMS];
} pkt;
 
/** Parameters for timeout pools */



[lng-odp] [PATCH API-NEXT v1 0/8] api: pool subparameters

2017-10-16 Thread Github ODP bot
Added packet pool parameters for more fine grained pool
configuration. The basic usage of the parameters is not changed,
except that implementation may now round up 'num' by default.
Application can limit the round up with new 'max_num' parameter.
If application does not limit max_num (but is still interested on
max_num value), it can check the new info.pkt.max_num.
The new specification allows implementation to use sub-pools,
also application is able to request e.g. this kind of pool:
   ^
|

max_num | - - - - - - - -
|
|   *
NUM|   * *
|   * * *
| * * * * *
| * * * * * *
+--->
LEN

github
/** Email created from pull request 234 (psavol:next-pool-param)
 ** https://github.com/Linaro/odp/pull/234
 ** Patch: https://github.com/Linaro/odp/pull/234.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069
 **/
/github

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


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


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


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


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


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


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


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


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


[lng-odp] [PATCH API-NEXT v1 2/3] linux-gen: pktio: tap: implement link status operation

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

Implement link status tap pktio operation.

Signed-off-by: Bogdan Pricope 
---
/** Email created from pull request 232 (bogdanPricope:tap_set_mac_pr)
 ** https://github.com/Linaro/odp/pull/232
 ** Patch: https://github.com/Linaro/odp/pull/232.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 8726d6c7a814c3380aacd18250194eae85ababb3
 **/
 platform/linux-generic/pktio/tap.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/platform/linux-generic/pktio/tap.c 
b/platform/linux-generic/pktio/tap.c
index 8ddd757d9..2fda0b814 100644
--- a/platform/linux-generic/pktio/tap.c
+++ b/platform/linux-generic/pktio/tap.c
@@ -406,6 +406,12 @@ static int tap_mac_addr_get(pktio_entry_t *pktio_entry, 
void *mac_addr)
return ETH_ALEN;
 }
 
+static int tap_link_status(pktio_entry_t *pktio_entry)
+{
+   return link_status_fd(pktio_entry->s.pkt_tap.skfd,
+ pktio_entry->s.name + 4);
+}
+
 static int tap_capability(pktio_entry_t *pktio_entry ODP_UNUSED,
  odp_pktio_capability_t *capa)
 {
@@ -438,6 +444,7 @@ const pktio_if_ops_t tap_pktio_ops = {
.promisc_mode_get = tap_promisc_mode_get,
.mac_get = tap_mac_addr_get,
.mac_set = NULL,
+   .link_status = tap_link_status,
.capability = tap_capability,
.pktin_ts_res = NULL,
.pktin_ts_from_ns = NULL,



[lng-odp] [PATCH API-NEXT v1 0/3] Implement start/stop/link status/MAC set operations of TAP pktio

2017-10-16 Thread Github ODP bot
Implement start/stop/link status/MAC address set operations of TAP interface..

github
/** Email created from pull request 232 (bogdanPricope:tap_set_mac_pr)
 ** https://github.com/Linaro/odp/pull/232
 ** Patch: https://github.com/Linaro/odp/pull/232.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 8726d6c7a814c3380aacd18250194eae85ababb3
 **/
/github

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


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


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


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


[lng-odp] [PATCH API-NEXT v1 3/3] linux-gen: pktio: tap: implement MAC address set operation

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

Implement MAC address set function and set corresponding
capability flag.

Signed-off-by: Bogdan Pricope 
---
/** Email created from pull request 232 (bogdanPricope:tap_set_mac_pr)
 ** https://github.com/Linaro/odp/pull/232
 ** Patch: https://github.com/Linaro/odp/pull/232.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 8726d6c7a814c3380aacd18250194eae85ababb3
 **/
 platform/linux-generic/include/odp_packet_socket.h |  5 +
 platform/linux-generic/pktio/socket.c  | 25 ++
 platform/linux-generic/pktio/tap.c | 13 ++-
 3 files changed, 42 insertions(+), 1 deletion(-)

diff --git a/platform/linux-generic/include/odp_packet_socket.h 
b/platform/linux-generic/include/odp_packet_socket.h
index 0e61f6f0c..a05629ba5 100644
--- a/platform/linux-generic/include/odp_packet_socket.h
+++ b/platform/linux-generic/include/odp_packet_socket.h
@@ -99,6 +99,11 @@ ethaddrs_equal(unsigned char mac_a[], unsigned char mac_b[])
 int mac_addr_get_fd(int fd, const char *name, unsigned char mac_dst[]);
 
 /**
+ * Write the MAC address for a packet socket
+ */
+int mac_addr_set_fd(int fd, const char *name, const unsigned char mac_dst[]);
+
+/**
  * Read the MTU from a packet socket
  */
 uint32_t mtu_get_fd(int fd, const char *name);
diff --git a/platform/linux-generic/pktio/socket.c 
b/platform/linux-generic/pktio/socket.c
index 0a80035f5..447b02b20 100644
--- a/platform/linux-generic/pktio/socket.c
+++ b/platform/linux-generic/pktio/socket.c
@@ -125,6 +125,31 @@ int mac_addr_get_fd(int fd, const char *name, unsigned 
char mac_dst[])
return 0;
 }
 
+/**
+ * ODP_PACKET_TAP:
+ */
+int mac_addr_set_fd(int fd, const char *name, const unsigned char mac_dst[])
+{
+   struct ifreq ethreq;
+   int ret;
+
+   memset(, 0, sizeof(ethreq));
+   snprintf(ethreq.ifr_name, IF_NAMESIZE, "%s", name);
+
+   ethreq.ifr_hwaddr.sa_family = AF_UNIX;
+   memcpy(ethreq.ifr_hwaddr.sa_data, mac_dst, ETH_ALEN);
+
+   ret = ioctl(fd, SIOCSIFHWADDR, );
+   if (ret != 0) {
+   __odp_errno = errno;
+   ODP_ERR("ioctl(SIOCSIFHWADDR): %s: \"%s\".\n", strerror(errno),
+   ethreq.ifr_name);
+   return -1;
+   }
+
+   return 0;
+}
+
 /*
  * ODP_PACKET_SOCKET_MMSG:
  * ODP_PACKET_SOCKET_MMAP:
diff --git a/platform/linux-generic/pktio/tap.c 
b/platform/linux-generic/pktio/tap.c
index 2fda0b814..841631d9b 100644
--- a/platform/linux-generic/pktio/tap.c
+++ b/platform/linux-generic/pktio/tap.c
@@ -412,6 +412,16 @@ static int tap_link_status(pktio_entry_t *pktio_entry)
  pktio_entry->s.name + 4);
 }
 
+static int tap_mac_addr_set(pktio_entry_t *pktio_entry, const void *mac_addr)
+{
+   pkt_tap_t *tap = _entry->s.pkt_tap;
+
+   memcpy(tap->if_mac, mac_addr, ETH_ALEN);
+
+   return mac_addr_set_fd(tap->fd, (char *)pktio_entry->s.name + 4,
+ tap->if_mac);
+}
+
 static int tap_capability(pktio_entry_t *pktio_entry ODP_UNUSED,
  odp_pktio_capability_t *capa)
 {
@@ -420,6 +430,7 @@ static int tap_capability(pktio_entry_t *pktio_entry 
ODP_UNUSED,
capa->max_input_queues  = 1;
capa->max_output_queues = 1;
capa->set_op.op.promisc_mode = 1;
+   capa->set_op.op.mac_addr = 1;
 
odp_pktio_config_init(>config);
capa->config.pktin.bit.ts_all = 1;
@@ -443,7 +454,7 @@ const pktio_if_ops_t tap_pktio_ops = {
.promisc_mode_set = tap_promisc_mode_set,
.promisc_mode_get = tap_promisc_mode_get,
.mac_get = tap_mac_addr_get,
-   .mac_set = NULL,
+   .mac_set = tap_mac_addr_set,
.link_status = tap_link_status,
.capability = tap_capability,
.pktin_ts_res = NULL,



[lng-odp] [PATCH API-NEXT v1 1/3] linux-gen: pktio: tap: implement start/stop operations

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

Implement start/stop tap pktio operations.

Signed-off-by: Bogdan Pricope 
---
/** Email created from pull request 232 (bogdanPricope:tap_set_mac_pr)
 ** https://github.com/Linaro/odp/pull/232
 ** Patch: https://github.com/Linaro/odp/pull/232.patch
 ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
 ** Merge commit sha: 8726d6c7a814c3380aacd18250194eae85ababb3
 **/
 platform/linux-generic/pktio/tap.c | 72 +++---
 1 file changed, 59 insertions(+), 13 deletions(-)

diff --git a/platform/linux-generic/pktio/tap.c 
b/platform/linux-generic/pktio/tap.c
index ed4479445..8ddd757d9 100644
--- a/platform/linux-generic/pktio/tap.c
+++ b/platform/linux-generic/pktio/tap.c
@@ -134,8 +134,30 @@ static int tap_pktio_open(odp_pktio_t id ODP_UNUSED,
goto sock_err;
}
 
-   /* Up interface by default. */
-   if (ioctl(skfd, SIOCGIFFLAGS, ) < 0) {
+   tap->fd = fd;
+   tap->skfd = skfd;
+   tap->mtu = mtu;
+   tap->pool = pool;
+   return 0;
+sock_err:
+   close(skfd);
+tap_err:
+   close(fd);
+   ODP_ERR("Tap device alloc failed.\n");
+   return -1;
+}
+
+static int tap_pktio_start(pktio_entry_t *pktio_entry)
+{
+   struct ifreq ifr;
+   pkt_tap_t *tap = _entry->s.pkt_tap;
+
+   odp_memset(, 0, sizeof(ifr));
+   snprintf(ifr.ifr_name, IF_NAMESIZE, "%s",
+(char *)pktio_entry->s.name + 4);
+
+   /* Up interface by default. */
+   if (ioctl(tap->skfd, SIOCGIFFLAGS, ) < 0) {
__odp_errno = errno;
ODP_ERR("ioctl(SIOCGIFFLAGS) failed: %s\n", strerror(errno));
goto sock_err;
@@ -144,22 +166,46 @@ static int tap_pktio_open(odp_pktio_t id ODP_UNUSED,
ifr.ifr_flags |= IFF_UP;
ifr.ifr_flags |= IFF_RUNNING;
 
-   if (ioctl(skfd, SIOCSIFFLAGS, ) < 0) {
+   if (ioctl(tap->skfd, SIOCSIFFLAGS, ) < 0) {
__odp_errno = errno;
ODP_ERR("failed to come up: %s\n", strerror(errno));
goto sock_err;
}
 
-   tap->fd = fd;
-   tap->skfd = skfd;
-   tap->mtu = mtu;
-   tap->pool = pool;
return 0;
 sock_err:
-   close(skfd);
-tap_err:
-   close(fd);
-   ODP_ERR("Tap device alloc failed.\n");
+   ODP_ERR("Tap device open failed.\n");
+   return -1;
+}
+
+static int tap_pktio_stop(pktio_entry_t *pktio_entry)
+{
+   struct ifreq ifr;
+   pkt_tap_t *tap = _entry->s.pkt_tap;
+
+   odp_memset(, 0, sizeof(ifr));
+   snprintf(ifr.ifr_name, IF_NAMESIZE, "%s",
+(char *)pktio_entry->s.name + 4);
+
+   /* Up interface by default. */
+   if (ioctl(tap->skfd, SIOCGIFFLAGS, ) < 0) {
+   __odp_errno = errno;
+   ODP_ERR("ioctl(SIOCGIFFLAGS) failed: %s\n", strerror(errno));
+   goto sock_err;
+   }
+
+   ifr.ifr_flags &= ~IFF_UP;
+   ifr.ifr_flags &= ~IFF_RUNNING;
+
+   if (ioctl(tap->skfd, SIOCSIFFLAGS, ) < 0) {
+   __odp_errno = errno;
+   ODP_ERR("failed to come up: %s\n", strerror(errno));
+   goto sock_err;
+   }
+
+   return 0;
+sock_err:
+   ODP_ERR("Tap device open failed.\n");
return -1;
 }
 
@@ -383,8 +429,8 @@ const pktio_if_ops_t tap_pktio_ops = {
.term = NULL,
.open = tap_pktio_open,
.close = tap_pktio_close,
-   .start = NULL,
-   .stop = NULL,
+   .start = tap_pktio_start,
+   .stop = tap_pktio_stop,
.recv = tap_pktio_recv,
.send = tap_pktio_send,
.mtu_get = tap_mtu_get,



[lng-odp] [Bug 3337] ./test/linux-generic/run-test is not used

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

Dmitry Eremin-Solenikov  changed:

   What|Removed |Added

 CC||dmitry.ereminsolenikov@lina
   ||ro.org

--- Comment #1 from Dmitry Eremin-Solenikov  
---
run-test should not be used while running `make check'. It is used only during
`make installcheck'.
IIRC, `V=1' does not change `make check' behaviour. That is by design of
Automake's test drivers.

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

Re: [lng-odp] [PATCH v1] add sample shippable.yml and Dockerfile for Aarch64 builds

2017-10-16 Thread Github ODP bot
muvarov replied on github web page:

shippable.yml
line 19
@@ -0,0 +1,81 @@
+
+language: c
+
+compiler:
+  - gcc
+  - clang
+
+env:
+  matrix:
+- CONF=""
+# - CONF="--disable-abi-compat"
+# - CONF="--enable-schedule-sp"
+# - CONF="--enable-schedule-iquery"
+# - CONF="--enable-dpdk-zero-copy"
+- CROSS_ARCH="arm64"
+# - CROSS_ARCH="armhf" CFLAGS="-march=armv7-a"
+# - CROSS_ARCH="powerpc"
+# - CROSS_ARCH="i386"
+  global:


Comment:
Coverity I also thing should go away. This script does not send results to 
Coverity.

> muvarov wrote
> this needs to be alphabetic sorted.


https://github.com/Linaro/odp/pull/231#discussion_r144815223
updated_at 2017-10-16 10:59:50


Re: [lng-odp] [PATCH v1] add sample shippable.yml and Dockerfile for Aarch64 builds

2017-10-16 Thread Github ODP bot
muvarov replied on github web page:

Dockerfile
line 8
@@ -0,0 +1,23 @@
+FROM drydockaarch64/u16:v5.10.1
+
+RUN if $(sudo update-alternatives --list gcc); \
+  then sudo update-alternatives --remove-all gcc; \
+fi
+
+RUN sudo apt-get update && sudo apt-get install -yy \
+  gcc-4.8 \


Comment:
this needs to be alphabetic sorted.

https://github.com/Linaro/odp/pull/231#discussion_r144815055
updated_at 2017-10-16 10:59:50


[lng-odp] [Bug 3337] New: ./test/linux-generic/run-test is not used

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

Bug ID: 3337
   Summary: ./test/linux-generic/run-test is not used
   Product: OpenDataPlane - linux- generic reference
   Version: v1.15.0.0
  Hardware: Other
OS: Linux
Status: UNCONFIRMED
  Severity: enhancement
  Priority: ---
 Component: Build system
  Assignee: maxim.uva...@linaro.org
  Reporter: maxim.uva...@linaro.org
CC: lng-odp@lists.linaro.org
  Target Milestone: ---

make check V=1

does not produce any verbose test runs.

Looks like it's caused by wrong LOG_COMPILER usage in autoconf.
File ./test/linux-generic/run-test is not used while doing make check.

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

Re: [lng-odp] api-next merge with ODP 2.0

2017-10-16 Thread Maxim Uvarov
bootstrap generates a lot of errors, I can reproduce them locally also

https://travis-ci.org/nagarahalli/odp/jobs/287783022

On 16 October 2017 at 09:21, Maxim Uvarov  wrote:

> I will take a look. But please check that you added this 3 commits.
>
>
> c16af648 travis: purge dpdk cache on version change
> 3cb45201 travis: build dpdk for general cpu
> 73bc4619 travis: temporary turn off dpdk caching
>
> In general Travis stopped due to no output. You can make tests more
> verbose with make check V=1
>
> But I would start with adding dpdk commits because without them result was
> also unclear.
>
> Maxim.
>
>
> On 16 October 2017 at 06:45, Honnappa Nagarahalli <
> honnappa.nagaraha...@linaro.org> wrote:
>
>> Hi Maxim,
>>  The test cases validation/api/pktio_run.sh and
>> validation/api/pktio_run_tap.sh are failing on Travis for the following
>> configurations:
>>
>> [image: Inline images 1]
>>
>> I am not able to reproduce these issues on my local machine. How do I
>> debug these? Is there any more log information that I can get from Travis?
>>
>> The merge is available at: https://github.com/nagarah
>> alli/odp/tree/2.0-api-next-merge-11Oct2017.
>>
>> Thank you,
>> Honnappa
>>
>
>


Re: [lng-odp] [PATCH API-NEXT v1 1/1] api: ipsec: return maximum antireplay window size via capability

2017-10-16 Thread Savolainen, Petri (Nokia - FI/Espoo)
Git log entry is missing. Update with some rationale why this change is needed.

-Petri

> -Original Message-
> From: lng-odp [mailto:lng-odp-boun...@lists.linaro.org] On Behalf Of
> Github ODP bot
> Sent: Sunday, October 15, 2017 9:00 AM
> To: lng-odp@lists.linaro.org
> Subject: [lng-odp] [PATCH API-NEXT v1 1/1] api: ipsec: return maximum
> antireplay window size via capability
> 
> From: Dmitry Eremin-Solenikov 
> 
> Signed-off-by: Dmitry Eremin-Solenikov 
> ---
> /** Email created from pull request 230 (lumag:ipsec-rws-cap)
>  ** https://github.com/Linaro/odp/pull/230
>  ** Patch: https://github.com/Linaro/odp/pull/230.patch
>  ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf
>  ** Merge commit sha: bb52bccf08a68ec2e1c3988539a0295d79ebd5bd
>  **/
>  include/odp/api/spec/ipsec.h | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/include/odp/api/spec/ipsec.h b/include/odp/api/spec/ipsec.h
> index 3bd80b266..ddcdf75bb 100644
> --- a/include/odp/api/spec/ipsec.h
> +++ b/include/odp/api/spec/ipsec.h
> @@ -282,6 +282,9 @@ typedef struct odp_ipsec_capability_t {
>*  be used for many SAs. */
>   uint32_t max_queues;
> 
> + /** Maximum anti-replay window size. */
> + uint32_t max_antireplay_ws;
> +
>   /** Supported cipher algorithms */
>   odp_crypto_cipher_algos_t ciphers;
> 



Re: [lng-odp] api-next merge with ODP 2.0

2017-10-16 Thread Maxim Uvarov
I will take a look. But please check that you added this 3 commits.


c16af648 travis: purge dpdk cache on version change
3cb45201 travis: build dpdk for general cpu
73bc4619 travis: temporary turn off dpdk caching

In general Travis stopped due to no output. You can make tests more verbose
with make check V=1

But I would start with adding dpdk commits because without them result was
also unclear.

Maxim.


On 16 October 2017 at 06:45, Honnappa Nagarahalli <
honnappa.nagaraha...@linaro.org> wrote:

> Hi Maxim,
>  The test cases validation/api/pktio_run.sh and
> validation/api/pktio_run_tap.sh are failing on Travis for the following
> configurations:
>
> [image: Inline images 1]
>
> I am not able to reproduce these issues on my local machine. How do I
> debug these? Is there any more log information that I can get from Travis?
>
> The merge is available at: https://github.com/
> nagarahalli/odp/tree/2.0-api-next-merge-11Oct2017.
>
> Thank you,
> Honnappa
>