)]}'
{
  "commit": "653be181eef3589b47119cd68c985975119fa61f",
  "tree": "70622b13f1dd7ec4ce74ada46f489abe582fe2c5",
  "parents": [
    "cfc667e1eac22c3ee27aceaebb18e68102a2c65b"
  ],
  "author": {
    "name": "Lorenzo Colitti",
    "email": "lorenzo@google.com",
    "time": "Wed Mar 26 19:35:41 2014 +0900"
  },
  "committer": {
    "name": "Samir Mehta",
    "email": "samirn@codeaurora.org",
    "time": "Tue Aug 05 17:58:34 2014 +0530"
  },
  "message": "net: ipv6: autoconf routes into per-device tables\n\nCurrently, IPv6 router discovery always puts routes into\nRT6_TABLE_MAIN. This causes problems for connection managers\nthat want to support multiple simultaneous network connections\nand want control over which one is used by default (e.g., wifi\nand wired).\n\nTo work around this connection managers typically take the routes\nthey prefer and copy them to static routes with low metrics in\nthe main table. This puts the burden on the connection manager\nto watch netlink to see if the routes have changed, delete the\nroutes when their lifetime expires, etc.\n\nInstead, this patch adds a per-interface sysctl to have the\nkernel put autoconf routes into different tables. This allows\neach interface to have its own autoconf table, and choosing the\ndefault interface (or using different interfaces at the same\ntime for different types of traffic) can be done using\nappropriate ip rules.\n\nThe sysctl behaves as follows:\n\n- \u003d 0: default. Put routes into RT6_TABLE_MAIN as before.\n- \u003e 0: manual. Put routes into the specified table.\n- \u003c 0: automatic. Add the absolute value of the sysctl to the\n       device\u0027s ifindex, and use that table.\n\nThe automatic mode is most useful in conjunction with\nnet.ipv6.conf.default.accept_ra_rt_table. A connection manager\nor distribution could set it to, say, -100 on boot, and\nthereafter just use IP rules.\n\nChange-Id: I093d39fb06ec413905dc0d0d5792c1bc5d5c73a9\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nGit-commit: 5fe5c512af518d0abbbc0d2fafa8e355f518c2a9\nGit-repo: https://android.googlesource.com/kernel/common.git\n[imaund@codeaurora.org: Resolve trivial merge conflicts]\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\n[samirn@codeaurora.org: Resolve trivial merge conflicts]\nSigned-off-by: Samir Mehta \u003csamirn@codeaurora.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4effce6889d9f6a3202428f451d04d3a982d6e3d",
      "old_mode": 33188,
      "old_path": "include/linux/ipv6.h",
      "new_id": "07f506310ab6c0b0f88c4eef79a98e782e2dbf3c",
      "new_mode": 33188,
      "new_path": "include/linux/ipv6.h"
    },
    {
      "type": "modify",
      "old_id": "757a17638b1b640f87e2609cf8271e0d6b3f070c",
      "old_mode": 33188,
      "old_path": "include/net/addrconf.h",
      "new_id": "f08044178bce1a6e2b473e65d4db24d2534d1fda",
      "new_mode": 33188,
      "new_path": "include/net/addrconf.h"
    },
    {
      "type": "modify",
      "old_id": "5bb2847707ab98c90a7c6341566edbaa1c699c32",
      "old_mode": 33188,
      "old_path": "net/ipv6/addrconf.c",
      "new_id": "dffd854ca3b0bd4b7b3d18ab44e5d6865cea776e",
      "new_mode": 33188,
      "new_path": "net/ipv6/addrconf.c"
    },
    {
      "type": "modify",
      "old_id": "bc4888d902b2ed904f0ca767ac3e4d9cd35c252c",
      "old_mode": 33188,
      "old_path": "net/ipv6/route.c",
      "new_id": "b25636c4120d8bdc8b85a0fdf31a3a05542e465a",
      "new_mode": 33188,
      "new_path": "net/ipv6/route.c"
    }
  ]
}
