Re: [lng-odp] [PATCH] linux-generic: timer: add missing queue header

2014-12-30 Thread Maxim Uvarov

Merged,

Maxim.

On 12/29/2014 07:53 PM, Taras Kondratiuk wrote:

Timer code uses queue API but doesn't include header. The header is
included indirectly from another header just by chance.

Signed-off-by: Taras Kondratiuk 
---
  platform/linux-generic/odp_timer.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/platform/linux-generic/odp_timer.c 
b/platform/linux-generic/odp_timer.c
index 7bd6874..65b44b9 100644
--- a/platform/linux-generic/odp_timer.c
+++ b/platform/linux-generic/odp_timer.c
@@ -14,6 +14,7 @@
  #include 
  #include 
  #include 
+#include 
  
  #include 

  #include 



___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH] validation: thread: add thread tests

2014-12-30 Thread Jerin Jacob
On Mon, Dec 29, 2014 at 09:24:01PM -0500, Mike Holmes wrote:
> Add tests for odp_thread_core and odp_thread_id
> 
> Signed-off-by: Mike Holmes 
> ---
>  test/validation/.gitignore   |  1 +
>  test/validation/Makefile.am  |  5 +++--
>  test/validation/odp_thread.c | 47 
> 
>  3 files changed, 51 insertions(+), 2 deletions(-)
>  create mode 100644 test/validation/odp_thread.c
> 
> diff --git a/test/validation/.gitignore b/test/validation/.gitignore
> index d08db73..5b80834 100644
> --- a/test/validation/.gitignore
> +++ b/test/validation/.gitignore
> @@ -8,3 +8,4 @@ odp_shm
>  odp_system
>  odp_pktio
>  odp_buffer
> +odp_thread
> diff --git a/test/validation/Makefile.am b/test/validation/Makefile.am
> index c0545b7..d52fbdb 100644
> --- a/test/validation/Makefile.am
> +++ b/test/validation/Makefile.am
> @@ -6,9 +6,9 @@ AM_LDFLAGS += -static
>  TESTS_ENVIRONMENT = ODP_PLATFORM=${with_platform}
>  
>  if ODP_CUNIT_ENABLED
> -TESTS = odp_init odp_queue odp_crypto odp_shm odp_schedule odp_pktio_run 
> odp_buffer odp_system
> +TESTS = odp_init odp_queue odp_crypto odp_shm odp_schedule odp_pktio_run 
> odp_buffer odp_system odp_thread
>  check_PROGRAMS = ${bin_PROGRAMS}
> -bin_PROGRAMS = odp_init odp_queue odp_crypto odp_shm odp_schedule odp_pktio 
> odp_buffer odp_system
> +bin_PROGRAMS = odp_init odp_queue odp_crypto odp_shm odp_schedule odp_pktio 
> odp_buffer odp_system odp_thread
>  odp_crypto_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/crypto
>  odp_buffer_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/buffer
>  endif
> @@ -27,3 +27,4 @@ dist_odp_buffer_SOURCES = buffer/odp_buffer_pool_test.c \
> buffer/odp_packet_test.c \
> odp_buffer.c common/odp_cunit_common.c
>  dist_odp_system_SOURCES = odp_system.c common/odp_cunit_common.c
> +dist_odp_thread_SOURCES = odp_thread.c common/odp_cunit_common.c
> diff --git a/test/validation/odp_thread.c b/test/validation/odp_thread.c
> new file mode 100644
> index 000..1c03b16
> --- /dev/null
> +++ b/test/validation/odp_thread.c
> @@ -0,0 +1,47 @@
> +/* Copyright (c) 2014, Linaro Limited
> + * All rights reserved.
> + *
> + * SPDX-License-Identifier: BSD-3-Clause
> + */
> +
> +#include 
> +#include 
> +
> +static void *run_thread_id_core(void *arg)
> +{
> + int thr, core;
> + pthrd_arg *thrdarg = arg;
> +
> + thr = odp_thread_id();
> + core = odp_thread_core();
> +
> + /* cores start from 0 */
> + CU_ASSERT((core >= 0) && (core <= thrdarg->numthrds-1));

thrdarg is pointing to the stack(allocated in test_odp_thread_id_core()). Use 
odp shared mem
to share the data between the cores or in this case, 
odp_sys_core_count()/MAX_WORKERS can
be use here to find thrdarg->numthrds in run_thread_id_core()

> + /* threads start from 1 */
> + CU_ASSERT((thr >= 1) && (core <= thrdarg->numthrds));

Is there any specific reason why thread id has to be start from one(Why not 
zero)?

> + return arg;
> +}
> +
> +static void test_odp_thread_id_core(void)
> +{
> + pthrd_arg thrdarg;
> +
> + thrdarg.numthrds = odp_sys_core_count();
> +
> + if (thrdarg.numthrds > MAX_WORKERS)
> + thrdarg.numthrds = MAX_WORKERS;
> +
> + odp_cunit_thread_create(run_thread_id_core, &thrdarg);
> + odp_cunit_thread_exit(&thrdarg);
> +}
> +
> +CU_TestInfo test_odp_thread[] = {
> + {"id & core range",  test_odp_thread_id_core},
> + CU_TEST_INFO_NULL,
> +};
> +
> +CU_SuiteInfo odp_testsuites[] = {
> + {"Thread", NULL, NULL, NULL, NULL, test_odp_thread},
> + CU_SUITE_INFO_NULL,
> +};
> +
> -- 
> 2.1.0
> 
> 
> ___
> lng-odp mailing list
> lng-odp@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/lng-odp

