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
    • Martine Lenders's avatar
      gnrc_sixlowpan_frag: add current_size to exposed struct · 68fe6682
      Martine Lenders authored
      Since IPHC also manipulates the total number of bytes of a received
      datagram (by decompressing it), this also needs to be exposed. I guess
      I was too focused on introducing a *generic* packet buffer for a future
      virtual reassembly buffer (where it isn't needed, but so isn't `pkt` to
      be honest), that I totally forgot about it in #9352.
      68fe6682
  4. 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
  5. Jun 22, 2018
  6. Jun 20, 2018
  7. Jun 14, 2018
  8. Jun 11, 2018
  9. Jun 10, 2018
  10. Jun 07, 2018
  11. Jun 06, 2018
    • Martine Lenders's avatar
      gnrc_netreg: Further specify gnrc_netreg_register() precondition · fbe39172
      Martine Lenders authored
      While browsing through the rendered doc, I found the precondition of
      `gnrc_netreg_register()` somewhat lacking. What is a "message queue"?
      `gnrc_netreg_entry_t`s have types. Does this apply for all types?
      This specifies the requirement more: The calling thread **only** needs
      a message queue (also provides a link to `msg_init_queue()` now for
      further information), if the provided `gnrc_netreg_entry_t` is of type
      `GNRC_NETREG_TYPE_DEFAULT` (i.e. thread-wise IPC).
      fbe39172
  12. Jun 05, 2018
    • Ken Bannister's avatar
      net/gcoap: refine observe re-registration · 2c02ed20
      Ken Bannister authored
      Fix re-register when using the same token.
      Handle edge cases when change token for a resource.
      Only set observer and resource on initial registration.
      Discuss re-registration in documentation.
      2c02ed20
  13. Jun 04, 2018
  14. May 31, 2018
  15. May 29, 2018
  16. May 25, 2018
  17. May 24, 2018
  18. May 23, 2018
  19. May 22, 2018
  20. May 21, 2018
  21. May 14, 2018
    • Marian Buschsieweke's avatar
      gnrc/netif/hdr.h: Optimized structure layout · 4b8881ab
      Marian Buschsieweke authored
      Reordered struct members to not waste memory due to padding.
      
      Before:
      ``` C
      typedef struct {
          uint8_t src_l2addr_len;
          uint8_t dst_l2addr_len;
          kernel_pid_t if_pid;    // <-- 16 bit, is aligned to 16 bit
          uint8_t flags;
          uint8_t __padding_byte; // <-- Inserted to fulfill padding requirements
          int16_t rssi;           // <-- 16 bit, is NOT aligned to 16 bit
          uint8_t lqi;
          uint8_t __padding_byte2;// <-- Inserted to fulfill padding requirements
      } gnrc_netif_hdr_t;
      ```
      
      Now:
      ``` C
      typedef struct {
          uint8_t src_l2addr_len;
          uint8_t dst_l2addr_len;
          kernel_pid_t if_pid;    // <-- 16 bit, is aligned to 16 bit
          uint8_t flags;
          uint8_t lqi;
          int16_t rssi;           // <-- 16 bit, is aligned to 16 bit
      } gnrc_netif_hdr_t;
      ```
      
      When build for the `bluepill` board, the new layout reduces the size by 2 bytes.
      Unverified
      4b8881ab
  22. May 06, 2018
  23. Apr 26, 2018
  24. Apr 22, 2018
  25. Apr 19, 2018
  26. Apr 16, 2018
  27. Apr 12, 2018
Loading