)]}'
{
  "commit": "758fb8f99a7bfac3d31c419fd1a5694fc5f33f6a",
  "tree": "4aa860a2b96ec03622376bf3753840155ab478fe",
  "parents": [
    "d6cf5134c05a7890738411852d9357ee5bb322f3"
  ],
  "author": {
    "name": "Feng Lu",
    "email": "lu.feng@6wind.com",
    "time": "Thu Jul 03 18:23:09 2014 +0800"
  },
  "committer": {
    "name": "Nicolas Dichtel",
    "email": "nicolas.dichtel@6wind.com",
    "time": "Wed Jun 03 10:23:32 2015 +0200"
  },
  "message": "zebra, lib/memtypes.c: the netlink sockets work per VRF\n\nThis patch lets the netlink sockets work per VRF.\n\n* The definition of \"struct nlsock\" is moved into zebra/rib.h.\n\n* The previous global variables \"netlink\" and \"netlink_cmd\" now\n  become the members of \"struct zebra_vrf\", and are initialized\n  in zebra_vrf_alloc().\n\n* All relative functions now work for a specific VRF, by adding\n  a new parameter which specifies the working VRF, except those\n  functions in which the VRF ID can be obtained from the interface.\n\n* kernel_init(), interface_list() and route_read() are now also\n  working per VRF, and moved from main() to zebra_vrf_enable().\n\n* A new function kernel_terminate() is added to release the\n  netlink sockets. It is called from zebra_vrf_disable().\n\n* Correct VRF ID, instead of the previous VRF_DEFAULT, are now\n  passed to the functions of processing interfaces or route\n  entries.\n\nSigned-off-by: Feng Lu \u003clu.feng@6wind.com\u003e\nReviewed-by: Alain Ritoux \u003calain.ritoux@6wind.com\u003e\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3e599f673238fc1236bd6b280180d59420f7e262",
      "old_mode": 33188,
      "old_path": "lib/memtypes.c",
      "new_id": "60f24e6a79155db99d1f056ba14e2d04773d2240",
      "new_mode": 33188,
      "new_path": "lib/memtypes.c"
    },
    {
      "type": "modify",
      "old_id": "f357e15447c363ad3be6922654fb77952690542d",
      "old_mode": 33188,
      "old_path": "zebra/if_ioctl.c",
      "new_id": "8df877dbaaa11226e008ee0f532d813c983a8c1e",
      "new_mode": 33188,
      "new_path": "zebra/if_ioctl.c"
    },
    {
      "type": "modify",
      "old_id": "fc384ea29a3f4a0c966bd8494cec8b3ce2d43bac",
      "old_mode": 33188,
      "old_path": "zebra/if_ioctl_solaris.c",
      "new_id": "3f33f749af461ef1be18c8c40c3771d07029c18c",
      "new_mode": 33188,
      "new_path": "zebra/if_ioctl_solaris.c"
    },
    {
      "type": "modify",
      "old_id": "87014160cfb53349db80742b09ae083bc6beb251",
      "old_mode": 33188,
      "old_path": "zebra/if_netlink.c",
      "new_id": "245b7b2509d041254ca49e091dba1183152c411a",
      "new_mode": 33188,
      "new_path": "zebra/if_netlink.c"
    },
    {
      "type": "modify",
      "old_id": "ffa6927d617ec63560cb3e5caad70985bf299063",
      "old_mode": 33188,
      "old_path": "zebra/if_sysctl.c",
      "new_id": "bb48f61828a9ac3255906bf5670eb1af6af19e54",
      "new_mode": 33188,
      "new_path": "zebra/if_sysctl.c"
    },
    {
      "type": "modify",
      "old_id": "4cd43db487530386b192feedfdab5604dde88dc1",
      "old_mode": 33188,
      "old_path": "zebra/kernel_null.c",
      "new_id": "58d2c3ae758bdf7b0b61daf73c23ac045972b291",
      "new_mode": 33188,
      "new_path": "zebra/kernel_null.c"
    },
    {
      "type": "modify",
      "old_id": "374ca412aef38ebdf2ab93cf1d12f01f268bcdc8",
      "old_mode": 33188,
      "old_path": "zebra/kernel_socket.c",
      "new_id": "fd0d8fd1b6560821d43889a4fe277a5943e0db81",
      "new_mode": 33188,
      "new_path": "zebra/kernel_socket.c"
    },
    {
      "type": "modify",
      "old_id": "08cc247d8a74d8a5405d15ed1338e3709f00c8db",
      "old_mode": 33188,
      "old_path": "zebra/main.c",
      "new_id": "c5d1d76c527fb285159dbf4003e5daf04ffb2e6e",
      "new_mode": 33188,
      "new_path": "zebra/main.c"
    },
    {
      "type": "modify",
      "old_id": "99729411fc388486c63e9cf02c0f6b74d91c43c1",
      "old_mode": 33188,
      "old_path": "zebra/rib.h",
      "new_id": "8328f23bb80c6ec8595fa00506505de3376bd406",
      "new_mode": 33188,
      "new_path": "zebra/rib.h"
    },
    {
      "type": "modify",
      "old_id": "cf6ce0cdeb42461d9b855236e33a105afa6a46b8",
      "old_mode": 33188,
      "old_path": "zebra/rt_netlink.c",
      "new_id": "0f0f3fed308a36117c2057a9c5fe8f38b4ea758f",
      "new_mode": 33188,
      "new_path": "zebra/rt_netlink.c"
    },
    {
      "type": "modify",
      "old_id": "d8f9db8561fe79669671fc538952aa7115e82b1c",
      "old_mode": 33188,
      "old_path": "zebra/rt_netlink.h",
      "new_id": "40fa8eb4b8ce8bba789248372b3e0e9479f9705d",
      "new_mode": 33188,
      "new_path": "zebra/rt_netlink.h"
    },
    {
      "type": "modify",
      "old_id": "83ef648323885252c6af3550096c309e89600af1",
      "old_mode": 33188,
      "old_path": "zebra/rtread_getmsg.c",
      "new_id": "7fb916ffa52a1afb9f40ae4b788eae45144ef183",
      "new_mode": 33188,
      "new_path": "zebra/rtread_getmsg.c"
    },
    {
      "type": "modify",
      "old_id": "7abbc590a4df9d2d669bfec8e5a8a02615153f23",
      "old_mode": 33188,
      "old_path": "zebra/rtread_netlink.c",
      "new_id": "1f658646e0acd5b4b88e402317472808291cea6b",
      "new_mode": 33188,
      "new_path": "zebra/rtread_netlink.c"
    },
    {
      "type": "modify",
      "old_id": "b8f5bde70e3da9874749a2e4be01b6f9806efe09",
      "old_mode": 33188,
      "old_path": "zebra/rtread_sysctl.c",
      "new_id": "385e15069faeb2d98a971999aacae10130fe8083",
      "new_mode": 33188,
      "new_path": "zebra/rtread_sysctl.c"
    },
    {
      "type": "modify",
      "old_id": "17014ea7312b633374cbabd293906279e4d4f550",
      "old_mode": 33188,
      "old_path": "zebra/test_main.c",
      "new_id": "448d1ef9f1acbe7c03d1d9c0fa523470c13eeda1",
      "new_mode": 33188,
      "new_path": "zebra/test_main.c"
    },
    {
      "type": "modify",
      "old_id": "9d966a0f2f9c2276c29eb89aa62fb2d6ac8fe4ef",
      "old_mode": 33188,
      "old_path": "zebra/zebra_rib.c",
      "new_id": "084af3802323c95b9f246cc2e8db57566d61e5fb",
      "new_mode": 33188,
      "new_path": "zebra/zebra_rib.c"
    },
    {
      "type": "modify",
      "old_id": "eaa164b956f2cbc373cb1b7394ac70bd2179fcaa",
      "old_mode": 33188,
      "old_path": "zebra/zserv.h",
      "new_id": "af005f851d2acfd22077d3033b09b9422de47db5",
      "new_mode": 33188,
      "new_path": "zebra/zserv.h"
    }
  ]
}
