{"action":"created","issue":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/3009","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/3009/labels{/name}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/3009/comments","events_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/3009/events","html_url":"https://github.com/RIOT-OS/RIOT/issues/3009","id":77136763,"number":3009,"title":"ng_sixlowpan: reserve full packet only after reception of all fragments","user":{"login":"OlegHahm","id":1590423,"avatar_url":"https://avatars.githubusercontent.com/u/1590423?v=3","gravatar_id":"","url":"https://api.github.com/users/OlegHahm","html_url":"https://github.com/OlegHahm","followers_url":"https://api.github.com/users/OlegHahm/followers","following_url":"https://api.github.com/users/OlegHahm/following{/other_user}","gists_url":"https://api.github.com/users/OlegHahm/gists{/gist_id}","starred_url":"https://api.github.com/users/OlegHahm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlegHahm/subscriptions","organizations_url":"https://api.github.com/users/OlegHahm/orgs","repos_url":"https://api.github.com/users/OlegHahm/repos","events_url":"https://api.github.com/users/OlegHahm/events{/privacy}","received_events_url":"https://api.github.com/users/OlegHahm/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/network","name":"network","color":"bfdadc"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/Request%20for%20Comments","name":"Request for Comments","color":"23F823"}],"state":"open","locked":false,"assignee":{"login":"authmillenon","id":675644,"avatar_url":"https://avatars.githubusercontent.com/u/675644?v=3","gravatar_id":"","url":"https://api.github.com/users/authmillenon","html_url":"https://github.com/authmillenon","followers_url":"https://api.github.com/users/authmillenon/followers","following_url":"https://api.github.com/users/authmillenon/following{/other_user}","gists_url":"https://api.github.com/users/authmillenon/gists{/gist_id}","starred_url":"https://api.github.com/users/authmillenon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/authmillenon/subscriptions","organizations_url":"https://api.github.com/users/authmillenon/orgs","repos_url":"https://api.github.com/users/authmillenon/repos","events_url":"https://api.github.com/users/authmillenon/events{/privacy}","received_events_url":"https://api.github.com/users/authmillenon/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2015-05-16T21:28:07Z","updated_at":"2015-05-16T22:22:24Z","closed_at":null,"body":"Currently the implementation of 6lowpan fragmentation reserves space for the full packet after reception of the first fragment. I would suggest to do so only at the end, after all fragments have arrived. This would make it possible to handle fragments from different packets concurrently."},"comment":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/comments/102705888","html_url":"https://github.com/RIOT-OS/RIOT/issues/3009#issuecomment-102705888","issue_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/3009","id":102705888,"user":{"login":"authmillenon","id":675644,"avatar_url":"https://avatars.githubusercontent.com/u/675644?v=3","gravatar_id":"","url":"https://api.github.com/users/authmillenon","html_url":"https://github.com/authmillenon","followers_url":"https://api.github.com/users/authmillenon/followers","following_url":"https://api.github.com/users/authmillenon/following{/other_user}","gists_url":"https://api.github.com/users/authmillenon/gists{/gist_id}","starred_url":"https://api.github.com/users/authmillenon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/authmillenon/subscriptions","organizations_url":"https://api.github.com/users/authmillenon/orgs","repos_url":"https://api.github.com/users/authmillenon/repos","events_url":"https://api.github.com/users/authmillenon/events{/privacy}","received_events_url":"https://api.github.com/users/authmillenon/received_events","type":"User","site_admin":false},"created_at":"2015-05-16T22:22:24Z","updated_at":"2015-05-16T22:22:24Z","body":"This feature would require a comparable study of the throughput in such a scenario (multiple packets arriving concurrently but with fragments out-of-order), too. Re-sizing the data segment of a packet snip can lead to movement of the data in the packet buffer if it won't fit in the previous space, if fragments of multiple packets are arriving concurrently this might produce more time-overhead due to copying the data around in the packet buffer on (worst-case) every fragment receive compared to just waiting for a potential resent.\r\n\r\nA more `pktbuf`-ique alternative could be to store every received fragment payload as a new pktsnip, but this could lead to potentially more memory overhead in the packet buffer. Keep in mind, that every `ng_pktsnip_t` struct costs an extra 20 byte in the packet buffer."}}