)]}'
{
  "log": [
    {
      "commit": "72723683be57b6d562dc96cde30cc33cc96b3e82",
      "tree": "9ab2fd72f0e734ab45e545d6549ea9aeb9c46f14",
      "parents": [
        "5965651602fb8373b75b6ae2d59c6a4d753f2f49"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jun 26 13:51:10 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jun 26 14:16:51 2014 +0900"
      },
      "message": "Convert rta_* and fra_* variable names to camelCase.\n\nChange-Id: I0ca539ac4c54bb71b033f288fb4229afd71b7989\n"
    },
    {
      "commit": "5965651602fb8373b75b6ae2d59c6a4d753f2f49",
      "tree": "6fe0439f1edb267854a4019e7ed58a4491e3abb3",
      "parents": [
        "96f261e8b28048b8cb48f5a4e81822c73bb813f4"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jun 25 03:20:29 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jun 26 14:07:11 2014 +0900"
      },
      "message": "Support adding and removing UID rules via netlink.\n\nChange-Id: Idae13bceda869261689260759084b8d6ef1ff639\n"
    },
    {
      "commit": "96f261e8b28048b8cb48f5a4e81822c73bb813f4",
      "tree": "b5c22de820353af1d4c17007b026e80f2f2b7cc5",
      "parents": [
        "4753afd79e130d5f1c888f549c36b4da92dbe680"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Jun 23 15:09:54 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jun 26 14:07:10 2014 +0900"
      },
      "message": "Pass rule modification errors back to CommandListener.\n\nChange-Id: If01334dccad8b6230648713a57fd58be180ac66b\n"
    },
    {
      "commit": "4753afd79e130d5f1c888f549c36b4da92dbe680",
      "tree": "bcfcefc18377057d59ec47aa2df9c4889e96ae54",
      "parents": [
        "7f972fb1cd3c26af76779a7a3220b9cf5fb63a0a"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jun 20 23:03:29 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jun 26 14:07:10 2014 +0900"
      },
      "message": "Use netlink to add/delete rules as well as routes.\n\nAlso change the indentation of the rtattrs used in modifyIpRoute\nto make it easier to see what attributes are being used and in\nwhat sequence.\n\nThis change does not yet pass the errors back to CommandListener;\nthat is done in the next change in the series.\n\nChange-Id: Ib2e174386c63cb0647d838d9c7d731cd6df39c4f\n"
    },
    {
      "commit": "7f972fb1cd3c26af76779a7a3220b9cf5fb63a0a",
      "tree": "8dce9aefe6096bca426d693135c9bf21065e6df3",
      "parents": [
        "ab359feb1a4d3a1898e32a7da47dcde3da4c1ed6"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue Jun 24 16:09:21 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue Jun 24 16:09:21 2014 -0700"
      },
      "message": "Unrevert the \u0027revert the \"talk to netlink directly\" change.\u0027\n\nhttp://ag/486277 was reverted in http://ag/491263 and is being unreverted in\nthis change. The bug in the original CL was a typo (\"interface\" instead of the\ndesired \"ifindex\"), which is now fixed.\n\nBug: 15840054\nChange-Id: If66987c74cc86e9ba4f7a35d36f0a39afe939a68\n"
    },
    {
      "commit": "ab359feb1a4d3a1898e32a7da47dcde3da4c1ed6",
      "tree": "9348b4f9f811f8073b2d8cfdffc21e99afdc8141",
      "parents": [
        "7b64cdee0f468a5b66ae2439f84364815ae9a795"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue Jun 24 15:03:52 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue Jun 24 15:03:52 2014 -0700"
      },
      "message": "Temporarily revert the \"talk to netlink directly\" change.\n\nThe change being reverted is http://ag/486277. Instead, use /sbin/ip again. The\ncode to talk to netlink fails on volantis. I.e., instead of this:\n    $ ip route show table 1006\n    default via 100.110.191.254 dev wlan0\n    100.110.128.0/18 dev wlan0  scope link\nwe end up with this:\n    $ ip route show table 1006\n    default dev wlan0  proto static\n    100.110.128.0/18 dev wlan0  proto static\nNotice the lack of the nexthop and the addition of \"proto static\". I think the\nnetlink message is somehow not properly aligned on volantis, causing the kernel\nto misinterpret it.\n\nBug: 15840054\nChange-Id: Ief60473e337410f7cb35890de0a5a74a21723a41\n"
    },
    {
      "commit": "f7fc8eccb0a6a4fbca4cafdf53f5c167c8f1d755",
      "tree": "7217049a19d215354077f4ab6726da5787779fa4",
      "parents": [
        "ba25df989b48f36b784ad39307a49a4fd9c3fd66"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jun 18 00:41:58 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jun 24 00:46:59 2014 +0900"
      },
      "message": "Pass route add/delete errors back to CommandListener.\n\nChange-Id: Id1d6d578963080e141f71bc1303801fc53bce40a\n"
    },
    {
      "commit": "ba25df989b48f36b784ad39307a49a4fd9c3fd66",
      "tree": "96995bf97188c9d8e884cecd59e7478ca2d2e17f",
      "parents": [
        "bd0f224f077264f21fa858b7a93062e3b8564006"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jun 18 00:22:17 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Jun 23 16:00:08 2014 +0900"
      },
      "message": "Use native netlink code instead of /sbin/ip to manipulate routes\n\nShelling out to /sbin/ip is slow, and more importantly it does\nnot preserve the error messages returned by the kernel when\nadding or deleting a route fails.  Instead, use netlink directly.\n\nThis change does not yet pass the errors back to CommandListener;\nthat is done in the next change in the series.\n\nChange-Id: I5ad3c8583580857be6386a620ff5c4f3872d685b\n"
    },
    {
      "commit": "357e5629bb4c745296ab40340ec8679372337155",
      "tree": "0d2fcb6c98606d04a80b19de2125f6aea6c345fa",
      "parents": [
        "d2f23fb6285000831f14cacc16881d96f6046c33"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jun 17 16:14:17 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jun 20 14:51:15 2014 +0900"
      },
      "message": "Flush both IPv4 and IPv6 routes.\n\nThe current code unintentionally flushes only IPv4 routes\nbecause it reuses a function that is normally used to add and\nremove routes (where the IP version is implicitly specified by\nthe route to add or remove).\n\nInstead of fixing the runIpRouteCommand function, add a new\nflushIpRoutes function because runIpRouteCommand will be\nreplaced by a netlink implementation in an upcoming CL.\n\nChange-Id: Ie96ae4124baca3edb8e0d0841e7abadb6b3ee9ab\n"
    },
    {
      "commit": "a561e121c724e9163b2e256e15eef660e3a326da",
      "tree": "8490eb9cf8c9f54de243dc1d7787f192bb282f2b",
      "parents": [
        "5ad1c281da21ebe1863fbad50f7c20dce4f08512"
      ],
      "author": {
        "name": "Paul Jensen",
        "email": "pauljensen@google.com",
        "time": "Thu Jun 12 16:46:37 2014 -0400"
      },
      "committer": {
        "name": "Paul Jensen",
        "email": "pauljensen@google.com",
        "time": "Tue Jun 17 16:30:30 2014 +0000"
      },
      "message": "Cache interface indices in case interfaces go away.\n\nWithout caching them netd will fail to remove rules and routes,\nfor example, when the Bluetooth reverse-tether interface (\"bt-pan\")\ngoes away.\n\nbug:15407087\n\nChange-Id: I99fcf00f9645a0b029455516a705b70110f62ff6"
    },
    {
      "commit": "ac19883dd50d5310d1fddf996ee227075a103ecb",
      "tree": "ab375a40c6bb83baf4e1c78c03395de21d3d764c",
      "parents": [
        "9a4c1128b274ee2a6ffab3d50d08aaf0bc2fb2ff"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Fri May 30 15:11:54 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Fri May 30 15:11:54 2014 -0700"
      },
      "message": "Fix build.\n\nChange-Id: If170e46ff92c6a972bc1c2d838b1ac0eea6e23de\n"
    },
    {
      "commit": "9a4c1128b274ee2a6ffab3d50d08aaf0bc2fb2ff",
      "tree": "180043c6c40100c6168e6e4a32e80fd2c244078a",
      "parents": [
        "bfe8e77344c713844dbb40b14999f50a1e2a2142",
        "82eab785bd5cb2eff0a263f5b0dcde13e9139588"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Fri May 30 21:33:07 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 30 21:33:07 2014 +0000"
      },
      "message": "am 82eab785: Support legacy routes added by apps via ensureRouteToHost().\n\n* commit \u002782eab785bd5cb2eff0a263f5b0dcde13e9139588\u0027:\n  Support legacy routes added by apps via ensureRouteToHost().\n"
    },
    {
      "commit": "82eab785bd5cb2eff0a263f5b0dcde13e9139588",
      "tree": "76c295e087df8391bee5d452728c5efe99e2f17e",
      "parents": [
        "ce8f583ff6620a19602d3c4604557e1b1501cafa"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu May 22 14:21:49 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Fri May 30 18:27:40 2014 +0000"
      },
      "message": "Support legacy routes added by apps via ensureRouteToHost().\n\nThis adds the routes to two fixed tables:\n+ LEGACY, which has higher priority than other non-explicit lookup tables\n  (per-network and default network).\n+ PRIVILEGED_LEGACY, available only to system apps and has higher priority than\n  VPNs (system apps are those with the CONNECTIVITY_INTERNAL permission).\n\nThis will be changed to per-UID tables once the kernel supports UID-based\nrouting, so that these legacy routes are scoped to each app and not global.\n\nAlso, fix a TODO: The framework (as of http://ag/471599) will not set the\ngateway argument if it\u0027s actually a direct-connected route.\n\nChange-Id: I0ee1ca89fdc859d75a89021ca8c1902811b1e4a9\n(cherry picked from commit 38b7af1f2cb9579895465fabc37865f5dadcac25)\n"
    },
    {
      "commit": "56afacf838d24cf8e54d2cf0d8ab9182ab704125",
      "tree": "905e375d2eae15018f3e05c45c30e0d299928452",
      "parents": [
        "38b7af1f2cb9579895465fabc37865f5dadcac25"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 28 15:07:00 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu May 29 20:33:18 2014 -0700"
      },
      "message": "Turn on C++11 and make all warnings into errors.\n\nAs a consequence:\n+ Comment out the names of all unused parameters.\n+ Remove all unused variables and functions.\n\nIn server/Android.mk, there are a couple of non-trivial changes:\n+ Use libcxx instead of stlport. This is needed to fix a bunch of errors due to\n  specifying -std\u003dc++11.\n+ LOCAL_SHARED_LIBRARIES is sorted. Technically, the order in which libraries\n  are listed has an effect on linking, but nobody should be doing such brittle\n  things anyway.\n\nChange-Id: I0aff5b745e04609da23144d0e8be4c5694321b8b\n"
    },
    {
      "commit": "38b7af1f2cb9579895465fabc37865f5dadcac25",
      "tree": "9a01d8dcdbdd91d1813476aa5b2cbc756e17f932",
      "parents": [
        "ec00884cac216d1cb79556ca23b21ce55e35af3e"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu May 22 14:21:49 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu May 29 18:34:06 2014 -0700"
      },
      "message": "Support legacy routes added by apps via ensureRouteToHost().\n\nThis adds the routes to two fixed tables:\n+ LEGACY, which has higher priority than other non-explicit lookup tables\n  (per-network and default network).\n+ PRIVILEGED_LEGACY, available only to system apps and has higher priority than\n  VPNs (system apps are those with the CONNECTIVITY_INTERNAL permission).\n\nThis will be changed to per-UID tables once the kernel supports UID-based\nrouting, so that these legacy routes are scoped to each app and not global.\n\nAlso, fix a TODO: The framework (as of http://ag/471599) will not set the\ngateway argument if it\u0027s actually a direct-connected route.\n\nChange-Id: I0ee1ca89fdc859d75a89021ca8c1902811b1e4a9\n"
    },
    {
      "commit": "72604075e74af459fb4637404fbf030422c6b6b6",
      "tree": "6a5a7fdb52919bd8e049a1ac7d29532578407e17",
      "parents": [
        "5fc275794ab41d110abbdb7683ed9db45918985f"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 21 13:19:43 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 21 19:28:36 2014 -0700"
      },
      "message": "Rework the determination of a \"valid network\".\n\n+ isNetIdValid() doesn\u0027t make much sense. What we want is whether the netId has\n  actually been created (via createNetwork()).\n+ It isn\u0027t an error to call deleteNetwork() or setDefaultNetwork() even when\n  there are no interfaces assigned to the network.\n+ Secure all accesses to the maps in PermissionsController with locks; they are\n  called from many threads (CommandListener, DnsProxyListener and FwmarkServer).\n+ Remove the redundant mIfaceNetidMap.\n+ Minor cosmetic changes to things such as #includes and log messages.\n\nChange-Id: Ieb154589b24f00ba8067eaaec4def3534aec4923\n"
    },
    {
      "commit": "f4cfad361175a7f9ccf4d41e76a9b289c3c3da22",
      "tree": "adef9c2f736b8a566b0edd9ff83f92493c367f34",
      "parents": [
        "5ff58d494a5ddf7e544adc77590300f04daf8e31"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 21 08:54:07 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 21 09:03:35 2014 -0700"
      },
      "message": "Move netd_client into netd.\n\nChange-Id: Ie4b6b303225c93f2448a503d6ea9cebb552cbad5\n"
    },
    {
      "commit": "122f581eb16e06c70cbbc40bd40995775075151f",
      "tree": "1accb5703f76d761132bdefd799feda7d0109a03",
      "parents": [
        "ae37e8a4f42b658d5aaf43f312f063944b4aeecb"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Sun May 11 20:29:49 2014 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 14 02:46:23 2014 -0700"
      },
      "message": "Refactor the fwmark stuff to use an explicit union of bit-fields.\n\nThis is a pure refactor. There\u0027s no effect on any functionality.\n\nChange-Id: I99d1f3fb76781cf84f67c2dff44eaf3a2cf50a9f\n"
    },
    {
      "commit": "ae37e8a4f42b658d5aaf43f312f063944b4aeecb",
      "tree": "37b5a4bc8de51b288569e78fc39ad07013d90975",
      "parents": [
        "fd6424fdf2cd0516a6c95288610e323dbdfe84ff"
      ],
      "author": {
        "name": "Paul Jensen",
        "email": "pauljensen@google.com",
        "time": "Mon Apr 28 10:35:51 2014 -0400"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 14 02:46:17 2014 -0700"
      },
      "message": "Separate network and interface addition/removal netd APIs.\nThis should facilitate stacked interfaces (i.e. clatd).\n\nChange-Id: Ib3e7a4d3847ef6ec4449451f6da42e75959baa4f\n"
    },
    {
      "commit": "fd6424fdf2cd0516a6c95288610e323dbdfe84ff",
      "tree": "4031d9554d80f789d7aa82a0eb7f9acac81c5170",
      "parents": [
        "a79f6182a338621a32f350d7c2985c6872cccf84"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu Apr 24 16:23:35 2014 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 14 02:45:49 2014 -0700"
      },
      "message": "Ignore failure when adding directly-connected routes to the main table.\n\nChange-Id: I12f65cdfbe2285820bd24b047f794ec9b9b5110f\n"
    },
    {
      "commit": "a79f6182a338621a32f350d7c2985c6872cccf84",
      "tree": "542ffb0f387f96bdb1614c0f646d9f7cab4f0555",
      "parents": [
        "c92133732378aae815120c39edd62a7b4eb773b3"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu Apr 24 15:55:26 2014 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 14 02:45:06 2014 -0700"
      },
      "message": "Fixes for stupid mistakes (by me).\n\n+ Only remove netId/permission after doing everything that references them.\n+ Return success/failure correctly based on return value of fork/exec.\n\nConflicts:\n\tNetworkController.cpp\n\nChange-Id: Iddb8ccdffc104ffed1058ecc2421006beebd568d\n"
    },
    {
      "commit": "c92133732378aae815120c39edd62a7b4eb773b3",
      "tree": "f9b650215acb5a3d24e198927c8e551673ee1631",
      "parents": [
        "7dd69a1b0b95e67c8b939884476f2cf888026eb7"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed Apr 16 12:32:18 2014 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 14 02:43:10 2014 -0700"
      },
      "message": "Add directly-connected routes to the main table.\n\nChange-Id: I545555d273ea9d321eab08fef12a32ca17e33dff\n"
    },
    {
      "commit": "8fe9c8e0a2b1c5cd2a34720efaccc641d9ab8fb6",
      "tree": "50ecb527f3a5584d263037e4ad25443bc6b91e33",
      "parents": [
        "92b66c4990b4a0ab608aa9c31da946f36085203b"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed Apr 16 12:08:05 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 14 00:24:34 2014 -0700"
      },
      "message": "Update the \"lookup main\" rule to include a fwmark clause.\n\nIf a packet is marked with a non-zero NetId, and doesn\u0027t find a route in its\nper-network table, it will now not match the main table rule, and so will\nfallthrough to the \"unreachable\" rule, resulting in ENETUNREACH, as desired.\n\nIf a packet has a zero NetId (e.g.: sent on an unconnected UDP socket), it will\nfind the \"default network\" rule first, which should have a default route, so it\nwill never need to fall through any further to the main table.\n\nThis makes the main table effectively unused for all normal routing lookups.\n\nOnly the kernel will still use this table, when trying to find a directly\nconnected route to validate the nexthop when a route is added anywhere.\n\n(cherry picked from commit 4594dbba433dadba953c1c7b43fdd99e77fb1f2b)\n\nChange-Id: Ib0784ff0848854be0575c64a59bbd0a4d3bf93e0\n"
    },
    {
      "commit": "92b66c4990b4a0ab608aa9c31da946f36085203b",
      "tree": "5e74a7d81670d1fe1ec7d9e166d38e197ad51f7a",
      "parents": [
        "7619e1bbebdfe643c35ee6be4ac054f5255f0706"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue Apr 15 14:28:55 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 14 03:01:09 2014 +0000"
      },
      "message": "Flush (delete) routing tables when destroying a network.\n\n(cherry picked from commit 7ee2c3fe24f9a643584ddf5f759a7acb73e35e8d)\n\nChange-Id: I1b222b474b1ae7a551250f8f02d7900c493b5b16\n"
    },
    {
      "commit": "7619e1bbebdfe643c35ee6be4ac054f5255f0706",
      "tree": "ecddf6cd1a1b3496b9e663c1e16df1742482fc32",
      "parents": [
        "9c0d313de6a3157fadd3b52a9927c77216ca435e"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue Apr 15 14:23:08 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 14 02:58:22 2014 +0000"
      },
      "message": "Implement the \"network route add/remove\" API.\n\n(cherry picked from commit 909c52248a4ad832548c5feb5e9a58323e30ab7b)\n\nChange-Id: Idb09b0c22a3a519dda232995ced406e470ab9768\n"
    },
    {
      "commit": "9c0d313de6a3157fadd3b52a9927c77216ca435e",
      "tree": "9307c6816270a9d8a5e75b9c1c212d10eee5c7cc",
      "parents": [
        "379bd33f7640e2c4bef902be0ed6cb96378c8c2e"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu Apr 10 20:35:04 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue May 13 16:18:19 2014 -0700"
      },
      "message": "Implement network default set/clear.\n\n(cherry picked from commit 4cc7df247a7ec67da3b5edfb9356077fbbf0150c)\n\nChange-Id: Ib35d54816884c6a6ba28231c9b1f54e362d1d16a\n"
    },
    {
      "commit": "379bd33f7640e2c4bef902be0ed6cb96378c8c2e",
      "tree": "3e3a8c53f28af59abf9c27db164400721e22218b",
      "parents": [
        "a10ac3214f6a582b7fdb66acc43c702731e53d81"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu Apr 10 19:58:06 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue May 13 23:09:53 2014 +0000"
      },
      "message": "Implement permissions set/clear for both networks and users.\n\n(cherry picked from commit 47a0fa0ad402704b639fbc2868c55adc432bb6ea)\n\nChange-Id: Ibb71025e1e2c72bd300fb7379d5ab54da4a6982e\n"
    },
    {
      "commit": "a10ac3214f6a582b7fdb66acc43c702731e53d81",
      "tree": "c689ff8ac4442d6b71fefd624c8b4ca921afef6f",
      "parents": [
        "a01d6eff4316c6c10e81bd8d48ae85aa82b933e3"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Apr 11 18:26:17 2014 +0900"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue May 13 22:52:05 2014 +0000"
      },
      "message": "Move sprintf statements to getRouteTableForInterface.\n\n(cherry picked from commit b45648ad5902e53f433615ab1a0268927b6a328e)\n\nChange-Id: Ie0b2c3e3688285068b70e96d1153c0b105548a00\n"
    },
    {
      "commit": "a01d6eff4316c6c10e81bd8d48ae85aa82b933e3",
      "tree": "663575ad32f0417549571d7b390b4d9c090f3f84",
      "parents": [
        "a48118062412f16ae712bfc8c8a539d3b6a85e47"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu Apr 10 19:37:59 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue May 13 22:50:46 2014 +0000"
      },
      "message": "Cleanup: Minor style fixes.\n\n(cherry picked from commit 49d905456fd6cf730abdddb49df84d6032b0a419)\n\nChange-Id: I199447f03ce33d79007e62e23ccf683ed4249f97\n"
    },
    {
      "commit": "a48118062412f16ae712bfc8c8a539d3b6a85e47",
      "tree": "314273de5ce2dbefcb1ffdeaec612c8e7964078b",
      "parents": [
        "5c181bf8ca0c89bd9e3e6d8e40bac53d0ee7082f"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu Apr 10 12:10:24 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue May 13 12:59:08 2014 -0700"
      },
      "message": "Set kernel proc files for fwmark reflection and table numbers for RAs.\n\n(cherry picked from commit 75992274574e91c9a17aad5b60f0c2b710cd31b9)\n\nChange-Id: I5f0d759cb9b8590555af7f5503f00d3e455ece54\n"
    },
    {
      "commit": "5c181bf8ca0c89bd9e3e6d8e40bac53d0ee7082f",
      "tree": "e6d285b596ec32fdd36d422f4981313ad149109a",
      "parents": [
        "d736d4b327bf35afc59b5cec110491fcdb9e2cbb"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Mon Apr 07 14:10:04 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue May 13 11:52:23 2014 -0700"
      },
      "message": "Implement network create/destroy.\n\n(cherry picked from commit 382fc20107aa38cca062f10b4bc05c47b6c7f191)\n\nChange-Id: Id5f8df447d812c8e8cf03addbb5e70abdcdfceb9\n"
    }
  ]
}