___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


[lng-odp] [PATCH] doc: doxygen.cfg: remove odp_example

2014-12-30 Thread Mike Holmes
odp_example has been moved to test/performance and is no longer an
example

Signed-off-by: Mike Holmes 
---
 doc/doxygen.cfg | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/doxygen.cfg b/doc/doxygen.cfg
index 050c94a..ff7c278 100644
--- a/doc/doxygen.cfg
+++ b/doc/doxygen.cfg
@@ -10,7 +10,7 @@ TYPEDEF_HIDES_STRUCT = YES
 EXTRACT_STATIC = YES
 SORT_MEMBER_DOCS = NO
 WARN_NO_PARAMDOC = YES
-INPUT = $(SRCDIR)/doc $(SRCDIR)/doc/users-guide $(DOCDIR)/api_headers 
$(SRCDIR)/helper/include $(SRCDIR)/example/packet $(SRCDIR)/example/l2fwd 
$(SRCDIR)/example/generator $(SRCDIR)/example/odp_example 
$(SRCDIR)/example/timer
+INPUT = $(SRCDIR)/doc $(SRCDIR)/doc/users-guide $(DOCDIR)/api_headers 
$(SRCDIR)/helper/include $(SRCDIR)/example/packet $(SRCDIR)/example/l2fwd 
$(SRCDIR)/example/generator $(SRCDIR)/example/timer
 FILE_PATTERNS = odp*.h odp*.c *.dox
 RECURSIVE = YES
 SOURCE_BROWSER = YES
-- 
2.1.0


___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH] validation: thread: add thread tests

2014-12-30 Thread Maxim Uvarov

On 12/30/2014 05:45 PM, Mike Holmes wrote:
The docs only list those two APIs but I checked and I would end up 
cutting and pasting the odph code etc to not really test any more of 
the ODP API


see http://docs.opendataplane.org/odp/html/group__odp__thread.html


Ok, there are only 2 functions. I think it's ok to use helpers to test them.

Maxim.

On 30 December 2014 at 07:07, Mike Holmes > wrote:




On 30 December 2014 at 04:55, Maxim Uvarov
mailto:maxim.uva...@linaro.org>> wrote:

On 12/30/2014 05:24 AM, Mike Holmes wrote:

+  odp_cunit_thread_create(run_thread_id_core, &thrdarg);
+   odp_cunit_thread_exit(&thrdarg);

That looks like you test some cuinit functions. Might be test
for real API is more appropriate here.


These ones were my focus because the core API has 0 coverage at
this time.
I was trying to keep it simple to just add  the get id and get
core apis  but I could cut and paste the complete threads here.


Maxim.

___
lng-odp mailing list
lng-odp@lists.linaro.org 
http://lists.linaro.org/mailman/listinfo/lng-odp




-- 
*Mike Holmes*

Linaro  Sr Technical Manager
LNG - ODP




--
*Mike Holmes*
Linaro  Sr Technical Manager
LNG - ODP



___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


[lng-odp] UberConference Reminder

2014-12-30 Thread UberConference
UberConference Reminder___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH] validation: thread: add thread tests

2014-12-30 Thread Mike Holmes
The docs only list those two APIs but I checked and I would end up cutting
and pasting the odph code etc to not really test any more of the ODP API

see http://docs.opendataplane.org/odp/html/group__odp__thread.html

