)]}'
{
  "log": [
    {
      "commit": "9665856e3718e42068e7d897f5e2468e77fb8c17",
      "tree": "264cd6e05ee23bcf46d1ce42c38ffa228b5035f1",
      "parents": [
        "fa4094ac49b4cc23589f5c5b7e608c4b4ee6ca04"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Fri Apr 20 17:23:39 2012 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Fri Apr 20 17:29:31 2012 +0200"
      },
      "message": "Revert \"zebra: clean up client routes when client goes away\"\n\nThis reverts commit af56d404cd56d94ad3b2ec3f159650eb72baef0a,\nwhich was accidentally duplicating functionality from commit\n2ea1ab1 \"zebra: ZEBRA_HELLO and mopping up routes (BZ#448)\"\n\nConflicts:\n\n\tzebra/zebra_rib.c\n\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "fa4094ac49b4cc23589f5c5b7e608c4b4ee6ca04",
      "tree": "6ee1470a3db1d3e09e455a34a41b6b5db4296847",
      "parents": [
        "7939e016b3d4ecd2f5b8ad708b69607e05a084a6"
      ],
      "author": {
        "name": "Jorge Boncompte [DTI2]",
        "email": "jorge@dti2.net",
        "time": "Fri Apr 13 13:46:09 2012 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 18:37:17 2012 +0200"
      },
      "message": "bgpd: Fix crash when disabling dampening (BZ#687)\n\n    Vladimir Podobaev reported that the following commands crashed the\ndaemon.\n\nrouter bgp 123\n bgp dampening\n no bgp dampening 1 2 3 4\n no bgp dampening\n\n    The problem was that bgp_damp_info_clean() tried to dereference the\nalready freed reuse_list array in the second call to \"no bgp dampening\".\n\n    Fixed by checking in bgp_damp_disable() that the dampening it\u0027s\nenabled before doing the cleanup.\n\nSigned-off-by: Jorge Boncompte [DTI2] \u003cjorge@dti2.net\u003e\n"
    },
    {
      "commit": "7939e016b3d4ecd2f5b8ad708b69607e05a084a6",
      "tree": "eb33846c71de49df9d1128eec149f2a214bb74f9",
      "parents": [
        "3cadc0cdebb8f8262b1c1fbb8bfcbcdc3baa3733"
      ],
      "author": {
        "name": "Jorge Boncompte [DTI2]",
        "email": "jorge@dti2.net",
        "time": "Mon Apr 09 18:03:57 2012 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 18:37:17 2012 +0200"
      },
      "message": "ospfd: Fixes a crash of the daemon with a snmp walk\n\n    - And allows to walk the LSDB.\n\nSigned-off-by: Jorge Boncompte [DTI2] \u003cjorge@dti2.net\u003e\n"
    },
    {
      "commit": "3cadc0cdebb8f8262b1c1fbb8bfcbcdc3baa3733",
      "tree": "3cc40be888ef151298db7c14d7ed0c66d54b5744",
      "parents": [
        "d75318cc8de91d94649106f4ea3122d0d21ac9eb"
      ],
      "author": {
        "name": "JR Rivers",
        "email": "jrrivers@cumulusnetworks.com",
        "time": "Sun Apr 01 12:16:31 2012 -0700"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 18:36:52 2012 +0200"
      },
      "message": "zebra: use larger buffer (4096) for netlink messages\n\nIncrease the maximum number of nexthops per route by using a larger\nbuffer for netlink messages.\n\n  * zebra/rt_netlink.c: Use a buffer of 4096 bytes to parse/build\n    netlink messages. Add a hash define for this number\n    (NL_PKT_BUF_SIZE). Most places in the code were previously using a\n    buffer of 1024 bytes.\n"
    },
    {
      "commit": "d75318cc8de91d94649106f4ea3122d0d21ac9eb",
      "tree": "6d7c674c4026bccd1384e60ee228d8d67750fbf7",
      "parents": [
        "6e493a44836d3b034ed3421e866878de3fbfcc5b",
        "48d8bea8b7c83cf186460f711ab166455b5ed676"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 18:24:40 2012 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 18:24:43 2012 +0200"
      },
      "message": "isisd: merge osr/google-is-is\n\nthis is essentially half of a rewrite of isisd. please note that a lot\nof things are still broken and isisd is not ready for production use.\n"
    },
    {
      "commit": "48d8bea8b7c83cf186460f711ab166455b5ed676",
      "tree": "2004b6997ea3411ad9c77965467ca833125b6232",
      "parents": [
        "1627b20fd4fe431558d0f77aff98cbee29ca15d8"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Fri Nov 25 18:51:48 2011 +0400"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 18:22:37 2012 +0200"
      },
      "message": "quagga: option \"-z\" (\"--socket \u003cpath\u003e\") added\n\nAll daemons modified to support custom path to zserv\nsocket.\n\n[reapplied from b511468 after isisd merge]\n"
    },
    {
      "commit": "1627b20fd4fe431558d0f77aff98cbee29ca15d8",
      "tree": "1c5df6d736e904aed3c4ebcdcc9d20c15deaeb8c",
      "parents": [
        "086695cb8eea5b405b21e66b92ef0348355c4821"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Fri Nov 25 17:56:21 2011 +0400"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 18:20:38 2012 +0200"
      },
      "message": "isisd: indent longopts array\n"
    },
    {
      "commit": "086695cb8eea5b405b21e66b92ef0348355c4821",
      "tree": "ee07310a272656210f65e070da55b0b4952aeca8",
      "parents": [
        "aa3b264282677fcd33513352aa878d00163d2dbf"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 18:14:50 2012 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 18:14:50 2012 +0200"
      },
      "message": "isisd: reapply removal of CVS cruft\n\nthis re-removes CVS keywords and .cvsignore files. original commits:\n\tb82cdeb delete CVS keywords\n\t05e54ee build: delete .cvsignore files\n"
    },
    {
      "commit": "6e493a44836d3b034ed3421e866878de3fbfcc5b",
      "tree": "4edabbbca2126db9aa29b9901ada950c635c17e2",
      "parents": [
        "9bb5870e26a4089f599b24adf822c4d1a9870a44",
        "3b381c32fc2c325cc4ffb9f9f30a7e96e9bd87c6"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 16:46:13 2012 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 16:46:17 2012 +0200"
      },
      "message": "bgpd: merge osr/quagga-osr-patches (BZ#700)\n\nthis merges a bgp capability negotiation fix where bgpd would fail if no\nmultiprotocol capability was present, but other capabilities were.\n"
    },
    {
      "commit": "9bb5870e26a4089f599b24adf822c4d1a9870a44",
      "tree": "e4309095a512239ab47b5b0851d9d6fc596398cd",
      "parents": [
        "a25a44dba84e9a6ac2b87e24472b6e9f959d845b",
        "3cf6c2b4e43f44a977d218c96c26250654ae333e"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 13:54:37 2012 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Apr 16 13:54:53 2012 +0200"
      },
      "message": "bgpd: merge osr/google-bgp-multipath\n\nthis patchset allows collapsing multiple received routes in BGP into one\nmultipath route that will, if readvertised, contain an aggregate of all\nreceived attributes.\n"
    },
    {
      "commit": "aa3b264282677fcd33513352aa878d00163d2dbf",
      "tree": "47bafb70bffd6ea3f511ab0d8bd5941102cf47a4",
      "parents": [
        "14d2bbaa3f4aa53152472694c29f336808e47313"
      ],
      "author": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Wed Apr 11 23:56:03 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Wed Apr 11 23:56:03 2012 -0700"
      },
      "message": "isisd: reapply patch to fix zebra protocol\n\nReapply the bits of revision b4e45f6 that pertain to isisd. That is:\n  git log -n 1 -p b4e45f6 -- isisd\n\nThese were dropped in the merge with the Google ISIS code (14d2bbaa).\n\nThe commit message for b4e45f6 is:\n\n    fix zebra protocol after MP-BGP changes\n\n    The previous commits modified both zebra and bgpd for additional\n    SAFI field, but not any other routing daemon, which led to zebra\n    daemon crashing with failed assertion.\n"
    },
    {
      "commit": "14d2bbaa3f4aa53152472694c29f336808e47313",
      "tree": "e39bdddef4ea53207dd8fb61e1fd6b54d8c7721d",
      "parents": [
        "51d4ef832c1e58150325630e25c442866e5a6cf5",
        "e96b312150d8e376c1ef463793d1929eca3618d5"
      ],
      "author": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Wed Apr 11 23:51:08 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Wed Apr 11 23:51:08 2012 -0700"
      },
      "message": "Merge quagga mainline into the google ISIS code.\n\nThe steps were:\n\n  $ git checkout google-is-is\n  $ git merge quagga\n  $ git checkout google-is-is -- isisd\n\n  # Resolve conflicts in the following:\n  lib/md5.h\n  zebra/rt_netlink.c\n  zebra/zebra_rib.c\n  zebra/zserv.c\n\nNote that the content in the isisd directory is left unchanged in the\nmerge. As a result, changes made to isisd as part of the following\ncommits on the quagga mainline are dropped.\n\n  # 8ced4e82 is the merge base, e96b3121 is the current quagga master\n  $ git log --oneline --reverse 8ced4e82..e96b3121 -- isisd\n  5574999 isisd: fix crash on \"no router isis\" (BZ#536)\n  8998075 isisd: raise hello rate for DIS (BZ#539)\n  306ca83 isisd: include hash.h, not hash.c\n  b82cdeb delete CVS keywords\n  2f65867 isisd: indent longopts array\n  b511468 quagga: option \"-z\" (\"--socket \u003cpath\u003e\") added\n  05e54ee build: delete .cvsignore files\n  b4e45f6 fix zebra protocol after MP-BGP changes\n  7fd6cd8 isisd: fix circuit state machine\n  907fd95 isisd: send proper LSP after DIS election\n  d034aa0 isisd: fix wrong next-hops from SPF\n  c25eaff isisd: unexpected kernel routing table (BZ#544)\n  e6b03b7 isisd: implement MD5 circuit authentication\n"
    },
    {
      "commit": "a25a44dba84e9a6ac2b87e24472b6e9f959d845b",
      "tree": "86ce0bc9de906bf9aaf6ea822b157b31b7c45a06",
      "parents": [
        "e96b312150d8e376c1ef463793d1929eca3618d5"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Apr 03 20:33:24 2012 +0400"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Wed Apr 11 23:18:29 2012 +0200"
      },
      "message": "ospfd: adjust OSPF_ROUTER_LSA_MIN_SIZE for VL case\n"
    },
    {
      "commit": "3cf6c2b4e43f44a977d218c96c26250654ae333e",
      "tree": "e017cde2015fbf3ef6c250327428d7c6152aa8f7",
      "parents": [
        "01d7ff0a2166a422c56bd26f04fc22832a9e690b",
        "e96b312150d8e376c1ef463793d1929eca3618d5"
      ],
      "author": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Mon Apr 09 00:25:15 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Mon Apr 09 00:25:15 2012 -0700"
      },
      "message": "Merge branch \u0027quagga\u0027 into google-bgp-multipath\n\nConflicts:\n\tbgpd/bgp_route.c\n"
    },
    {
      "commit": "3b381c32fc2c325cc4ffb9f9f30a7e96e9bd87c6",
      "tree": "b4eb46f5fe28b4734723c9ff4227a94a5bd32b4e",
      "parents": [
        "e96b312150d8e376c1ef463793d1929eca3618d5"
      ],
      "author": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sun Feb 19 10:19:52 2012 -0800"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sun Apr 08 13:46:29 2012 -0700"
      },
      "message": "bgpd: fix issue in capability negotiation (BZ#700)\n\nAddress problem where bgpd would reject a session if a peer sent some\ncapabilities in its Open message, but did not include a Multiprotocol\nextensions capability. Note that the session would come up if there\nwere no capabilities at all in the Open message.\n\n  * Add the \u0027mp_capability\u0027 out parameter to\n    bgp_capability_parse(). Set it to \u00271\u0027 if a Multiprotocol\n    extensions capability is encountered.\n\n  * Switch on \u0027mp_capability\u0027 instead of \u0027capability\u0027 in the calling\n    functions to determine if the peer indicated the set of AFI/SAFIs\n    it supports.\n\n    The net result is that when a peer does not send an MP capability,\n    it is assumed to support the AFI/SAFIs configured for it locally.\n"
    },
    {
      "commit": "51d4ef832c1e58150325630e25c442866e5a6cf5",
      "tree": "df155c4193531a37f651d4151866f18224f8ca4b",
      "parents": [
        "2dd04c5dc8b5a09cce1c251361fa58f26398fd9f"
      ],
      "author": {
        "name": "Josh Bailey",
        "email": "joshb@google.com",
        "time": "Wed Mar 21 17:13:39 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sun Apr 08 01:19:41 2012 -0700"
      },
      "message": "zebra: include hardware addr in if up/down messages\n\nChange interface up/down notification messages to also include the\nhardware address of the interface. The format of these messages is now\nidentical to the interface add message -- move the serialization code\nto common functions.\n\n  * lib/zclient.c: Modify zebra_interface_if_set_value() to also parse\n    the hardware address. Invoke it from zebra_interface_add_read()\n    and and zebra_interface_state_read().\n\n  * zebra/zserv.c: Add zserv_encode_interface(). Invoke it from\n    zserv_interface_add(), zserv_interface_delete() and\n    zserv_interface_update().\n"
    },
    {
      "commit": "2dd04c5dc8b5a09cce1c251361fa58f26398fd9f",
      "tree": "a738ee1b46f7d346e05285677b6c4df9ba689b6d",
      "parents": [
        "af56d404cd56d94ad3b2ec3f159650eb72baef0a"
      ],
      "author": {
        "name": "Josh Bailey",
        "email": "joshb@google.com",
        "time": "Wed Mar 21 10:37:03 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sun Apr 08 01:18:41 2012 -0700"
      },
      "message": "lib: Tweak to if_delete_retain()\n\n  * lib/if.c: Change if_delete_retain() to delete all connected\n    addresses, but to not free the list that holds them. Free the list\n    just before the interface structure itself is freed, in\n    if_delete().\n"
    },
    {
      "commit": "af56d404cd56d94ad3b2ec3f159650eb72baef0a",
      "tree": "2d923b385dd21a5f0ced95d2430b4c998af18f94",
      "parents": [
        "fc328ac9d3d49b871c1139f36deb702a254c0d4f"
      ],
      "author": {
        "name": "Josh Bailey",
        "email": "joshb@google.com",
        "time": "Wed Mar 21 18:47:51 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sun Apr 08 00:28:50 2012 -0700"
      },
      "message": "zebra: clean up client routes when client goes away\n\n  * zebra/zebra_rib.c: Add code to clean up routes added by a client\n    (as identfied by \u0027rib type\u0027).\n\n  * zebra/zserv.[ch]: Maintain the type of the routes added by a\n    client on the \u0027zserv\u0027 structure -- assume that a given client uses\n    a single route type for now.\n\n    Clean up routes from a client when the client goes away (in\n    zebra_client_close()).\n\nFrom: Josh Bailey \u003cjoshb@google.com\u003e\nSigned-off-by: Avneesh Sachdev \u003cavneesh@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "fc328ac9d3d49b871c1139f36deb702a254c0d4f",
      "tree": "a7189a1286862a347834792e93a7b00df3c0cfac",
      "parents": [
        "e38e0df01ad305ad48ecf816b52fa99fd3f2a4e1"
      ],
      "author": {
        "name": "Subbaiah Venkata",
        "email": "svenkata@google.com",
        "time": "Tue Mar 27 16:35:22 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sat Apr 07 23:52:40 2012 -0700"
      },
      "message": "zebra: add more logs/asserts to rib work queue code\n\n  * zebra/zebra_rib.c: (rib_queue_add, rib_queue_init) Add some more\n    logs and asserts.\n\nFrom: Subbaiah Venkata \u003csvenkata@google.com\u003e\nSigned-off-by: Avneesh Sachdev \u003cavneesh@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "e38e0df01ad305ad48ecf816b52fa99fd3f2a4e1",
      "tree": "ad565c3d656c0d5b74a1a3a80f1774bef938b1b4",
      "parents": [
        "3f045a08812525505e165deea99a79447b44506b"
      ],
      "author": {
        "name": "Subbaiah Venkata",
        "email": "svenkata@google.com",
        "time": "Tue Mar 27 23:48:05 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sat Apr 07 13:54:37 2012 -0700"
      },
      "message": "isisd: couple of bug fixes\n"
    },
    {
      "commit": "3f045a08812525505e165deea99a79447b44506b",
      "tree": "a5c944b0584e0e5a14908a2ac9476637e7c1d7e6",
      "parents": [
        "6902c69aa30a73ecd70ef8941518b541ca02b878"
      ],
      "author": {
        "name": "Josh Bailey",
        "email": "joshb@google.com",
        "time": "Sat Mar 24 08:35:20 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sat Apr 07 13:54:37 2012 -0700"
      },
      "message": "isisd: add Google\u0027s changes to IS-IS\n"
    },
    {
      "commit": "6902c69aa30a73ecd70ef8941518b541ca02b878",
      "tree": "b38ad5eeb55cb2657f5372fab62cac3d34580ea1",
      "parents": [
        "26e2ae362baf207d82e4c1ac76bc1c2b2df6ccaa"
      ],
      "author": {
        "name": "Subbaiah Venkata",
        "email": "svenkata@google.com",
        "time": "Tue Mar 27 19:21:29 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sat Apr 07 13:54:24 2012 -0700"
      },
      "message": "zebra: tweak deletion of routes without nexthop addr\n\n  * zebra/zserv.c\n\n    - zread_ipv4_delete(): Pass a null \u0027gate\u0027 parameter to\n      rib_delete_ipv4() if the route being deleted does not specify a\n      next hop IP address. We were previously passing a pointer to a\n      cleared out IP address.\n\n    - zread_ipv4_add(): Fix indentation.\n\nFrom: Subbaiah Venkata \u003csvenkata@google.com\u003e\nSigned-off-by: Avneesh Sachdev \u003cavneesh@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "26e2ae362baf207d82e4c1ac76bc1c2b2df6ccaa",
      "tree": "e0d060875b5eab622244977e58b2445d55d6d240",
      "parents": [
        "d531050b7bf0f93d4d29a7a2f7b745641778b483"
      ],
      "author": {
        "name": "Josh Bailey",
        "email": "joshb@google.com",
        "time": "Thu Mar 22 01:09:21 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sat Apr 07 13:54:02 2012 -0700"
      },
      "message": "zebra: read multipath routes and hw addr from netlink\n\n  * zebra/rt_netlink.c:\n\n    - Pick up the hardware address of an interface when we receive a\n      netlink link change message. Extract code for parsing the\n      link-layer hardware address into a new function so we can reuse\n      it.\n\n    - netlink_routing_table(): Update to handle multipath routes.\n\n    - netlink_route_change(): Update to handle multipath routes. Fix\n      problem where the metric was not being read out.\n\n  * zebra/zebra_rib.[ch]: Extern nexthop_ipv4_ifindex_add() -- it is\n    now called from the netlink code.\n\nFrom: Josh Bailey \u003cjoshb@google.com\u003e\nSigned-off-by: Avneesh Sachdev \u003cavneesh@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "d531050b7bf0f93d4d29a7a2f7b745641778b483",
      "tree": "82e45741fa3883f6e25a38f2abef4eea107fd54f",
      "parents": [
        "bed930fd70742af5ae138e0a5ee629dda296ea36"
      ],
      "author": {
        "name": "Subbaiah Venkata",
        "email": "svenkata@google.com",
        "time": "Sat Mar 24 13:10:19 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sat Apr 07 13:53:40 2012 -0700"
      },
      "message": "lib: add stream_set_endp()\n\n  * lib/stream.[ch]:\n\n    - Add stream_set_endp(). This can be used to trim data (for\n      example, padding) at the end of a stream.\n\n    - Fix swapped \u0027getp\u0027 and \u0027endp\u0027 parameters in STREAM_WARN_OFFSETS.\n\nFrom: Subbaiah Venkata \u003csvenkata@google.com\u003e\nSigned-off-by: Avneesh Sachdev \u003cavneesh@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "bed930fd70742af5ae138e0a5ee629dda296ea36",
      "tree": "38d107117db56d60ce8d136507cc1d79ac2e22dc",
      "parents": [
        "54dd61227352dd1dd4db4fe76dbf7d2e92522e74"
      ],
      "author": {
        "name": "Josh Bailey",
        "email": "joshb@google.com",
        "time": "Wed Mar 21 10:22:19 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sat Apr 07 13:53:22 2012 -0700"
      },
      "message": "lib: add support for keyed-hashing with MD5\n\n  * lib/md5.[ch] Add implementation of HMAC-MD5 from RFC 2104.\n\nFrom: Josh Bailey \u003cjoshb@google.com\u003e\nSigned-off-by: Avneesh Sachdev \u003cavneesh@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "54dd61227352dd1dd4db4fe76dbf7d2e92522e74",
      "tree": "da320cdec867ca81748f3b85b772422b386bf376",
      "parents": [
        "8ced4e82e6f417b13f4bfc09018fc51fd31058e2"
      ],
      "author": {
        "name": "Josh Bailey",
        "email": "joshb@google.com",
        "time": "Wed Mar 21 10:00:07 2012 -0700"
      },
      "committer": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Sat Apr 07 13:52:23 2012 -0700"
      },
      "message": "lib: Tweaks to linked list macros\n\n  * lib/linklist.h\n\n    - Change the listnextnode, listhead and listtail macros so that\n      they allow the list pointer to be NULL.\n\n    - Modify the ALL_LIST_ELEMENTS* macros such that they clear the\n      data pointer at the beginning and end of the loop.\n\nFrom: Josh Bailey \u003cjoshb@google.com\u003e\nSigned-off-by: Avneesh Sachdev \u003cavneesh@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "e96b312150d8e376c1ef463793d1929eca3618d5",
      "tree": "33bdbba11475be746d7ebf684fd1441b9db4b929",
      "parents": [
        "a3537862f3c00b60fc52a67c1cc447c2a65f97bd"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Wed Apr 04 00:14:36 2012 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Wed Apr 04 00:25:51 2012 +0200"
      },
      "message": "lib: pretty ip_masklen and masklen2ip\n\nnonwithstanding any desire for optimisation, these versions are shorter\nand more concise.  reading the comments, they might even be easier to\nunderstand.\n\nI\u0027ve tested them on i686 and x86_64, and checked that correct assembler\ncode is emitted for ARM, MIPS and PowerPC.\n\nIPv6 is left as an exercise for another day, none of the ideas I had led\nto a \"yes, this is the one to go with\" solution.\n\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "a3537862f3c00b60fc52a67c1cc447c2a65f97bd",
      "tree": "97bcf4e43ff70dcf74de412e37944fd3ac5d6aae",
      "parents": [
        "fa5831e85ae9ba7008fb4b4e2d4c7561ae5cb697"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Fri Mar 23 22:48:05 2012 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Wed Apr 04 00:25:31 2012 +0200"
      },
      "message": "Revert \"lib: optimize ip_masklen()\" (BZ#720)\n\nThis reverts commit d171bf58ef12ace43d48565e6870722dece1e6ed.\n\nThere are multiple reasons for this revert, including bug #720, but also\nquite simply the unreadability of having 2000 lines of an autogenerated\ntable in the middle of a source file.\n\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\nReported-by: Martin Winter \u003cmwinter@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "fa5831e85ae9ba7008fb4b4e2d4c7561ae5cb697",
      "tree": "5653d8127ad212e6d251fb078afef50fc262353b",
      "parents": [
        "fa61e16ddebe10a71d98bcd2eba0f630071ea4a7"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Mar 27 11:54:04 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Mar 27 11:54:04 2012 +0100"
      },
      "message": "bgpd: bgp_attr_flags_diagnose shouldn\u0027t assert\n\n* bgpd/bgp_attr.c: (bgp_attr_flags_diagnose) debug code for error-handling\n  paths probably shouldn\u0027t assert, instead it should just log that there\n  was no problem.\n"
    },
    {
      "commit": "fa61e16ddebe10a71d98bcd2eba0f630071ea4a7",
      "tree": "bc301257fdb4dbac4aedf1e17ffa3e6c00a77612",
      "parents": [
        "683f2b86d89fa356d3d1f7a54b0c269baa38b836"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 21:31:47 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Mar 27 11:48:38 2012 +0100"
      },
      "message": "bgpd: attr_parse call to attr_malformed should deal with PROCEED error case\n\n* bgpd/bgp_attr.c: (bgp_attr_parse) the invalid flag check call to\n  bgp_attr_malformed is pretty useless if it doesn\u0027t actually allow\n  for the PROCEED non-error case.\n"
    },
    {
      "commit": "683f2b86d89fa356d3d1f7a54b0c269baa38b836",
      "tree": "0788f6ea3f9079d3c1d775c49cd4cd881e44d204",
      "parents": [
        "bd471fea4ec965c71d6c2201745995092fbc36f6"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Mar 23 14:58:45 2012 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Mar 27 11:48:35 2012 +0100"
      },
      "message": "bgpd: Fix silly mistake in bgp_attr_flag_invalid\n\n* bgp_attr.c: (bgp_attr_flag_invalid) flags is meant to be masked\n  off with the mask variable...\n"
    },
    {
      "commit": "bd471fea4ec965c71d6c2201745995092fbc36f6",
      "tree": "1d07d21b35101724d98107d47f4cd214800b4489",
      "parents": [
        "81c3e5006e5d29e305cbc0ab482617d7e570e8c0"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Mar 15 11:30:00 2012 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 21:33:51 2012 +0100"
      },
      "message": "bgpd: malformed attribute error that can still proceed should fixup getp\n\n* bgp_attr.c: (bgp_attr_malformed) When a malformed attribute error can be\n  ignored, and BGP message processing may still proceed, the stream getp\n  should be adjusted to the end of the attribute - the caller may not have\n  consumed all the attribute. Problem noted by Martin Winter in bug 678.\n\n  Also, rename the \u0027startp\u0027 local to \u0027notify_datap\u0027, for clarity.\n"
    },
    {
      "commit": "81c3e5006e5d29e305cbc0ab482617d7e570e8c0",
      "tree": "7408dfdeff638ce16273cd7c8c4d9c35a99cfe87",
      "parents": [
        "fe67e668881b8b8d71b1570575c913cd287fafcf",
        "6881f2698279f3c47a55e8969860eeac59e8c3d7"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:10:22 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:10:22 2012 +0100"
      },
      "message": "Merge branch \u0027babeld-merge\u0027 into master-copy\n"
    },
    {
      "commit": "6881f2698279f3c47a55e8969860eeac59e8c3d7",
      "tree": "7408dfdeff638ce16273cd7c8c4d9c35a99cfe87",
      "parents": [
        "cbde15513ba47f6e7f6d02fcafcfb12cd5b1df77"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 14 15:43:34 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: remove \"parasitic\" mode.\n\nThis is the functionality described in Appendix C of RFC 6126.  Its\nmain purpose is to avoid keeping a full source table, which makes it\npossible to implement a subset of Babel in just a few hundred lines of\ncode.  However, in Quagga the code for maintaining the source table is\nalready there, and a parasitic implementation can be simulated using\nfiltering -- so it makes little sense to keep the functionality.\n"
    },
    {
      "commit": "cbde15513ba47f6e7f6d02fcafcfb12cd5b1df77",
      "tree": "97c9fbd49c65207ca878237d7668ba51cb472f9d",
      "parents": [
        "5ca7986d546a1b65a4917aec0f1b594f950f7c27"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Feb 14 15:12:03 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: 3 more timing statements in config text\n\nThis commit makes the following lines visible in running-config text,\nwhen respective intervals are configured to non-default values:\n\n* babel hello-interval\n* babel update-interval\n* babel resend-delay\n"
    },
    {
      "commit": "5ca7986d546a1b65a4917aec0f1b594f950f7c27",
      "tree": "db1870605c572a7a15493a6c5a1fd7d5d2e71ece",
      "parents": [
        "b63b4484c6d2c9d304d4ddd0756a4847c6dc5359"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 14 11:22:29 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: consolidate zebra interface into fewer functions.\n"
    },
    {
      "commit": "b63b4484c6d2c9d304d4ddd0756a4847c6dc5359",
      "tree": "e81471e9fd7e912ab16d3c2de9b3dbea5aa971e7",
      "parents": [
        "260948cdd6030b332137dfa0580d5a9ba651b145"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 14 11:17:32 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: fix typo in kernel_route_add_v6.\n"
    },
    {
      "commit": "260948cdd6030b332137dfa0580d5a9ba651b145",
      "tree": "873a640ce0a3befae45dbc4d4625ab97acbdb271",
      "parents": [
        "46b92c043f1a83d8343a4a0345a7b69bac3cdf20"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 14 09:09:32 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: set interface flags eagerly, not at interface up.\n"
    },
    {
      "commit": "46b92c043f1a83d8343a4a0345a7b69bac3cdf20",
      "tree": "11cfaf25b7654c09c6c0d30f4992b0715bf9ecd7",
      "parents": [
        "4d176dc07ccdcdefcd0e40043233a8c4f136f5c1"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 14 08:53:51 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: more helpful sample conf file.\n"
    },
    {
      "commit": "4d176dc07ccdcdefcd0e40043233a8c4f136f5c1",
      "tree": "feea17526352c6fca5f61dd398279007ff6a2881",
      "parents": [
        "36329c02c36703cc2158c1c99b86045fed26d4ae"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 14 08:52:19 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: fix documentation.\n"
    },
    {
      "commit": "36329c02c36703cc2158c1c99b86045fed26d4ae",
      "tree": "64cebc900d5b528f5a85645f681a38b59e5ad669",
      "parents": [
        "cb4b13d945a4b44282e59fa2be9ceda752420a13"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 14 08:49:57 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: remove remains of standalone babeld\u0027s configuration code.\n\nStandalone babeld has a configuration interface that is not used in\nQuagga.  This removes a few bits of this code that survived the\nport to Quagga.\n"
    },
    {
      "commit": "cb4b13d945a4b44282e59fa2be9ceda752420a13",
      "tree": "6ff7d9cdbe147dc57cd651b21e70bce5735b971e",
      "parents": [
        "a14ef5eeccc8c76c41830475bbe3c31c9e14faa5"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Feb 13 22:13:37 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: drive interface_config_write() forward\n"
    },
    {
      "commit": "a14ef5eeccc8c76c41830475bbe3c31c9e14faa5",
      "tree": "7099b5d4614c05491a1a5a1cef512f64c3f2512c",
      "parents": [
        "ce590ecd85b3cf32c5429f09e12d92248cc01ef2"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Feb 11 21:06:16 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: justify \"running-config\" meaning in CLI\n\nThe primary focus of this commit is to make \"show running-config\"\ncommand display more current configuration, including some of the bits\npreviously seen in the output of \"show babel running-config\". Besides\nthat, the following commands were renamed for consistency with the\nsyntax of other components:\n\n\"debug *\" to \"debug babel *\" (and moved to top level)\n\"show babel running-config\" to \"show babel parameters\"\n\n* babel_interface.c\n  * show_babel_running_config(): rename to show_babel_parameters(),\n    update syntax pattern, don\u0027t call show_babeld_configuration()\n  * babel_if_init(): update respectively\n  * babel_enable_if_config_write(): new VTY helper for static\n    babel_enable_if\n* babel_interface.h: add extern declaration\n* babel_main.c: unset all debug options by default\n  * show_babel_main_configuration(): remove debug options decoder\n* babel_zebra.c\n  * babel_debug(): rename to debug_babel(), update syntax pattern\n  * no_babel_debug(): rename to no_debug_babel(), update syntax pattern\n  * babelz_zebra_init(): update respectively\n  * debug_babel_config_write() new VTY helper for static debug_type\n* babel_zebra.h: add extern declaration\n* babeld.c\n  * babel_config_write(): add the code to output \"debug babel *\",\n    \"router babel\", \"redistribute *\" and \"network *\" statements\n  * show_babeld_configuration(): dismiss\n* babeld.h: remove extern declaration\n* babeld.texi: update for renamed commands\n* babeld.conf.sample: idem, add debug statements block\n"
    },
    {
      "commit": "ce590ecd85b3cf32c5429f09e12d92248cc01ef2",
      "tree": "b9815ffc6af493f467d0ec820b4f27a6bf78acdd",
      "parents": [
        "8a46e12f5f0b02d58b1d7bc6c0d140aeec6c80c2"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Sat Feb 11 17:48:05 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "Remove dead variable reboot_time.\n\nThanks to Denis Ovsienko.\n"
    },
    {
      "commit": "8a46e12f5f0b02d58b1d7bc6c0d140aeec6c80c2",
      "tree": "a0c7538f2b1378d34ee148b534918207160589b6",
      "parents": [
        "68c65a5d3a6a8cb8133b5e9311fc5dc21de88e9c"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Sat Feb 11 15:09:33 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "doc: fix typo.\n"
    },
    {
      "commit": "68c65a5d3a6a8cb8133b5e9311fc5dc21de88e9c",
      "tree": "94c9e7ae2896736dc1c1c227189e8930a2f92c22",
      "parents": [
        "173982334c978fdf2e7030d32a2cdc99587fb434"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Sat Feb 11 14:28:17 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "doc: update babeld documentation.\n"
    },
    {
      "commit": "173982334c978fdf2e7030d32a2cdc99587fb434",
      "tree": "85090c53119c78ddcbaf73368c1779edd0d83996",
      "parents": [
        "9c298c7119c1dba6c589b8f4c358debd8e694b72"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Sat Feb 11 14:27:16 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "doc: fix Makefile dependencies for babeld.\n"
    },
    {
      "commit": "9c298c7119c1dba6c589b8f4c358debd8e694b72",
      "tree": "d8ae18bd5aec994e02aabed536446a24051cefbc",
      "parents": [
        "c428edba5fb151844d28fbb41fce1df466a74e42"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Sat Feb 11 14:06:24 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: display update-interval and resend-delay in show commands\"\n"
    },
    {
      "commit": "c428edba5fb151844d28fbb41fce1df466a74e42",
      "tree": "739698e02d1d1e1108015980a6e3fba7a0e64404",
      "parents": [
        "b58871ee4d54989c16a60a839a592c9c4ab19cc3"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Sat Feb 11 14:02:10 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: vty commands (hello-interval, update-interval, resend-delay).\n"
    },
    {
      "commit": "b58871ee4d54989c16a60a839a592c9c4ab19cc3",
      "tree": "0416cf9ff1b2125463a760aff247c52beac329bc",
      "parents": [
        "52d54422bdc0b70356d84a38a0ce15ba5dea03e0"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Sat Feb 11 13:34:30 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: remove port and group setting commands.\n\nThey didn\u0027t work anyway, since they\u0027re called too late.\n"
    },
    {
      "commit": "52d54422bdc0b70356d84a38a0ce15ba5dea03e0",
      "tree": "175c986de70da9ccb9e88ec137a2577713653d42",
      "parents": [
        "359be3d0e4db5c931b1ad0dabbac2dea77394de1"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Sat Feb 11 13:08:00 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "Resynchronise with babeld-1.3.1.\n"
    },
    {
      "commit": "359be3d0e4db5c931b1ad0dabbac2dea77394de1",
      "tree": "4df570e46604bb29f178a94656abcbfbd9154edd",
      "parents": [
        "3c442e8802c260a0ce9787b5f432a7a2a093be25"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Feb 11 15:25:01 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: dismiss babel_redistribute_unset()\n\nThe function was effectively duplicating existing\nzclient_redistribute(). This makes no_babel_redistribute_type()\nconsistent with babel_redistribute_type()\n"
    },
    {
      "commit": "3c442e8802c260a0ce9787b5f432a7a2a093be25",
      "tree": "4fdbf9843386175a380a46e2b75dc0f23aeceb4d",
      "parents": [
        "9c58fbd7d7658055c2b3074489c6d338448d88e9"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Wed Feb 08 23:30:46 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: fix wire{d,less} commands name.\n"
    },
    {
      "commit": "9c58fbd7d7658055c2b3074489c6d338448d88e9",
      "tree": "a085d8bc6ca9e5f5bc4ed9c186f89a207c59e3f8",
      "parents": [
        "93079db65cbb678d7fb67f7dd871e24c12b86f09"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Thu Feb 09 21:51:17 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "ripd: add babel for redistribution.\n"
    },
    {
      "commit": "93079db65cbb678d7fb67f7dd871e24c12b86f09",
      "tree": "e781a6d0f4c8b60b0df9d78f9b36125f5f027805",
      "parents": [
        "d70ab9dcd8f054ebd5f60a29dbbd9b39f9fe7566"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Thu Feb 09 20:58:07 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "ripngd: Replace redistribution strings with route_types.h defines.\n"
    },
    {
      "commit": "d70ab9dcd8f054ebd5f60a29dbbd9b39f9fe7566",
      "tree": "2901221e2a01c5079f2dba182f09570e8d7c0f6c",
      "parents": [
        "31e2a19fd2b4aca34b1d2f5e2eb8c9a44b9ea6c9"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Thu Feb 09 17:23:09 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:54 2012 +0100"
      },
      "message": "babeld: Add support for blackhole routes.\n\nBabel makes use of blackhole routes to prevent routing loops between\noverlapping prefixes shortly after a route is retracted (see RFC 6126\nsections 2.8 and 3.5.5).  This patch adds support for installing such\nblackhole routes.\n"
    },
    {
      "commit": "31e2a19fd2b4aca34b1d2f5e2eb8c9a44b9ea6c9",
      "tree": "a45b53df9a0a9d9acda77462d0993ca836df3936",
      "parents": [
        "578ce371d12422ce444f31ae4e51b21675c74b55"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Thu Feb 09 14:06:11 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: refactor filtering stubs.\n\nFactorise the common parts of the in/out filtering functions.  This also\nfixes a bug with filtered out routes, which in babeld are signalled by\na filter returing INFINITY, not -1.\n"
    },
    {
      "commit": "578ce371d12422ce444f31ae4e51b21675c74b55",
      "tree": "fc3412d8da413c531257fbc9517b5eb93bea1b96",
      "parents": [
        "82509bfde09b15ac8856a374aac6d5d62b91f54a"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Thu Feb 09 13:42:28 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "zebra: Display uptime of Babel routes in show ip[v6] route.\n"
    },
    {
      "commit": "82509bfde09b15ac8856a374aac6d5d62b91f54a",
      "tree": "c9e45fb9cba3fd9b64357537e8fe342bb9fe38ad",
      "parents": [
        "b6475ecb14abab936919894050f9ca47415d0f48"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Thu Feb 09 13:35:27 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: Use quagga_gettime.\n"
    },
    {
      "commit": "b6475ecb14abab936919894050f9ca47415d0f48",
      "tree": "2db873dd6edb2e68ef2c0e37d44acf0ea9068521",
      "parents": [
        "53b21956f650df86a76b7a7047cfa85114c99dcc"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Thu Feb 09 12:29:10 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: Don\u0027t use an ifindex when installing IPv4 routes.\n\nStand-alone babeld installs routes using both a next-hop gateway\nand an interface index.  Unfortunately, this doesn\u0027t work for IPv4\nunder Quagga.\n\nWe now ignore the ifindex when installing IPv4 routes, which makes\nBabel work for IPv4 in prefix-based networks.  Of course this breaks\nIPv4 mesh networks, unless you play some tricks with your interfaces\u0027\nnetmasks.\n"
    },
    {
      "commit": "53b21956f650df86a76b7a7047cfa85114c99dcc",
      "tree": "7a07aba2dcd54b609443974c09ec6f6f5698756a",
      "parents": [
        "73c74d4ee8bd0bc3fae899679e852df9c61f0ed3"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Tue Jan 31 17:09:55 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: remove some unused functions\u0027 arguments.\n"
    },
    {
      "commit": "73c74d4ee8bd0bc3fae899679e852df9c61f0ed3",
      "tree": "98d49f532b6ca046400be60d67eb80972bd5469d",
      "parents": [
        "f92a55ff0ef8e1186ad52369ace299bc91fdb791"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Wed Feb 08 00:32:59 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "doc: fix typo in babeld.\n"
    },
    {
      "commit": "f92a55ff0ef8e1186ad52369ace299bc91fdb791",
      "tree": "36b5068221797590a1c0e65e83a946fdccf9a885",
      "parents": [
        "ec0c848047954158b4316d45586079cbb774a7fe"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 07 16:33:17 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "doc: Document babeld.\n"
    },
    {
      "commit": "ec0c848047954158b4316d45586079cbb774a7fe",
      "tree": "cd95fef71d389c06513575ec39592851aebda984",
      "parents": [
        "38846de1fd7fa9005933564de28360fb9bdf02bb"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 07 05:44:41 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: Indentation fix.\n"
    },
    {
      "commit": "38846de1fd7fa9005933564de28360fb9bdf02bb",
      "tree": "ec52e9591640b5edbb3b868d487191ec9e324199",
      "parents": [
        "e19ed8c4516621be74b9a28c887185fc66b67430"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 07 05:43:36 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: Error handling and tweaks for babeld commands.\n"
    },
    {
      "commit": "e19ed8c4516621be74b9a28c887185fc66b67430",
      "tree": "2af3257496f6dc568649ee1596d3a265cc8cfd26",
      "parents": [
        "feb6c53eacf630bf18d29e1994f65e567dbdd985"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 07 05:36:06 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: Fix typo in hello interval command.\n"
    },
    {
      "commit": "feb6c53eacf630bf18d29e1994f65e567dbdd985",
      "tree": "4401c28048c69cdbced6be4ab1cd3bbd496b50af",
      "parents": [
        "831aeb9a87d9071829758caf11130aee5578f9c2"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 07 04:58:49 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "vtysh: Vtysh support for babeld.\n"
    },
    {
      "commit": "831aeb9a87d9071829758caf11130aee5578f9c2",
      "tree": "1d0f7da3a51a47d25e5430c69dbd086ea9c22248",
      "parents": [
        "8c4e57a57562c9329b1de4c29ee921ab98182c6b"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 07 04:56:47 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: Replace the babeld.conf.sample file by one that actually works.\n"
    },
    {
      "commit": "8c4e57a57562c9329b1de4c29ee921ab98182c6b",
      "tree": "54253839ace41b14e363b6c5ede863c34e91e2e6",
      "parents": [
        "69394543597a0fd8c161c5c8a0d25c8b1cfa8a93"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Sat Jan 28 00:29:51 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: fix interface bug, simplify code.\n\nPerhaps could it be able to free already free memory (so free(NULL)),\nin function interface_reset().  On other hand, it initiated untracked\ninterfaces, raising (at least) inappropriate messages. Finally, I\nremove the BABEL_IF_IS_ENABLE flag, witch was not really usefull.\nNote the test if_up isn\u0027t weaker, because (...IS_UP \u003d\u003e ...IS_ENABLE).\n"
    },
    {
      "commit": "69394543597a0fd8c161c5c8a0d25c8b1cfa8a93",
      "tree": "9e13b75ac01d607d4006db15fd14db811b9310e0",
      "parents": [
        "210f6f66287c40f247c1a4ff983aae85b9e42e2c"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Sat Jan 28 10:35:12 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: state-file was loaded too early. Initial seqno too.\n"
    },
    {
      "commit": "210f6f66287c40f247c1a4ff983aae85b9e42e2c",
      "tree": "37b63e1cffca96ba3f069f777b89f5f18284a523",
      "parents": [
        "a0edef1b74bc9785b2aa1ed292a2777b6a75d40e"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Sat Jan 28 00:07:14 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: fix eui64 features.\n\nWe are interested by eui64 with at least 6 octets.\n"
    },
    {
      "commit": "a0edef1b74bc9785b2aa1ed292a2777b6a75d40e",
      "tree": "e8be8ce19865379388f57d7131c463de2d960dab",
      "parents": [
        "05c943ac43087750ebc81b916b7dccfe4ae074ff"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Fri Jan 27 22:54:11 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: \"return CMD_SUCCESS\" was missing for command \u0027no debug\u0027.\n"
    },
    {
      "commit": "05c943ac43087750ebc81b916b7dccfe4ae074ff",
      "tree": "479fdbb7567e4c01656f9cbf5d19d712e73d2ae4",
      "parents": [
        "c35fafdf887aa32c5be6ad738d3a3b0140cea6e8"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Thu Jan 26 22:15:34 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: Replace redistribution strings with route_types.h defines.\n"
    },
    {
      "commit": "c35fafdf887aa32c5be6ad738d3a3b0140cea6e8",
      "tree": "4aa21a41dcd82247e467e5b955a6f7813bfd7ba7",
      "parents": [
        "16e51b246be6b18641327685f44bd4f5f6649367"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Mon Jan 23 23:46:32 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: babelz merge.\n\nBabelz is the last version of the stand-alone babel daemon. In\nparticular, it use multiple channels to diminuate\ninterferences. Please refer to this one for more details.\n"
    },
    {
      "commit": "16e51b246be6b18641327685f44bd4f5f6649367",
      "tree": "2ad92205d59a36e1d5c822a369fe92381dd43e5c",
      "parents": [
        "0b42c70840e16b048f62a38652123eb2cb900b65"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Mon Jan 23 00:22:14 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: remove unused variable.\n"
    },
    {
      "commit": "0b42c70840e16b048f62a38652123eb2cb900b65",
      "tree": "d0aec2e81624a7b0c43a0319515d257439f57e59",
      "parents": [
        "a19a3bf94740aebff6fdfc76f3d4b17c0013fae4"
      ],
      "author": {
        "name": "Ang Way Chuang",
        "email": "wcang79@gmail.com",
        "time": "Fri Jan 27 20:52:27 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "vtysh: fix regexp for install_element() in babeld\n"
    },
    {
      "commit": "a19a3bf94740aebff6fdfc76f3d4b17c0013fae4",
      "tree": "057e963785a71025500fe3b1e052c348c86c5d67",
      "parents": [
        "ec8d8d5ba648302cf9405f1346e3760d9b9d061c"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Jan 21 23:16:00 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: add MP-specific zclient API fix\n\nAdd proper initialization of SAFI field, which is present in the\nrevisions of zapi_ipv4 and zapi_ipv6 structures specific to\nMP-BGP patchset. Without this change no Babel routes could make\ninto zebra RIB.\n"
    },
    {
      "commit": "ec8d8d5ba648302cf9405f1346e3760d9b9d061c",
      "tree": "ec5a3e3677000458e17e941deccf9c0308ae759a",
      "parents": [
        "6dfeb3f6cfaf89ce0e11421b48feb2965a43ffd6"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Fri Jan 20 15:32:16 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: change the modify route system.\n\nZebra doesn\u0027t set errno to EEXIST if we add a route who was already in\nthe kernel, so we always returned after just doing \"add; delete\". This\npatch fix the problem by doing \"delete; add\" always.\n"
    },
    {
      "commit": "6dfeb3f6cfaf89ce0e11421b48feb2965a43ffd6",
      "tree": "73b35ad02beef3db3e1b69a15c1c82e72c1bd287",
      "parents": [
        "f1305cbfbed050ed4f389fa282bef49917ffd638"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Fri Jan 20 17:53:57 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "babeld: fix bug due to v4mapped addresses.\n"
    },
    {
      "commit": "f1305cbfbed050ed4f389fa282bef49917ffd638",
      "tree": "5b2b264b5d4be7619b90f28225d157ed28232d27",
      "parents": [
        "b5d43c939476b49106b1ab80b61609aba43c915d"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Fri Jan 20 00:19:35 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: add command (config) to set debug flags.\n"
    },
    {
      "commit": "b5d43c939476b49106b1ab80b61609aba43c915d",
      "tree": "6f5cf39088c98a114b0ccadc3a65f3dd848a222c",
      "parents": [
        "2236df03898f82e627f865e11157a5e08dd2e4ba"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Thu Jan 19 22:38:56 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: remove useless variable, make local another.\n"
    },
    {
      "commit": "2236df03898f82e627f865e11157a5e08dd2e4ba",
      "tree": "f27b4f7ce340761e4ce8181ac33cc85ccc5bc9c4",
      "parents": [
        "3f031ed536cf96d44015cf49d1f734d15d194f0a"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Thu Jan 19 22:37:38 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "memory: install babel memory informations.\n"
    },
    {
      "commit": "3f031ed536cf96d44015cf49d1f734d15d194f0a",
      "tree": "b119fce3d2a11f580e355cec08eab50d6b30c181",
      "parents": [
        "72db20bf8f6af1fd70ae42f287360cad835f042b"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Wed Jan 18 23:03:00 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: fix commands informations messages.\n"
    },
    {
      "commit": "72db20bf8f6af1fd70ae42f287360cad835f042b",
      "tree": "6bc7d807f5ef0bbba7f89059504a7f71cada1f46",
      "parents": [
        "3cb4134bcfb2b9f7aa885a39cc0efc3b18125490"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Wed Jan 18 22:06:10 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: place the babel-state file in the quagga vars directory.\n"
    },
    {
      "commit": "3cb4134bcfb2b9f7aa885a39cc0efc3b18125490",
      "tree": "c6a6e0177bafc14ad6b240f725a07bb64653a830",
      "parents": [
        "d3351d1ebf99591cf436035bb148e4ae0b351ffc"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Wed Jan 18 20:20:59 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: use zlog_debug instead of do_debugf, for debugf.\n"
    },
    {
      "commit": "d3351d1ebf99591cf436035bb148e4ae0b351ffc",
      "tree": "f0e5286ec77fe2bab401343df6ce32e79a7b963b",
      "parents": [
        "1f39f466e439f217dcbae741ddc23a5340a05ec9"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Thu Jan 19 22:36:56 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: add command: \"show_babel_running_config\".\n"
    },
    {
      "commit": "1f39f466e439f217dcbae741ddc23a5340a05ec9",
      "tree": "bfe2fe898eacf5b4363d63bde9387efb3bb11125",
      "parents": [
        "297a55ba1ce58b281b825400abeca6c32b99db52"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Wed Jan 18 20:01:31 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: add command: \"show_babel_database\".\n"
    },
    {
      "commit": "297a55ba1ce58b281b825400abeca6c32b99db52",
      "tree": "cdeeb45d82ed83f6db0bf3920ea7be14f55f94fa",
      "parents": [
        "0ee8a1f1d61ce55642d9164625ab36700fe2c3a9"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Wed Jan 18 16:39:29 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: add command: \"show_babel_neighbour\".\n"
    },
    {
      "commit": "0ee8a1f1d61ce55642d9164625ab36700fe2c3a9",
      "tree": "1bb2592f6386b38bb6254cd7d6267a2cde056275",
      "parents": [
        "4eedea551290906fc76f3a0c908ae759e78bb68a"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Wed Jan 18 00:52:06 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: avoid segfault (bug 706).\n"
    },
    {
      "commit": "4eedea551290906fc76f3a0c908ae759e78bb68a",
      "tree": "dcc0782b8ffe445f3a75839b99eabc50194442ef",
      "parents": [
        "d4e46e681434e768b870679b998eb1ac7635fdfc"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Tue Jan 17 22:46:21 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: change fprintf(stderr) in term of zlog_err.\n"
    },
    {
      "commit": "d4e46e681434e768b870679b998eb1ac7635fdfc",
      "tree": "9c37d25a9f90c1546e325811678b861b25a14c8e",
      "parents": [
        "8f3607f84eb5d21d4732a51b39775b7edf8796c2"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Jan 17 19:25:03 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: implement \"show babel interface\" command\n\n* babel_interface.c\n  * show_babel_interface_sub(): new function to process one ifp\n  * show_babel_interface(): new function, VTY wrapper\n  * babel_if_init(): update respectively\n"
    },
    {
      "commit": "8f3607f84eb5d21d4732a51b39775b7edf8796c2",
      "tree": "3acdc79efb673d2797ac12abf28308815213f9fe",
      "parents": [
        "446d73b7ae544df3af68b4e85ddcd06c2d3589bf"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Jan 17 17:04:00 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: add handling of \"-z\" cmdline arg\n"
    },
    {
      "commit": "446d73b7ae544df3af68b4e85ddcd06c2d3589bf",
      "tree": "9e09fbc19f68c90e7ab6c3ee43e1efbf7cf3214f",
      "parents": [
        "f8a246d6df0556fb897e1785d1c2ea81caf8956d"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Jan 17 17:00:20 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: bring babel_usage() into focus\n"
    },
    {
      "commit": "f8a246d6df0556fb897e1785d1c2ea81caf8956d",
      "tree": "e78438d35439685d7427dd5bfbc404f5c32f4b5c",
      "parents": [
        "87c271c69330cfcea7955503eba3ed15a15cb634"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Jan 11 18:18:56 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "lib: update proto_redistnum() for Babel\n"
    },
    {
      "commit": "87c271c69330cfcea7955503eba3ed15a15cb634",
      "tree": "b336a3004fcdc45dea7ff336889984ca8f94e320",
      "parents": [
        "528eab1fd04434e0befe9a98191b11602e3cb2ff"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Jan 10 15:58:04 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: address remaining -Wcast-qual warnings\n\n* net.c\n  * babel_send(): arguments are not treated as \"const\", justify\n    declaration\n* babel_main.c: declare constant pointers as such\n"
    },
    {
      "commit": "528eab1fd04434e0befe9a98191b11602e3cb2ff",
      "tree": "2d7db816953bda15297d9d500c3c878185f22ca3",
      "parents": [
        "c7c53fa88ccdbc2d48cf7327c9e4f33cdc517a8a"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Sun Jan 08 17:07:10 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: fix bug concerning pidfile.\n"
    },
    {
      "commit": "c7c53fa88ccdbc2d48cf7327c9e4f33cdc517a8a",
      "tree": "9bd7e691165412840555be6d10a7a37b69b00bc0",
      "parents": [
        "3dbda0ceebe369a1071600fe7d8d8ecf45f1027c"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Sun Jan 08 16:43:08 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: address some other compilation warnings.\n"
    },
    {
      "commit": "3dbda0ceebe369a1071600fe7d8d8ecf45f1027c",
      "tree": "1df830052d1a516bc4ec6b213b36b16d28c9868d",
      "parents": [
        "ef4de4d36c2dc10a68d41e518057d04b262ec867"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Jan 08 16:52:36 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: address some compilation warnings\n\nIncluding system headers is not necessary with zebra.h included and\nsometimes results in \"__ASSERT_FUNCTION redefined\" compilation warning.\n\n* babeld.c\n  * babel_distribute_update_interface(): make static\n* babel_interface.c\n  * interface_config_write(): unused \u0027babel_ifp\u0027\n  * don\u0027t include system headers\n* message.c\n  * send_request(): unused \u0027babel_ifp\u0027\n  * send_multihop_request(): idem\n  * don\u0027t include system headers\n* route.c: don\u0027t include system headers\n* xroute.c: idem\n* source.h: newline at EOF\n* message.h: idem\n"
    },
    {
      "commit": "ef4de4d36c2dc10a68d41e518057d04b262ec867",
      "tree": "fb194c240926977a85d3f313f65b3ab038fb8d1a",
      "parents": [
        "089082b5d51c41a4498edb6a3f495ade0d517e73"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Jan 08 15:29:19 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: address FreeBSD \"struct route\" issue\n\nFreeBSD system headers have their own \"struct route\", which made it\nimpossible to compile babeld. Switching babeld to \"struct babel_route\".\n"
    },
    {
      "commit": "089082b5d51c41a4498edb6a3f495ade0d517e73",
      "tree": "af876f1c7fcbd3077ffcce8c76e031c226b654cf",
      "parents": [
        "5734509c0545ebd95a5b8e3f22a911c1a39ffa1b"
      ],
      "author": {
        "name": "Matthieu Boutier",
        "email": "boutier@pps.jussieu.fr",
        "time": "Fri Jan 06 23:09:23 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:52 2012 +0100"
      },
      "message": "babeld: clean kernel_zebra (old functions, fields...).\n"
    }
  ],
  "next": "5734509c0545ebd95a5b8e3f22a911c1a39ffa1b"
}
