{"action":"created","issue":{"url":"https://api.github.com/repos/contiki-os/contiki/issues/1213","labels_url":"https://api.github.com/repos/contiki-os/contiki/issues/1213/labels{/name}","comments_url":"https://api.github.com/repos/contiki-os/contiki/issues/1213/comments","events_url":"https://api.github.com/repos/contiki-os/contiki/issues/1213/events","html_url":"https://github.com/contiki-os/contiki/pull/1213","id":103013287,"number":1213,"title":"End-to-End DAO and DAO ACK handling for Contiki RPL.","user":{"login":"joakimeriksson","id":599447,"avatar_url":"https://avatars.githubusercontent.com/u/599447?v=3","gravatar_id":"","url":"https://api.github.com/users/joakimeriksson","html_url":"https://github.com/joakimeriksson","followers_url":"https://api.github.com/users/joakimeriksson/followers","following_url":"https://api.github.com/users/joakimeriksson/following{/other_user}","gists_url":"https://api.github.com/users/joakimeriksson/gists{/gist_id}","starred_url":"https://api.github.com/users/joakimeriksson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joakimeriksson/subscriptions","organizations_url":"https://api.github.com/users/joakimeriksson/orgs","repos_url":"https://api.github.com/users/joakimeriksson/repos","events_url":"https://api.github.com/users/joakimeriksson/events{/privacy}","received_events_url":"https://api.github.com/users/joakimeriksson/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2015-08-25T12:41:54Z","updated_at":"2015-08-27T07:54:13Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/contiki-os/contiki/pulls/1213","html_url":"https://github.com/contiki-os/contiki/pull/1213","diff_url":"https://github.com/contiki-os/contiki/pull/1213.diff","patch_url":"https://github.com/contiki-os/contiki/pull/1213.patch"},"body":"This PR adds full handling of end-to-end DAO and DAO ACK for\r\nContiki RPL and makes Contiki RPL significantly more stable and\r\nscalable. The PR includes the changes needed to how neighbors and\r\nroutes are handled to enable DAO ACK and DAO NACK. The baseline\r\nof this work have been tested in small and large networks and is\r\nwork done at Yanzi Networks.\r\n\r\n- Full handling of DAO and DAO_ACK with end-to-end ACK all the\r\n  way up to the RPL ROOT to ensure that the route is installed\r\n  all the way (including retransmission of DAO when no ACK is\r\n  received).\r\n- Neighbor policy that decides when it is ok to add a new\r\n  neighbor (to avoid throwing out neighbors that are useful).\r\n- Configuration option on the routing module so that it is\r\n  possible to select either remove least recently used route or\r\n  only remove when route entry times out (needed for proper\r\n  handling of DAO_ACK/NACK).\r\n- Added automatical renewal of DAO routes from the registering node\r\n  rather than forcing renewal at each broadcast DIO.\r\n- Change the way DTSN is increased so that it is only increased\r\n  when local repair occurs.\r\n- Updated RPL configuration and other related configuration to\r\n  make use of the new features (30 minutes routing lifetime for\r\n  GC of routes over time).\r\n\r\nThe new default behavior of the Contiki RPL is to make use of\r\nDAO_ACK/NACK for more stable and scalable networks.\r\n\r\nThere is also a few other needed changes for things to work like\r\nmaking some erbium tests a bit smaller and increasing number of\r\nroutes in the RPL ROOT of the large network test for RPL.\r\n\r\nThe PR represents work done by the authors (Joakim, Niclas, Oriol)\r\nbut the design is a team effort - contributors include Lars and\r\nFlag at Yanzi Networks.\r\n"},"comment":{"url":"https://api.github.com/repos/contiki-os/contiki/issues/comments/135328096","html_url":"https://github.com/contiki-os/contiki/pull/1213#issuecomment-135328096","issue_url":"https://api.github.com/repos/contiki-os/contiki/issues/1213","id":135328096,"user":{"login":"adamdunkels","id":589970,"avatar_url":"https://avatars.githubusercontent.com/u/589970?v=3","gravatar_id":"","url":"https://api.github.com/users/adamdunkels","html_url":"https://github.com/adamdunkels","followers_url":"https://api.github.com/users/adamdunkels/followers","following_url":"https://api.github.com/users/adamdunkels/following{/other_user}","gists_url":"https://api.github.com/users/adamdunkels/gists{/gist_id}","starred_url":"https://api.github.com/users/adamdunkels/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamdunkels/subscriptions","organizations_url":"https://api.github.com/users/adamdunkels/orgs","repos_url":"https://api.github.com/users/adamdunkels/repos","events_url":"https://api.github.com/users/adamdunkels/events{/privacy}","received_events_url":"https://api.github.com/users/adamdunkels/received_events","type":"User","site_admin":false},"created_at":"2015-08-27T07:54:13Z","updated_at":"2015-08-27T07:54:13Z","body":"All nodes will try to connect at the same time, but there is a backoff mechanism for the retries. The configuration is intentionally low to stress the system.\r\n\r\nI created a pull request with a similar test here: https://github.com/contiki-os/contiki/pull/1218"}}