On 30 December 2014 at 07:07, Mike Holmes  wrote:

>
>
> On 30 December 2014 at 04:55, Maxim Uvarov 
> wrote:
>
>> On 12/30/2014 05:24 AM, Mike Holmes wrote:
>>
>>> +   odp_cunit_thread_create(run_thread_id_core, &thrdarg);
>>> +   odp_cunit_thread_exit(&thrdarg);
>>>
>> That looks like you test some cuinit functions. Might be test for real
>> API is more appropriate here.
>>
>
> These ones were my focus because the core API has 0 coverage at this time.
> I was trying to keep it simple to just add  the get id and get core apis
>  but I could cut and paste the complete threads here.
>
>
>>
>> Maxim.
>>
>> ___
>> lng-odp mailing list
>> lng-odp@lists.linaro.org
>> http://lists.linaro.org/mailman/listinfo/lng-odp
>>
>
>
>
> --
> *Mike Holmes*
> Linaro  Sr Technical Manager
> LNG - ODP
>



-- 
*Mike Holmes*
Linaro  Sr Technical Manager
LNG - ODP
___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


[lng-odp] [PATCH] configure.ac: performance: add tests to unit

2014-12-30 Thread Mike Holmes
Allow the test/performance directory to be optionally included when make
check is run

Signed-off-by: Mike Holmes 
---
 configure.ac | 17 +
 test/performance/.gitignore  |  2 ++
 test/performance/Makefile.am |  4 
 3 files changed, 23 insertions(+)

diff --git a/configure.ac b/configure.ac
index f0ce7e0..30bd4de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -104,6 +104,22 @@ AC_ARG_ENABLE([debug],
 ODP_CFLAGS="$ODP_CFLAGS -DODP_DEBUG=$ODP_DEBUG"
 
 ##
+# Enable/disable unit-perf
+##
+if test x$cunit_support = xyes
+then
+AC_ARG_ENABLE([unit-perf],
+[  --enable-unit-perf  Enable/disable unit-perf],
+[if test "x$enableval" = "xyes"; then
+unit_perf=yes
+fi])
+else
+unit_perf=no
+fi
+
+AM_CONDITIONAL([unit_perf], [test x$unit_perf = xyes ])
+
+##
 # Check for pthreads availability
 ##
 
@@ -243,4 +259,5 @@ AC_MSG_RESULT([
am_ldflags: ${AM_LDFLAGS}
libs:   ${LIBS}
cunit:  ${cunit_support}
+   unit_perf:  ${unit_perf}
 ])
diff --git a/test/performance/.gitignore b/test/performance/.gitignore
index a229e10..9ccb102 100644
--- a/test/performance/.gitignore
+++ b/test/performance/.gitignore
@@ -1 +1,3 @@
+*.log
+*.trs
 odp_scheduling
diff --git a/test/performance/Makefile.am b/test/performance/Makefile.am
index 359c4f0..a4afd36 100644
--- a/test/performance/Makefile.am
+++ b/test/performance/Makefile.am
@@ -1,5 +1,9 @@
 include $(top_srcdir)/test/Makefile.inc
 
+if unit_perf
+TESTS = odp_scheduling
+endif
+
 bin_PROGRAMS = odp_scheduling
 odp_scheduling_LDFLAGS = $(AM_LDFLAGS) -static
 odp_scheduling_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/test
-- 
2.1.0


___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH] configure.ac: align help text

2014-12-30 Thread Maxim Uvarov

On 12/30/2014 03:56 PM, Mike Holmes wrote:
The changes are consistent in the file, I converted them to tabs but I 
still have to add spaces to get the correct alignment, so my feeling 
is that whitespace is the best way to get the output aligned.


Ok.
Reviewed-by: Maxim Uvarov 




On 30 December 2014 at 07:03, Mike Holmes > wrote:




On 30 December 2014 at 04:40, Maxim Uvarov
mailto:maxim.uva...@linaro.org>> wrote:

Should we use here tabs instead of whitespaces?


I will look to see if they are all consistent


Maxim.


On 12/29/2014 08:51 PM, Mike Holmes wrote:

The help text is not formatted into columns correctly, fix it.

Signed-off-by: Mike Holmes mailto:mike.hol...@linaro.org>>
---
configure.ac  | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac 
b/configure.ac 
index f0ce7e0..0c4ef3e 100644
--- a/configure.ac 
+++ b/configure.ac 
@@ -65,7 +65,7 @@ AM_CONDITIONAL([SDK_INSTALL_PATH_],
[test "x${SDK_INSTALL_PATH_}" = "x1"])
  # Enable/disable Unit tests
 
