On 11/26/2014 12:25 PM, Ola Liljedahl wrote:
On 26 November 2014 at 09:39, Alexandru Badicioiu
<[email protected]> 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 <[email protected]> wrote:
Signed-off-by: Maxim Uvarov <[email protected]>
---
  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
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp


_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp



_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to