Hello,
Any advice on how to build a USB driver with Netmap ?
We have 2 boards connected to each other talking directly to an application.
Regards,
Abdul Hakeem
Rajiv
|
Fri, 14 Feb 2014 01:20:56 UTC
Have some higher level networking stacks been built on top of netmap? Like UDP? Sounds interesting. It sounds a lot like the Van Jacobson net channels that was supposed to go into Linux but never did.
Nulik
|
Sun, 25 Aug 2013 13:53:26 UTC
3 hours ago I didn't know about netmap, but now I have a working example of receiving a packet. Doing this took me about 1 week with DPDK, because it has lots of documentation and it is difficult to understand. Both DPDK and PF_RING have lots of unneeded stuff in the APIs. Netmap is the cleanest, and genious solution. With netmap I can link my app statically and get rid of annoying GLIBC, with DPDK I can't do that.Great piece of code, keep up the good work!
Michael
|
Tue, 07 May 2013 19:47:44 UTC
Seems to be a great piece of software. Is there any known patch to fasten up ip routing using it?
Regards
Michael
Dongil Park
|
Tue, 07 May 2013 01:41:23 UTC
I could not get the raw packet.
i compiled netmap code and load netmap_lin.ko and ixgbe.ko.
OS: centos
Kernel version: 2.6.38
the example pkt-gen is working, i think... but there is no packet information.
receive_packets [710] cur 54
receive_packets [713] limit 1
FFFFFF83 24 00 00 00 00 01 00
receive_packets [723] slot 0x7f437cc041e0
receive_packets [724] slot->len 0
receive_packets [725] slot->buf_idx 9347
receive_packets [726] ring.buf_ofs 6635520
receive_packets [727] ring.num_slots 512
receive_packets [728] ring.avail 1
receive_packets [729] ring.cur 54
receive_packets [730] ring.nr_buf_size 2048
receive_packets [731] ring.flags 0
receive_packets [735] len 0
main [1265] 0 pps
receive_packets [710] cur 55
receive_packets [713] limit 1
FFFFFF84 24 00 00 00 00 01 00
receive_packets [723] slot 0x7f437cc041e8
receive_packets [724] slot->len 0
receive_packets [725] slot->buf_idx 9348
receive_packets [726] ring.buf_ofs 6635520
receive_packets [727] ring.num_slots 512
receive_packets [728] ring.avail 1
receive_packets [729] ring.cur 55
receive_packets [730] ring.nr_buf_size 2048
receive_packets [731] ring.flags 0
receive_packets [735] len 0
this is the log. packet length is 0... ??
is there any solution?
Alan Mimms
|
Thu, 04 Apr 2013 00:01:45 UTC
Tahir,
I found that I had to do "ifconfig ethN up" before running pkt-gen. Would that fix your problem?
Tahir
|
Thu, 14 Feb 2013 16:54:18 UTC
Dear Luigi,
I compiled the netmap code on my UBUNTU machine (kernel version 3.2.0-32.51). After installation, I loaded "netmap_lin" and "ixgeb" kernel modules.
However, the pkt-gen example is not working and giving me the error
"Unable to get ifinfo for eth1".
My Ethernet interface is Intel 82598EB 10G. Any clue that why the example is not working?
Regards
osopolis
|
Mon, 23 Apr 2012 10:36:55 UTC
Hi.
Any timeline when netmap will be included into the kernel forwarding engine?
I´d love to test it out :-)
Luigi Rizzo
|
Tue, 17 Apr 2012 23:15:58 UTC
James: netmap is mostly useful (and usable) for applications requiring raw packet I/O, such as software routers/switches, firewalls, traffic monitors, and to some degrees virtualization systems. I have some work in progress for changes of the (in-kernel) host stack to make direct use of netmap, but the gains will be more limited (for TCP because it uses large frames, for UDP because the socket API is limited to one frame per system call).
Stephane: the issue is that network devices cannot control incoming traffic, so they must be prepared to handle even min-sized frames (64 bytes + 160 bits of framing, total 672 bits).
stéphane
|
Fri, 13 Apr 2012 12:54:04 UTC
Hi Luigi,
I thought maximum throughput on a NIC was reached with jumbo frame (9000B payload) or at least standard frame (1500B payload).
That's why I'm surprise by the 14.88Mpps. I computed 138.6kpps or 823.5kpps.
Do you have any resource giving hardware specifications ?
Regards
James
|
Thu, 29 Mar 2012 12:31:21 UTC
This amounts to a second network stack in the kernel that sits upon the device, independent from the usual tcp/ip stack that we all use today. This is similar to what some operating systems do for Infiniband and RDMA. The question that's relevant for most of us is how do we take advantage of netmap and/or high speed networking hardware using the APIs that we have today (such as BSD sockets), so that we don't have to rewrite every networking application?
Luigi Rizzo
|
Tue, 28 Feb 2012 15:19:07 UTC
Gabor, i just tried PACKET_TX_RING and reached 1.85 Mpps at full cpu speed (2.93GHz).
On the same hw, Netmap reaches the same performance at just 150MHz. The comparison used same conditions (same hardware, 10 Gbit interface, ~1000 packets per system call, packet buffers set in advance).
This is no surprise, because PACKET_TX_RING still uses skbufs in the device driver, and this is a major source of overhead, as explained in the article and in more details on the netmap page. Memory mapping is just one of the many concepts that netmap uses to get performance.
Gabor Gombas
|
Mon, 27 Feb 2012 22:48:58 UTC
I'd be very interested how netmap compares to PACKET_TX_RING/PACKET_RX_RING as supported by Linux. The basic concept of using ring buffers shared between the kernel and user space seems to be the same, so it would be interesting to know how the performance of netmap compares to the existing solution.
Kristofer Spinka
|
Tue, 21 Feb 2012 21:14:59 UTC
It would be very interesting to know how this compares to the work done by the big name 10GbE NIC vendors: Myricom, SolarFlare, Mellanox, et. al.
Not only in terms of raw performance/latency/cpu-offload, but also in terms of programming model. It seems a natural step to create a pre-load library to provide BSD socket API abstraction as the aforementioned vendors have.
Luigi Rizzo
|
Fri, 17 Feb 2012 16:49:08 UTC
A first version of the Linux netmap code is available at
http://info.iet.unipi.it/~luigi/netmap/
Luigi Rizzo
|
Tue, 14 Feb 2012 22:57:19 UTC
We completed the linux version yesterday, it should be released before the end of the month after some code cleanup. Performance is comparable to that on FreeBSD.
Martin Sustrik
|
Tue, 14 Feb 2012 05:34:30 UTC
Sounds cool! Any chance to have a look at linux kernel implementation of netmap?
Abdul Hakeem | Sat, 31 May 2014 18:05:05 UTC
Rajiv | Fri, 14 Feb 2014 01:20:56 UTC
Nulik | Sun, 25 Aug 2013 13:53:26 UTC
Michael | Tue, 07 May 2013 19:47:44 UTC
Dongil Park | Tue, 07 May 2013 01:41:23 UTC
Alan Mimms | Thu, 04 Apr 2013 00:01:45 UTC
Tahir | Thu, 14 Feb 2013 16:54:18 UTC
osopolis | Mon, 23 Apr 2012 10:36:55 UTC
Luigi Rizzo | Tue, 17 Apr 2012 23:15:58 UTC
stéphane | Fri, 13 Apr 2012 12:54:04 UTC
James | Thu, 29 Mar 2012 12:31:21 UTC
Luigi Rizzo | Tue, 28 Feb 2012 15:19:07 UTC
Gabor Gombas | Mon, 27 Feb 2012 22:48:58 UTC
Kristofer Spinka | Tue, 21 Feb 2012 21:14:59 UTC
Luigi Rizzo | Fri, 17 Feb 2012 16:49:08 UTC
Luigi Rizzo | Tue, 14 Feb 2012 22:57:19 UTC
Martin Sustrik | Tue, 14 Feb 2012 05:34:30 UTC