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_xxxx_xxxx_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