Netmap在内核中针对每一个网卡(也即每一个net_ device)维护一个netmap_ adapter结构,该结构主要用于维护在此网卡上的所有可用数据接收队列以及发送队列。而在用户空间是通过netmap_ if结构来处理对应的接收或发送队列。Netmap_ kring 是内核中用来描述一个缓冲队列的结构,且只有在内核空间才能访问,实际指向的是netmap_ ring结构,该结构在用户空间可访问。 Netmap_ ring 中记录了netmap_ slot结构,该结构用来描述存储的数据报文在内存池中的确切位置。通过其中的buf_ idx可以实现零拷贝。
如图所示:
后面会专门讲解各个数据结构。
原创文章,版权归属yynote.com.转载请标明出处.
本文地址: http://yynote.com/blog/detail/networking/netmap-study-3-data-struct