{"action":"created","issue":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2766","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2766/labels{/name}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2766/comments","events_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2766/events","html_url":"https://github.com/RIOT-OS/RIOT/pull/2766","id":67197949,"number":2766,"title":"sys: net: introduce low-level ethernet driver API","user":{"login":"kaspar030","id":4679640,"avatar_url":"https://avatars.githubusercontent.com/u/4679640?v=3","gravatar_id":"","url":"https://api.github.com/users/kaspar030","html_url":"https://github.com/kaspar030","followers_url":"https://api.github.com/users/kaspar030/followers","following_url":"https://api.github.com/users/kaspar030/following{/other_user}","gists_url":"https://api.github.com/users/kaspar030/gists{/gist_id}","starred_url":"https://api.github.com/users/kaspar030/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaspar030/subscriptions","organizations_url":"https://api.github.com/users/kaspar030/orgs","repos_url":"https://api.github.com/users/kaspar030/repos","events_url":"https://api.github.com/users/kaspar030/events{/privacy}","received_events_url":"https://api.github.com/users/kaspar030/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/enhancement","name":"enhancement","color":"f17070"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/native","name":"native","color":"aaaaaa"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/NEEDS%20SQUASHING","name":"NEEDS SQUASHING","color":"009800"},{"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/WIP","name":"WIP","color":"009800"}],"state":"open","locked":false,"assignee":{"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},"milestone":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/12","html_url":"https://github.com/RIOT-OS/RIOT/milestones/Release%202015.06","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/12/labels","id":1088995,"number":12,"title":"Release 2015.06","description":"This release aims mainly to include the brand new network stack.","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":35,"closed_issues":70,"state":"open","created_at":"2015-04-29T10:11:27Z","updated_at":"2015-05-11T20:53:53Z","due_on":"2015-06-02T22:00:00Z","closed_at":null},"comments":45,"created_at":"2015-04-08T19:10:42Z","updated_at":"2015-05-12T09:01:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/2766","html_url":"https://github.com/RIOT-OS/RIOT/pull/2766","diff_url":"https://github.com/RIOT-OS/RIOT/pull/2766.diff","patch_url":"https://github.com/RIOT-OS/RIOT/pull/2766.patch"},"body":"While implementing the ethernet driver for encx24j600, I realized that ng_netdev is too fat for some applications, so I tried to create an interface just for ethernet drivers.\r\n\r\nThe actual tap device handling is taken from #2558.\r\n\r\n*edit*\r\nLet me rephrase the \"too fat\" statement, as it is totally inaccurate.\r\n\r\nIMHO the currently developed network stack might not be the only one we might have in RIOT.\r\nSo when I started developing an ethernet driver for RIOT, I didn't want to tie it to netdev and friends.\r\nnetdev does make some assumptions on how a driver has to be implemented, and also implies a lot of dependencies.\r\n\r\nThis PR introduces a fairly thin interface with no dependencies, which can easily be used with netdev (see #2776), but doesn't depend on it.\r\n\r\nI've implemented two drivers using it (the tap driver in this PR and a driver for encx24j600 chips, which I'll PR soon). As always with interfaces designed by yourself, I'm quite happy with the result.\r\n\r\nThe only disadvantage of using this interface instead of directly writing a driver for netdev is that pktsnips have to be converted to a flat buffer before sending to the device. This could be added to the interface if deemed necessary."},"comment":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/comments/101202007","html_url":"https://github.com/RIOT-OS/RIOT/pull/2766#issuecomment-101202007","issue_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2766","id":101202007,"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},"created_at":"2015-05-12T09:01:51Z","updated_at":"2015-05-12T09:01:51Z","body":"Ok, I agree that it would be very helpful to get this, #2776, and #2901 merged soonish to have an easy way to test the new stack on native."}}