{"action":"created","issue":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2430","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2430/labels{/name}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2430/comments","events_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2430/events","html_url":"https://github.com/RIOT-OS/RIOT/pull/2430","id":57247461,"number":2430,"title":"net: added ng_udp implementation","user":{"login":"haukepetersen","id":620834,"avatar_url":"https://avatars.githubusercontent.com/u/620834?v=3","gravatar_id":"","url":"https://api.github.com/users/haukepetersen","html_url":"https://github.com/haukepetersen","followers_url":"https://api.github.com/users/haukepetersen/followers","following_url":"https://api.github.com/users/haukepetersen/following{/other_user}","gists_url":"https://api.github.com/users/haukepetersen/gists{/gist_id}","starred_url":"https://api.github.com/users/haukepetersen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/haukepetersen/subscriptions","organizations_url":"https://api.github.com/users/haukepetersen/orgs","repos_url":"https://api.github.com/users/haukepetersen/repos","events_url":"https://api.github.com/users/haukepetersen/events{/privacy}","received_events_url":"https://api.github.com/users/haukepetersen/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/NSTF","name":"NSTF","color":"d4c5f9"}],"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":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/11","html_url":"https://github.com/RIOT-OS/RIOT/milestones/Network%20Stack%20Task%20Force","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/11/labels","id":968921,"number":11,"title":"Network Stack Task Force","description":"The goal of this milestone is to implement the redesign of the network stack.\r\n\r\nTodo list at #2278.","creator":{"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},"open_issues":22,"closed_issues":79,"state":"open","created_at":"2015-02-06T16:04:53Z","updated_at":"2015-04-23T08:18:11Z","due_on":"2015-04-29T22:00:00Z","closed_at":null},"comments":49,"created_at":"2015-02-10T22:26:08Z","updated_at":"2015-04-23T10:50:50Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/2430","html_url":"https://github.com/RIOT-OS/RIOT/pull/2430","diff_url":"https://github.com/RIOT-OS/RIOT/pull/2430.diff","patch_url":"https://github.com/RIOT-OS/RIOT/pull/2430.patch"},"body":"this PR depends on many other `ng_` PRs, will detail them out once this PR gets in a state of being testable/reviewable. I will try to provide a first approach for a socket implementation to make this code better understandable.\r\n\r\nWhile writing this code, I came across some issues we should think about:\r\n ~~1. how do we handle the checksum calculation when sending data and the src address is still unknown?~~\r\n ~~2. where do we get the source port from, if not using sockets but talking directly to UDP via NETAPI?~~\r\n\r\nUPDATE: This implementation is now ready for testing\r\n\r\nUPDATE 2: rebased on #2801"},"comment":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/comments/95537868","html_url":"https://github.com/RIOT-OS/RIOT/pull/2430#issuecomment-95537868","issue_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2430","id":95537868,"user":{"login":"haukepetersen","id":620834,"avatar_url":"https://avatars.githubusercontent.com/u/620834?v=3","gravatar_id":"","url":"https://api.github.com/users/haukepetersen","html_url":"https://github.com/haukepetersen","followers_url":"https://api.github.com/users/haukepetersen/followers","following_url":"https://api.github.com/users/haukepetersen/following{/other_user}","gists_url":"https://api.github.com/users/haukepetersen/gists{/gist_id}","starred_url":"https://api.github.com/users/haukepetersen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/haukepetersen/subscriptions","organizations_url":"https://api.github.com/users/haukepetersen/orgs","repos_url":"https://api.github.com/users/haukepetersen/repos","events_url":"https://api.github.com/users/haukepetersen/events{/privacy}","received_events_url":"https://api.github.com/users/haukepetersen/received_events","type":"User","site_admin":false},"created_at":"2015-04-23T10:50:50Z","updated_at":"2015-04-23T10:50:50Z","body":"regarding the source port: it is optional and can be set to zero if not used:\r\nRFC:\r\n> Source Port is an optional field, when meaningful, it indicates the port\r\nof the sending  process,  and may be assumed  to be the port  to which a\r\nreply should  be addressed  in the absence of any other information.  If\r\nnot used, a value of zero is inserted.\r\n\r\nIf the UDP header is build using the `ng_udp_hdr_build()` function, the layer above has to specify a port (which could just be zero). If the header is allocated manually, we can not really check inside the UDP module, if it contains a random value and should be set to zero, or if the src port is already set to something useful.. So I would tend to leave the implementation as is for now."}}