| DPDK
    18.11.11
    | 
#include <rte_ring.h>
| Data Fields | |
| char name[RTE_MEMZONE_NAMESIZE] | __rte_cache_aligned | 
| int | flags | 
| const struct rte_memzone * | memzone | 
| uint32_t | size | 
| uint32_t | mask | 
| uint32_t | capacity | 
| char pad0 | __rte_cache_aligned | 
| struct rte_ring_headtail prod | __rte_cache_aligned | 
| char pad1 | __rte_cache_aligned | 
| struct rte_ring_headtail cons | __rte_cache_aligned | 
| char pad2 | __rte_cache_aligned | 
An RTE ring structure.
The producer and the consumer have a head and a tail index. The particularity of these index is that they are not between 0 and size(ring). These indexes are between 0 and 2^32, and we mask their value when we access the ring[] field. Thanks to this assumption, we can do subtractions between 2 index values in a modulo-32bit base: that's why the overflow of the indexes is not a problem.
Definition at line 83 of file rte_ring.h.
| char name [RTE_MEMZONE_NAMESIZE] __rte_cache_aligned | 
Name of the ring.
Definition at line 89 of file rte_ring.h.
| int flags | 
Flags supplied at creation.
Definition at line 90 of file rte_ring.h.
| const struct rte_memzone* memzone | 
Memzone, if any, containing the rte_ring
Definition at line 91 of file rte_ring.h.
| uint32_t size | 
Size of ring.
Definition at line 93 of file rte_ring.h.
| uint32_t mask | 
Mask (size-1) of ring.
Definition at line 94 of file rte_ring.h.
| uint32_t capacity | 
Usable size of ring
Definition at line 95 of file rte_ring.h.
| char pad0 __rte_cache_aligned | 
empty cache line
Definition at line 97 of file rte_ring.h.
| struct rte_ring_headtail prod __rte_cache_aligned | 
Ring producer status.
Definition at line 100 of file rte_ring.h.
| char pad1 __rte_cache_aligned | 
empty cache line
Definition at line 101 of file rte_ring.h.
| struct rte_ring_headtail cons __rte_cache_aligned | 
Ring consumer status.
Definition at line 104 of file rte_ring.h.
| char pad2 __rte_cache_aligned | 
empty cache line
Definition at line 105 of file rte_ring.h.
 1.8.9.1
 1.8.9.1