Skip to content
Snippets Groups Projects
  • Martine Lenders's avatar
    254f16e8
    gnrc_sixlowpan_frag: add asynchronous rbuf GC · 254f16e8
    Martine Lenders authored
    While the current approach for garbage collection in the 6Lo reassembly
    buffer is good for best-effort handling of
    *fragmented* packets and nicely RAM saving, it has the problem that
    incomplete, huge datagrams can basically DoS a node, if no further
    fragmented datagram is received for a while (since the packet buffer is
    full and GC is not triggered).
    
    This change adds a asynchronous GC (utilizing the existing
    functionality) to the reassembly buffer, so that even if there is no new
    fragmented packet received, fragments older than `RBUF_TIMEOUT` will be
    removed from the reassembly buffer, freeing up the otherwise wasted
    packet buffer space.
    254f16e8
    History
    gnrc_sixlowpan_frag: add asynchronous rbuf GC
    Martine Lenders authored
    While the current approach for garbage collection in the 6Lo reassembly
    buffer is good for best-effort handling of
    *fragmented* packets and nicely RAM saving, it has the problem that
    incomplete, huge datagrams can basically DoS a node, if no further
    fragmented datagram is received for a while (since the packet buffer is
    full and GC is not triggered).
    
    This change adds a asynchronous GC (utilizing the existing
    functionality) to the reassembly buffer, so that even if there is no new
    fragmented packet received, fragments older than `RBUF_TIMEOUT` will be
    removed from the reassembly buffer, freeing up the otherwise wasted
    packet buffer space.