Re: [lng-odp] [PATCH 2/2] linux-generic: odp_pktio_open loop0 support

2014-11-26 Thread Ola Liljedahl
On 26 November 2014 at 09:39, Alexandru Badicioiu
alexandru.badici...@linaro.org wrote:
 This patch has no description. The title is not self explanatory either.
 Also the existence of eth0 should be verified  before mapping the loop0 to
 eth0 - some platforms may use other interface names (e.g. fmX-gby for FSL
 DPAA platforms).  I think a better solution would be to enumerate the
 available interfaces  and pick a suitable one.
I second that opinion. On my ChromeBook (great development
platforms!), the only Ethernet-like
interface is called mlan0.



 On 25 November 2014 at 18:24, Maxim Uvarov maxim.uva...@linaro.org wrote:

 Signed-off-by: Maxim Uvarov maxim.uva...@linaro.org
 ---
  platform/linux-generic/odp_packet_io.c | 27 +++
  1 file changed, 27 insertions(+)

 diff --git a/platform/linux-generic/odp_packet_io.c
 b/platform/linux-generic/odp_packet_io.c
 index c523350..501b2e9 100644
 --- a/platform/linux-generic/odp_packet_io.c
 +++ b/platform/linux-generic/odp_packet_io.c
 @@ -156,6 +156,33 @@ odp_pktio_t odp_pktio_open(const char *dev,
 odp_buffer_pool_t pool)
 pktio_entry_t *pktio_entry;
 int res;
 int fanout = 1;
 +   char loop0[IFNAMSIZ] = eth0; /* linux-generic loop0 device*/
This comment is strange. If ODP uses an interface like eth0, how can
that be a loopback interface?
Won't packet I/O using this interface be mapped onto the real Ethernet
interface and sent onto the physical link?

-- Ola

 +   char *loop_hint;
 +
 +   if (strlen(dev)  IFNAMSIZ) {
 +   /* ioctl names limitation */
 +   ODP_ERR(pktio name %s is too big, limit is %d bytes\n,
 +   dev, IFNAMSIZ);
 +   return ODP_PKTIO_INVALID;
 +   }
 +
 +   loop_hint = getenv(ODP_PKTIO_LOOPDEV);
 +   if (!strncmp(dev, loop0, 5)) {
 +   if (loop_hint  (strlen(loop_hint)  0)) {
 +   if (strlen(loop_hint)  IFNAMSIZ) {
 +   ODP_ERR(pktio name %s is too big, limit
 is %d bytes\n,
 +   loop_hint, IFNAMSIZ);
 +   return ODP_PKTIO_INVALID;
 +   }
 +
 +   memset(loop0, 0, IFNAMSIZ);
 +   memcpy(loop0, loop_hint, strlen(loop_hint));
 +   ODP_DBG(pktio rename loop0 to %s\n, loop_hint);
 +   } else {
 +   ODP_DBG(pktio rename loop0 to eth0\n);
 +   dev = loop0;
 +   }
 +   }

 id = alloc_lock_pktio_entry();
 if (id == ODP_PKTIO_INVALID) {
 --
 1.8.5.1.163.gd7aced9


 ___
 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 mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH 2/2] linux-generic: odp_pktio_open loop0 support

2014-11-26 Thread Maxim Uvarov

On 11/26/2014 12:25 PM, Ola Liljedahl wrote:

On 26 November 2014 at 09:39, Alexandru Badicioiu
alexandru.badici...@linaro.org wrote:

This patch has no description. The title is not self explanatory either.
Also the existence of eth0 should be verified  before mapping the loop0 to
eth0 - some platforms may use other interface names (e.g. fmX-gby for FSL
DPAA platforms).  I think a better solution would be to enumerate the
available interfaces  and pick a suitable one.

I second that opinion. On my ChromeBook (great development
platforms!), the only Ethernet-like
interface is called mlan0.
Hm, renaming should be done to some predictable name. eth0 is very 
common for linux.

If it's not so that can be changed with export ODP_PKTIO_LOOPDEV=mlan0.

I can walk over the list but not sure how to select interface that can 
be used.


Maxim.






On 25 November 2014 at 18:24, Maxim Uvarov maxim.uva...@linaro.org wrote:

Signed-off-by: Maxim Uvarov maxim.uva...@linaro.org
---
  platform/linux-generic/odp_packet_io.c | 27 +++
  1 file changed, 27 insertions(+)

