)]}'
{
  "commit": "fb2bfc1ba2416c1561bc9bfb30dfb5adf3e65616",
  "tree": "361484e61445a5e7efc9dfab2d6c47cd4c63846c",
  "parents": [
    "ac19a449261bf69e83827f4bb0c6e5526277b41b"
  ],
  "author": {
    "name": "Feng Lu",
    "email": "lu.feng@6wind.com",
    "time": "Fri May 22 11:40:08 2015 +0200"
  },
  "committer": {
    "name": "David Lamparter",
    "email": "equinox@opensourcerouting.org",
    "time": "Tue Jun 02 07:48:34 2015 +0200"
  },
  "message": "lib/vrf: enable / disable a VRF\n\nA new API vrf_is_enabled() is defined to check whether a VRF is ready\nto use, that is, to allocate resources in that VRF. Currently there\u0027s\nonly one type of resource: socket.\n\nTwo new hooks VRF_ENABLE_HOOK/VRF_DISABLE_HOOK are introduced to tell\nthe user when a VRF gets ready or to be unavailable.\n\nThe VRF_ENABLE_HOOK callback is called in the new function vrf_enable(),\nwhich is used to let the VRF be ready to use. Till now, only the default\nVRF can be enabled, and we need do nothing to enable the default, except\ncalling the hook.\n\nThe VRF_DISABLE_HOOK callback is called in the new function\nvrf_disable(), which is used to let the VRF be unusable. Till now,\nit is called only when the VRF is to be deleted.\n\nA new utility vrf_socket() is defined to provide a socket in a given\nVRF to the user.\n\nTill now before introducing a way of VRF realization, only the default\nVRF is enabled since its birth, and vrf_socket() creates socket for\nonly the default VRF.\n\nThis patch defines the framework of the VRF APIs. The way they serve\nthe users is:\n- vrf_is_enabled() is used to tell the user whether a VRF is usable;\n- users are informed by the VRF_ENABLE_HOOK that a VRF gets usable;\n  they can allocate resources after that;\n- users are informed by the VRF_DISABLE_HOOK that a VRF is to be\n  unavailable, and they must release the resources instantly;\n- vrf_socket() is used to provide a socket in a given VRF.\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: Vincent JARDIN \u003cvincent.jardin@6wind.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ea14fd3c68508f59b84c4fbc4809adc65bcc35f4",
      "old_mode": 33188,
      "old_path": "lib/vrf.c",
      "new_id": "d11a98264cc0108fcbb97a8269a80dc8c447602f",
      "new_mode": 33188,
      "new_path": "lib/vrf.c"
    },
    {
      "type": "modify",
      "old_id": "d7b799875b1ac09e30c3caa51ae55cb46503f72b",
      "old_mode": 33188,
      "old_path": "lib/vrf.h",
      "new_id": "653fabf905c8750732ef837d0787b681e371e9a7",
      "new_mode": 33188,
      "new_path": "lib/vrf.h"
    }
  ]
}
