{"action":"created","issue":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/4654","repository_url":"https://api.github.com/repos/RIOT-OS/RIOT","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/4654/labels{/name}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/4654/comments","events_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/4654/events","html_url":"https://github.com/RIOT-OS/RIOT/pull/4654","id":127656271,"number":4654,"title":"ipv6_ext: fixed extension header handling","user":{"login":"Yonezawa-T2","id":3772478,"avatar_url":"https://avatars.githubusercontent.com/u/3772478?v=3","gravatar_id":"","url":"https://api.github.com/users/Yonezawa-T2","html_url":"https://github.com/Yonezawa-T2","followers_url":"https://api.github.com/users/Yonezawa-T2/followers","following_url":"https://api.github.com/users/Yonezawa-T2/following{/other_user}","gists_url":"https://api.github.com/users/Yonezawa-T2/gists{/gist_id}","starred_url":"https://api.github.com/users/Yonezawa-T2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Yonezawa-T2/subscriptions","organizations_url":"https://api.github.com/users/Yonezawa-T2/orgs","repos_url":"https://api.github.com/users/Yonezawa-T2/repos","events_url":"https://api.github.com/users/Yonezawa-T2/events{/privacy}","received_events_url":"https://api.github.com/users/Yonezawa-T2/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/Hack'n'ACK%20candidate","name":"Hack'n'ACK candidate","color":"dff5df"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/network","name":"network","color":"8f00cc"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/Ready%20for%20CI%20build","name":"Ready for CI build","color":"bfdadc"}],"state":"open","locked":false,"assignee":{"login":"cgundogan","id":739129,"avatar_url":"https://avatars.githubusercontent.com/u/739129?v=3","gravatar_id":"","url":"https://api.github.com/users/cgundogan","html_url":"https://github.com/cgundogan","followers_url":"https://api.github.com/users/cgundogan/followers","following_url":"https://api.github.com/users/cgundogan/following{/other_user}","gists_url":"https://api.github.com/users/cgundogan/gists{/gist_id}","starred_url":"https://api.github.com/users/cgundogan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cgundogan/subscriptions","organizations_url":"https://api.github.com/users/cgundogan/orgs","repos_url":"https://api.github.com/users/cgundogan/repos","events_url":"https://api.github.com/users/cgundogan/events{/privacy}","received_events_url":"https://api.github.com/users/cgundogan/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/13","html_url":"https://github.com/RIOT-OS/RIOT/milestones/Release%202016.04","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/13/labels","id":1447832,"number":13,"title":"Release 2016.04","description":"The next major release.","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":139,"closed_issues":335,"state":"open","created_at":"2015-12-07T14:56:18Z","updated_at":"2016-03-23T23:06:09Z","due_on":"2016-04-14T22:00:00Z","closed_at":null},"comments":33,"created_at":"2016-01-20T10:49:58Z","updated_at":"2016-03-24T08:50:39Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/4654","html_url":"https://github.com/RIOT-OS/RIOT/pull/4654","diff_url":"https://github.com/RIOT-OS/RIOT/pull/4654.diff","patch_url":"https://github.com/RIOT-OS/RIOT/pull/4654.patch"},"body":"`gnrc_ipv6_ext_demux` was incorrect, results in ICMPv6 checksum error. This patch fixes them. I confimed that RIOT does not raise ICMPv6 checksum errors now.\r\n\r\n\r\n```diff\r\n-    ext = ((ipv6_ext_t *)(((uint8_t *)pkt->data) + sizeof(ipv6_hdr_t)));\r\n+    ext = (ipv6_ext_t *) pkt->data;\r\n```\r\n\r\nIPv6 header is already marked by `gnrc_ipv6.c`.\r\n\r\n```diff\r\n              default:\r\n                 c = false;\r\n-                offset += ((ext->len * IPV6_EXT_LEN_UNIT) + IPV6_EXT_LEN_UNIT);\r\n-                ext = ipv6_ext_get_next((ipv6_ext_t *)ext); \r\n```\r\n\r\nThis incorrectly skips ICMPv6 header by 8 bytes.\r\n\r\n\r\n```diff\r\n-    ext_snip = gnrc_pktbuf_mark(pkt, offset, GNRC_NETTYPE_IPV6);\r\n+    ext_snip = gnrc_pktbuf_mark(pkt, offset, GNRC_NETTYPE_IPV6_EXT); \r\n```\r\n\r\n`gnrc_icmpv6_demux` searches for `GNRC_NETTYPE_IPV6` to compute the pseudo header, but this is an extension header rather than a IPv6 header, results in a checksum error. I added new `GNRC_NETTYPE_IPV6_EXT` type but `GNRC_NETTYPE_UNDEF` may be sufficient.\r\n\r\n```diff\r\n-  USEMODULE += ipv6_ext \r\n+  # USEMODULE += ipv6_ext\r\n```\r\n\r\n`USEMODULE += ipv6_ext` results in the following error.\r\n\r\n```\r\n...\r\n\"make\" -C ~/Documents/native_workspace/RIOT/sys/net/network_layer/ipv6/ext\r\nmake[3]: *** No targets specified and no makefile found.  Stop.\r\n```\r\n\r\nI'm not sure just commenting out is appropriate but it works. If it is appropriate, I will delete it completely.\r\n"},"comment":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/comments/200739203","html_url":"https://github.com/RIOT-OS/RIOT/pull/4654#issuecomment-200739203","issue_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/4654","id":200739203,"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":"2016-03-24T08:50:39Z","updated_at":"2016-03-24T08:50:39Z","body":"Re-ACK, please squash."}}