)]}'
{
  "log": [
    {
      "commit": "0abf6796c3d8ae8f5ea8624668424bc1554de25e",
      "tree": "2d1713deeb970d79930912588341ff756949b49c",
      "parents": [
        "b0d02889624eaafa0984873dcd78c086418bdf13"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Fri Jan 15 17:36:29 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Feb 26 14:11:46 2016 +0000"
      },
      "message": "zebra: atomic FIB updates\n\nThis commit updates the kernel API so that route changes are\natomically updated using change/replaces messages instead\nof first sending a withdraw followed with update.\n\nSame for zclient updates, changes are sent as single ADD\ninstead of DELETE + ADD.\n\nSigned-off-by: Timo Teräs \u003ctimo.teras@iki.fi\u003e\n"
    },
    {
      "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"
    },
    {
      "commit": "51bdebad99fe813d1b7104543b352f0e39b1c8dc",
      "tree": "b2040a5c538cd3168a6c8842b92e28e35fa17420",
      "parents": [
        "86a82e99aa3728d78a1ec65b60a2162914cd7519"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Jun 28 21:28:50 2014 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 14 19:18:56 2015 +0100"
      },
      "message": "zebra: remove kernel_delete_ipv6_old()\n\nThe only user of this was rib_bogus_ipv6(), which was removed in the\nprevious commit.  Good riddance.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\nAcked-by: Greg Troxel \u003cgdt@ir.bbn.com\u003e\nAcked-by: Feng Lu \u003clu.feng@6wind.com\u003e\nAcked-by: Paul Jakma \u003cpaul@jakma.org\u003e\n"
    },
    {
      "commit": "010ebbbca6396f272cc2d50d147dd922dda68213",
      "tree": "99e92b1795d61adfa554e1cc00e998697962fcc9",
      "parents": [
        "ea55500409651b0f8fd2c8a02fdbf245acc96dd8"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Sep 16 11:53:49 2014 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Sep 19 22:14:55 2014 +0100"
      },
      "message": "Add missing GPL headers, and copyright claims that certainly apply.\n\n* Fix (a subset of)? files with non-trivial code that are missing GPL headers.\n\n* A few copyright claims added which I am certain apply, but which I had\n  missed out on the original commits.\n\nNB: Copyright claims are not exclusive and the addition of any copyright\nclaim should not be read as implying a lack of any further claims, or\ndenying the validity of any other claims.  All those with claims of\ncopyright over any portion of Quagga are welcome to submit them, ideally as\npatches to update copyright strings in files.\n"
    },
    {
      "commit": "b2baffe8d255890b85d93aee653bed2c18371128",
      "tree": "59fd3cada2ac805f46641e4aaf6ee98edddee0bd",
      "parents": [
        "b0baf0740e3d6a01980cef7ea0af0a61c10b1bcd"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sun Jan 27 04:46:02 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 09 03:00:12 2013 +0100"
      },
      "message": "build: fix \"pragma weak\" mixups\n\nNot only was there a minor typo in the \"pragma weak\" preprocessor\nchecks, but also were the tests not behaving as needed - they only\nindicated support for the /first/ method of implementing weak aliases,\nwhich on Linux is __attribute__ and not #pragma.\n\n* m4/ax_sys_weak_alias.m4: set defines for _all_ weak alias methods\n* zebra/kernel_null.c: fix typo\n\nCc: Doug VanLeuven \u003croamdad@sonic.net\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "327c4cdf7578debcc140f04f03d02479771c9e11",
      "tree": "a0e02a0614f12601d8a58eeeebf9e54b27198c9f",
      "parents": [
        "b2e5bdbe10c4145f508fcf1486ffe29d5ce516f7"
      ],
      "author": {
        "name": "Doug VanLeuven",
        "email": "roamdad@sonic.net",
        "time": "Fri Dec 14 14:58:30 2012 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jan 11 21:50:06 2013 +0100"
      },
      "message": "testzebra: pragma weak: detect systems with weak alias and provide alternative\n\nLLVM clang does not support #pragma weak (bug 3679) on OS X. There are\nother systems where the #pragma weak has varying syntax.\n\nAdded m4 file from the autoconf archives:\nhttp://www.gnu.org/software/autoconf-archive/ax_sys_weak_alias.html\n\nFix up zebra/*_null.c files to use #pragma weak alias or stub functions\nif not available. It\u0027s incomplete in that the different format #pragma\nenable easier fixes on need.\n\nTested on 64bit OS X 10.7, FreeBSD 9.0 amd64 \u0026 i386 (32bit) using\ngcc \u0026 clang. Tested on linux 64bit.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "cb9e0ceec988a059dd2269ebc54722c01afb7cca",
      "tree": "c558e706ffca27dd4568f729a48b6f8c83a64c9a",
      "parents": [
        "9afabaf048af74a370dfc71411b6963641f713b2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 20 00:31:57 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jul 28 16:24:19 2009 +0100"
      },
      "message": "[zebra] Fix crash in test_zebra\n\n* kernel_null.c: we\u0027re pretending to add an address, so\n  set IFC_REAL. If this isn\u0027t done, calling into the \u0027got address\n  from kernel\u0027 half of zebra will implicitly-withdraw the ifc, which\n  could cause a crash in test_zebra.c.\n"
    },
    {
      "commit": "d9d00a689ea636af58f89cb62291245bb2a1bc7d",
      "tree": "dd380561afde4c956d0c3de1051fd76057269918",
      "parents": [
        "6dc686a29ecdfa8f8011eee17e4e6276ab175a0d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:28:04 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:28:04 2007 +0000"
      },
      "message": "[testzebra] stubs should call kernel_address_add on IP address install\n\n2007-04-08 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* {ioctl,kernel}_null.c: Install of IP address should\n\t  reflect back to zebra via kernel_address_add..., makes\n\t  testzebra more useful.\n"
    },
    {
      "commit": "457eb9af72e6e7aa85c26b65ba4d053f9ecbffac",
      "tree": "ca93002285032e0c845749cfd770a446a9fc702b",
      "parents": [
        "1893740016d35d75de567a5f6b74db2314ffdc52"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jul 27 19:59:58 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jul 27 19:59:58 2006 +0000"
      },
      "message": "[zebra] Add test rig code, for testing the zebra RIB\n\n2006-07-27 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* {ioctl,kernel}_null.c: Dummy/Null kernel method implementations,\n\t  useful for testing zebra code that calls such methods.\n\t* {redistribute,misc}_null.c: Dummy/Null methods, as above. But\n\t  for zclient, and for various misc functions.\n\t* test_main.c: Test harness for zebra, currently just to test the\n\t  RIB.\n\t* Makefile.am: Build testzebra using above.\n\t* zebra_rib.c: Add a global for the workqueue hold time, useful\n\t  for testing.\n"
    }
  ]
}
