Thanks! This has tons more info. I'll have a read. ----------- Sent from my phone, sorry about the typos.
> On 17 Oct 2014, at 18:27, Luigi Rizzo <ri...@iet.unipi.it> wrote: > > > >> On Fri, Oct 17, 2014 at 9:55 AM, Matthew P. Grosvenor >> <matthew.grosve...@cl.cam.ac.uk> wrote: >> Hi all, >> I’m trying to understand how to use the netmap framework, specifically how >> the head, tail and current “pointers” interact with each other. >> >> Looking in man NETMAP(4) >> (http://www.freebsd.org/cgi/man.cgi?query=netmap&sektion=4) under data >> structures, struct netmap_ring it says: " contains the index of he >> current read or write slot (cur), “. In the example code, the following >> pattern is used: > > the default netmap manpage at the above URL is the old one, > please use the one for 10-stable or 11-current > > http://www.freebsd.org/cgi/man.cgi?query=netmap&manpath=FreeBSD+10.0-stable > > which explains in more detail the role > of the three pointers (with some ascii graphics too). > > Feel free to ask for more details if the page is not clear > > cheers > luigi > >> >> i = ring->cur; >> ... >> ring->cur = NETMAP_RING_NEXT(ring, i); >> >> However, in the example that ships with the netmap source >> (https://code.google.com/p/netmap/source/browse/examples/bridge.c#72 & >> https://code.google.com/p/netmap/source/browse/examples/pkt-gen.c#660) the >> following pattern is used: >> >> j = rxring->cur; >> while(…){ >> j = nm_ring_next(rxring, j); >> … >> } >> rxring->head = rxring->cur = j; >> >> So the obvious question is, what is the relationship between head and >> current? Do I believe the man page (and man page example) that head is not >> necessary, or do I believe the example code that head is necessary and >> should be set to the same value as current? And if so, what is the point of >> head? And why is it updated outside of the loop in both of the examples? >> >> At a high level, I’m looking for a better understanding of what head, tail >> and current mean and how they affect the processing of rings. > > >> Cheers, >> Matt >> >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org" > > > > -- > -----------------------------------------+------------------------------- > Prof. Luigi RIZZO, ri...@iet.unipi.it . Dip. di Ing. dell'Informazione > http://www.iet.unipi.it/~luigi/ . Universita` di Pisa > TEL +39-050-2211611 . via Diotisalvi 2 > Mobile +39-338-6809875 . 56122 PISA (Italy) > -----------------------------------------+------------------------------- _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"