)]}'
{
  "log": [
    {
      "commit": "e4f2a2bef879d9e7f5c4c80994c44772b09beb59",
      "tree": "ec276193a5f7a6f0dac70a0433095b0c8792fb98",
      "parents": [
        "6c1d36a462388039f92b875196c4d1c92ae69644"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jul 16 12:19:40 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: Report first route\u0027s metric/distance for recursive RPF lookup.\n"
    },
    {
      "commit": "6c1d36a462388039f92b875196c4d1c92ae69644",
      "tree": "57238efd7dd8bbdd4e7b59dce9a7d9071d592861",
      "parents": [
        "6f40e6b74effb7447854f690a2a4fa9339d8a967"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Sep 18 14:15:04 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: Clean-up.\n"
    },
    {
      "commit": "6f40e6b74effb7447854f690a2a4fa9339d8a967",
      "tree": "b4fb5d4737aae1b3e48de2eb59823aa9d1fc51e2",
      "parents": [
        "2f1df6a58b9f0a278cbdee9fc57f964eef1c7bf7"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Jul 11 14:16:45 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: Fix compiler warnings.\n"
    },
    {
      "commit": "2f1df6a58b9f0a278cbdee9fc57f964eef1c7bf7",
      "tree": "840b239080b33f210f0ee34165bdea67be47cec5",
      "parents": [
        "f62a19cc281276607b164c99e672d536a012514d"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Jul 03 15:37:52 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: Version up to 0.164\n"
    },
    {
      "commit": "f62a19cc281276607b164c99e672d536a012514d",
      "tree": "f6a504fcf1adf31c4d3c32acf984dbc51faa3357",
      "parents": [
        "5c55a496fae5ab089c5009bc4c03084fdeb51f55"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Jul 03 14:53:44 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "zebra: Export zclient_socket_un().\n"
    },
    {
      "commit": "5c55a496fae5ab089c5009bc4c03084fdeb51f55",
      "tree": "399c7769406c04b9671dc9cfcdcd372284639153",
      "parents": [
        "04c833a1e0fbf063f49ff0b9f837b07456580374"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jul 02 12:12:16 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "pimd: Cosmetic fix for dr uptime display.\n"
    },
    {
      "commit": "04c833a1e0fbf063f49ff0b9f837b07456580374",
      "tree": "e0f8b6fca1cdf0b0753452efffe41bf09ea44351",
      "parents": [
        "82e6c730e624e86c00042b64fc32170630b2c18c"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Sep 22 19:35:24 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "pimd: Query mrib (SAFI_MULTICAST).\n"
    },
    {
      "commit": "82e6c730e624e86c00042b64fc32170630b2c18c",
      "tree": "8ec129b384a3cb508b476d686f9811f1b631f8c0",
      "parents": [
        "ff57d3653efe4a1428147204b54cacf3651c4dd0"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jun 25 17:28:04 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "pimd: Reset DR uptime only on actual change\n"
    },
    {
      "commit": "ff57d3653efe4a1428147204b54cacf3651c4dd0",
      "tree": "0b9ae54ba0da0f9a0391830445751495a248f11b",
      "parents": [
        "829198800217fe321faa397d21e2d8f99fcaf0dd"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jun 25 15:54:03 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "pimd: Fixes to build against current quagga.\n"
    },
    {
      "commit": "829198800217fe321faa397d21e2d8f99fcaf0dd",
      "tree": "0dffa55bd36c5ef8d2cf016741787b4e64f58cd0",
      "parents": [
        "60353ab4b0857d3f416e315fd81568d9e60205c4"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jun 25 13:25:17 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "pimd: Rename script with recipe for git cloning\n"
    },
    {
      "commit": "60353ab4b0857d3f416e315fd81568d9e60205c4",
      "tree": "814e4bc3e22972d45819d39bc24b7a5ba6d24b8d",
      "parents": [
        "069a0208ec10fca53676ec187f958037108363a6"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Apr 02 11:46:45 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "C19 Provision to prevent group mode clash\n"
    },
    {
      "commit": "069a0208ec10fca53676ec187f958037108363a6",
      "tree": "2da06e20eea0d30b281af77b259a207accf5b61c",
      "parents": [
        "1f7a2b44687a49e4dab649ce369b5735aa2dd20f"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Apr 02 11:04:52 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "Fixed recipe to re-sync with Quagga repository\n"
    },
    {
      "commit": "1f7a2b44687a49e4dab649ce369b5735aa2dd20f",
      "tree": "680c5395233acfd9bdb09a0b34765be6a46ab1ea",
      "parents": [
        "d1a87ee63042225d4b3bf6b4655cd7e0e2b64828"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Apr 01 18:38:50 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "github repository.\n"
    },
    {
      "commit": "d1a87ee63042225d4b3bf6b4655cd7e0e2b64828",
      "tree": "0ad36dee7ef714e8e69ec3d5a65d88175511dc96",
      "parents": [
        "f24200d77a98c8091d23638096faf366e7c6c953"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Feb 14 16:51:05 2014 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "Fix pim join uptime display.\n"
    },
    {
      "commit": "f24200d77a98c8091d23638096faf366e7c6c953",
      "tree": "15f277522a2a3d9580f376159c168ba34553d9f4",
      "parents": [
        "777fe1f2b63c76d0df5c136dbd335bd2718785fb"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Feb 14 16:40:34 2014 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:55 2015 +0100"
      },
      "message": "C18 MFC never recovers from removal of static route to source\n"
    },
    {
      "commit": "777fe1f2b63c76d0df5c136dbd335bd2718785fb",
      "tree": "01f38ac858b4acebcfb3ff25b5b6304dfa88a6a5",
      "parents": [
        "d4595869045498d830be34403217822f77446ae0"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Feb 14 14:16:07 2014 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:55 2015 +0100"
      },
      "message": "Run DR election when hello packet is received.\n"
    },
    {
      "commit": "d4595869045498d830be34403217822f77446ae0",
      "tree": "7b8278dd176415ae90e00afdabf49706a92a1977",
      "parents": [
        "3defeb3465a1f6e7a50d0f2b3d292686bb1449b1"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Feb 13 19:50:30 2014 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:55 2015 +0100"
      },
      "message": "Parsing fixes.\n"
    },
    {
      "commit": "3defeb3465a1f6e7a50d0f2b3d292686bb1449b1",
      "tree": "f2237836741c162f9b6a406a633353852bb10792",
      "parents": [
        "c77f01b9c9056bf39a62911218b308cdb11c4718"
      ],
      "author": {
        "name": "Klemen Sladic",
        "email": "gosturnca@gmail.com",
        "time": "Fri Feb 07 16:23:44 2014 +1300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:55 2015 +0100"
      },
      "message": "fix address assigment\n"
    },
    {
      "commit": "c77f01b9c9056bf39a62911218b308cdb11c4718",
      "tree": "1290a64bb92bbc16cb5afc7e187d2342f17ab1c0",
      "parents": [
        "a057a066aa258a0f9cf3ae4946ec66adcd2f28f7"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Feb 13 14:54:43 2014 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:55 2015 +0100"
      },
      "message": "PIM_ZCLIENT_DEBUG enables zclient_socket() / zclient_socket_un() debug\n"
    },
    {
      "commit": "a057a066aa258a0f9cf3ae4946ec66adcd2f28f7",
      "tree": "8428c5f740e23edbc681673824e7adcad59c459c",
      "parents": [
        "3de4ae90586e4a99ab706c5d3726ef1d5aef95c0"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Tue Jan 17 23:52:58 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:55 2015 +0100"
      },
      "message": "pimd: extend .gitignore\n"
    },
    {
      "commit": "3de4ae90586e4a99ab706c5d3726ef1d5aef95c0",
      "tree": "be2d27c99177b7ade3c16b497f44e1792ede8d07",
      "parents": [
        "105ad8615da1bcb417e1757ef4787cd2cdbb3cbc"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Feb 13 14:28:26 2014 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:55 2015 +0100"
      },
      "message": "Define pim_gettime() when PIM_GETTIME_USE_GETTIMEOFDAY is not available.\n"
    },
    {
      "commit": "105ad8615da1bcb417e1757ef4787cd2cdbb3cbc",
      "tree": "9a786be4e7f0750ebd7efb1510f1cecfd3b9d16d",
      "parents": [
        "f8cfeb25e62206aaf940b2aabf6a96c36ad4627d"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Thu Feb 16 04:50:35 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:55 2015 +0100"
      },
      "message": "pimd: fix wtf code\n\n * pim_hello.c,\n * pim_neighbor.c: print pointers as %p\n * pim_time.c: comment out unused function\n * pim_zebra.c: wtf\n"
    },
    {
      "commit": "f8cfeb25e62206aaf940b2aabf6a96c36ad4627d",
      "tree": "b585e4ca1a60c132329eef7c7ff589ed2103ce68",
      "parents": [
        "e269b968fdcd44d7a4043c4e67c3e008f85e7379"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Thu Feb 16 04:31:08 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:55 2015 +0100"
      },
      "message": "pimd: fix worst char * \u003c\u003e uint8_t * intermingling\n"
    },
    {
      "commit": "e269b968fdcd44d7a4043c4e67c3e008f85e7379",
      "tree": "29c07ce298937d7b3bb21d0e930778e1f8e1110e",
      "parents": [
        "5c6979834655fb7244e23b958582d51bb176ce9a"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Thu Feb 16 04:32:08 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:54 2015 +0100"
      },
      "message": "pimd: use socklen_t consistently\n"
    },
    {
      "commit": "5c6979834655fb7244e23b958582d51bb176ce9a",
      "tree": "97877da11c0f370ac3e8cb2846e5cca08c07a861",
      "parents": [
        "eb383d931c2bb54b5b84a827503f62cbf1070ef5"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Thu Feb 16 04:47:56 2012 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:54 2015 +0100"
      },
      "message": "pimd: fix format strings\n\n * pim_igmp.c,\n * pim_igmpv3.c,\n * pim_pim.c,\n * pim_tlv.c: use %zu / %zd for size_t/ssize_t\n * pim_iface.c,\n * pim_ifchannel.c,\n * pim_mroute.c,\n * pim_neighbor.c,\n * pim_oil.c,\n * pim_ssmpingd.c,\n * pim_upstream.c: %zu for size_t\n * pim_cmd.c: %zu + a few (long long) casts for int64_t\n * pim_hello.c: %td for ptrdiff_t\n"
    },
    {
      "commit": "eb383d931c2bb54b5b84a827503f62cbf1070ef5",
      "tree": "dfadf572d1c4db12164da697948ee77ef2695ad0",
      "parents": [
        "b9ef7704a72e3ec52174c2792404b15275ff4681"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Aug 27 18:16:33 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:54 2015 +0100"
      },
      "message": "[pim] Version up to 0.163\n"
    },
    {
      "commit": "b9ef7704a72e3ec52174c2792404b15275ff4681",
      "tree": "e441a8e1a4ea765cab18e502a85928fdfa8dacca",
      "parents": [
        "8281793ebaa1953d679c553f552ba0eee2bab758"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Aug 27 18:11:10 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:54 2015 +0100"
      },
      "message": "[pim] bootstrap from tarball prefers autoreconf -i\n"
    },
    {
      "commit": "8281793ebaa1953d679c553f552ba0eee2bab758",
      "tree": "4b76e9e9e4d4b7810bb11c8073b64d9e1862d079",
      "parents": [
        "d0d7980b7c71c95fd0ddc491b2e60260c604d04b"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Aug 18 10:05:47 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:54 2015 +0100"
      },
      "message": "[pim] Additional PIM drafts.\n"
    },
    {
      "commit": "d0d7980b7c71c95fd0ddc491b2e60260c604d04b",
      "tree": "c106d72196bf237f9ea4bcbdb8745143990b325d",
      "parents": [
        "9f4e191bb0c639a21c69b3d139349040283fa941"
      ],
      "author": {
        "name": "User",
        "email": "emarques@gcc101.hackershells.com",
        "time": "Thu Aug 05 13:26:25 2010 -0700"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:54 2015 +0100"
      },
      "message": "[pim] Compile fixes for FreeBSD.\n"
    },
    {
      "commit": "9f4e191bb0c639a21c69b3d139349040283fa941",
      "tree": "9fc294cc60214ef433e55bf38d7b36ecdf40b70f",
      "parents": [
        "4560c44d109a25672bf7ec41adb3c63950c46f3e"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu May 27 10:08:43 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:54 2015 +0100"
      },
      "message": "[pim] Version up to 0.162\n"
    },
    {
      "commit": "4560c44d109a25672bf7ec41adb3c63950c46f3e",
      "tree": "5a889edb5980a2652ee53d88777382881219c4de",
      "parents": [
        "05e573de60c0b3f1dd874d306b818f7c0dc12bf7"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed May 05 14:32:52 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:54 2015 +0100"
      },
      "message": "[pim] Reference to troglobit pimd\n"
    },
    {
      "commit": "05e573de60c0b3f1dd874d306b818f7c0dc12bf7",
      "tree": "1d27e871c7767c4fa2f0f30aa224375b7880ba6c",
      "parents": [
        "6d26c37a21f65bd7b4c8a9a272fafd0a07091c98"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Apr 20 12:20:46 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:54 2015 +0100"
      },
      "message": "[pim] \"show ip route\" renamed to \"show ip rib\"\n"
    },
    {
      "commit": "6d26c37a21f65bd7b4c8a9a272fafd0a07091c98",
      "tree": "c2dbd57efb44547aea2af8250c7407e3251b9abc",
      "parents": [
        "55b12ff4602ae802281f76e4cda681104a6cf89d"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Apr 15 16:22:11 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:54 2015 +0100"
      },
      "message": "[pim] .gitignore\n"
    },
    {
      "commit": "55b12ff4602ae802281f76e4cda681104a6cf89d",
      "tree": "f0acf5b33be5441f93f085cd93672b569d4ecdea",
      "parents": [
        "fa2e1ee255c6a3be76f74b07cb441c34d4b2583f"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Apr 15 15:58:30 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:53 2015 +0100"
      },
      "message": "[pim] PIM route type.\n"
    },
    {
      "commit": "fa2e1ee255c6a3be76f74b07cb441c34d4b2583f",
      "tree": "8562b81d3dbdb1459a8e789e32056fe8d562b56a",
      "parents": [
        "ff752d431675caed78e7b460b2d9a4845e5b6a73"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Mar 17 10:51:34 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:53 2015 +0100"
      },
      "message": "[pim] Uniform format for commands \"debug pim packet-dump\" and \"test pim receive dump\"\n"
    },
    {
      "commit": "ff752d431675caed78e7b460b2d9a4845e5b6a73",
      "tree": "1f1b8a238f202c372007d9f19141ce010515a550",
      "parents": [
        "0ef36d82d87094b32f71be47a73144459f057db9"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Mar 17 10:34:24 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:53 2015 +0100"
      },
      "message": "[pim] Cosmetic RPF refresh timer display\n"
    },
    {
      "commit": "0ef36d82d87094b32f71be47a73144459f057db9",
      "tree": "f42a6fc0ab4292ca38fda301996686c87c80e204",
      "parents": [
        "f9e05e5f2ae7bc8352a0744d4e4b5105b60e74a4"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Mar 11 14:47:42 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:53 2015 +0100"
      },
      "message": "[pim] Work-around improper monotonic clock\n"
    },
    {
      "commit": "f9e05e5f2ae7bc8352a0744d4e4b5105b60e74a4",
      "tree": "9494f4d2b84fa08b9a779e9ece9b04465572ce74",
      "parents": [
        "034bd7fe705b03ea4025478650bd3d690bda923f"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Mar 11 11:17:33 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:53 2015 +0100"
      },
      "message": "[pim] Version up to 0.161\n"
    },
    {
      "commit": "034bd7fe705b03ea4025478650bd3d690bda923f",
      "tree": "56be090efc310696b0aedbe770fd37190c3d1898",
      "parents": [
        "67faabc18026bf3f8ae6d7ee1df9f2b1729ea06b"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Mar 01 17:00:07 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:53 2015 +0100"
      },
      "message": "[pim] debug mroute\n"
    },
    {
      "commit": "67faabc18026bf3f8ae6d7ee1df9f2b1729ea06b",
      "tree": "a8408f073596e83cc4d761f942095252d5b7b4b0",
      "parents": [
        "9986fb3a25a0432dbd89aa1e319c89691db05bc0"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Feb 23 12:11:11 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:53 2015 +0100"
      },
      "message": "[pim] debug mroute\n"
    },
    {
      "commit": "9986fb3a25a0432dbd89aa1e319c89691db05bc0",
      "tree": "c528d7492911cb796f65cbedf45fda6db222e81f",
      "parents": [
        "567f927c39061a0b98caf23381f5eb523f6d5600"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Feb 22 09:09:09 2010 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:53 2015 +0100"
      },
      "message": "[pim] TODO T42 Static igmp join fails when loading config at boot time\n"
    },
    {
      "commit": "567f927c39061a0b98caf23381f5eb523f6d5600",
      "tree": "8214c2c73631d9cc0569786a52bac2dd51690313",
      "parents": [
        "7c5f50125d9ef099336660330b7432fb848b7e75"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Feb 19 19:07:00 2010 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:53 2015 +0100"
      },
      "message": "[pim] show ip igmp join\n"
    },
    {
      "commit": "7c5f50125d9ef099336660330b7432fb848b7e75",
      "tree": "f613d81b87bfdb74c759168731c43626e181f6b5",
      "parents": [
        "dba7758a7fa712fc712cd3063a2724bb15c92e60"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Nov 19 17:00:23 2009 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:52 2015 +0100"
      },
      "message": "[pim] Fix net/host byte order\n"
    },
    {
      "commit": "dba7758a7fa712fc712cd3063a2724bb15c92e60",
      "tree": "df9e0477fff441090077e96e171fb47437d371c7",
      "parents": [
        "42e3078a1e4a0bbb033351ad5a65729a17c1fa19"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Nov 19 10:32:19 2009 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:52 2015 +0100"
      },
      "message": "[pim] test pim receive dump\n"
    },
    {
      "commit": "42e3078a1e4a0bbb033351ad5a65729a17c1fa19",
      "tree": "8b9a3ae347e5a03a3d938a905fc54c1ad365ef30",
      "parents": [
        "3e92c456b01bb9364a0e68e0124c9ff36edc0b4b"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Nov 18 17:19:43 2009 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:52 2015 +0100"
      },
      "message": "[pim] Clean-up\n"
    },
    {
      "commit": "3e92c456b01bb9364a0e68e0124c9ff36edc0b4b",
      "tree": "03f6c660de67c109f05a22e1421ef53251eca434",
      "parents": [
        "929bb95587fe43db9a904464d973c0605d160644"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Nov 18 16:26:38 2009 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:52 2015 +0100"
      },
      "message": "[pim] test pim receive dump\n"
    },
    {
      "commit": "929bb95587fe43db9a904464d973c0605d160644",
      "tree": "4dcecc32ea7173917c5c7f4cac2e93468243720f",
      "parents": [
        "627380420e60a4b944646eb1ce2b1552e6e03565"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Nov 18 11:55:13 2009 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:52 2015 +0100"
      },
      "message": "[pim] Fix dump byte type\n"
    },
    {
      "commit": "627380420e60a4b944646eb1ce2b1552e6e03565",
      "tree": "dcf89c31ad5fa3157d2ea8faf8f8f897341b3dbd",
      "parents": [
        "e0b8b9b6e465bc8ae4a416e5297fa682d7feb39e"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Nov 18 10:44:13 2009 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:52 2015 +0100"
      },
      "message": "[pim] Packet dump debugging\n"
    },
    {
      "commit": "e0b8b9b6e465bc8ae4a416e5297fa682d7feb39e",
      "tree": "f77dad7dd4c532f87a1fad255eabca451d2c5a9c",
      "parents": [
        "3466dae420942b3a5b342c95d5667e1927409e8a"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Nov 17 10:17:21 2009 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:52 2015 +0100"
      },
      "message": "[pim] Clean-up log messages\n"
    },
    {
      "commit": "3466dae420942b3a5b342c95d5667e1927409e8a",
      "tree": "bf47fae3c9ede444724c01c1b265972060c7390d",
      "parents": [
        "779e220f30ace11acb23ba81ed6eaef51db6f1e4"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Oct 21 11:33:47 2009 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:52 2015 +0100"
      },
      "message": "[pim] Reference about draft mboned-ssmping\n"
    },
    {
      "commit": "779e220f30ace11acb23ba81ed6eaef51db6f1e4",
      "tree": "dc1c901901e4c22ffc7728a0da623d50550ea428",
      "parents": [
        "e85a9371c01751273858db94aa5b0f99b11dbf1f"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Oct 16 08:40:11 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:52 2015 +0100"
      },
      "message": "[pim] Version up to 0.159\n"
    },
    {
      "commit": "e85a9371c01751273858db94aa5b0f99b11dbf1f",
      "tree": "3c0ad1b76b325697ac30ddce50c75009824072f6",
      "parents": [
        "8bc0b34a2bee1627de04415fe2fddecb3d71e165"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Oct 08 16:05:44 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:51 2015 +0100"
      },
      "message": "[pim] ssmpingd commands\n"
    },
    {
      "commit": "8bc0b34a2bee1627de04415fe2fddecb3d71e165",
      "tree": "9679a513de789d7e7a7b71910e02b742bb58b7f7",
      "parents": [
        "e8c11bbf75c881e3beaadb85d5485161855424a7"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Oct 08 15:29:59 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:51 2015 +0100"
      },
      "message": "[pim] Sample config for ssmpingd support\n"
    },
    {
      "commit": "e8c11bbf75c881e3beaadb85d5485161855424a7",
      "tree": "e8b0cb484ff1f3df68746233ed84e07ed425ca3c",
      "parents": [
        "824adbea2d8d78f626f32d5b7900121fdebf6937"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Oct 08 15:06:32 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:51 2015 +0100"
      },
      "message": "[pim] T41 DONE ssmping support\n"
    },
    {
      "commit": "824adbea2d8d78f626f32d5b7900121fdebf6937",
      "tree": "658c888eaa097651c10261e31f78bd97be26dd19",
      "parents": [
        "96f91aefc06477e73d0e93008b51fc6e87fa2bc4"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Oct 08 09:16:27 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:51 2015 +0100"
      },
      "message": "[pim] Hooks for ssmpingd support\n"
    },
    {
      "commit": "96f91aefc06477e73d0e93008b51fc6e87fa2bc4",
      "tree": "265cbea8c87ceea986c2764969361c49556d8f77",
      "parents": [
        "ccc5d2bb9b7a395375a34cb6a6b703d78e885b1d"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Oct 07 18:41:45 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:51 2015 +0100"
      },
      "message": "[pim] Skeleton for ssmpingd support\n"
    },
    {
      "commit": "ccc5d2bb9b7a395375a34cb6a6b703d78e885b1d",
      "tree": "6763bac236bd0125c68d5f414a082a3d30007a20",
      "parents": [
        "31894370d26de0b91b5c003ca6c592f0a487d60f"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Oct 02 14:50:08 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:51 2015 +0100"
      },
      "message": "[pim] Ref. on LW-MLDv2\n"
    },
    {
      "commit": "31894370d26de0b91b5c003ca6c592f0a487d60f",
      "tree": "97fda3fb256ca456e981907e1df76f0ed2df0865",
      "parents": [
        "40765fe45f39767ad545ca693fb5985fa90ce4ca"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Oct 01 10:04:02 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:51 2015 +0100"
      },
      "message": "[pim] Hint for test_igmpv3_join command-line utility\n"
    },
    {
      "commit": "40765fe45f39767ad545ca693fb5985fa90ce4ca",
      "tree": "8a21efb5483af7531c396e1cd26c8983d4170e34",
      "parents": [
        "465185300b26042e1813d53f179616a17154d37a"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Sep 30 17:10:11 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:51 2015 +0100"
      },
      "message": "[pim] Command line tool to test IGMPv3 join.\n"
    },
    {
      "commit": "465185300b26042e1813d53f179616a17154d37a",
      "tree": "d2efc8fd4184340bd8b74226f4a941e37d54d82d",
      "parents": [
        "b471196e812d98b3ce42bcc186d3a381080d423a"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Sep 11 15:05:40 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:51 2015 +0100"
      },
      "message": "[pim] clean-up\n"
    },
    {
      "commit": "b471196e812d98b3ce42bcc186d3a381080d423a",
      "tree": "d7f81339dfb5e75c6c1107db7d2b257331b7877a",
      "parents": [
        "47afa6e19b69b433c0c0d0b73837118e0a1284cc"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Sep 11 11:15:42 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:50 2015 +0100"
      },
      "message": "[pim] ip mroute show: can display the MFC\n"
    },
    {
      "commit": "47afa6e19b69b433c0c0d0b73837118e0a1284cc",
      "tree": "14f4d21483ba0f85a2d308265ace55021788c36e",
      "parents": [
        "54d6c57db53a626e21766ce608e69f30396a95f0"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Aug 27 18:23:02 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:50 2015 +0100"
      },
      "message": "[pim] Version up to 0.158\n"
    },
    {
      "commit": "54d6c57db53a626e21766ce608e69f30396a95f0",
      "tree": "62f8ca8ee7d87953d29777a9f07c623343d84e13",
      "parents": [
        "5f35a5236435522f49f9a95d3b59009f947b9130"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Aug 20 18:31:03 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:50 2015 +0100"
      },
      "message": "[pim] Fixed doc on CAVEAT C7\n"
    },
    {
      "commit": "5f35a5236435522f49f9a95d3b59009f947b9130",
      "tree": "7d8174ad8dd7edab12bc7dac51237cd6924852a3",
      "parents": [
        "bcc4abe09d3faa9b392be2d46e3f6a29b75e46d9"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Aug 20 11:57:41 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:50 2015 +0100"
      },
      "message": "[pim] show ip pim lan-prune-delay: fix cosmetic alignment\n"
    },
    {
      "commit": "bcc4abe09d3faa9b392be2d46e3f6a29b75e46d9",
      "tree": "b17cb8398321cf9affcc79ddd970a359e993015e",
      "parents": [
        "942b0fdcc18c3841c6781f6a3f36aa47a604ba1f"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Aug 17 18:18:59 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:50 2015 +0100"
      },
      "message": "[pim] More RPF cache refresh statistics\n"
    },
    {
      "commit": "942b0fdcc18c3841c6781f6a3f36aa47a604ba1f",
      "tree": "70c0188f2a71027736b5b9b3f867dc33e965ddd3",
      "parents": [
        "df4044b2cbe0015d06d25de25e640fca231243dd"
      ],
      "author": {
        "name": "Leonard Herve",
        "email": "leonardherve@yahoo.fr",
        "time": "Fri Aug 14 15:49:06 2009 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:50 2015 +0100"
      },
      "message": "[pim] Correction for cross-compilation error with this syntax\n"
    },
    {
      "commit": "df4044b2cbe0015d06d25de25e640fca231243dd",
      "tree": "a4dd57c802866bc4ffb5b50e98989916fce79a5f",
      "parents": [
        "613938d48abb863660691641a5761f10402cf3f3"
      ],
      "author": {
        "name": "Leonard Herve",
        "email": "leonardherve@yahoo.fr",
        "time": "Fri Aug 14 10:38:52 2009 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:50 2015 +0100"
      },
      "message": "Router Alert option for IGMP packets but not for PIM packets\n"
    },
    {
      "commit": "613938d48abb863660691641a5761f10402cf3f3",
      "tree": "0efe84a9b6949b52abfa692660629a72f8bb9d76",
      "parents": [
        "d12beab1b9ce09c50672adb3c980e64ccd11edb4"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Aug 13 15:39:31 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:50 2015 +0100"
      },
      "message": "[pim] RPF cache refresh statistics\n"
    },
    {
      "commit": "d12beab1b9ce09c50672adb3c980e64ccd11edb4",
      "tree": "b22f8a83ea98c416efc5b6d76d013d21a1d706d5",
      "parents": [
        "236b01556122fba479118797163c44849073ff46"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Aug 12 10:52:22 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:50 2015 +0100"
      },
      "message": "[pim] Move encoded source address length check to pim_parse_addr_source\n"
    },
    {
      "commit": "236b01556122fba479118797163c44849073ff46",
      "tree": "88f56db5ff7e57c657fc43bd53be5f0fb0845e1a",
      "parents": [
        "e96f0af2679e3c91518f62b3a86d811cafba1adc"
      ],
      "author": {
        "name": "Leonard Herve",
        "email": "leonard.herve@yahoo.fr",
        "time": "Tue Aug 11 15:51:52 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:49 2015 +0100"
      },
      "message": "[pim] igmpv3: specific query interval set to 1 second (RFC 3376 8.8.)\n[pim] pim messages: encoded source address format with Sparse bit\u003d1 (RFC 4601 4.9.1.)\n[pim] and Mask Len MUST be equal to 32\n[pim] dr election: new traces\n[pim] fix triggered_hello_delay_msec randomization\n"
    },
    {
      "commit": "e96f0af2679e3c91518f62b3a86d811cafba1adc",
      "tree": "dc6d563472991c383e1437475d29d487de8d2974",
      "parents": [
        "596470f2a410fb58109fd880f04362984ffd7c69"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Aug 11 15:48:02 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:49 2015 +0100"
      },
      "message": "[pim] Log physical interface up/down\n[pim] Replace strerror with safe_strerror\n[pim] Fix PIM socket removal from non-PIM interfaces\n[pim] show ip igmp querier: left-align Querier string\n[pim] Version up to 0.157\n[pim] Recipe to re-sync with Quagga repository\n[pim] Build vtysh in development script\n"
    },
    {
      "commit": "596470f2a410fb58109fd880f04362984ffd7c69",
      "tree": "d5eac65e626b688e44451efbf32f4a9518fa5a27",
      "parents": [
        "871dbcfede60a8d2d286728bcbd88f27c2035b87"
      ],
      "author": {
        "name": "Leonard Herve",
        "email": "leonard.herve@yahoo.fr",
        "time": "Tue Aug 11 15:45:26 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:49 2015 +0100"
      },
      "message": "[pim] pim commands added to vtysh\n"
    },
    {
      "commit": "871dbcfede60a8d2d286728bcbd88f27c2035b87",
      "tree": "f3188f3ab1c4856febf70647a32f6d854668aa50",
      "parents": [
        "b162ab753e70328cb6815e58b4bc5b03e9dd4f42"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Aug 11 15:43:05 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:49 2015 +0100"
      },
      "message": "[pim] Initial pim 0.155\n"
    },
    {
      "commit": "b162ab753e70328cb6815e58b4bc5b03e9dd4f42",
      "tree": "2457d5c0002d89a6df20fa47db4856a75ee23717",
      "parents": [
        "a4e830c7cc0e10a851047aebe008ce7a3f8ef29b"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Mon Feb 02 03:00:22 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Mon Feb 02 03:00:22 2015 +0100"
      },
      "message": "doc: explain rpf lookup default mode\n\nReported-by: Alexis Rosen \u003cquagga-users@alexis.users.panix.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a4e830c7cc0e10a851047aebe008ce7a3f8ef29b",
      "tree": "08c6cd5e17eab334c16bfc426d8ff6e305f402d5",
      "parents": [
        "e832c34fd19aa6b2df7c28e78f07617095cf136e"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jan 30 01:44:25 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jan 30 01:44:25 2015 +0100"
      },
      "message": "doc: zebra multicast RIB commands\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "e832c34fd19aa6b2df7c28e78f07617095cf136e",
      "tree": "493f820738828b863d4c90bad01c4c1026d45133",
      "parents": [
        "ca2b105f3bdd8859117756dc8d8c2406e28af28b"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Jan 27 20:24:15 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jan 30 01:12:54 2015 +0100"
      },
      "message": "zebra: mark multicast commands experimental\n\ndepending on feedback from actually having these commands in a released\nversion, we may want to adjust them.  Thus, mark them as experimental so\nusers are aware of this.\n\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "ca2b105f3bdd8859117756dc8d8c2406e28af28b",
      "tree": "b1b7b1030a224413bf632baffe3058f16fd67e8d",
      "parents": [
        "240c56f3a41cb7018460ba6e36c9b559c897e3d0"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:12:35 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jan 30 01:12:45 2015 +0100"
      },
      "message": "zebra: add \"show ip rpf\" to get result of RPF lookup\n\nChecking what route exactly a RPF lookup for a given source uses is\nessential for an administrator to debug multicast routing issues.  This\ncommand provides exactly that, using the multicst RPF lookup function\nand printing out its result to the CLI.\n\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "240c56f3a41cb7018460ba6e36c9b559c897e3d0",
      "tree": "76e7bd769f19a7544b05e0070cdf058a5739eedb",
      "parents": [
        "29ce93ebf6427d1d64eae8b385e36873e3ddcb88"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Jan 06 19:53:24 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jan 30 01:12:38 2015 +0100"
      },
      "message": "zebra: make MRIB lookup behaviour switchable\n\ndepending on the usage scenario (and availability of multitopology IGP\nprotocols, which is currently zero in Quagga), different approaches of\nMulticast RPF lookups are useful.\n\nReference behaviours from commercial vendors are urib-only/mrib-only\n(Juniper, depending on inet.2 availability) and lowest-distance (Cisco).\nAs we are currently without MT IGP support, mrib-first seems the most\nuseful default for Quagga.\n\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "29ce93ebf6427d1d64eae8b385e36873e3ddcb88",
      "tree": "35c1db9ecf10ac368fe6d46faa9573c3d9f74a94",
      "parents": [
        "c048dccaf537508019ccda658d75bbb0cfd7ad18"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:09:36 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jan 30 01:12:20 2015 +0100"
      },
      "message": "zebra: return route_node from rib_match_ipv4_safi\n\nThe multicast code needs to know the route_node in addition to the rib\nentry in order to perform distance or prefix-length comparisons.  Add it\nas optional \"out\" pointer parameter.\n\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c048dccaf537508019ccda658d75bbb0cfd7ad18",
      "tree": "410decc7d5b639f09e99c1f97037335fd32c6ee4",
      "parents": [
        "9e6366d73675a5b65220641b71d7710cde8c1143"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Mon Jan 12 07:05:06 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jan 30 01:11:17 2015 +0100"
      },
      "message": "zebra: dummy kernel \"install\" multicast routes\n\nThis is a followup to 9511633 (\"zebra: MBGP routes should not be\ninstalled in the kernel\"), which was correct in disabling MRIB routes\nbeing installed in the kernel, yet broke the MRIB since now routes were\nnever marked as active.\n\nHence, push down the check into the kernel install functions, so that\nthe routes are still marked active.  At the same time, the FPM calls get\na check each since otherwise we\u0027d bump the FPM interface on MRIB\nupdates.\n\nFixes: 9511633 (\"zebra: MBGP routes should not be installed in the kernel\")\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "9e6366d73675a5b65220641b71d7710cde8c1143",
      "tree": "ad48d81146ca5800f81f6a3a2e704e65c49688fe",
      "parents": [
        "96bb266e0fde451f36c5463e789714eacc1ae63c"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:03:53 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:03:53 2015 +0100"
      },
      "message": "zebra: fix optional distance on static mrib route\n\nUnfortunately, the quagga CLI parser doesn\u0027t support [\u003c1-255\u003e].  Fix by\nworking around with an alias.\n\nReplaces the following commits:\n- zebra: mrib: [no] ip mroute - require distance.\n- zebra: mrib: [no] ip mroute - make distance optional.\n(Rewritten as alias)\n\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "96bb266e0fde451f36c5463e789714eacc1ae63c",
      "tree": "53100e721420b4453ecd65da7a713a1db661a862",
      "parents": [
        "c409791083892f6c95baca1c79c80290dc595be4"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Jul 14 11:19:00 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:03:45 2015 +0100"
      },
      "message": "zebra: mrib: static route support\n\nWith the MRIB being independent from the Unicast RIB, there\u0027s currently\nnow way to add static routes to the MRIB.  Address that by adding a\nseparate set of commands for MRIB static routes.\n\nCombines these original patches:\n- zebra: mrib: ip mroute command to add unicast route to MRIB for multicast RPF.\n- zebra: mrib: no ip mroute: Fix removal of static multicast RPF route.\n- zebra: mrib: remove unused static_add/delete_ipv4\n- zebra: Cleanups to zebra_rib.\n- pimd: Merge pim-only branch.\n\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c409791083892f6c95baca1c79c80290dc595be4",
      "tree": "4770504c8091a0865b061679ae1234989c55073e",
      "parents": [
        "12150f08b76c91225dcd877308fecb13026041ef"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Nov 22 14:44:20 2014 -0800"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:03:45 2015 +0100"
      },
      "message": "zebra: kill rib_match_ipv4()\n\nSince this function is internal to zebra, there is no reason to keep\nthis one-line indirect wrapper to rib_match_ipv4_safi() around.\n\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "12150f08b76c91225dcd877308fecb13026041ef",
      "tree": "37b7b2d52b1a430fcdf45556d11a734e22edad3b",
      "parents": [
        "be4fb4312531cdae986a83b0375dbd1e0606067e"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Sep 19 16:39:34 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:03:45 2015 +0100"
      },
      "message": "zebra: mrib: Include BGP routes in RPF lookups\n\nThe rib_match_ipv4() function was previously used only for iBGP\nrecursive nexthop lookups, which ignore eBGP routes.  This is not\ndesirable for PIM RPF lookups, which may well use an eBGP route.\n\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "be4fb4312531cdae986a83b0375dbd1e0606067e",
      "tree": "10c8f9e149ac3eafc89385badf5674c5f0eeb3e7",
      "parents": [
        "a59b6152bbcd2ff6734872ecbffbc9c43701e1a8"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Jul 01 15:15:52 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:03:45 2015 +0100"
      },
      "message": "zebra: add ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB\n\nThis adds a new zapi call \"ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB\" performing a\nMulticast RPF lookup for a given source.  Details of the lookup\nbehaviour are left to the zebra side of things.\n\nNote: this is non-reactive, as in, only delivers a snapshot of the state\nat a particular point in time.  There\u0027s no push notification of changes\nhappening to the RIB.\n\nThis combines the following 3 original patches:\n- zebra: add zsend_ipv4_nexthop_lookup_mrib()\n- zserv: Query mrib (SAFI_MULTICAST).\n- zebra: Cleanups to zebra_rib.\n\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a59b6152bbcd2ff6734872ecbffbc9c43701e1a8",
      "tree": "e31607e1089f05b78fbb84e2e24ec4f4b1f45d01",
      "parents": [
        "346a8b50334ac837e6a6af0dbe472e9a87dacd1e"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Nov 21 15:57:45 2014 -0800"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:03:45 2015 +0100"
      },
      "message": "zebra: point rib_match_ipv4() to ._safi()\n\nSince rib_match_ipv4() is just rib_match_ipv4_safi() for SAFI_UNICAST,\nthe former can be removed and pointed to the latter instead.\n\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "346a8b50334ac837e6a6af0dbe472e9a87dacd1e",
      "tree": "60fbfd01c1fac71f4c63686fdf4ead296ee214f9",
      "parents": [
        "f7b3d1e067ac8088a61136c53d24078b675e0197"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Sep 22 19:35:51 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:03:45 2015 +0100"
      },
      "message": "zebra: add rib_match_ipv4_safi()\n\nThis is the same as rib_lookup_ipv4(), without the SAFI hardcoded.\n\nCc: Balaji G \u003cbalajig81@gmail.com\u003e\nCc: Everton Marques \u003ceverton.marques@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f7b3d1e067ac8088a61136c53d24078b675e0197",
      "tree": "5d93d50f4d002a6638263b39f913ba357a8f9eb5",
      "parents": [
        "e0b0ac8c97d9b8885785ed0461f87a34e70f368e"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:02:13 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 19:02:13 2015 +0100"
      },
      "message": "zebra: identify MRIB on debug messages\n\nsince the same code handles both URIB and MRIB, the debug messages can\nget rather confusing if the RIB isn\u0027t identified.  Mark the MRIB in\ndebug messages so we can distinguish that.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "e0b0ac8c97d9b8885785ed0461f87a34e70f368e",
      "tree": "c14b932430f1d8ff25a00b48cc2e38fd4b604ea5",
      "parents": [
        "1c6db0d2da34044ddfb42665fda8a3387ecc451d"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Apr 24 20:22:53 2014 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 22 18:46:22 2015 +0100"
      },
      "message": "zebra: factor out rib debug logs\n\nIntroduces a logging function that takes a struct route_node * argument,\nand prefixes log output with that node\u0027s prefix.  While this removes\nsome duplication, it will also later be useful for srcdest route nodes.\n\nBehaviour before and after the patch should be exactly identical.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "1c6db0d2da34044ddfb42665fda8a3387ecc451d",
      "tree": "db97535c0d8c97bbecde8f2141b12cc53fb8e556",
      "parents": [
        "daefeb8755e194dd19a5f1910bc78d13c8147efb"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Dec 12 21:35:28 2014 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Jan 06 19:53:30 2015 +0100"
      },
      "message": "lib: don\u0027t create circular lists (fixes 6d83113)\n\nLISTNODE_DETACH doesn\u0027t clear out the node, and LISTNODE_ATTACH doesn\u0027t\nset -\u003enext (since it assumes a fresh/zeroed listnode).  As a result, the\nnew listnode_move_to_tail() created a nice circular list, in turn\ncrashing ospfd in ospf_write() later.\n\nReported-by: Martin Winter \u003cmwinter@netdef.org\u003e\nFixes: 6d83113 (\"ospfd: Tweak previous iface RR write patch to avoid free/malloc \u0026 redundant log\")\nCc: Paul Jakma \u003cpaul@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\nAcked-by: Greg Troxel \u003cgdt@ir.bbn.com\u003e\nAcked-by: Dinesh Dutt \u003cddutt@cumulusnetworks.com\u003e\nAcked-by: Vincent JARDIN \u003cvincent.jardin@6wind.com\u003e\n"
    },
    {
      "commit": "daefeb8755e194dd19a5f1910bc78d13c8147efb",
      "tree": "5e00bccf96a80388e7160aca7a9623c40f874b07",
      "parents": [
        "cffe7807c03b7edea005869086720e2f1fb070c6"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Mon Dec 08 17:42:12 2014 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Mon Dec 08 17:46:07 2014 +0100"
      },
      "message": "bgpd: set BGP_ATTR_MP_[UN]REACH_NLRI (fixes 1a211cb)\n\nUnfortunately, the attribute present bits for MP_REACH and MP_UNREACH\nwhich 1a211cb (\"bgpd: one more fix\"...) tests for are never set in their\ncorresponding attribute parsing functions.\n\nReported-by: Martin Winter \u003cmwinter@netdef.org\u003e\nFixes: 1a211cb \"bgpd: one more fix for tightening of check for missing well-known attributes\"\nCc: Paul Jakma \u003cpaul@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "cffe7807c03b7edea005869086720e2f1fb070c6",
      "tree": "ba2106f3124a31e5cc3107ac75dc6aa16eab6970",
      "parents": [
        "273b1bd341afff86ba571e0be296d88dba627136"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sun Dec 07 03:27:13 2014 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sun Dec 07 22:53:20 2014 +0100"
      },
      "message": "bgpd: stop startup timer on stopping BGP (fixes dd49eb1)\n\nbgp_delete() really needs to kill t_startup, otherwise after creating\nand quickly destroying a BGP instance it may fire on a deallocated\nstruct bgp, overwriting memory.\n\nReported-by: Martin Winter \u003cmwinter@netdef.org\u003e\nFixes: dd49eb1 (\"Fix BGP\u0027s use of restart bit.\")\nCc: Vipin Kumar \u003cvipin@cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\nAcked-by: Vincent JARDIN \u003cvincent.jardin@6wind.com\u003e\n"
    },
    {
      "commit": "273b1bd341afff86ba571e0be296d88dba627136",
      "tree": "b82720f4c6d11bb9c33c75e4eb5612e789f6da60",
      "parents": [
        "5e4ba81dc212b172e715afa7b6ea668cddd8485d"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Tue Dec 02 14:51:49 2014 -0500"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Tue Dec 02 20:24:23 2014 -0500"
      },
      "message": "zebra/kernel_socket.c: Use platform alignment\n\nUse the platform-provided RT_ROUNDUP macro to align sockaddrs on the\nrouting socket, rather than using hard-coded assumptions about\nalignment.  Emit a warning if the OS doesn\u0027t define alignment macros.\n\nResolves failure of ripngd on NetBSD 6 i386, which changed alignment\nto uint64_t from long.\n"
    },
    {
      "commit": "5e4ba81dc212b172e715afa7b6ea668cddd8485d",
      "tree": "ff1b40293b610a0d10523b3b7fcc0b047dd4d7e9",
      "parents": [
        "85c854aa720c02a56b1ecbbf12a763a326d11a63"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@opensourcerouting.org",
        "time": "Mon Oct 20 17:49:44 2014 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Nov 25 15:57:12 2014 +0000"
      },
      "message": "doc: Document \u0027set as-path prepend\u0027 and \u0027set as-path prepend last-as\u0027\n"
    },
    {
      "commit": "85c854aa720c02a56b1ecbbf12a763a326d11a63",
      "tree": "23928a702774512c806782e98f9c1aab3eb2f5c5",
      "parents": [
        "1a211cb369dc865a4e7e9f58a100c041af457262"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Tue Sep 30 11:31:53 2014 +0300"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Nov 25 15:57:12 2014 +0000"
      },
      "message": "bgpd: implement route-map set as-path prepend last-as\n\nIt picks up the AS to add from the aspath, or uses the peers\nAS number. Useful mostly in iBGP setups.\n\nSigned-off-by: Timo Teräs \u003ctimo.teras@iki.fi\u003e\nReviewed-by: Paul Jakma \u003cpaul@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "1a211cb369dc865a4e7e9f58a100c041af457262",
      "tree": "2f9bc481464ea27c46a0389134ee2e31df7e9c7a",
      "parents": [
        "ec98d90767b341877fb7f1547f025b946955899a"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@opensourcerouting.org",
        "time": "Sat Nov 01 17:21:47 2014 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Nov 25 15:57:12 2014 +0000"
      },
      "message": "bgpd: one more fix for tightening of check for missing well-known attributes\n\n* bgp_attr.c: (bgp_attr_check) The check for missing NEXT_HOP has the right\n  spirit, but wrong where it counts, on the logic.  It wouldn\u0027t catch a\n  missing NEXT_HOP on a v4-only UPDATE.  It would though have incorrectly\n  flagged next-hop as missing on multi-protocol-only UPDATEs.\n\n  Caught by Martin Winter with a test-suite.\n"
    },
    {
      "commit": "ec98d90767b341877fb7f1547f025b946955899a",
      "tree": "3a467ac8a7457c55d8c77ea2549d4eb721d8cc61",
      "parents": [
        "dd49eb1f0232cd0600a3565b44b5c066a8d7872d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@opensourcerouting.org",
        "time": "Tue Oct 14 11:14:06 2014 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Nov 11 17:26:16 2014 +0000"
      },
      "message": "bgpd: trivial, remove unneeded extra variable in bgp_capability_restart\n"
    },
    {
      "commit": "dd49eb1f0232cd0600a3565b44b5c066a8d7872d",
      "tree": "58598aae7dfc1c0ec2686314bf58b7e30d5e31a1",
      "parents": [
        "443010383e2c8e5dc1bc722d9e22a97c513b4647"
      ],
      "author": {
        "name": "Vipin Kumar",
        "email": "vipin@cumulusnetworks.com",
        "time": "Tue Sep 30 14:36:38 2014 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Nov 11 17:26:10 2014 +0000"
      },
      "message": "Fix BGP\u0027s use of restart bit.\n\nbgpd-restart-bit-fix.patch\n\nISSUE:\n\nQuagga BGP doesn\u0027t send or use the restart-bit via the Graceful-Restart(GR)\ncapability. GR capability implementation isn\u0027t complete as per the RFC.\n\nPATCH:\n\nPatch uses BGP instance creation as the beginning of the startup period,\nand \u0027restart_time\u0027 is taken as the startup period. As a result, BGP will\nset the restart bit in the GR capability of the OPEN messages during the\nstartup period.\n\nAs an indication of quagga implementation\u0027s capability of sending End-Of-RIB,\nhelping a restarting neighbor, quagga BGP will now send global GR capability\nirrespective of the graceful-restart config in BGP and the address-family\nspecific GR capability will be sent only if the GR config is present.\nForwarding bit is not set assuming its not preserved.\n\nIncorporated feedback from David Lamparter via the quagga-dev mailing list.\n\nSigned-off-by: Vipin Kumar \u003cvipin@cumulusnetworks.com\u003e\nReviewed-by: Pradosh Mohapatra \u003cpmohapat@cumulusnetworks.com\u003e\nReviewed-by: Paul Jakma \u003cpaul@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "443010383e2c8e5dc1bc722d9e22a97c513b4647",
      "tree": "567e65b01392dcc8183ee92648d2d56709035c43",
      "parents": [
        "4bab6806914dbb4b43f376ebf966a034a0ea72cd"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@opensourcerouting.org",
        "time": "Thu Oct 09 18:14:54 2014 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Nov 11 17:26:10 2014 +0000"
      },
      "message": "bgpd: remove unused variables\n"
    },
    {
      "commit": "4bab6806914dbb4b43f376ebf966a034a0ea72cd",
      "tree": "3b5e1cc5217bef269184e30795314de6ba8fafe5",
      "parents": [
        "ad5233a1bcdd7124992300673ad9c1035336eadd"
      ],
      "author": {
        "name": "Vipin Kumar",
        "email": "vipin@cumulusnetworks.com",
        "time": "Tue Sep 30 14:32:22 2014 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Nov 11 17:26:04 2014 +0000"
      },
      "message": "Fix to take care of ordering between interface and router ospf command.\n\nSYMPTOM:\n\nInterface mode OSPF area configuration is not retained after restarting quagga.\n\nExample -\n\nquagga(config)# interface swp49\nquagga(config-if)# ip ospf area 0.0.0.0\n\nquagga# sh run\n\u003csnip\u003e\ninterface swp49\n ip ospf area 0.0.0.0\n ipv6 nd suppress-ra\n link-detect\n!\n\nquagga# write memory\n\n* Restart quagga at this point*\n\nquagga# sh run\n\u003csnip\u003e\ninterface swp49\n ipv6 nd suppress-ra\n link-detect\n!\n\nISSUE:\n\nThe issue is that the interface mode commands can reach the OSPF process even\nbefore \u0027router ospf\u0027 command that initializes the default OSPF instance, this\nis not getting handled properly in OSPF process.\n\nFIX:\n\nInitialize the default OSPF instance during OSPF process initializations, which\nis before \u0027router ospf\u0027 command is received in OSPF process. So, when interface\nmode command is received, it is guaranteed to have ospf instance to work with.\n\nOther way could be to call ospf_get() instead of ospf_lookup() while processing\nthe config command callbacks, although OSPF needs to have at least one instance\nstructure anyways, therefore calling it unconditionally in OSPF initializations\nshould be fine too.\n\nThere could be more elaborate fix(es) possible to handle this, like adding some\nordering mechanism for commands as they are read by a process, or storing the\nreceived command and applying it after the commands its dependent upon are\nprocessed. For the issue at hand, initializing the default instance in main()\nserves the purpose well.\n\nSigned-off-by: Vipin Kumar \u003cvipin@cumulusnetworks.com\u003e\nReviewed-by: Dinesh Dutt \u003cddutt@cumulusnetworks.com\u003e\nReviewed-by: Paul Jakma \u003cpaul@opensourcerouting.org\u003e\n"
    }
  ],
  "next": "ad5233a1bcdd7124992300673ad9c1035336eadd"
}
