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"

Reply via email to