diff --git a/platform/linux-generic/odp_packet_io.c
b/platform/linux-generic/odp_packet_io.c
index c523350..501b2e9 100644
--- a/platform/linux-generic/odp_packet_io.c
+++ b/platform/linux-generic/odp_packet_io.c
@@ -156,6 +156,33 @@ odp_pktio_t odp_pktio_open(const char *dev,
odp_buffer_pool_t pool)
 pktio_entry_t *pktio_entry;
 int res;
 int fanout = 1;
+   char loop0[IFNAMSIZ] = eth0; /* linux-generic loop0 device*/

This comment is strange. If ODP uses an interface like eth0, how can
that be a loopback interface?
Won't packet I/O using this interface be mapped onto the real Ethernet
interface and sent onto the physical link?

-- Ola


+   char *loop_hint;
+
+   if (strlen(dev)  IFNAMSIZ) {
+   /* ioctl names limitation */
+   ODP_ERR(pktio name %s is too big, limit is %d bytes\n,
+   dev, IFNAMSIZ);
+   return ODP_PKTIO_INVALID;
+   }
+
+   loop_hint = getenv(ODP_PKTIO_LOOPDEV);
+   if (!strncmp(dev, loop0, 5)) {
+   if (loop_hint  (strlen(loop_hint)  0)) {
+   if (strlen(loop_hint)  IFNAMSIZ) {
+   ODP_ERR(pktio name %s is too big, limit
is %d bytes\n,
+   loop_hint, IFNAMSIZ);
+   return ODP_PKTIO_INVALID;
+   }
+
+   memset(loop0, 0, IFNAMSIZ);
+   memcpy(loop0, loop_hint, strlen(loop_hint));
+   ODP_DBG(pktio rename loop0 to %s\n, loop_hint);
+   } else {
+   ODP_DBG(pktio rename loop0 to eth0\n);
+   dev = loop0;
+   }
+   }

 id = alloc_lock_pktio_entry();
 if (id == ODP_PKTIO_INVALID) {
--
1.8.5.1.163.gd7aced9


___
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 mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH 2/2] linux-generic: odp_pktio_open loop0 support

2014-11-26 Thread Jerin Jacob
On Wed, Nov 26, 2014 at 02:53:50PM +0300, Maxim Uvarov wrote:
 On 11/26/2014 12:25 PM, Ola Liljedahl wrote:
 On 26 November 2014 at 09:39, Alexandru Badicioiu
 alexandru.badici...@linaro.org wrote:
 This patch has no description. The title is not self explanatory either.
 Also the existence of eth0 should be verified  before mapping the loop0 to
 eth0 - some platforms may use other interface names (e.g. fmX-gby for FSL
 DPAA platforms).  I think a better solution would be to enumerate the
 available interfaces  and pick a suitable one.
 I second that opinion. On my ChromeBook (great development
 platforms!), the only Ethernet-like
 interface is called mlan0.
 Hm, renaming should be done to some predictable name. eth0 is very common
 for linux.
 If it's not so that can be changed with export ODP_PKTIO_LOOPDEV=mlan0.
 
 I can walk over the list but not sure how to select interface that can be
 used.

