below image describes a process router routes/switches a packet.
first router receives a packet
interface processor stores the packet private buffer or public buffer.
what's a role of RX ring?
ring is a shared memory(buffer) or a dedicated memory(buffer) for interface?
is there anyone what is a rx ring(tx ring)?
The Author of this posting offers the information contained within this posting without consideration and with the reader's understanding that there's no implied or expressed suitability or fitness for any purpose. Information provided is for informational purposes only and should not be construed as rendering professional advice of any kind. Usage of this posting's information is solely at reader's own risk.
In no event shall Author be liable for any damages whatsoever (including, without limitation, damages for loss of use, data or profit) arising out of the use or inability to use the posting's information even if Author has been advised of the possibility of such damage.
Just to add a bit to what the other posters have already noted. What's "special" about the ring buffers they are designed to try to keep up with the interface traffic requirements, especially when receiving. Usually they are tied to hardware interrupts. The reason they are "circular" is because often they use an address block and modulus address offsets, often binary. For example, if you allocated 3 bits for an address offset you would have 8 offsets, zero to seven. All you need to do is increment the offset. When it overflows it wraps back to the beginning, hence its a circular or ring buffer.
In addition to all answers by other friends here, the term ring in general describes a circular buffer, i.e. a formerly linear list of entries in which each entry has a pointer to the next element in the list, and the "last" element points back to the "first" element in the list, thereby making it circular.
Hence, a ring has a finite space - it can contain a limited number of entries. In addition, entries are added sequentially into a ring, and if the ring has the maximum size of N elements, adding the (N+1)th element will place it on the 1st place, essentially replacing the former 1st entry. In other words, a ring of size N always holds at most N most recent entries. This is especially interesting for congestive applications like interface buffers, in which a transient burst may cause the interface buffers to overfill. In such case, these buffers will keep at most N most recently received frames.
Also, the Tx/Rx rings are often implemented in hardware, as a part of an interface controller. These controllers have buffers to store excessive received or transmitted frames, and the buffers are circular in nature - with limited space, and if overfilled, the most recent entry overwrites the least recen. What you are seeing in your exhibit are most probably the HW rings implemented inside a particular interface type.
I would like to add a little more.
Along with public and private interface pools, Cisco IOS creates special buffer control structures called rings. Cisco IOS and interface controllers use these rings to control which buffers are used to receive and transmit packets to the media. The rings themselves consist of media-controller-specific elements that point to individual packet buffers elsewhere in I/O memory.
Each interface has a pair of rings - a receive ring for receiving packets and a transmit ring for transmitting packets. The size of the rings can vary with the interface controller. In general, the size of the transmit ring is based on bandwidth of the interface or VC and is a power of two (Cisco Bug ID CSCdk17210).