Source Code Guide: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 15: | Line 15: | ||
| struct shm_rbuff * | | struct shm_rbuff * | ||
| tx_rb, rx_rb, rb | | tx_rb, rx_rb, rb | ||
| ring buffer. These ring buffers are (small) ring buffers that are shared between 2 processes, used to efficiently move packets through the local pipeline. They pass an index that points to an ''sdb'' in the rdrbuff, and are the entry and exit structures with which the application (either a user application or an IPCP) interacts with the end-to-end [[Flow | flow]]. | | ring buffer. These ring buffers are (small) ring buffers that are shared between 2 processes, used to efficiently move packets through the local pipeline. They pass an index that points to an ''sdb'' in the rdrbuff, and are the entry and exit structures with which the application (either a user application or an IPCP) interacts with the end-to-end [[Flow | flow]]. Writing happens to the transmit ring buffer ''tx_rb'', reading from the receive ring buffer ''rx_rb''. | ||
|- | |- | ||
| struct shm_rdrbuff * | | struct shm_rdrbuff * |
Revision as of 17:49, 16 June 2022
Work in progress, collects names used throughout the source code and gives some added meaning
type | name | Description |
---|---|---|
struct shm_du_buff * | sdb | shared memory (shm) data unit (du) buffer. The ouroboros 'flavored' skb. An sdb is a (fixed size) buffer that contains the actual packet data and room for packet headers (and packet tails such as CRC), in addition to some metadata for managing the buffer (head and tail offset to the start of the packet, total size of the buffer, ...). The term 'data unit' stems from the OSI SDU (service data unit) and PDU (protocol data unit), which were adopted by RINA. |
int | fd | flow descriptor. It's the flow analogue to a file descriptor. |
struct shm_rbuff * | tx_rb, rx_rb, rb | ring buffer. These ring buffers are (small) ring buffers that are shared between 2 processes, used to efficiently move packets through the local pipeline. They pass an index that points to an sdb in the rdrbuff, and are the entry and exit structures with which the application (either a user application or an IPCP) interacts with the end-to-end flow. Writing happens to the transmit ring buffer tx_rb, reading from the receive ring buffer rx_rb. |
struct shm_rdrbuff * | rdrb | random deletion ring buffer, This is the block of memory in which Ouroboros stores actual packet data (and metadata) in a (ring buffer) of sdbs. Basically a quick-and-dirty memory allocator. |
size_t | idx | This idx is an index in the packet buffer (rdrbuff) and used to calculate the location of the packet in reference the base pointer at which the rdrbuff is mapped into each process' memory space. |