##

  AC_ARG_ENABLE([cunit],
-[  --enable-cunit  Enable/disable cunit],
+[  --enable-cunit Enable/disable cunit],
  [if test x$enableval = xyes; then
  cunit_support=yes
  fi])
@@ -86,7 +86,7 @@ AC_HELP_STRING([--with-cunit-path=DIR
Path to Cunit libs and headers],
 
##

  ODP_DEBUG_PRINT=1
  AC_ARG_ENABLE([debug-print],
-[  --enable-debug-print  Enable/disable debug print],
+[  --enable-debug-print Enable/disable debug print],
  [if ! test "x$enableval" = "xyes"; then
  ODP_DEBUG_PRINT=0
  fi])



___
lng-odp mailing list
lng-odp@lists.linaro.org 
http://lists.linaro.org/mailman/listinfo/lng-odp




-- 
*Mike Holmes*

Linaro  Sr Technical Manager
LNG - ODP




--
*Mike Holmes*
Linaro  Sr Technical Manager
LNG - ODP



___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH] configure.ac: align help text

2014-12-30 Thread Mike Holmes
The changes are consistent in the file, I converted them to tabs but I
still have to add spaces to get the correct alignment, so my feeling is
that whitespace is the best way to get the output aligned.

On 30 December 2014 at 07:03, Mike Holmes  wrote:

>
>
> On 30 December 2014 at 04:40, Maxim Uvarov 
> wrote:
>
>> Should we use here tabs instead of whitespaces?
>>
>
> I will look to see if they are all consistent
>
>
>>
>> Maxim.
>>
>>
>> On 12/29/2014 08:51 PM, Mike Holmes wrote:
>>
>>> The help text is not formatted into columns correctly, fix it.
>>>
>>> Signed-off-by: Mike Holmes 
>>> ---
>>>   configure.ac | 4 ++--
>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/configure.ac b/configure.ac
>>> index f0ce7e0..0c4ef3e 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -65,7 +65,7 @@ AM_CONDITIONAL([SDK_INSTALL_PATH_], [test
>>> "x${SDK_INSTALL_PATH_}" = "x1"])
>>>   # Enable/disable Unit tests
>>>   
>>> ##
>>>   AC_ARG_ENABLE([cunit],
>>> -[  --enable-cunit Enable/disable cunit],
>>> +[  --enable-cunit  Enable/disable cunit],
>>>   [if test x$enableval = xyes; then
>>>   cunit_support=yes
>>>   fi])
>>> @@ -86,7 +86,7 @@ AC_HELP_STRING([--with-cunit-path=DIR Path to Cunit
>>> libs and headers],
>>>   
>>> ##
>>>   ODP_DEBUG_PRINT=1
>>>   AC_ARG_ENABLE([debug-print],
>>> -[  --enable-debug-print Enable/disable debug print],
>>> +[  --enable-debug-printEnable/disable debug print],
>>>   [if ! test "x$enableval" = "xyes"; then
>>>   ODP_DEBUG_PRINT=0
>>>   fi])
>>>
>>
>>
>> ___
>> lng-odp mailing list
>> lng-odp@lists.linaro.org
>> http://lists.linaro.org/mailman/listinfo/lng-odp
>>
>
>
>
> --
> *Mike Holmes*
> Linaro  Sr Technical Manager
> LNG - ODP
>



-- 
*Mike Holmes*
Linaro  Sr Technical Manager
LNG - ODP
___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH] validation: thread: add thread tests

2014-12-30 Thread Mike Holmes
On 30 December 2014 at 04:55, Maxim Uvarov  wrote:

> On 12/30/2014 05:24 AM, Mike Holmes wrote:
>
>> +   odp_cunit_thread_create(run_thread_id_core, &thrdarg);
>> +   odp_cunit_thread_exit(&thrdarg);
>>
> That looks like you test some cuinit functions. Might be test for real API
> is more appropriate here.
>

These ones were my focus because the core API has 0 coverage at this time.
I was trying to keep it simple to just add  the get id and get core apis
 but I could cut and paste the complete threads here.


>
> Maxim.
>
> ___
> lng-odp mailing list
> lng-odp@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/lng-odp
>



-- 
*Mike Holmes*
Linaro  Sr Technical Manager
LNG - ODP
___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH] configure.ac: align help text

