)]}'
{
  "log": [
    {
      "commit": "c0a4cc74ef6994f9b4e4c1351d67a55a684faf38",
      "tree": "17c22ef80e7ecfc7f34e07e99eee66de2394388c",
      "parents": [
        "62f936e7960a7c08f4ae42ad43726d8d6e8e949d"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Mon Nov 09 20:22:00 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 13 10:36:45 2016 +0100"
      },
      "message": "bgpd: Make \"no redistribute\" always remove the redistribute statement\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "b8d1f713ba6bc91138debe9f895621b8f91a43c7",
      "tree": "c838c06bf87cdf7460ade9f8c1c3febb283ae8c9",
      "parents": [
        "34c5d89fed6e8e91ae3cde478f1f4816d69bf09e"
      ],
      "author": {
        "name": "Ayan Banerjee",
        "email": "ayan@cumulusnetworks.com",
        "time": "Mon Nov 09 20:14:54 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 13 10:36:43 2016 +0100"
      },
      "message": "bgpd: Enable support for BGP IPV6 multipath.\n\nThis commit adds these two commands:\nmaximum-paths \u003c1-MULTIPATH_NUM\u003e\nmaximum-paths ibgp \u003c1-MULTIPATH_NUM\u003e\n\nunder address-family ipv6 mode.  In addition adding the ability\nto pass multiple paths down into zebra from bgp.\n\nSigned-off-by: Ayan Banerjee \u003cayan@cumulusnetworks.com\u003e\nSigned-off-by: Dinesh G Dutt \u003cddutt@cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "584083d50511e19b228cce1e4a1cbcb28fae6b49",
      "tree": "58d6f9bf006083287d212ea0a09892c16d9d1b66",
      "parents": [
        "dfb9bd7aaadc2f5abb9bc9aecbd73b9d8b3a788c"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue May 24 18:58:08 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 13 10:36:41 2016 +0100"
      },
      "message": "bgpd: divorce router-id logic from CLI \u0026 zebra\n\nLogic for determining the router-id was spread out over bgp_zebra.c and\nbgp_vty.c.  Move to bgpd/bgpd.c and have these two call more properly\nencapsulated functions.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "205e6744f2dc2909dd494c9ce8acb82821459f1f",
      "tree": "a996419a840766d2ffa1025805e1be84a2dacdf4",
      "parents": [
        "544ec70f66d0ec081dadde79bec1f25c2241f57f"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Tue Jan 12 13:42:11 2016 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Feb 26 14:11:45 2016 +0000"
      },
      "message": "bgpd: remove HAVE_IPV6 conditionals\n\nSigned-off-by: Lou Berger \u003clberger@labn.net\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\n"
    },
    {
      "commit": "82dd707988b7481e203cab058c92f0b3041dd558",
      "tree": "01923f2a1a5b0ca381e9eb7b093f467ca4cc942b",
      "parents": [
        "13c378d96a57017f5995b2e0df46cfc31123f0e8"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Tue Jan 12 13:41:57 2016 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Feb 26 14:11:43 2016 +0000"
      },
      "message": "bgpd: improve cleanup in bgp_delete()\n\nSigned-off-by: Lou Berger \u003clberger@labn.net\u003e\n"
    },
    {
      "commit": "7125293d65d73a451ec203c8c1630c236171f5a3",
      "tree": "f9d118c9a8f8374d69fb9c75c87531a2ca478fb2",
      "parents": [
        "fd1c1a133af47ae5533a5ed41b73ff62e7aa1058"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Sep 24 09:25:19 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Oct 27 10:53:21 2015 +0000"
      },
      "message": "lib: zclient.c remove extern struct thread_master *\n\nzclient.c depended upon link time inclusion of a\nextern struct thread_master *master.  This is a violation of the\nnamespace of the calling daemon.  If a library needs the pointer\npass it in and save it for future use.\n\nThis code change also makes the zclient code consistent with\nthe other lib functions that need to schedule work on your behalf\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\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": "5a616c08ce089e25dc0e8da920727af4d11279bf",
      "tree": "4b5650d6602d06d0188102469e3b402abe81f16a",
      "parents": [
        "6ae93c058725991df5a9ae35cefec368919b5fea"
      ],
      "author": {
        "name": "G.Balaji",
        "email": "balajig81@gmail.com",
        "time": "Sat Nov 26 21:58:42 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 23 14:30:33 2012 +0400"
      },
      "message": "bgpd: IPv4 MP-BGP Routes addition and deletion\n\nThis patch contains the following:\n1. Addition of IPv4 SAFI_MULTICAST BGP routes into the BGP Multicast RIB.\n2. Deletion of IPv4 SAFI_MULTICAST BGP routes from the BGP Multicast RIB.\n"
    },
    {
      "commit": "8196f13d2ab7f3b09150c00328228f90391acb7c",
      "tree": "18c0dcfac4f07cc4cf532cd134a41cfd1d03bc55",
      "parents": [
        "de8d5dff1523bb9fe47d54f31c9e5322bd805b44"
      ],
      "author": {
        "name": "Josh Bailey",
        "email": "joshb@google.com",
        "time": "Wed Jul 20 20:47:07 2011 -0700"
      },
      "committer": {
        "name": "Josh Bailey",
        "email": "joshb@google.com",
        "time": "Wed Jul 20 20:47:07 2011 -0700"
      },
      "message": "bgpd: Modify the BGP to zebra route announcement to support multipath\nroutes. Use a growable buffer (bgp_nexthop_buf) to collect nexthops\nthat are included in the announcement. Use the BGP_INFO_MULTIPATH_CHG\nflag to trigger zebra announcement so zebra will be updated if the\nmultipath set changes. Display all multipath nexthops in\n\u0027debug bgp zebra\u0027 output.\n\n* bgpd/bgp_main.c\n  * bgp_exit(): Free bgp_nexthop_buf when exiting\n* bgpd/bgp_route.c\n  * bgp_process_rsclient(): Clear BGP_INFO_MULTIPATH_CHG after processing\n  * bgp_process_main(): Check BGP_INFO_MULTIPATH_CHG to trigger zebra\n    announcement and clear aftr processing\n* bgpd/bgp_zebra.c\n  * bgp_nexthop_buf: Growable buffer used to collect nexthops for zebra\n    announcement\n  * bgp_zebra_announce(): Grow bgp_nexthop_buf if needed. Include\n    multipath count in zebra announcement and add all nexthops to\n    bgp_nexthop_buf. Pass bgp_nexthop_buf data to zebra announcement.\n    Added nexthops to debug output.\n  * bgp_zebra_init(): Initialize bgp_nexthop_buf at startup\n* bgpd/bgp_zebra.h\n  * BGP_NEXTHOP_BUF_SIZE: Default initial bgp_nexthop_buf size has room\n    for 8 nexthops\n"
    },
    {
      "commit": "165b5fff9dde5536d9cb1f850b36c17bf5654f0f",
      "tree": "b02e2b71e2142348bce920f5c4a7ef5bd4708f3e",
      "parents": [
        "8ced4e82e6f417b13f4bfc09018fc51fd31058e2"
      ],
      "author": {
        "name": "Josh Bailey",
        "email": "joshb@google.com",
        "time": "Wed Jul 20 20:43:22 2011 -0700"
      },
      "committer": {
        "name": "Josh Bailey",
        "email": "joshb@google.com",
        "time": "Wed Jul 20 20:43:22 2011 -0700"
      },
      "message": "bgpd: Add new configuration cli for eBGP and iBGP multipath.\nThere is support to configure this for each (AFI,SAFI), but\ncurrently this configuration is only present for IPv4 unicast:\n\n maximum-paths [ibgp] \u003c1-255\u003e\n no maximum-paths [ibgp] [\u003c1-255\u003e]\n\n* bgpd/Makefile.am\n  * Add bgp_mpath.h and bgp_mpath.c to build\n* bgpd/bgp_mpath.h\n  * New file for bgp multipath declarations\n  * define BGP_DEFAULT_MAXPATHS\n* bgpd/bgp_mpath.c\n  * bgp_maximum_paths_set(): Configure maximum paths for the given\n    afi, safi and bgp instance\n  * bgp_maximum_paths_unset(): Return maximum paths configuration to\n    the default setting for the given afi, safi and bgp instance\n* bgpd/bgp_vty.c\n  * Define command strings for above CLI\n  * bgp_config_write_maxpaths(): Outputs configuration for the given\n    afi, safi and bgp instance\n  * Install command elements for IPv4 unicast\n* bgpd/bgp_zebra.h\n  * bgp_config_write_maxpaths(): External declaration\n* bgpd/bgpd.c\n  * bgp_create(): Initialize bgp instance to default maximum paths setting\n  * bgp_config_write_family(): Output maximum paths configuration\n    for the given address family\n  * bgp_config_write(): Output maximum paths configuration for\n    IPv4 unicast address family\n* bgpd/bgpd.h\n  * struct bgp: Add storage for maximum paths configuration for\n    each afi, safi\n"
    },
    {
      "commit": "94f2b3923e9663d0355a829f22e4e31cf68ee7b8",
      "tree": "59c0291a76b1c97fbb089abb479307f19cdfd4c1",
      "parents": [
        "7cad40007b9714dba65065916ea68577f9d3d6dd"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 28 12:44:16 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 28 12:44:16 2005 +0000"
      },
      "message": "2005-06-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (global) The great bgpd extern and static\u0027ification.\n\t* bgp_routemap.c: remove unused ROUTE_MATCH_ASPATH_OLD code\n\t  (route_set_metric_compile) fix u_int32_t to ULONG_MAX comparison\n\t  warnings.\n\t* bgp_route.h: (bgp_process, bgp_withdraw, bgp_update) export these\n\t  used by various files which had their own private declarations,\n\t  in the case of mplsvpn - incorrect.\n"
    },
    {
      "commit": "00d252cb5ff21ecc537ab40385316b41622a95e2",
      "tree": "c0132f4be53d8ae251ecb1dd8c39816f8734d08f",
      "parents": [
        "269d74fdc39a612da8f627bf97628c68d25a16ab"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 14:19:54 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 14:19:54 2005 +0000"
      },
      "message": "2005-05-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* bgp_fsm.h: Add extern qualifier to exported functions\n\t* bgp_nexthop.c: add static to nexthop specific globals\n\t* *.h: Add guard defines\n"
    },
    {
      "commit": "fd79ac918b8feaacebe9719adaac97dffb69137a",
      "tree": "d0665eb68e60da9d6e364414cdb61830f19f33d3",
      "parents": [
        "39db97e4e02eae08a1e18528367b6e9b07eb6a93"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 13 05:06:08 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 13 05:06:08 2004 +0000"
      },
      "message": "2004-10-13 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* (global) more const\u0027ification and fixups of types to clean up code.\n\t* bgp_mplsvpn.{c,h}: (str2tag) fix abuse. Still not perfect,\n          should use something like the VTY_GET_INTEGER macro, but without\n          the vty_out bits..\n        * bgp_routemap.c: (set_aggregator_as) use VTY_GET_INTEGER_RANGE\n          (no_set_aggregator_as) ditto.\n        * bgpd.c: (peer_uptime) fix unlikely bug, where no buffer is\n          returned, add comments about troublesome return value.\n"
    },
    {
      "commit": "718e3744195351130f4ce7dbe0613f4b3e23df93",
      "tree": "bac2ad39971cd43f31241ef123bd4e470f695ac9",
      "parents": [],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "message": "Initial revision\n"
    }
  ]
}
