{"action":"created","comment":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/comments/76863079","id":76863079,"diff_hunk":"@@ -0,0 +1,383 @@\n+/*\n+ * Copyright (C) 2015 José Ignacio Alamos <jialamos@uc.cl>\n+ *\n+ * This file is subject to the terms and conditions of the GNU Lesser\n+ * General Public License v2.1. See the file LICENSE in the top level\n+ * directory for more details.\n+ */\n+\n+/**\n+ * @defgroup    net_ipv4_hdr    IPv4 header\n+ * @ingroup     net_ipv4\n+ * @brief       IPv4 header types and helper functions\n+ * @{\n+ *\n+ * @file\n+ * @brief   IPv4 header type and helper function definitions\n+ *\n+ * @author  José Ignacio Alamos <jialamos@uc.cl>\n+ */\n+#ifndef IPV4_HDR_H\n+#define IPV4_HDR_H\n+\n+#include \"byteorder.h\"\n+#include \"net/ipv4/addr.h\"\n+#ifdef __cplusplus\n+extern \"C\" {\n+#endif\n+/**\n+ * @brief Data type to represent an IPv4 packet header.\n+ *\n+ * @details The structure of the header is as follows:\n+ *\n+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.unparsed}\n+ *\n+ *  0                   1                   2                   3\n+ *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n+ * |Version|  IHL  |Type of Service|          Total Length         |\n+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n+ * |         Identification        |Flags|      Fragment Offset    |\n+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n+ * |  Time to Live |    Protocol   |         Header Checksum       |\n+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n+ * |                       Source Address                          |\n+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n+ * |                    Destination Address                        |\n+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n+ * |                    Options                    |    Padding    |\n+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n+ *\n+ * @see <a href=\"https://tools.ietf.org/html/rfc791#section-3.1\">\n+ *              RFC 791, section 3.1\n+ *      </a>\n+ */\n+typedef struct __attribute__((packed)){\n+    /**\n+     * @brief Version, Internet Header Length and Type of Service.\n+     *\n+     * @details The version are the 4 most significant bits, the Internet Header Length\n+     * the 4 next bit, and the remainding 8 bits are the Type of Service (see\n+     * above).\n+     *\n+     * This module provides helper functions to set, get, and check these\n+     * fields accordingly:\n+     * * ipv4_hdr_set_version()\n+     * * ipv4_hdr_get_version()\n+     * * ipv4_hdr_set_ihl()\n+     * * ipv4_hdr_get_ihl()\n+     * * ipv4_hdr_set_ts()\n+     * * ipv4_hdr_get_ts()\n+     */\n+    network_uint16_t v_ih_ts;\n+    network_uint16_t tl;    /**< total length of the datagram */\n+    network_uint16_t id;    /**< Identification value of packet */\n+    /**\n+     * @brief version control flags and Fragment Offset.\n+     *\n+     * @details The flags are the 3 most significant bits, and the remaining 13 bits are the fragment offfset\n+     *\n+     * This module provides helper functions to set, get, and check these\n+     * fields accordingly:\n+     * * ipv4_hdr_set_flags()\n+     * * ipv4_hdr_get_flags()\n+     * * ipv4_hdr_set_fo()\n+     * * ipv4_hdr_get_fo()\n+     */\n+    network_uint16_t fl_fo;\n+    uint8_t ttl;            /**< time to live for this packet */\n+    uint8_t protocol;       /**< protocol of this packet */\n+    network_uint16_t csum;  /**< checksum of this packet */\n+    ipv4_addr_t src;        /**< source address of this packet */\n+    ipv4_addr_t dst;        /**< destination address of this packet */\n+} ipv4_hdr_t;\n+\n+\n+/**\n+ * @brief   Sets the version field of @p hdr to 6\n+ *\n+ * @param[out] hdr  Pointer to an IPv4 header.\n+ */\n+static inline void ipv4_hdr_set_version(ipv4_hdr_t *hdr)\n+{\n+    hdr->v_ih_ts.u8[0] &= 0x0f;\n+    hdr->v_ih_ts.u8[0] |= 0x40;\n+}\n+\n+/**\n+ * @brief   Gets the value of the version field of @p hdr\n+ *\n+ * @param[in] hdr   Pointer to an IPv4 header.\n+ *\n+ * @return  Value of the version field of @p hdr.\n+ */\n+static inline uint8_t ipv4_hdr_get_version(ipv4_hdr_t *hdr)\n+{\n+    return ((hdr->v_ih_ts.u8[0]) >> 4);\n+}\n+\n+/**\n+ * @brief   Sets the Internet Header Length field of @p hdr\n+ *\n+ * @param[out] hdr  Pointer to an IPv4 header.\n+ * @param[in] ihl  The new value of Internet Header Length.\n+ */\n+static inline void ipv4_hdr_set_ihl(ipv4_hdr_t *hdr, uint8_t ihl)\n+{\n+    hdr->v_ih_ts.u8[0] &= 0xf0;\n+    hdr->v_ih_ts.u8[0] |= 0x0f & ihl;\n+}\n+\n+/**\n+ * brief Gets the value of the Internet Header Length field of @p hdr\n+ *\n+ * @param[in] hdr   Pointer to an IPv4 header.\n+ *\n+ * @return Value of the Internet Header Length field of @p hdr\n+ */\n+static inline uint8_t ipv4_hdr_get_ihl(ipv4_hdr_t *hdr)\n+{\n+    return (hdr->v_ih_ts.u8[0] & 0x0f);\n+}\n+\n+/**\n+ * @brief   Sets the Type of Service field of @p hdr\n+ *\n+ * @param[out] hdr  Pointer to an IPv4 header.\n+ * @param[in] ts  The new value of Type of Service\n+ */\n+static inline void ipv4_hdr_set_ts(ipv4_hdr_t *hdr, uint8_t ts)\n+{\n+    hdr->v_ih_ts.u8[1] &= 0;\n+    hdr->v_ih_ts.u8[1] |= ts;\n+}\n+\n+/**\n+ * brief Gets the value of the Type of Service field of @p hdr\n+ *\n+ * @param[in] hdr   Pointer to an IPv4 header.\n+ *\n+ * @return Value of the Type of Service field of @p hdr\n+ */\n+static inline uint8_t ipv4_hdr_get_ts(ipv4_hdr_t *hdr)\n+{\n+    return (hdr->v_ih_ts.u8[1]);\n+}\n+\n+/**\n+ * @brief   Sets the Total Length field of @p hdr\n+ *\n+ * @param[out] hdr  Pointer to an IPv4 header.\n+ * @param[in] tl  The new value of Total Length\n+ */\n+static inline void ipv4_hdr_set_tl(ipv4_hdr_t *hdr, uint16_t tl)\n+{\n+    hdr->tl = byteorder_htons(tl);\n+}\n+\n+/**\n+ * brief Gets the value of the Total Length field of @p hdr\n+ *\n+ * @param[in] hdr   Pointer to an IPv4 header.\n+ *\n+ * @return Value of the Total Length field of @p hdr\n+ */\n+static inline uint16_t ipv4_hdr_get_tl(ipv4_hdr_t *hdr)\n+{\n+    return byteorder_ntohs(hdr->tl);\n+}\n+\n+/**\n+ * @brief   Sets the ID field of @p hdr\n+ *\n+ * @param[out] hdr  Pointer to an IPv4 header.\n+ * @param[in] id  The new value of id\n+ */\n+static inline void ipv4_hdr_set_id(ipv4_hdr_t *hdr, uint16_t id)\n+{\n+    hdr->id = byteorder_htons(id);\n+}\n+\n+/**\n+ * brief Gets the value of the ID field of @p hdr\n+ *\n+ * @param[in] hdr   Pointer to an IPv4 header.\n+ *\n+ * @return Value of the ID field of @p hdr\n+ */\n+static inline uint16_t ipv4_hdr_get_id(ipv4_hdr_t *hdr)\n+{\n+    return byteorder_ntohs(hdr->id);\n+}\n+\n+/**\n+ * @brief   Sets the Version Control Flags field of @p hdr\n+ *\n+ * @param[out] hdr  Pointer to an IPv4 header.\n+ * @param[in] flags  The new value of flags\n+ */\n+static inline void ipv4_hdr_set_flags(ipv4_hdr_t *hdr, uint8_t flags)\n+{\n+    hdr->fl_fo.u8[0] &= 0x1f;\n+    hdr->fl_fo.u8[0] |= (0xe0 & (flags << 5));\n+}\n+\n+/**\n+ * brief Gets the value of the Version Control Flags field of @p hdr\n+ *\n+ * @param[in] hdr   Pointer to an IPv4 header.\n+ *\n+ * @return Value of the Version Control field of @p hdr\n+ */\n+static inline uint8_t ipv4_hdr_get_flags(ipv4_hdr_t *hdr)\n+{\n+    return (((hdr->fl_fo.u8[0]) >> 5) & 0x07);\n+}\n+\n+/**\n+ * @brief   Sets the Fragment Offset field of @p hdr\n+ *\n+ * @param[out] hdr  Pointer to an IPv4 header.\n+ * @param[in] fo  The new value of fragment offset\n+ */\n+static inline void ipv4_hdr_set_fo(ipv4_hdr_t *hdr, uint16_t fo)\n+{\n+    hdr->fl_fo.u8[0] &= 0xe0;\n+    hdr->fl_fo.u8[0] |= (0x1f & (fo >> 8));\n+    hdr->fl_fo.u8[1] = 0xff & fo;\n+}\n+\n+/**\n+ * brief Gets the value of the Fragment Offset field of @p hdr\n+ *\n+ * @param[in] hdr   Pointer to an IPv4 header.\n+ *\n+ * @return Value of the Fragment Offset field of @p hdr\n+ */\n+static inline uint16_t ipv4_hdr_get_fo(ipv4_hdr_t *hdr)\n+{\n+    return (((hdr->fl_fo.u8[0] & 0x1f) << 8) + hdr->fl_fo.u8[1]);\n+}\n+\n+/**\n+ * @brief   Sets the Time to Live field of @p hdr\n+ *\n+ * @param[out] hdr  Pointer to an IPv4 header.\n+ * @param[in] ttl  The new value of Time to Live\n+ */\n+static inline void ipv4_hdr_set_ttl(ipv4_hdr_t *hdr, uint8_t ttl)\n+{\n+    hdr->ttl = ttl;\n+}\n+\n+/**\n+ * brief Gets the value of the Time To Live field of @p hdr\n+ *\n+ * @param[in] hdr   Pointer to an IPv4 header.\n+ *\n+ * @return Value of the Time To Live field of @p hdr\n+ */\n+static inline uint8_t ipv4_hdr_get_ttl(ipv4_hdr_t *hdr)\n+{\n+    return hdr->ttl;\n+}\n+\n+/**\n+ * @brief   Sets the protocol field of @p hdr\n+ *\n+ * @param[out] hdr  Pointer to an IPv4 header.\n+ * @param[in] protocol  The new value of protocol\n+ */\n+static inline void ipv4_hdr_set_protocol(ipv4_hdr_t *hdr, uint8_t protocol)\n+{\n+    hdr->protocol = protocol;","path":"sys/include/net/ipv4/hdr.h","position":293,"original_position":293,"commit_id":"05560e69d633ce6914bd38b563dfa672a9d641d6","original_commit_id":"05560e69d633ce6914bd38b563dfa672a9d641d6","user":{"login":"miri64","id":675644,"avatar_url":"https://avatars.githubusercontent.com/u/675644?v=3","gravatar_id":"","url":"https://api.github.com/users/miri64","html_url":"https://github.com/miri64","followers_url":"https://api.github.com/users/miri64/followers","following_url":"https://api.github.com/users/miri64/following{/other_user}","gists_url":"https://api.github.com/users/miri64/gists{/gist_id}","starred_url":"https://api.github.com/users/miri64/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miri64/subscriptions","organizations_url":"https://api.github.com/users/miri64/orgs","repos_url":"https://api.github.com/users/miri64/repos","events_url":"https://api.github.com/users/miri64/events{/privacy}","received_events_url":"https://api.github.com/users/miri64/received_events","type":"User","site_admin":false},"body":"Dito","created_at":"2016-08-30T19:29:08Z","updated_at":"2016-08-30T19:29:08Z","html_url":"https://github.com/RIOT-OS/RIOT/pull/5472#discussion_r76863079","pull_request_url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5472","_links":{"self":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/comments/76863079"},"html":{"href":"https://github.com/RIOT-OS/RIOT/pull/5472#discussion_r76863079"},"pull_request":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5472"}}},"pull_request":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5472","id":71806037,"html_url":"https://github.com/RIOT-OS/RIOT/pull/5472","diff_url":"https://github.com/RIOT-OS/RIOT/pull/5472.diff","patch_url":"https://github.com/RIOT-OS/RIOT/pull/5472.patch","issue_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5472","number":5472,"state":"open","locked":false,"title":"ipv4: header definitions","user":{"login":"jia200x","id":1260616,"avatar_url":"https://avatars.githubusercontent.com/u/1260616?v=3","gravatar_id":"","url":"https://api.github.com/users/jia200x","html_url":"https://github.com/jia200x","followers_url":"https://api.github.com/users/jia200x/followers","following_url":"https://api.github.com/users/jia200x/following{/other_user}","gists_url":"https://api.github.com/users/jia200x/gists{/gist_id}","starred_url":"https://api.github.com/users/jia200x/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jia200x/subscriptions","organizations_url":"https://api.github.com/users/jia200x/orgs","repos_url":"https://api.github.com/users/jia200x/repos","events_url":"https://api.github.com/users/jia200x/events{/privacy}","received_events_url":"https://api.github.com/users/jia200x/received_events","type":"User","site_admin":false},"body":"This PR contains IPv4 definitions for the IPv6 over IPv4 UDP tunnel of GNRC PPP.\r\nThe definitions are not dependent of GNRC PPP.","created_at":"2016-05-28T16:32:18Z","updated_at":"2016-08-30T19:29:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b2e72b290b1514c4bf97c9aa30de988da95c8c19","assignee":{"login":"miri64","id":675644,"avatar_url":"https://avatars.githubusercontent.com/u/675644?v=3","gravatar_id":"","url":"https://api.github.com/users/miri64","html_url":"https://github.com/miri64","followers_url":"https://api.github.com/users/miri64/followers","following_url":"https://api.github.com/users/miri64/following{/other_user}","gists_url":"https://api.github.com/users/miri64/gists{/gist_id}","starred_url":"https://api.github.com/users/miri64/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miri64/subscriptions","organizations_url":"https://api.github.com/users/miri64/orgs","repos_url":"https://api.github.com/users/miri64/repos","events_url":"https://api.github.com/users/miri64/events{/privacy}","received_events_url":"https://api.github.com/users/miri64/received_events","type":"User","site_admin":false},"assignees":[{"login":"miri64","id":675644,"avatar_url":"https://avatars.githubusercontent.com/u/675644?v=3","gravatar_id":"","url":"https://api.github.com/users/miri64","html_url":"https://github.com/miri64","followers_url":"https://api.github.com/users/miri64/followers","following_url":"https://api.github.com/users/miri64/following{/other_user}","gists_url":"https://api.github.com/users/miri64/gists{/gist_id}","starred_url":"https://api.github.com/users/miri64/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miri64/subscriptions","organizations_url":"https://api.github.com/users/miri64/orgs","repos_url":"https://api.github.com/users/miri64/repos","events_url":"https://api.github.com/users/miri64/events{/privacy}","received_events_url":"https://api.github.com/users/miri64/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5472/commits","review_comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5472/comments","review_comment_url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/comments{/number}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5472/comments","statuses_url":"https://api.github.com/repos/RIOT-OS/RIOT/statuses/05560e69d633ce6914bd38b563dfa672a9d641d6","head":{"label":"jia200x:ipv4_defs","ref":"ipv4_defs","sha":"05560e69d633ce6914bd38b563dfa672a9d641d6","user":{"login":"jia200x","id":1260616,"avatar_url":"https://avatars.githubusercontent.com/u/1260616?v=3","gravatar_id":"","url":"https://api.github.com/users/jia200x","html_url":"https://github.com/jia200x","followers_url":"https://api.github.com/users/jia200x/followers","following_url":"https://api.github.com/users/jia200x/following{/other_user}","gists_url":"https://api.github.com/users/jia200x/gists{/gist_id}","starred_url":"https://api.github.com/users/jia200x/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jia200x/subscriptions","organizations_url":"https://api.github.com/users/jia200x/orgs","repos_url":"https://api.github.com/users/jia200x/repos","events_url":"https://api.github.com/users/jia200x/events{/privacy}","received_events_url":"https://api.github.com/users/jia200x/received_events","type":"User","site_admin":false},"repo":{"id":52615183,"name":"RIOT","full_name":"jia200x/RIOT","owner":{"login":"jia200x","id":1260616,"avatar_url":"https://avatars.githubusercontent.com/u/1260616?v=3","gravatar_id":"","url":"https://api.github.com/users/jia200x","html_url":"https://github.com/jia200x","followers_url":"https://api.github.com/users/jia200x/followers","following_url":"https://api.github.com/users/jia200x/following{/other_user}","gists_url":"https://api.github.com/users/jia200x/gists{/gist_id}","starred_url":"https://api.github.com/users/jia200x/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jia200x/subscriptions","organizations_url":"https://api.github.com/users/jia200x/orgs","repos_url":"https://api.github.com/users/jia200x/repos","events_url":"https://api.github.com/users/jia200x/events{/privacy}","received_events_url":"https://api.github.com/users/jia200x/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jia200x/RIOT","description":"RIOT -  The friendly OS for IoT","fork":true,"url":"https://api.github.com/repos/jia200x/RIOT","forks_url":"https://api.github.com/repos/jia200x/RIOT/forks","keys_url":"https://api.github.com/repos/jia200x/RIOT/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jia200x/RIOT/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jia200x/RIOT/teams","hooks_url":"https://api.github.com/repos/jia200x/RIOT/hooks","issue_events_url":"https://api.github.com/repos/jia200x/RIOT/issues/events{/number}","events_url":"https://api.github.com/repos/jia200x/RIOT/events","assignees_url":"https://api.github.com/repos/jia200x/RIOT/assignees{/user}","branches_url":"https://api.github.com/repos/jia200x/RIOT/branches{/branch}","tags_url":"https://api.github.com/repos/jia200x/RIOT/tags","blobs_url":"https://api.github.com/repos/jia200x/RIOT/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jia200x/RIOT/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jia200x/RIOT/git/refs{/sha}","trees_url":"https://api.github.com/repos/jia200x/RIOT/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jia200x/RIOT/statuses/{sha}","languages_url":"https://api.github.com/repos/jia200x/RIOT/languages","stargazers_url":"https://api.github.com/repos/jia200x/RIOT/stargazers","contributors_url":"https://api.github.com/repos/jia200x/RIOT/contributors","subscribers_url":"https://api.github.com/repos/jia200x/RIOT/subscribers","subscription_url":"https://api.github.com/repos/jia200x/RIOT/subscription","commits_url":"https://api.github.com/repos/jia200x/RIOT/commits{/sha}","git_commits_url":"https://api.github.com/repos/jia200x/RIOT/git/commits{/sha}","comments_url":"https://api.github.com/repos/jia200x/RIOT/comments{/number}","issue_comment_url":"https://api.github.com/repos/jia200x/RIOT/issues/comments{/number}","contents_url":"https://api.github.com/repos/jia200x/RIOT/contents/{+path}","compare_url":"https://api.github.com/repos/jia200x/RIOT/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jia200x/RIOT/merges","archive_url":"https://api.github.com/repos/jia200x/RIOT/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jia200x/RIOT/downloads","issues_url":"https://api.github.com/repos/jia200x/RIOT/issues{/number}","pulls_url":"https://api.github.com/repos/jia200x/RIOT/pulls{/number}","milestones_url":"https://api.github.com/repos/jia200x/RIOT/milestones{/number}","notifications_url":"https://api.github.com/repos/jia200x/RIOT/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jia200x/RIOT/labels{/name}","releases_url":"https://api.github.com/repos/jia200x/RIOT/releases{/id}","deployments_url":"https://api.github.com/repos/jia200x/RIOT/deployments","created_at":"2016-02-26T15:55:45Z","updated_at":"2016-02-26T15:55:58Z","pushed_at":"2016-08-02T14:10:18Z","git_url":"git://github.com/jia200x/RIOT.git","ssh_url":"git@github.com:jia200x/RIOT.git","clone_url":"https://github.com/jia200x/RIOT.git","svn_url":"https://github.com/jia200x/RIOT","homepage":"https://github.com/RIOT-OS/RIOT/wiki","size":28506,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"RIOT-OS:master","ref":"master","sha":"16daabbcfb1ea3e0a7dd66a9133613f381772e54","user":{"login":"RIOT-OS","id":3079480,"avatar_url":"https://avatars.githubusercontent.com/u/3079480?v=3","gravatar_id":"","url":"https://api.github.com/users/RIOT-OS","html_url":"https://github.com/RIOT-OS","followers_url":"https://api.github.com/users/RIOT-OS/followers","following_url":"https://api.github.com/users/RIOT-OS/following{/other_user}","gists_url":"https://api.github.com/users/RIOT-OS/gists{/gist_id}","starred_url":"https://api.github.com/users/RIOT-OS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RIOT-OS/subscriptions","organizations_url":"https://api.github.com/users/RIOT-OS/orgs","repos_url":"https://api.github.com/users/RIOT-OS/repos","events_url":"https://api.github.com/users/RIOT-OS/events{/privacy}","received_events_url":"https://api.github.com/users/RIOT-OS/received_events","type":"Organization","site_admin":false},"repo":{"id":7370241,"name":"RIOT","full_name":"RIOT-OS/RIOT","owner":{"login":"RIOT-OS","id":3079480,"avatar_url":"https://avatars.githubusercontent.com/u/3079480?v=3","gravatar_id":"","url":"https://api.github.com/users/RIOT-OS","html_url":"https://github.com/RIOT-OS","followers_url":"https://api.github.com/users/RIOT-OS/followers","following_url":"https://api.github.com/users/RIOT-OS/following{/other_user}","gists_url":"https://api.github.com/users/RIOT-OS/gists{/gist_id}","starred_url":"https://api.github.com/users/RIOT-OS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RIOT-OS/subscriptions","organizations_url":"https://api.github.com/users/RIOT-OS/orgs","repos_url":"https://api.github.com/users/RIOT-OS/repos","events_url":"https://api.github.com/users/RIOT-OS/events{/privacy}","received_events_url":"https://api.github.com/users/RIOT-OS/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/RIOT-OS/RIOT","description":"RIOT -  The friendly OS for IoT","fork":false,"url":"https://api.github.com/repos/RIOT-OS/RIOT","forks_url":"https://api.github.com/repos/RIOT-OS/RIOT/forks","keys_url":"https://api.github.com/repos/RIOT-OS/RIOT/keys{/key_id}","collaborators_url":"https://api.github.com/repos/RIOT-OS/RIOT/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/RIOT-OS/RIOT/teams","hooks_url":"https://api.github.com/repos/RIOT-OS/RIOT/hooks","issue_events_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/events{/number}","events_url":"https://api.github.com/repos/RIOT-OS/RIOT/events","assignees_url":"https://api.github.com/repos/RIOT-OS/RIOT/assignees{/user}","branches_url":"https://api.github.com/repos/RIOT-OS/RIOT/branches{/branch}","tags_url":"https://api.github.com/repos/RIOT-OS/RIOT/tags","blobs_url":"https://api.github.com/repos/RIOT-OS/RIOT/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/RIOT-OS/RIOT/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/RIOT-OS/RIOT/git/refs{/sha}","trees_url":"https://api.github.com/repos/RIOT-OS/RIOT/git/trees{/sha}","statuses_url":"https://api.github.com/repos/RIOT-OS/RIOT/statuses/{sha}","languages_url":"https://api.github.com/repos/RIOT-OS/RIOT/languages","stargazers_url":"https://api.github.com/repos/RIOT-OS/RIOT/stargazers","contributors_url":"https://api.github.com/repos/RIOT-OS/RIOT/contributors","subscribers_url":"https://api.github.com/repos/RIOT-OS/RIOT/subscribers","subscription_url":"https://api.github.com/repos/RIOT-OS/RIOT/subscription","commits_url":"https://api.github.com/repos/RIOT-OS/RIOT/commits{/sha}","git_commits_url":"https://api.github.com/repos/RIOT-OS/RIOT/git/commits{/sha}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/comments{/number}","issue_comment_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/comments{/number}","contents_url":"https://api.github.com/repos/RIOT-OS/RIOT/contents/{+path}","compare_url":"https://api.github.com/repos/RIOT-OS/RIOT/compare/{base}...{head}","merges_url":"https://api.github.com/repos/RIOT-OS/RIOT/merges","archive_url":"https://api.github.com/repos/RIOT-OS/RIOT/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/RIOT-OS/RIOT/downloads","issues_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues{/number}","pulls_url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls{/number}","milestones_url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones{/number}","notifications_url":"https://api.github.com/repos/RIOT-OS/RIOT/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/labels{/name}","releases_url":"https://api.github.com/repos/RIOT-OS/RIOT/releases{/id}","deployments_url":"https://api.github.com/repos/RIOT-OS/RIOT/deployments","created_at":"2012-12-29T20:38:40Z","updated_at":"2016-08-30T13:49:00Z","pushed_at":"2016-08-30T19:22:23Z","git_url":"git://github.com/RIOT-OS/RIOT.git","ssh_url":"git@github.com:RIOT-OS/RIOT.git","clone_url":"https://github.com/RIOT-OS/RIOT.git","svn_url":"https://github.com/RIOT-OS/RIOT","homepage":"https://github.com/RIOT-OS/RIOT/wiki","size":97822,"stargazers_count":898,"watchers_count":898,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":603,"mirror_url":null,"open_issues_count":533,"forks":603,"open_issues":533,"watchers":898,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5472"},"html":{"href":"https://github.com/RIOT-OS/RIOT/pull/5472"},"issue":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5472"},"comments":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5472/comments"},"review_comments":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5472/comments"},"review_comment":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5472/commits"},"statuses":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/statuses/05560e69d633ce6914bd38b563dfa672a9d641d6"}}}}
{"actor":{"display_login":"miri64"}}