Skip to content
Snippets Groups Projects
  1. Jul 05, 2018
  2. Jul 03, 2018
    • Martine Lenders's avatar
      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
  3. Jun 28, 2018
  4. Jun 27, 2018
    • Martine Lenders's avatar
    • Martine Lenders's avatar
      gnrc_pktbuf_static: fix alignment issue / leaks · 8a75d8d1
      Martine Lenders authored
      This fixes an alignment issue I encountered in the static version of
      the packet buffer.
      
      The bug is caused by a race-condition where a certain order of
      operations leads to a chunk being released according to the
      byte-alignment of the platform, but overlapping potential space for
      a future `_unused_t` struct e.g. (x mark allocated regions):
      
                          Future leak of size sizeof(_unused_t)       Time
                          v                                            |
          +------------+-----+--------------------+                    |
          |xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|                    +
          +------------+-----+--------------------+                    |
                                                                       |
          +------------+--+--+--------------------+                    |
          |               |xxxxxxxxxxxxxxxxxxxxxxx|                    +
          +------------+--+--+--------------------+                    |
                                                                       |
          +-----+------+--+--+--------------------+                    |
          |xxxxx|         |xxxxxxxxxxxxxxxxxxxxxxx|                    +
          +-----+------+--+--+--------------------+                    |
                                                                       |
          +-----+------+-----+---------+----------+                    |
          |xxxxx|                      |xxxxxxxxxx|                    +
          +-----+------+-----+---------+----------+                    |
                                                                       |
          +-----+------+-----+--------------------+                    |
          |xxxxx|      |xxxxxxxxxxxxxxxxxxxxxxxxxx|                    +
          +-----+------+-----+--------------------+                    |
                                                                       |
          +------------+-----+--------------------+                    |
          |xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|                    +
          +------------+-----+--------------------+                    |
                                                                       |
          +------------+-----+--------------------+                    |
          |xxxxxxxxxxxxxxxxxx|                    |                    +
          +------------+-----+--------------------+                    |
                                                                       |
          +------------+-----+--------------------+                    |
          |            |xxxxx|                    |                    +
          +------------+-----+--------------------+                    |
                                                                       v
      
      Sadly, I wasn't able to create a reproducable unittest that show-cases
      this corner-case, since I don't understand the order of operations that
      cause this one 100%, but the bug is reproducable (but also not
      reliably) by sending large (i.e. fragmented) packets to a 6Lo-enabled
      host from more than 1 host simultaneously (use `gnrc_pktbuf_cmd` to
      check).
      
      By making the size of `_unused_t` the only condition for alignment,
      this bug is fixed.
      8a75d8d1
  5. Jun 26, 2018
    • Martine Lenders's avatar
      gnrc_sixlowpan_frag: adapt for #8511 · a2eb3c7f
      Martine Lenders authored
      This refactors the `gnrc_sixlowpan_frag` module for the API proposed
      in #8511.
      
      The `ctx` for `gnrc_sixlowpan_frag_send()` is required to be a
      `gnrc_sixlowpan_msg_frag_t` object, so IPHC can later on use it to
      provide the *original* datagram size (otherwise, we would need to adapt
      the API just for that, which seems to me as convoluted as this
      proposal).
      
      I also provide an expose function with a future possibility to provide
      more than just one `gnrc_sixlowpan_msg_frag_t` object later on (plus
      having cleaner module separation in general).
      a2eb3c7f
  6. Jun 21, 2018
  7. Jun 20, 2018
  8. Jun 14, 2018
  9. Jun 11, 2018
  10. Jun 10, 2018
  11. Jun 06, 2018
  12. Jun 04, 2018
  13. May 31, 2018
  14. May 29, 2018
  15. May 24, 2018
  16. May 23, 2018
  17. May 22, 2018
  18. May 04, 2018
    • Martine Lenders's avatar
      gnrc_rpl: remove route before updating it · 3d821ee1
      Martine Lenders authored
      The "new" forwarding table does not update an old route but just adds
      another as long as it is not *exactly* the same. However, the RPL
      adaptation missed to remove the old route so RPL got easily confused
      about where it actually needed to send packets.
      3d821ee1
  19. Apr 12, 2018
  20. Apr 10, 2018
    • Martine Lenders's avatar
      doc: update IPv6 RFC references · 23bdc80e
      Martine Lenders authored
      RFC 2460 was obsoleted by RFC 8200. This PR changes the references
      around, so we don't reference an obsoleted RFC ;-).
      
      Also I'm moving these references from the old-style HTML-like format
      to the newer-style Markdown-like format.
      23bdc80e
  21. Apr 06, 2018
  22. Apr 03, 2018
  23. Mar 06, 2018
Loading