#Diagram demonstrating reading and returning an item in a No-Split/Allow-Split ring buffer
#Buffer of 128 bytes, with 4 items of 16, 20, 8 and 24 bytes. First 3 items are read and returned

packetdiag ring_buffer_read_ret_non_byte_buf {
    node_width = 6
    node_height = 24
    default_fontsize = 12
    colwidth = 128

    #Initial
    0-7: 8 [color = lightblue];
    8-23: 16 [color = lightyellow];
    24-31: 8 [color = lightblue];
    32-51: 20 [color = lightyellow];
    52-59: 8 [color = lightblue];
    60-67: 8 [color = lightyellow];
    68-75: 8 [color = lightblue];
    76-99: 24 [color = lightyellow];
    100-127: 28 Free

    #Read item 1
    128-135: 8 [color = pink];
    136-151: 16 [color = pink];
    152-159: 8 [color = lightblue];
    160-179: 20 [color = lightyellow];
    180-187: 8 [color = lightblue];
    188-195: 8 [color = lightyellow];
    196-203: 8 [color = lightblue];
    204-227: 24 [color = lightyellow];
    228-255: 28 Free

    #Read item 2
    256-263: 8 [color = pink];
    264-279: 16 [color = pink];
    280-287: 8 [color = pink];
    288-307: 20 [color = pink];
    308-315: 8 [color = lightblue];
    316-323: 8 [color = lightyellow];
    324-331: 8 [color = lightblue];
    332-355: 24 [color = lightyellow];
    356-383: 28 Free

    #Read item 3
    384-391: 8 [color = pink];
    392-407: 16 [color = pink];
    408-415: 8 [color = pink];
    416-435: 20 [color = pink];
    436-443: 8 [color = pink];
    444-451: 8 [color = pink];
    452-459: 8 [color = lightblue];
    460-483: 24 [color = lightyellow];
    484-511: 28 Free

    #Return item 2
    512-519: 8 [color = pink];
    520-535: 16 [color = pink];
    536-563: Ret [color = lightgrey];
    564-571: 8 [color = pink];
    572-579: 8 [color = pink];
    580-587: 8 [color = lightblue];
    588-611: 24 [color = lightyellow];
    612-639: 28 Free

    #Return item 3
    640-647: 8 [color = pink];
    648-663: 16 [color = pink];
    664-691: Ret [color = lightgrey];
    692-707: Ret [color = lightgrey];
    708-715: 8 [color = lightblue];
    716-739: 24 [color = lightyellow];
    740-767: 28 Free

    #Return item 1
    768-791: Ret [color = lightgrey];
    792-819: Ret [color = lightgrey];
    820-835: Ret [color = lightgrey];
    836-843: 8 [color = lightblue];
    844-867: 24 [color = lightyellow];
    868-895: 28 Free

    #End state
    896-963: 68 Free
    964-971: 8 [color = lightblue];
    972-995: 24 [color = lightyellow];
    996-1023: 28 Free
}