IMO we should  have an ODP API to enumerate all the available pktio ports 
in a given platform as strings along with a bitmap to represent their 
capability(like PKTIO_CAP_LOOPBACK)
So that application can choose the pktio based on the capability.
We can use our odp___next API model for enumeration.

 
 Maxim.
 
 
 
 
 On 25 November 2014 at 18:24, Maxim Uvarov maxim.uva...@linaro.org wrote:
 Signed-off-by: Maxim Uvarov maxim.uva...@linaro.org
 ---
   platform/linux-generic/odp_packet_io.c | 27 +++
   1 file changed, 27 insertions(+)
 
 diff --git a/platform/linux-generic/odp_packet_io.c
 b/platform/linux-generic/odp_packet_io.c
 index c523350..501b2e9 100644
 --- a/platform/linux-generic/odp_packet_io.c
 +++ b/platform/linux-generic/odp_packet_io.c
 @@ -156,6 +156,33 @@ odp_pktio_t odp_pktio_open(const char *dev,
 odp_buffer_pool_t pool)
  pktio_entry_t *pktio_entry;
  int res;
  int fanout = 1;
 +   char loop0[IFNAMSIZ] = eth0; /* linux-generic loop0 device*/
 This comment is strange. If ODP uses an interface like eth0, how can
 that be a loopback interface?
 Won't packet I/O using this interface be mapped onto the real Ethernet
 interface and sent onto the physical link?
 
 -- Ola
 
 +   char *loop_hint;
 +
 +   if (strlen(dev)  IFNAMSIZ) {
 +   /* ioctl names limitation */
 +   ODP_ERR(pktio name %s is too big, limit is %d bytes\n,
 +   dev, IFNAMSIZ);
 +   return ODP_PKTIO_INVALID;
 +   }
 +
 +   loop_hint = getenv(ODP_PKTIO_LOOPDEV);
 +   if (!strncmp(dev, loop0, 5)) {
 +   if (loop_hint  (strlen(loop_hint)  0)) {
 +   if (strlen(loop_hint)  IFNAMSIZ) {
 +   ODP_ERR(pktio name %s is too big, limit
 is %d bytes\n,
 +   loop_hint, IFNAMSIZ);
 +   return ODP_PKTIO_INVALID;
 +   }
 +
 +   memset(loop0, 0, IFNAMSIZ);
 +   memcpy(loop0, loop_hint, strlen(loop_hint));
 +   ODP_DBG(pktio rename loop0 to %s\n, loop_hint);
 +   } else {
 +   ODP_DBG(pktio rename loop0 to eth0\n);
 +   dev = loop0;
 +   }
 +   }
 
  id = alloc_lock_pktio_entry();
  if (id == ODP_PKTIO_INVALID) {
 --
 1.8.5.1.163.gd7aced9
 
 
 ___
 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 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


Re: [lng-odp] [PATCH 2/2] linux-generic: odp_pktio_open loop0 support

2014-11-26 Thread Alexandru Badicioiu
On 26 November 2014 at 15:23, Jerin Jacob jerin.ja...@caviumnetworks.com
wrote:

 On Wed, Nov 26, 2014 at 02:53:50PM +0300, Maxim Uvarov wrote:
  On 11/26/2014 12:25 PM, Ola Liljedahl wrote:
  On 26 November 2014 at 09:39, Alexandru Badicioiu
  alexandru.badici...@linaro.org wrote:
  This patch has no description. The title is not self explanatory
 either.
  Also the existence of eth0 should be verified  before mapping the
 loop0 to
  eth0 - some platforms may use other interface names (e.g. fmX-gby for
 FSL
  DPAA platforms).  I think a better solution would be to enumerate the
  available interfaces  and pick a suitable one.
  I second that opinion. On my ChromeBook (great development
  platforms!), the only Ethernet-like
  interface is called mlan0.
  Hm, renaming should be done to some predictable name. eth0 is very common
  for linux.
  If it's not so that can be changed with export ODP_PKTIO_LOOPDEV=mlan0.
 
  I can walk over the list but not sure how to select interface that can be
  used.

 IMO we should  have an ODP API to enumerate all the available pktio ports
 in a given platform as strings along with a bitmap to represent their
 capability(like PKTIO_CAP_LOOPBACK)
 So that application can choose the pktio based on the capability.
 We can use our odp___next API model for enumeration.

[Alex] I share this opinion too.


 
  Maxim.
 
 
  
  
  On 25 November 2014 at 18:24, Maxim Uvarov maxim.uva...@linaro.org
 wrote:
  Signed-off-by: Maxim Uvarov maxim.uva...@linaro.org
  ---
platform/linux-generic/odp_packet_io.c | 27
 +++
1 file changed, 27 insertions(+)
  
  diff --git a/platform/linux-generic/odp_packet_io.c
  b/platform/linux-generic/odp_packet_io.c
  index c523350..501b2e9 100644
  --- a/platform/linux-generic/odp_packet_io.c
  +++ b/platform/linux-generic/odp_packet_io.c
  @@ -156,6 +156,33 @@ odp_pktio_t odp_pktio_open(const char *dev,
  odp_buffer_pool_t pool)
   pktio_entry_t *pktio_entry;
   int res;
   int fanout = 1;
  +   char loop0[IFNAMSIZ] = eth0; /* linux-generic loop0 device*/
  This comment is strange. If ODP uses an interface like eth0, how can
  that be a loopback interface?
  Won't packet I/O using this interface be mapped onto the real Ethernet
  interface and sent onto the physical link?
  
  -- Ola
  
  +   char *loop_hint;
  +
  +   if (strlen(dev)  IFNAMSIZ) {
  +   /* ioctl names limitation */
  +   ODP_ERR(pktio name %s is too big, limit is %d
 bytes\n,
  +   dev, IFNAMSIZ);
  +   return ODP_PKTIO_INVALID;
  +   }
  +
  +   loop_hint = getenv(ODP_PKTIO_LOOPDEV);
  +   if (!strncmp(dev, loop0, 5)) {
  +   if (loop_hint  (strlen(loop_hint)  0)) {
  +   if (strlen(loop_hint)  IFNAMSIZ) {
  +   ODP_ERR(pktio name %s is too big,
 limit
  is %d bytes\n,
  +   loop_hint, IFNAMSIZ);
  +   return ODP_PKTIO_INVALID;
  +   }
  +
  +   memset(loop0, 0, IFNAMSIZ);
  +   memcpy(loop0, loop_hint, strlen(loop_hint));
  +   ODP_DBG(pktio rename loop0 to %s\n,
 loop_hint);
  +   } else {
  +   ODP_DBG(pktio rename loop0 to eth0\n);
  +   dev = loop0;
  +   }
  +   }
  
   id = alloc_lock_pktio_entry();
   if (id == ODP_PKTIO_INVALID) {
  --
  1.8.5.1.163.gd7aced9
  
  
  ___
  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 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 mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp


Re: [lng-odp] [PATCH 2/2] linux-generic: odp_pktio_open loop0 support

2014-11-26 Thread Taras Kondratiuk

On 11/26/2014 03:23 PM, Jerin Jacob wrote:

On Wed, Nov 26, 2014 at 02:53:50PM +0300, Maxim Uvarov wrote:

On 11/26/2014 12:25 PM, Ola Liljedahl wrote:

On 26 November 2014 at 09:39, Alexandru Badicioiu
alexandru.badici...@linaro.org wrote:

This patch has no description. The title is not self explanatory either.
Also the existence of eth0 should be verified  before mapping the loop0 to
eth0 - some platforms may use other interface names (e.g. fmX-gby for FSL
DPAA platforms).  I think a better solution would be to enumerate the
available interfaces  and pick a suitable one.

I second that opinion. On my ChromeBook (great development
platforms!), the only Ethernet-like
interface is called mlan0.

Hm, renaming should be done to some predictable name. eth0 is very common
for linux.
If it's not so that can be changed with export ODP_PKTIO_LOOPDEV=mlan0.

I can walk over the list but not sure how to select interface that can be
used.


IMO we should  have an ODP API to enumerate all the available pktio ports
in a given platform as strings along with a bitmap to represent their 
capability(like PKTIO_CAP_LOOPBACK)
So that application can choose the pktio based on the capability.
We can use our odp___next API model for enumeration.


+1

Instead of bitmap it can some struct.

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


Re: [lng-odp] [PATCH 2/2] linux-generic: odp_pktio_open loop0 support

2014-11-26 Thread Maxim Uvarov

On 11/26/2014 04:33 PM, Taras Kondratiuk wrote:

On 11/26/2014 03:23 PM, Jerin Jacob wrote:

On Wed, Nov 26, 2014 at 02:53:50PM +0300, Maxim Uvarov wrote:

On 11/26/2014 12:25 PM, Ola Liljedahl wrote:

On 26 November 2014 at 09:39, Alexandru Badicioiu
alexandru.badici...@linaro.org wrote:
This patch has no description. The title is not self explanatory 
either.
Also the existence of eth0 should be verified  before mapping the 
loop0 to
eth0 - some platforms may use other interface names (e.g. fmX-gby 
for FSL

DPAA platforms).  I think a better solution would be to enumerate the
available interfaces  and pick a suitable one.

I second that opinion. On my ChromeBook (great development
platforms!), the only Ethernet-like
interface is called mlan0.
Hm, renaming should be done to some predictable name. eth0 is very 
common

for linux.
If it's not so that can be changed with export 
ODP_PKTIO_LOOPDEV=mlan0.


I can walk over the list but not sure how to select interface that 
can be

used.


IMO we should  have an ODP API to enumerate all the available pktio 
ports
in a given platform as strings along with a bitmap to represent their 
capability(like PKTIO_CAP_LOOPBACK)

So that application can choose the pktio based on the capability.
We can use our odp___next API model for enumeration.


+1

Instead of bitmap it can some struct.



Any hint how that can be implemented on linux-generic for v1?



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


Re: [lng-odp] [PATCH 2/2] linux-generic: odp_pktio_open loop0 support

2014-11-26 Thread Jerin Jacob
On Wed, Nov 26, 2014 at 05:05:14PM +0300, Maxim Uvarov wrote:
 On 11/26/2014 04:33 PM, Taras Kondratiuk wrote:
 On 11/26/2014 03:23 PM, Jerin Jacob wrote:
 On Wed, Nov 26, 2014 at 02:53:50PM +0300, Maxim Uvarov wrote:
 On 11/26/2014 12:25 PM, Ola Liljedahl wrote:
 On 26 November 2014 at 09:39, Alexandru Badicioiu
 alexandru.badici...@linaro.org wrote:
 This patch has no description. The title is not self explanatory
 either.
 Also the existence of eth0 should be verified  before mapping the
 loop0 to
 eth0 - some platforms may use other interface names (e.g. fmX-gby
 for FSL
 DPAA platforms).  I think a better solution would be to enumerate the
 available interfaces  and pick a suitable one.
 I second that opinion. On my ChromeBook (great development
 platforms!), the only Ethernet-like
 interface is called mlan0.
 Hm, renaming should be done to some predictable name. eth0 is very
 common
 for linux.
 If it's not so that can be changed with export
 ODP_PKTIO_LOOPDEV=mlan0.
 
 I can walk over the list but not sure how to select interface that can
 be
 used.
 
 IMO we should  have an ODP API to enumerate all the available pktio
 ports
 in a given platform as strings along with a bitmap to represent their
 capability(like PKTIO_CAP_LOOPBACK)
 So that application can choose the pktio based on the capability.
 We can use our odp___next API model for enumeration.
 
 +1
 
 Instead of bitmap it can some struct.
 
 
 Any hint how that can be implemented on linux-generic for v1?

How about mapping to linux lo loopback device ?

lo: flags=73UP,LOOPBACK,RUNNING  mtu 65536
inet 127.0.0.1  netmask 255.0.0.0
inet6 ::1  prefixlen 128  scopeid 0x10host
loop  txqueuelen 0  (Local Loopback)
RX packets 580  bytes 48524 (47.3 KiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 580  bytes 48524 (47.3 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


 
 

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


Re: [lng-odp] [PATCH 2/2] linux-generic: odp_pktio_open loop0 support

2014-11-26 Thread Taras Kondratiuk

On 11/26/2014 04:05 PM, Maxim Uvarov wrote:

On 11/26/2014 04:33 PM, Taras Kondratiuk wrote:

On 11/26/2014 03:23 PM, Jerin Jacob wrote:

On Wed, Nov 26, 2014 at 02:53:50PM +0300, Maxim Uvarov wrote:

On 11/26/2014 12:25 PM, Ola Liljedahl wrote:

On 26 November 2014 at 09:39, Alexandru Badicioiu
alexandru.badici...@linaro.org wrote:

This patch has no description. The title is not self explanatory
either.
Also the existence of eth0 should be verified  before mapping the
loop0 to
eth0 - some platforms may use other interface names (e.g. fmX-gby
for FSL
DPAA platforms).  I think a better solution would be to enumerate the
available interfaces  and pick a suitable one.

I second that opinion. On my ChromeBook (great development
platforms!), the only Ethernet-like
interface is called mlan0.

Hm, renaming should be done to some predictable name. eth0 is very
common
for linux.
If it's not so that can be changed with export
ODP_PKTIO_LOOPDEV=mlan0.

I can walk over the list but not sure how to select interface that
can be
used.


IMO we should  have an ODP API to enumerate all the available pktio
ports
in a given platform as strings along with a bitmap to represent their
capability(like PKTIO_CAP_LOOPBACK)
So that application can choose the pktio based on the capability.
We can use our odp___next API model for enumeration.


+1

Instead of bitmap it can some struct.



Any hint how that can be implemented on linux-generic for v1?


SIOCGIFCONF ioctl can be used to get a list of interfaces.
Or read /proc/net/dev directly. Then read flags with SIOCGIFFLAGS ioctl.

I'm not sure if we need this for v1.

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


Re: [lng-odp] [PATCH 2/2] linux-generic: odp_pktio_open loop0 support

2014-11-26 Thread Stuart Haslam
On Wed, Nov 26, 2014 at 04:32:43PM +0200, Taras Kondratiuk wrote:
 On 11/26/2014 04:05 PM, Maxim Uvarov wrote:
 On 11/26/2014 04:33 PM, Taras Kondratiuk wrote:
 On 11/26/2014 03:23 PM, Jerin Jacob wrote:
 On Wed, Nov 26, 2014 at 02:53:50PM +0300, Maxim Uvarov wrote:
 On 11/26/2014 12:25 PM, Ola Liljedahl wrote:
 On 26 November 2014 at 09:39, Alexandru Badicioiu
 alexandru.badici...@linaro.org wrote:
 This patch has no description. The title is not self explanatory
 either.
 Also the existence of eth0 should be verified  before mapping the
 loop0 to
 eth0 - some platforms may use other interface names (e.g. fmX-gby
 for FSL
 DPAA platforms).  I think a better solution would be to enumerate the
 available interfaces  and pick a suitable one.
 I second that opinion. On my ChromeBook (great development
 platforms!), the only Ethernet-like
 interface is called mlan0.
 Hm, renaming should be done to some predictable name. eth0 is very
 common
 for linux.
 If it's not so that can be changed with export
 ODP_PKTIO_LOOPDEV=mlan0.
 
 I can walk over the list but not sure how to select interface that
 can be
 used.
 
 IMO we should  have an ODP API to enumerate all the available pktio
 ports
 in a given platform as strings along with a bitmap to represent their
 capability(like PKTIO_CAP_LOOPBACK)
 So that application can choose the pktio based on the capability.
 We can use our odp___next API model for enumeration.
 
 +1
 
 Instead of bitmap it can some struct.
 
 
 Any hint how that can be implemented on linux-generic for v1?
 
 SIOCGIFCONF ioctl can be used to get a list of interfaces.
 Or read /proc/net/dev directly. Then read flags with SIOCGIFFLAGS ioctl.
 
 I'm not sure if we need this for v1.


I started doing some of this a couple of weeks back [1]. It's easy
enough to find the available interfaces but the difficult part is
figuring out if those interfaces can be used by ODP (I didn't get
that far), and how much of this is a system/implementation problem
vs being an application/user problem? For example I presume you'd
want to exclude management ports.. and messing with settings such as
MTU on shared interfaces (including lo) is sure to cause problems.

Maybe you could filter out interfaces that have IPs assigned?..

Anyway, I think interface enumeration would be good to have but I
don't think it's needed for 1.0.

--
Stuart. 

[1] 
https://git.linaro.org/people/stuart.haslam/odp.git/commit/3671a175d82c51c825f28d103fcc8da152a233d3

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


[lng-odp] [PATCH 2/2] linux-generic: odp_pktio_open loop0 support

2014-11-25 Thread Maxim Uvarov
Signed-off-by: Maxim Uvarov maxim.uva...@linaro.org
---
 platform/linux-generic/odp_packet_io.c | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/platform/linux-generic/odp_packet_io.c 
b/platform/linux-generic/odp_packet_io.c
index c523350..501b2e9 100644
--- a/platform/linux-generic/odp_packet_io.c
+++ b/platform/linux-generic/odp_packet_io.c
@@ -156,6 +156,33 @@ odp_pktio_t odp_pktio_open(const char *dev, 
odp_buffer_pool_t pool)
pktio_entry_t *pktio_entry;
int res;
int fanout = 1;
+   char loop0[IFNAMSIZ] = eth0; /* linux-generic loop0 device*/
+   char *loop_hint;
+
+   if (strlen(dev)  IFNAMSIZ) {
+   /* ioctl names limitation */
+   ODP_ERR(pktio name %s is too big, limit is %d bytes\n,
+   dev, IFNAMSIZ);
+   return ODP_PKTIO_INVALID;
+   }
+
+   loop_hint = getenv(ODP_PKTIO_LOOPDEV);
+   if (!strncmp(dev, loop0, 5)) {
+   if (loop_hint  (strlen(loop_hint)  0)) {
+   if (strlen(loop_hint)  IFNAMSIZ) {
+   ODP_ERR(pktio name %s is too big, limit is %d 
bytes\n,
+   loop_hint, IFNAMSIZ);
+   return ODP_PKTIO_INVALID;
+   }
+
+   memset(loop0, 0, IFNAMSIZ);
+   memcpy(loop0, loop_hint, strlen(loop_hint));
+   ODP_DBG(pktio rename loop0 to %s\n, loop_hint);
+   } else {
+   ODP_DBG(pktio rename loop0 to eth0\n);
+   dev = loop0;
+   }
+   }
 
id = alloc_lock_pktio_entry();
if (id == ODP_PKTIO_INVALID) {
-- 
1.8.5.1.163.gd7aced9


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