2014-12-30 Thread Mike Holmes
On 30 December 2014 at 04:40, Maxim Uvarov  wrote:

> Should we use here tabs instead of whitespaces?
>

I will look to see if they are all consistent


>
> Maxim.
>
>
> On 12/29/2014 08:51 PM, Mike Holmes wrote:
>
>> The help text is not formatted into columns correctly, fix it.
>>
>> Signed-off-by: Mike Holmes 
>> ---
>>   configure.ac | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index f0ce7e0..0c4ef3e 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -65,7 +65,7 @@ AM_CONDITIONAL([SDK_INSTALL_PATH_], [test
>> "x${SDK_INSTALL_PATH_}" = "x1"])
>>   # Enable/disable Unit tests
>>   
>> ##
>>   AC_ARG_ENABLE([cunit],
>> -[  --enable-cunit Enable/disable cunit],
>> +[  --enable-cunit  Enable/disable cunit],
>>   [if test x$enableval = xyes; then
>>   cunit_support=yes
>>   fi])
>> @@ -86,7 +86,7 @@ AC_HELP_STRING([--with-cunit-path=DIR Path to Cunit
>> libs and headers],
>>   
>> ##
>>   ODP_DEBUG_PRINT=1
>>   AC_ARG_ENABLE([debug-print],
>> -[  --enable-debug-print Enable/disable debug print],
>> +[  --enable-debug-printEnable/disable debug print],
>>   [if ! test "x$enableval" = "xyes"; then
>>   ODP_DEBUG_PRINT=0
>>   fi])
>>
>
>
> ___
> lng-odp mailing list
> lng-odp@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/lng-odp
>



-- 
*Mike Holmes*
Linaro  Sr Technical Manager
LNG - ODP
___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH] validation: thread: add thread tests

2014-12-30 Thread Maxim Uvarov

On 12/30/2014 05:24 AM, Mike Holmes wrote:

+   odp_cunit_thread_create(run_thread_id_core, &thrdarg);
+   odp_cunit_thread_exit(&thrdarg);
That looks like you test some cuinit functions. Might be test for real 
API is more appropriate here.


Maxim.

___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH] configure.ac: align help text

2014-12-30 Thread Maxim Uvarov

Should we use here tabs instead of whitespaces?

Maxim.

On 12/29/2014 08:51 PM, Mike Holmes wrote:

The help text is not formatted into columns correctly, fix it.

Signed-off-by: Mike Holmes 
---
  configure.ac | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index f0ce7e0..0c4ef3e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -65,7 +65,7 @@ AM_CONDITIONAL([SDK_INSTALL_PATH_], [test "x${SDK_INSTALL_PATH_}" = 
"x1"])
  # Enable/disable Unit tests
  ##
  AC_ARG_ENABLE([cunit],
-[  --enable-cunit Enable/disable cunit],
+[  --enable-cunit  Enable/disable cunit],
  [if test x$enableval = xyes; then
  cunit_support=yes
  fi])
@@ -86,7 +86,7 @@ AC_HELP_STRING([--with-cunit-path=DIR Path to Cunit libs and 
headers],
  ##
  ODP_DEBUG_PRINT=1
  AC_ARG_ENABLE([debug-print],
-[  --enable-debug-print Enable/disable debug print],
+[  --enable-debug-printEnable/disable debug print],
  [if ! test "x$enableval" = "xyes"; then
  ODP_DEBUG_PRINT=0
  fi])



___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH v2] linux-generic: init: add call to odp_shm_init_local

2014-12-30 Thread Maxim Uvarov

Reviewed-by:  Maxim Uvarov 

On 12/29/2014 05:32 PM, Mike Holmes wrote:

odp_init_local did not call shm init.

Signed-off-by: Mike Holmes 
---
v2 improve description

  platform/linux-generic/odp_init.c | 5 +
  1 file changed, 5 insertions(+)

diff --git a/platform/linux-generic/odp_init.c 
b/platform/linux-generic/odp_init.c
index 7210430..4d0aa07 100644
--- a/platform/linux-generic/odp_init.c
+++ b/platform/linux-generic/odp_init.c
@@ -70,6 +70,11 @@ int odp_term_global(void)
  
  int odp_init_local(void)

  {
+   if (odp_shm_init_local()) {
+   ODP_ERR("ODP shm local init failed.\n");
+   return -1;
+   }
+
if (odp_thread_init_local()) {
ODP_ERR("ODP thread local init failed.\n");
return -1;



___
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp