)]}'
{
  "log": [
    {
      "commit": "5bd78b9f409b0a7d4b6a9e15d495ca2c53757a4d",
      "tree": "eebe200fba3a396801e0fae8dcc4ce214da68453",
      "parents": [
        "c8e80972d5b99fb8baaa367a726f1dc36a840744"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Tue Jun 14 20:07:02 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:54 2017 +0000"
      },
      "message": "ospfd: fix double assignment in ospf_vl_set_timers\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "c8e80972d5b99fb8baaa367a726f1dc36a840744",
      "tree": "470029d31433fef22dbd1cd538173a1cc396a163",
      "parents": [
        "32e41f75fd1735071e0fa0bdd918e9b1241d1837"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Tue Jun 14 20:07:01 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:54 2017 +0000"
      },
      "message": "bgpd: fix memory leaks in show commands\n\nsockunion_str2su allocates a struct sockunion that used to be leaked\nin the show commands. Use str2sockunion and keep the information\non the stack instead.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nSigned-off-by: Philippe Guibert \u003cphilippe.guibert@6wind.com\u003e\n"
    },
    {
      "commit": "32e41f75fd1735071e0fa0bdd918e9b1241d1837",
      "tree": "d9f46afc41cdda2413bac46268ccd53f66a0590c",
      "parents": [
        "708ea62f82f34c8674042b369ee8cba5d7b34c02"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Tue Jun 14 20:06:59 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:54 2017 +0000"
      },
      "message": "bgpd: don\u0027t leak memory in community_regexp_include\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "708ea62f82f34c8674042b369ee8cba5d7b34c02",
      "tree": "86d4105d340426a86b53dcc47b013e8720b0b195",
      "parents": [
        "5cb81ce51d5c2ed6b6f7ce51dcfa5388b1836c27"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Tue Jun 14 20:06:57 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:54 2017 +0000"
      },
      "message": "bgpd: check return value of zebra_interface_state_read\n\nzebra_interface_state_read can return NULL in cornercases. The other\ndaemons check for this, so should bgpd.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "5cb81ce51d5c2ed6b6f7ce51dcfa5388b1836c27",
      "tree": "d07cac62092a01a19f1a065d5a6b8be89a484997",
      "parents": [
        "cfb4826340ab177b3cfbce4f138187f41860b68e"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Tue Jun 14 20:06:56 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:54 2017 +0000"
      },
      "message": "bgpd: setting nexthop doesn\u0027t need inet_pton\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "cfb4826340ab177b3cfbce4f138187f41860b68e",
      "tree": "ae45c07809bbb976e42b34e1b5966879065ba2c5",
      "parents": [
        "47fb0a8eb8138572a9117156223259413a956e81"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Mon Jun 13 17:29:14 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:54 2017 +0000"
      },
      "message": "lib: AgentX: use threads instead of eventloop hack\n\nAgentX fd/timeout handling is rather hackishly monkeyed into thread.c.\nReplace with code that uses plain thread_* functions.\n\nNB: Net-SNMP\u0027s API rivals Quagga\u0027s in terms of age and absence of\ndocumentation.  netsnmp_check_outstanding_agent_requests() in particular\nseems to be unused and is therefore untested.\n\nThe most useful documentation on this is actually the blog post Vincent\nBernat wrote when he originally integrated this into lldpd and Quagga:\nhttps://vincent.bernat.im/en/blog/2012-snmp-event-loop.html\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "47fb0a8eb8138572a9117156223259413a956e81",
      "tree": "e5653fd70a24b908b63509d5721e66a15d1ea157",
      "parents": [
        "449b29e8bd9fb1ae2e57cea7074e1b9778343455"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Mon Jun 13 17:29:13 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:53 2017 +0000"
      },
      "message": "lib: add thread_add_timer_tv (struct timeval)\n\nAnother zoo extension, this adds a timer scheduling function that takes\na struct timeval argument (which is actually what the wrappers boil down\nto, yet it\u0027s not exposed...)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "449b29e8bd9fb1ae2e57cea7074e1b9778343455",
      "tree": "0f4d1897e1b17123a50f7351c74006badbd232da",
      "parents": [
        "c96e78dde1f118eaee4269aa2c91ef70850e5423"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Mon Jun 13 17:29:12 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:53 2017 +0000"
      },
      "message": "lib: linklist: add listnode_add_before()\n\nThis utility function, to join the zoo that the Quagga linked-list\nimplementation has accumulated, does an insert-before while returning\nthe newly allocated node.\n\nIt is similar to:\n- listnode_add_after(), but\n  - complementary direction\n  - returns allocated node\n- list_add_node_prev(), but\n  - supports before \u003d\u003d NULL\n  - returns allocated node\n\nIn general, the entire linked-list implementation is in bad shape, and\nwhile it needs a cleanup / rewrite / replacement, this would both cause\nsignificant conflicts and block other cleanups...\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c96e78dde1f118eaee4269aa2c91ef70850e5423",
      "tree": "1eeb7d8fc431e25d8bdc8a53b2e8ed9594374153",
      "parents": [
        "6ff2acde9291b855c44edf9a7a0423580c901d03"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Jun 09 15:34:59 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:53 2017 +0000"
      },
      "message": "pimd: Fix of using uninitialized Memory\n\nValgrind is reporting that pimd is using uninitialized\nmemory for comparisons.  This commit addresses\nthe issues found there.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "6ff2acde9291b855c44edf9a7a0423580c901d03",
      "tree": "0e32692dcbe552fa7e10688d0a1741accd404af6",
      "parents": [
        "c0a613f3a2be8e40265704fd00166cd5342ca409"
      ],
      "author": {
        "name": "Igor Ryzhov",
        "email": "iryzhov@nfware.com",
        "time": "Thu Jun 09 16:44:21 2016 +0300"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:53 2017 +0000"
      },
      "message": "vtysh: send \"no interface\" command to all daemons that support it\n\nSigned-off-by: Igor Ryzhov \u003ciryzhov@nfware.com\u003e\nSigned-off-by: Igor Ryzhov \u003ciryzhov@nfware.com\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\n"
    },
    {
      "commit": "c0a613f3a2be8e40265704fd00166cd5342ca409",
      "tree": "22e57cbb8df2c245a00ae2dc4ab11f9acf37fbc0",
      "parents": [
        "51b45a52adf944ac391c0e90f86597454ab4d657"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Mon Jun 06 22:22:15 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:53 2017 +0000"
      },
      "message": "bgpd: fix potential crash in community_list_dup_check\n\nextcommunity_list_set may set the -\u003econfig for an entry\nto NULL. In this case, the old code in community_list_dup_check\nwould cause a NULL pointer dereference.\n\nAdjust the code so it behaves the same in the absence of NULL\npointers and otherwise checks if both are NULL to determine\nequality.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "51b45a52adf944ac391c0e90f86597454ab4d657",
      "tree": "3cc9fc8966b99333da565eb9cd6606ed11730da3",
      "parents": [
        "8db38639cc4cf796484b352c57f2709151f0e2e4"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Mon Jun 06 22:04:30 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:53 2017 +0000"
      },
      "message": "zebra: make fpm netlink_route_info_fill more robust\n\nHaving an RTM_ADDROUTE with a rib \u003d\u003d NULL would lead\nto a crash due to a NULL pointer dereference.\n\nSince an RTM_ADDROUTE without a rib object doesn\u0027t make\nmuch sense, print a warning and remove the concerned\nroute instead.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\n"
    },
    {
      "commit": "8db38639cc4cf796484b352c57f2709151f0e2e4",
      "tree": "0b31fc87a19b7ac8adbaaef7ef70bbb16f500bcf",
      "parents": [
        "5a7a23b09fed1cb26b901e3160c2f6e560cfd679"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Mon Jun 06 21:49:59 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:53 2017 +0000"
      },
      "message": "ospf6d: remove unused broken function\n\nospf6_interface_if_del has not been in use since for quite some\nyears and is broken. (Will crash ospf6d if oi-\u003earea \u003d\u003d NULL)\n\nSince it is not used, just remove it.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "5a7a23b09fed1cb26b901e3160c2f6e560cfd679",
      "tree": "0dbb526300f9510eb7621f046a3dce25a759ed7b",
      "parents": [
        "68cfaabc2e281b6ef9810138db3b42e52f1f0060"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Mon Jun 06 21:13:15 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:52 2017 +0000"
      },
      "message": "isisd: exit if daemonizing fails\n\nThe other daemons in Quagga exit with an error if they cannot fork.\nChange isisd to behave consistently.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "68cfaabc2e281b6ef9810138db3b42e52f1f0060",
      "tree": "16766ab85cf16643e4dba71ede5dd85e7654c312",
      "parents": [
        "456cb633436c567a173dadb9b6fb4610266c2ef9"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Mon Jun 06 21:10:24 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:52 2017 +0000"
      },
      "message": "zebra: fix a crash in static_add_ipv6 caused by a NULL dereference\n\nsi will be NULL after end of the preceeding for loop. update is the\nright static route info to use for deleting the old route.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "456cb633436c567a173dadb9b6fb4610266c2ef9",
      "tree": "b87d7cb01607f2d86aca935b7c4c8985941d4ea0",
      "parents": [
        "18343eeff67b9b17b7d688a13a1f0829db1ad436"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Jun 02 02:37:52 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:52 2017 +0000"
      },
      "message": "pimd: Add ability to safely ignore route-maps\n\npim was not parsing route-map code and causing issues\nusing vtysh because of this.  Add code to safely\nignore the route-map code and set us up for future\nexpansion into route-maps if neeeded.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\nAcked-by: Jafar Al-Gharaibeh \u003cjafar@atcorp.com\u003e\n"
    },
    {
      "commit": "18343eeff67b9b17b7d688a13a1f0829db1ad436",
      "tree": "e5581267f4428586d28517687db354d24c650198",
      "parents": [
        "f8aef5fd4aa48eceedb67fb8919378e33617bc5d"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Jun 02 02:30:46 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:52 2017 +0000"
      },
      "message": "pimd: Add support for displaying ip mroute\n\nWhen you enter a static mroute under an interface\nthe \u0027show run\u0027 is not displaying this information.\nAdd code to allow this.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nReviewed-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nReviewed-by: Don Slice \u003cdslice@cumulusnetworks.com\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nReviewed-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nReviewed-by: Don Slice \u003cdslice@cumulusnetworks.com\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\nAcked-by: Jafar Al-Gharaibeh \u003cjafar@atcorp.com\u003e\n"
    },
    {
      "commit": "f8aef5fd4aa48eceedb67fb8919378e33617bc5d",
      "tree": "f0b90174929565da98ba2b287dd03ae66d963099",
      "parents": [
        "3e6a3a64359ae6fa370fbd9c843b7c0d04a946c3"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Jun 02 02:20:29 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:52 2017 +0000"
      },
      "message": "pimd: Remove igmp_add_group_by_addr unneeded parameter\n\nThe interface name is already passed in as\npart of the \u0027struct igrmp *group\u0027 pointer.\nNo need to do it twice.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\nAcked-by: Jafar Al-Gharaibeh \u003cjafar@atcorp.com\u003e\n"
    },
    {
      "commit": "3e6a3a64359ae6fa370fbd9c843b7c0d04a946c3",
      "tree": "9ef5cf6cf4825ce3e7a0ef7fc716bdf530285c6d",
      "parents": [
        "d395fd1996df70eb5e6ecc4fc1cf90e8303f43a6"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Jun 02 02:20:28 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:52 2017 +0000"
      },
      "message": "pimd: Remove source_new unneeded parameter\n\nThe interface name is already passed in as\npart of the \u0027struct igmp_group *group\u0027 pointer.\nNo need to do it twice.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nAcked-by: Jafar Al-Gharaibeh \u003cjafar@atcorp.com\u003e\n"
    },
    {
      "commit": "d395fd1996df70eb5e6ecc4fc1cf90e8303f43a6",
      "tree": "9cc87da9547783e000c8ca125f02dbae437e4dde",
      "parents": [
        "dc633bd1833c4b9df44df27135ce12fef884b53f"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Jun 02 02:20:27 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:52 2017 +0000"
      },
      "message": "pimd: Remove dead code.\n\nNo need to keep \u0027#if 0\u0027 code.  If we need it in the future,\njust go back into the history and grab it.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nAcked-by: Jafar Al-Gharaibeh \u003cjafar@atcorp.com\u003e\n"
    },
    {
      "commit": "dc633bd1833c4b9df44df27135ce12fef884b53f",
      "tree": "96e7a64e4b664b7ac7f64eb35782d92a4817fa9a",
      "parents": [
        "95509a6f55c63b72541fa390f7dda7fab2fa3210"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Mon Dec 26 17:25:26 2016 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:52 2017 +0000"
      },
      "message": "lib/stream: Add stream_discard, to discard read data from a stream\n\n* stream.c: (stream_discard) Discard the already data from a stream, as\n  indicated by the getp. Move remaining, unread data, to the beginning of\n  the stream. get and end stream pointers are updated as appropriate.\n\n  If all data has been consumed, then this behaves identically to\n  stream_reset.\n"
    },
    {
      "commit": "95509a6f55c63b72541fa390f7dda7fab2fa3210",
      "tree": "697673cf127fd4b48b5147ffdf65893158b2d8b5",
      "parents": [
        "9ed99f040f0dd14d0aca82e159f67d27e64042ae"
      ],
      "author": {
        "name": "Thorvald Natvig",
        "email": "thorvald@medallia.com",
        "time": "Thu Sep 29 10:25:35 2016 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:51 2017 +0000"
      },
      "message": "Extend BGP_SEND_ASPATH_CHECK to cover confederations\n\nExtend the check for BGP_SEND_ASPATH_CHECK to also cover confederations.\n"
    },
    {
      "commit": "9ed99f040f0dd14d0aca82e159f67d27e64042ae",
      "tree": "d6b41a1731532d9258e3ad0638675b6191edaa82",
      "parents": [
        "64f8c7d80fd9685936613f6c564b9572dd28561d"
      ],
      "author": {
        "name": "Baruch Siach",
        "email": "baruch@tkos.co.il",
        "time": "Sun Aug 21 09:23:05 2016 +0300"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:51 2017 +0000"
      },
      "message": "lib/memory: fix indirect static link with zlib\n\nquagga SNMP support depends on netsnmp, that optionally depends on OpenSSL,\nwhich in turn requires zlib. zlib exports the \u0027zcalloc\u0027 symbol, which collides\nwith a function of the same name in memory.c. This is not a problem when\nlinking dynamically, since quagga does not use zlib directly. But static\nlinking fails with the error:\n\n  CCLD     ospfd\n.../output/host/usr/mips64el-buildroot-linux-uclibc/sysroot/usr/lib/libz.a(zutil.o): In function `zcalloc\u0027:\nzutil.c:(.text+0x48): multiple definition of `zcalloc\u0027\n.../output/build/quagga-1.0.20160315/lib/.libs/libzebra.a(memory.o):memory.c:(.text+0x1a0): first defined here\n\nRename \u0027zcalloc\u0027 to \u0027zzcalloc\u0027 to avoid symbol collision.\n\nSigned-off-by: Baruch Siach \u003cbaruch@tkos.co.il\u003e\nSigned-off-by: Baruch Siach \u003cbaruch@tkos.co.il\u003e\n"
    },
    {
      "commit": "64f8c7d80fd9685936613f6c564b9572dd28561d",
      "tree": "74f7481b1c2ac5c89102b1e6d0dd256fa4cf1f36",
      "parents": [
        "a8f9790a9bae34b4ef6b1c0c9391d2a9cc991f47"
      ],
      "author": {
        "name": "Thomas Petazzoni",
        "email": "thomas.petazzoni@free-electrons.com",
        "time": "Sun Aug 21 09:23:04 2016 +0300"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:51 2017 +0000"
      },
      "message": "configure: fix static linking with readline\n\nWhen static linking is used, the order of the libraries is important,\nand the libraries using a symbol from another library should be listed\n*before* the library providing that symbol (see\nhttp://eli.thegreenplace.net/2013/07/09/library-order-in-static-linking)\nfor details.\n\nWhen vtysh is linked statically, the command line contains \"-lcurses\n-lreadline\", which causes a build failure due to unresolved\nsymbols. This is because readline is using symbols from the curses\nlibrary: the order should be the opposite.\n\nThis patch fixes that problem by putting the -lreadline at the\nbeginning of the LIBREADLINE variable calcualted by the configure\nscript.\n\nSigned-off-by: Thomas Petazzoni \u003cthomas.petazzoni@free-electrons.com\u003e\nSigned-off-by: Baruch Siach \u003cbaruch@tkos.co.il\u003e\nSigned-off-by: Thomas Petazzoni \u003cthomas.petazzoni@free-electrons.com\u003e\nSigned-off-by: Baruch Siach \u003cbaruch@tkos.co.il\u003e\n"
    },
    {
      "commit": "a8f9790a9bae34b4ef6b1c0c9391d2a9cc991f47",
      "tree": "cfc4c7981bbf6b815bbff14971709ecb4934b5a5",
      "parents": [
        "e3443a21552b6a3cd6ebdbb98336eede217a478f"
      ],
      "author": {
        "name": "Jafar Al-Gharaibeh",
        "email": "jafar@atcorp.com",
        "time": "Thu Jul 28 14:41:20 2016 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:51 2017 +0000"
      },
      "message": "config: Give the option of disabling run as user/group\n\nLeave \"user/group\" unset when explicitly configuring with\n\"--disable-user\" / \"--enable-user\u003dno\" and\n\"--disable-group\" / \"--enable-group\u003dno\"\nThis allows quagga to skip unsupported system calls such\nas setuid() on certain platfroms.\n\nSigned-off-by: Jafar Al-Gharaibeh \u003cjafar@atcorp.com\u003e\nSigned-off-by: Jafar Al-Gharaibeh \u003cjafar@atcorp.com\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\n"
    },
    {
      "commit": "e3443a21552b6a3cd6ebdbb98336eede217a478f",
      "tree": "7465134a450f779b9fc314819aa1f1e1c5c956e3",
      "parents": [
        "c9cc52af9edf0f23a1434c944812064de220a7bf"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Wed Oct 19 16:02:34 2016 +0300"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:51 2017 +0000"
      },
      "message": "bgpd: simplify ebgp-multihop and ttl-security handling\n\nChange to track configured value in -\u003ettl and -\u003egtsm_hops;\nnot the value set to sockopt. Instead, setting of socket\u0027s ttl\nand minttl options are now merged to one function which calculates\nit on demand. This greatly simplifies the code.\n"
    },
    {
      "commit": "c9cc52af9edf0f23a1434c944812064de220a7bf",
      "tree": "0d74b412ef0e02ebbcfdadc21dcf3a8067369073",
      "parents": [
        "b41bb62e039454f53e54959b2c3f7eea816e6422"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Wed Oct 19 16:02:33 2016 +0300"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:51 2017 +0000"
      },
      "message": "bgpd: honor disable-connected-check option with next hop tracking\n\nMake bgpd ignore connected state again if configured to do so.\n"
    },
    {
      "commit": "b41bb62e039454f53e54959b2c3f7eea816e6422",
      "tree": "91d50d30c96a60359a20c89dbbcd1171c2f4c200",
      "parents": [
        "631fcd2e51b02b3d5548bee4108044921fb3e58b"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Wed Oct 19 16:02:32 2016 +0300"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:51 2017 +0000"
      },
      "message": "zebra: fix nht validity checking to be same as when it\u0027s resolved\n\nThis reverts commit 7e3a435bd99 \"A valid BGP nexthop is flagged as invalid\"\n\nProblem is BGP thinks the nexthop is accessible when it\u0027s recursive, and\nselects it, but zebra rejects it at route install time. Causing FIB and\nBGP state to be out-of-sync. Fix nht to follow same rules as zebra rib.\n"
    },
    {
      "commit": "631fcd2e51b02b3d5548bee4108044921fb3e58b",
      "tree": "0723168ac470f529f2fbed9259196d62a5474c55",
      "parents": [
        "3b0e3008e41c967e459f87b6ca8658ef26f49bc9"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Wed Oct 19 16:02:31 2016 +0300"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:50 2017 +0000"
      },
      "message": "zebra: use FIB state for nexthop tracking\n\nThe FIB override routes can override ZEBRA_FLAG_SELECTED routes\nin FIB. Use the FIB state instead to report correct nexthop when\nFIB override routes are present.\n"
    },
    {
      "commit": "3b0e3008e41c967e459f87b6ca8658ef26f49bc9",
      "tree": "a9a0d5d005e5b57330d47cb944328a5e4521f0ed",
      "parents": [
        "f0705d523420ece274410c3df9f4b8fb043094c0"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Mon Jan 23 15:14:08 2017 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 17:20:51 2017 +0000"
      },
      "message": "configure: Bump version to 1.1.1\n"
    },
    {
      "commit": "f0705d523420ece274410c3df9f4b8fb043094c0",
      "tree": "4a77168bfb0e3d24f2efa51d5d57a39779c5e1f1",
      "parents": [
        "a66b46208f10f4453dd63cec8a99a2218c7b4764"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Wed Jan 11 10:02:32 2017 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 17:20:51 2017 +0000"
      },
      "message": "HACKING: Update useful URLs\n"
    },
    {
      "commit": "a66b46208f10f4453dd63cec8a99a2218c7b4764",
      "tree": "81490f751fc3615f9de48cd4cfbaa04e2bb22f43",
      "parents": [
        "e992eb98d1ec8da84c7d0dffb1388bfbe935f16b"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Mon Jan 09 13:06:56 2017 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 17:20:51 2017 +0000"
      },
      "message": "HACKING: Add \u0027Objectives\u0027, \u0027Governance\u0027, and an initial \u0027Code of Conduct\u0027\n"
    },
    {
      "commit": "e992eb98d1ec8da84c7d0dffb1388bfbe935f16b",
      "tree": "a595bcd5731cd1b67c5df5d13836afb96603b40a",
      "parents": [
        "126b0e7c2915fb7ec3e5f72e625433a83568c7d6"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Thu Jan 05 12:46:17 2017 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 17:20:51 2017 +0000"
      },
      "message": "HACKING: set a4paper by default\n"
    },
    {
      "commit": "126b0e7c2915fb7ec3e5f72e625433a83568c7d6",
      "tree": "c864b9af705854b133a96a417057b5605ff4b37d",
      "parents": [
        "f5a4488a0dda521f19e96f2615f4a8b134c5878b"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Nov 18 14:40:41 2016 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 17:20:51 2017 +0000"
      },
      "message": "vty: Add ctrl-v \u003cliteral\u003e to allow, e.g., \u0027?\u0027 to be input for regex\n\n* Support the standard ctrl-v \u003cliteral\u003e control sequence. Otherwise there\n  is no way to do this from the venerable telnet vty. vtysh supports this\n  (configurably) via readline.\n* lib/vty.c: (VTY_ESC_LITERAL) New mode, for ctrl-v.\n  (vty_read) Additional mode to go ctrl-v -\u003e VTY_ESC_LITERAL, and\n  always insert next char.\n\nAcked-by: Vincent.Jardin@6wind.com\n"
    },
    {
      "commit": "f5a4488a0dda521f19e96f2615f4a8b134c5878b",
      "tree": "e324aad6d223345952d85fb6b5149059e04b0fd8",
      "parents": [
        "71e0ba780bd7ba1a6fdc71ff673e3ef5aee61e08"
      ],
      "author": {
        "name": "Jafar Al-Gharaibeh",
        "email": "jafar@atcorp.com",
        "time": "Mon Aug 01 18:14:38 2016 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 17:20:51 2017 +0000"
      },
      "message": "vtysh: Fix, guard against NULL pointer dereference\n\ngetpwuid() may fail returning a null value leaving subsequent\ncode vulnerable to a null pointer dereference.\n\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\n"
    },
    {
      "commit": "71e0ba780bd7ba1a6fdc71ff673e3ef5aee61e08",
      "tree": "f7d95da993316c23f1a8f751fc9cafff01eedcf9",
      "parents": [
        "a64c66b105929b0f0fc19743f34dc29c760df967"
      ],
      "author": {
        "name": "Nick Hilliard",
        "email": "nick@foobar.org",
        "time": "Tue Dec 27 22:51:51 2016 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 17:20:50 2017 +0000"
      },
      "message": "vtysh: make warnings about node installs a non-default compile-time option\n\n* lib/command.c: (install_element) Suppress duplicate command install warnings\n  for vtysh\n"
    },
    {
      "commit": "a64c66b105929b0f0fc19743f34dc29c760df967",
      "tree": "a8aa6907f32b27db0348501262513d6109c1a03a",
      "parents": [
        "99e00a19bb8afcf081d1551b886c6d85188e6c60"
      ],
      "author": {
        "name": "Renato Westphal",
        "email": "renato@opensourcerouting.org",
        "time": "Fri Jan 06 16:30:03 2017 +0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 17:20:50 2017 +0000"
      },
      "message": "zebra: fix build on OpenBSD \u003e\u003d 5.9\n\nRTF_XRESOLVE was removed from the OpenBSD tree recently.\n"
    },
    {
      "commit": "99e00a19bb8afcf081d1551b886c6d85188e6c60",
      "tree": "37bd6710fcb40e44b6e2f8e53b22c4cb81f77efb",
      "parents": [
        "7d66284a5817a1613b1e4d64a0775ec04fdf8c01"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Mon Jan 23 14:47:32 2017 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 17:20:50 2017 +0000"
      },
      "message": "lib: Bump library version-info\n"
    },
    {
      "commit": "7d66284a5817a1613b1e4d64a0775ec04fdf8c01",
      "tree": "263bc1ad86743e45f14c74e83cddef326330b578",
      "parents": [
        "b7ceefea77a246fe5c1dcd1b91bf6079d1b97c02"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Thu Jan 19 10:39:23 2017 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 17:19:39 2017 +0000"
      },
      "message": "lib: ensure vty buf is nul terminated and wrap puts to it with checks\n\n* vty.c: Fix str* overruns in previous commit, which I reported to the\n  author. Add bit more checking of updates to vty buffer.\n  Swap VTY_BUFSIZ over to vty-\u003emax, as that should be the external API.\n* vty.c: (vty_buf_assert) conditions that should always be assertable for\n  vty buffer.\n  (vty_buf_put) little wrapper to check char puts to vty input buffer,\n  and unconditionally write nul at very end of buffer as guard.\n  Won\u0027t always work, as some places use mem* to manipulate.\n  (vty_self_insert{,_overwrite}) Length check needs to leave room for nul.\n  Use vty_buf_put.\n  (vty_insert_word_overwrite) Length check needs to leave room for nul.\n  (*) Add vty_buf_assert calls.\n\nMerging in fixes from Quentin Young \u003cqlyoung@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "b7ceefea77a246fe5c1dcd1b91bf6079d1b97c02",
      "tree": "a67ab3ef89e499e8ff7d8d044f6ee2837ca75f0d",
      "parents": [
        "5477ee7b9d8d24d2bb61335c62f3d6c5e99fc901"
      ],
      "author": {
        "name": "Quentin Young",
        "email": "qlyoung@cumulusnetworks.com",
        "time": "Tue Jan 10 23:33:50 2017 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jan 20 12:25:22 2017 +0000"
      },
      "message": "lib: limit size of vty buffer to 4096 bytes\n\nThis removes the automatic resizing of the vty input buffer and places a\nhard size cap of 4096 bytes. It also fixes a potentially unsafe strcpy.\n\n[Edits by Paul Jakma, paul@jakma.org]\n"
    },
    {
      "commit": "5477ee7b9d8d24d2bb61335c62f3d6c5e99fc901",
      "tree": "e594369217510323b34f6d8bfe6cd0fda4bc7674",
      "parents": [
        "258f3dad6471a680c2c583a300cfd396efe9a037"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Wed Jan 11 11:18:22 2017 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jan 19 13:22:50 2017 +0000"
      },
      "message": "Revert \"opsf6d: Update router-LSA when nbr\u0027s interface-ID changes\"\n\nThis reverts commit e509af86e3579944b7cde942ca3ee3427db1936a.\n\nSee Bug #885\n"
    },
    {
      "commit": "258f3dad6471a680c2c583a300cfd396efe9a037",
      "tree": "a71e3e98a234b12a2838bdc686852d7b65413240",
      "parents": [
        "de58bdb9cdbd88baae7123856462380df365b7ff"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 18 14:03:52 2016 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 18 14:03:52 2016 +0100"
      },
      "message": "release: Bump version to 1.1.0\n"
    },
    {
      "commit": "de58bdb9cdbd88baae7123856462380df365b7ff",
      "tree": "1a6c38efc510f07eb8d421556281ba67737689d2",
      "parents": [
        "cfb1fae25f8c092e0d17073eaf7bd428ce1cd546"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 18 14:03:37 2016 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 18 14:03:37 2016 +0100"
      },
      "message": "build: remove werror from buildtest.sh for now\n"
    },
    {
      "commit": "cfb1fae25f8c092e0d17073eaf7bd428ce1cd546",
      "tree": "60162a121a7898dc20e9a18ec12d3dc88edf1e61",
      "parents": [
        "ef9bc88981570ef8ea744f0ab96730d192328a49"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Aug 31 13:31:16 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Mon Oct 17 17:41:36 2016 +0100"
      },
      "message": "zebra: stack overrun in IPv6 RA receive code (CVE-2016-1245)\n\nThe IPv6 RA code also receives ICMPv6 RS and RA messages.\nUnfortunately, by bad coding practice, the buffer size specified on\nreceiving such messages mixed up 2 constants that in fact have\ndifferent values.\n\nThe code itself has:\n #define RTADV_MSG_SIZE 4096\nWhile BUFSIZ is system-dependent, in my case (x86_64 glibc):\n /usr/include/_G_config.h:#define _G_BUFSIZ 8192\n /usr/include/libio.h:#define _IO_BUFSIZ _G_BUFSIZ\n /usr/include/stdio.h:# define BUFSIZ _IO_BUFSIZ\n\nFreeBSD, OpenBSD, NetBSD and Illumos are not affected, since all of them\nhave BUFSIZ \u003d\u003d 1024.\n\nAs the latter is passed to the kernel on recvmsg(), it\u0027s possible to\noverwrite 4kB of stack -- with ICMPv6 packets that can be globally sent\nto any of the system\u0027s addresses (using fragmentation to get to 8k).\n\n(The socket has filters installed limiting this to RS and RA packets,\nbut does not have a filter for source address or TTL.)\n\nIssue discovered by trying to test other stuff, which randomly caused\nthe stack to be smaller than 8kB in that code location, which then\ncauses the kernel to report EFAULT (Bad address).\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\nReviewed-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "ef9bc88981570ef8ea744f0ab96730d192328a49",
      "tree": "1262be07ccbda5e412eed1e54a640723a03b81bb",
      "parents": [
        "985823ff91ed784b9affdb0104f617b2c1732dab"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Tue Jun 14 20:07:06 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Mon Oct 17 17:41:36 2016 +0100"
      },
      "message": "isisd: Fix size of malloc\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "985823ff91ed784b9affdb0104f617b2c1732dab",
      "tree": "638c16eaef3a8b6d752eaf568e4a8db1644ccfcb",
      "parents": [
        "8548973ace90a78035893c3663c18b485425e291"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Tue Jun 14 20:07:05 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Mon Oct 17 17:41:36 2016 +0100"
      },
      "message": "isisd: fix an error that was probably a result of copypasting\n\nThe code should check for the existance of the correct list prior to\naccessing it.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "8548973ace90a78035893c3663c18b485425e291",
      "tree": "e13fa59edf39c65057b728fb81e8866fb5cb33ed",
      "parents": [
        "7fca43f7184f6eb9fbe952f1eecaafcf079502f2"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Tue Jun 14 20:07:04 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Mon Oct 17 17:41:36 2016 +0100"
      },
      "message": "ospf6d: fix off-by-one on display of spf reasons\n\nThe loop should only iterate to array_size - 1.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "7fca43f7184f6eb9fbe952f1eecaafcf079502f2",
      "tree": "6b6fee2ba5c0877a4032eaaffee6c241ba84dca4",
      "parents": [
        "0d8b32a5ee43ccc4a67dd87ab21a4ab553e3bf44"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Tue Jun 14 20:07:03 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Mon Oct 17 17:41:36 2016 +0100"
      },
      "message": "ospf6d: don\u0027t access nexthops out of bounds\n\nGiven that the \u0026\u0026 is evaluated lazily from left to right,\ni \u003c OSPF6_MULTI_PATH_LIMIT should be checked prior to calling\nospf6_nexthop_is_set on the array element, not the other way around.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "0d8b32a5ee43ccc4a67dd87ab21a4ab553e3bf44",
      "tree": "866250b3e2c949344bfce2f104b8820a752834ca",
      "parents": [
        "bb04351973bd369623a0fbed3ef59e7b4fd0bd05"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Tue Jun 14 20:07:00 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Mon Oct 17 17:41:36 2016 +0100"
      },
      "message": "bgpd: fix off-by-one in attribute flags handling\n\nbgp_attr_flag_invalid can access beyond the last element of attr_flags_values.\nFix this by initializing attr_flags_values_max to the correct value.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "bb04351973bd369623a0fbed3ef59e7b4fd0bd05",
      "tree": "0bc7a8213129c88bd1cfe0c33caadb9255ebf702",
      "parents": [
        "e33545cb9d7a8c7875f18b6d44bf75d320ccedfb"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Mon Oct 10 11:56:52 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 11 12:00:00 2016 +0100"
      },
      "message": "bgp: restore missing check from original ignore NHT change\n"
    },
    {
      "commit": "e33545cb9d7a8c7875f18b6d44bf75d320ccedfb",
      "tree": "be90abff85648955fbfc00d6ea0310b49caba452",
      "parents": [
        "68bfb6190e19898adc0e420b6346cf4778705e60"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Mon Oct 10 09:50:58 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 11 11:59:22 2016 +0100"
      },
      "message": "bgp: fix warning in bgp_nht.c\n"
    },
    {
      "commit": "68bfb6190e19898adc0e420b6346cf4778705e60",
      "tree": "fbccbc160a94c245abee2696fef805da7f620b4b",
      "parents": [
        "743dd42b3f5d4bc5f9a86b91364c67217f42c6d1"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Thu Oct 06 09:59:32 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Oct 07 10:53:15 2016 +0100"
      },
      "message": "bgp: ignore NHT when bgpd has never connected zebra\n"
    },
    {
      "commit": "743dd42b3f5d4bc5f9a86b91364c67217f42c6d1",
      "tree": "365a266a5e8b3602e359aeadfb921133a2c70c22",
      "parents": [
        "af177b245ef3f092ecd0ae75cb75c2d797a7b139"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Sep 30 13:55:47 2016 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:56 2016 +0100"
      },
      "message": "bgpd: Fix NHT race with Connect leading to test tool issues\n\n* The NHT change:\n\n   \"bgpd, zebra: Use next hop tracking for connected routes too\"\n\n  introduces a race where bgp_connect_check can be called on a peer in\n  Connect state before the TCP handshake has completed. If this happens,\n  then the SO_ERROR sockopt to check the state of the socket is undefined\n  or at least does not return a useful result - it returns 0, as with\n  a connected socket. SO_ERROR should only be called on non-block sockets\n  after the socket has been ready for writing.\n\n  The net result is that bgpd can then incorrectly advance the peer FSM for\n  the socket (also the main \u0027peer\u0027), to OpenSent. As part of which, any\n  incoming connection from the peer will pass through collision_detect and\n  may be (incorrectly) closed, depending on the RIDs.\n\n  This race is reliably hit with testing tools which wait to listen for\n  incoming BGP connections from the RUT to know it is in Connect/Active, and\n  which ignore the TCP connection (no SYN|ACK, no RST), and then launch their\n  own connection.\n\n  The fix is to better integrate the BGP FSM and the NHT update, to ensure\n  connect_check is not called on peers in Connect state.\n\n  Note: There may be no need at all for NHT to tickle FSM.\n\n* bgpd.h: Add NHT_Update FSM event for NHT valid.\n\n* bgp_fsm.c: (bgp_fsm_nht_update) There is no need to have a separate\n  switch based FSM with its own event via an exported function.  Have\n  NHT raise the NHT_Update even on the peer, instead of calling a\n  side-channel function into a sub-FSM in the FSM.  No need to have\n  code for BGP_Start, FSM can call that.  Actions for Connect and\n  Active are the same and just lead to ConnectRetry_timer_expired\n  event - so FSM can just call same transition func as that.\n\n  No need to call bgp_connect_check on Connect, as Connect implies no\n  connection.\n\n  (FSM) Handle the NHT_Update event, replacing bgp_fsm_nht_update.\n  Idle -\u003e bgp_start, Connect and Active were doing the same as\n  ConnectRetry_timer_expired so replicate those. Rest are No-Ops.\n\n* bgp_nht.c: (evaluate_paths) Raise NHT_Update FSM event. Always valid.\n* bgp_packet.{c,h}: (bgp_connect_check) NHT change now unnecessary, revert.\n"
    },
    {
      "commit": "af177b245ef3f092ecd0ae75cb75c2d797a7b139",
      "tree": "7306eac3fa1e2d9a897a33e3fb733b0a7dfed4e2",
      "parents": [
        "4c7d7173baa9fe064349f5fe2e0bdcb367475499"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Mon Aug 15 13:36:59 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:55 2016 +0100"
      },
      "message": "isisd: warn if there is an MTU issue on circuits\n\nInstead of later tripping over an assert, add a proper warning for\ninterfaces whose MTU is too low.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "4c7d7173baa9fe064349f5fe2e0bdcb367475499",
      "tree": "d1543cb7c7180e733f5e1561b69dcb23a427def7",
      "parents": [
        "1187e25191b38a1876fafbfd733a70942ebcb062"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Aug 13 01:32:52 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:55 2016 +0100"
      },
      "message": "isisd: fold up isis_circuit_is_type_set()\n\nsee previous commit.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "1187e25191b38a1876fafbfd733a70942ebcb062",
      "tree": "9d026f5df8181b5a09fcd480899a31cee7cfee11",
      "parents": [
        "a798abbe65cc2cdce050a1aef85c6d243d44a575"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Aug 13 01:20:20 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:55 2016 +0100"
      },
      "message": "isisd: fix is_type_set\n\nCode\u0027s \"is_type\" is \"circuit-type\" in CLI, \"circuit_type\" is \"network\"\n(type) in CLI, and the function to change is_type is\nisis_event_circuit_type_change()... *headdesk*\n\nReported-by: Martin Winter \u003cmwinter@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a798abbe65cc2cdce050a1aef85c6d243d44a575",
      "tree": "6c0fd64d82679ab93e0b653352cd380eef9bd033",
      "parents": [
        "5a1a087baebcc4a996de66c558bac49419034ee0"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Thu Aug 11 16:08:05 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:55 2016 +0100"
      },
      "message": "isisd: fix network-type configuration\n\nReported-by: Martin Winter \u003cmwinter@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "5a1a087baebcc4a996de66c558bac49419034ee0",
      "tree": "ad386b2556a0072a39ea88ad36c54369c36cf68d",
      "parents": [
        "515812ddbbb6a41298261688c8ccd0df8e900f17"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Aug 11 17:02:50 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:55 2016 +0100"
      },
      "message": "isisd: fix isis_circuit_af_set() on fresh circuit\n\nA newly-created circuit will be in enabled state but have neither IPv4\nnor IPv6 configured.  The logic in isis_circuit_af_set assumed that\n\"enabled\" is equivalent to \"ip || ipv6\".\n\nThis is the only place where this distinction is currently relevant, as\nthe CLI won\u0027t allow enabling an interface without enabling either IPv4\nor IPv6;  and it will also disable a circuit when both are deconfigured.\n\nReported-by: Martin Winter \u003cmwinter@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "515812ddbbb6a41298261688c8ccd0df8e900f17",
      "tree": "520c4a03130356863365f19f9c19f293e6fdd3d1",
      "parents": [
        "f263413f762058d887aa7b2b6c502bd84af3c923"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Aug 11 16:59:08 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:55 2016 +0100"
      },
      "message": "isisd: fix isis_circuit_create()\n\nBetween the awkwardly managed CSM and the tacked-on IPv6 support, the\nsimplified logic to setup a circuit wasn\u0027t quite right.\n\nNote that the API essentially allows creating a circuit without enabling\neither IPv4 or IPv6.  This wasn\u0027t possible before and probably breaks\nisisd in \u0027interesting\u0027 ways.  The CLI won\u0027t do this, so it\u0027s only an\nissue when adding on other configuration mechanisms.\n\nReported-by: Martin Winter \u003cmwinter@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f263413f762058d887aa7b2b6c502bd84af3c923",
      "tree": "22f9b44007f7b9dbfe530830fe245afd13d8f518",
      "parents": [
        "68845c19e468480dbdf5483f0b60323674a5ec28"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jul 28 17:23:32 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:55 2016 +0100"
      },
      "message": "isisd: drop unused per-type metric values\n\nExpense, Error and Delay metrics never quite made it into the real\nworld.  Either way isisd does nothing useful with them, so let\u0027s drop\nthem from the code.  If someone wants to implement them, this patch can\nstill be reverted.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "68845c19e468480dbdf5483f0b60323674a5ec28",
      "tree": "e83a69267e6ca10a2396dd6180a3eaa998e62ef3",
      "parents": [
        "4570ca47e11602b25e37ab709fa00bdf8c183afb"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Thu Jul 28 17:23:31 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:54 2016 +0100"
      },
      "message": "isisd: API: area (L1), domain (L2) passwords\n\nLast isisd CLI cleanup for now.  This also folds L1 \u0026 L2 configs into\ncommon functions, reducing CLI function bloat by a bit.\n\n(This patch contains changes authored by both Christian Franke and David\nLamparter.)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "4570ca47e11602b25e37ab709fa00bdf8c183afb",
      "tree": "2ff5974261ae0de057068425373acad40c29a43d",
      "parents": [
        "304c7dac53e2b1b3dc135ce2ff1aa38df46ec727"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Thu Jul 28 17:23:30 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:54 2016 +0100"
      },
      "message": "isisd: API: timers (LSP, SPF)\n\nSee previous commits...\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "304c7dac53e2b1b3dc135ce2ff1aa38df46ec727",
      "tree": "9efebc027cd961b40971bcdad862459ae416efd7",
      "parents": [
        "b5d2f5f5085147ff9e9d5ace7705c422cbc6afd0"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Thu Jul 28 17:23:29 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:54 2016 +0100"
      },
      "message": "isisd: API: LSP-MTU \u0026 area level\n\nYet more CLI functions in isis_vty.c using more nice setters.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "b5d2f5f5085147ff9e9d5ace7705c422cbc6afd0",
      "tree": "33f36c73478ed1d1583493d8e3841c72dbbba099",
      "parents": [
        "f5fbfb26e961d6b4b129f98bc27a3e822620eba3"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jul 28 17:23:28 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:54 2016 +0100"
      },
      "message": "isisd: API: timers (IIH, CSNP, PSNP)\n\nNo setters needed since change of fields doesn\u0027t require any\nspecific action to make it apply.  Just move the CLI defs to isis_vty.c.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f5fbfb26e961d6b4b129f98bc27a3e822620eba3",
      "tree": "37bb83e030bac19caac5e0eae9ca3055ef0ad38b",
      "parents": [
        "ccd485d17b13f3b6f5669be9b8820d8807468d98"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Thu Jul 28 17:23:27 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:54 2016 +0100"
      },
      "message": "isisd: API: circuit password\n\nThis cleans up circuit password configuration a little bit.\n(Restructured several times by both Christian Franke and David\nLamparter.)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "ccd485d17b13f3b6f5669be9b8820d8807468d98",
      "tree": "84eeee1ba7bdba92f85192febbc2504c2b46a34b",
      "parents": [
        "3732cba03049b18fc414c36254cfc11186b2ba53"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Thu Jul 28 17:23:26 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:54 2016 +0100"
      },
      "message": "isisd: API: basic area config\n\nMove out basic area configuration (metric type, overload and attachment\nbits, dynamic hostname extension enable) into isis_vty.c.\n\n[v2: moved stuff back here that accidentally was in the previous patch]\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "3732cba03049b18fc414c36254cfc11186b2ba53",
      "tree": "ddcd74c7700ad2118659a35139ab4e80e8c0094b",
      "parents": [
        "f5603ccd01131a1905b842e36171d0f5c0424496"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jul 29 16:19:40 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:54 2016 +0100"
      },
      "message": "isisd: API: basic circuit config\n\nCreate isis_vty.c and start moving off CLI functions into that.  These\nthen call newly-added \"nice\" API wrappers.\n\nPatch contains significant work authored by Christian Franke.\n\n[v2: removed stuff that crept in from the next patch]\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f5603ccd01131a1905b842e36171d0f5c0424496",
      "tree": "ea200b09ca089e09bcedf8598461e2f35d700f88",
      "parents": [
        "b4e011985232f28d98e4df88c7cb13ee8f95ef46"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Mon Sep 12 13:53:08 2016 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:53 2016 +0100"
      },
      "message": "isisd: cleanup isis_circuit_lookup, errant from TE changes?\n"
    },
    {
      "commit": "b4e011985232f28d98e4df88c7cb13ee8f95ef46",
      "tree": "08645e444b7e7f5177ced9b880587e7184c56e2b",
      "parents": [
        "810ab34c56a9b9b8870b961bc96986e6b8550863"
      ],
      "author": {
        "name": "Evgeny Uskov",
        "email": "eu@qrator.net",
        "time": "Wed Jan 13 13:58:00 2016 +0300"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:53 2016 +0100"
      },
      "message": "bgpd: Fix buffer overflow error in bgp_dump_routes_func\n\nNow if the number of entries for some prefix is too large, multiple\nTABLE_DUMP_V2 records are created.  In the previous version in such\nsituation bgpd crashed with SIGABRT.\n"
    },
    {
      "commit": "810ab34c56a9b9b8870b961bc96986e6b8550863",
      "tree": "0b533fe031845ea162dbb6f54339f5b4124eebbd",
      "parents": [
        "19e6c193db0c74ed08dbb5cd30dfa8f6a4377af0"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Mon Sep 05 12:18:15 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:53 2016 +0100"
      },
      "message": "bgp: bgp_nexthop init/free AFI_ETHER related NH tables\n"
    },
    {
      "commit": "19e6c193db0c74ed08dbb5cd30dfa8f6a4377af0",
      "tree": "8b0b2a80222c2785f84ff3a0d30462d6c274ad8d",
      "parents": [
        "c365b534623279049bc4cc0c5d03fdbcd2d466b0"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 06 17:23:48 2016 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:53 2016 +0100"
      },
      "message": "bgpd: bgp_nexthop_cache not deleted with peers\n\n* Fix mild leak, bgp_nexthop_caches were not deleted when their peer was.\n  Not a huge one, but makes valgrinding for other leaks noisier.\n\n  Credit to Lou Berger \u003clberger@labn.net\u003e for doing the hard work of\n  debugging and pinning down the leak, and supplying an initial fix.\n  That one didn\u0027t quite get the refcounting right, it seemed, hence\n  this version.\n\n  This version also keeps bncs pinned so long as the peer is defined, where\n  Lou\u0027s tried to delete whenever the peer went through bgp_stop. That causes\n  lots of zebra traffic if down peers go Active-\u003eConnect-\u003eActive, etc., so\n  leaving bnc\u0027s in place until peer_delete seemed better.\n\n* bgp_nht.c: (bgp_unlink_nexthop_by_peer) similar to bgp_unlink_nexthop, but\n  by peer.\n* bgp_nht.c: (bgp_unlink_nexthop_check) helper to consolidate checking\n  if a bnc should be deleted.\n  (bgp_unlink_nexthop_by_peer) ensure the bnc-\u003enht_info peer reference\n  is removed, and hence allow bncs to be removed by previous.\n* bgpd.c: (peer_delete) cleanup the peer\u0027s bnc.\n"
    },
    {
      "commit": "c365b534623279049bc4cc0c5d03fdbcd2d466b0",
      "tree": "89e61557d1f172386a5b9c2f5f0ad194789f2115",
      "parents": [
        "4b502fdb64db6fcad5359973e3ff7e7c88e93a7d"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Tue Jul 26 10:58:53 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:53 2016 +0100"
      },
      "message": "bgpd: Remove unused and leaking code\n"
    },
    {
      "commit": "4b502fdb64db6fcad5359973e3ff7e7c88e93a7d",
      "tree": "ed2fc8123a6e40f2c498fa685849525e15f18b69",
      "parents": [
        "789dfc9fe07e23e6c73a299ecbbcbb6d3d411391"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Wed Jul 27 17:06:32 2016 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:53 2016 +0100"
      },
      "message": "tests: Fix testbgpmpattr and make check, broken by BGP NHT.\n\n* bgp_mp_attr_test.c: Fix segfault due to uninitialised bgp_nexthop_cache\n  globals in nexthop parsing path, which require bgp_scan_init() to have\n  been called.\n\n  Fixes issue introduced with:\n\n  \u0027bgpd, zebra: Use next hop tracking for connected routes too\u0027\n"
    },
    {
      "commit": "789dfc9fe07e23e6c73a299ecbbcbb6d3d411391",
      "tree": "dd0b1fbd41a83a3e18f6e2adc7e53b90f5bd428c",
      "parents": [
        "d9ab53ab40dcba66f34ca75695dc930e6093f789"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 06 11:20:27 2016 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:52 2016 +0100"
      },
      "message": "bgpd: Fix crash in \u0027show ip bgp nexthop\u0027\n\n* bgp_nexthop.c: (show_ip_bgp_nexthop_table) the AFIs are sparse, and start\n  from 1, check there\u0027s a table before derefing so as not to crash.\n"
    },
    {
      "commit": "d9ab53ab40dcba66f34ca75695dc930e6093f789",
      "tree": "552f537b8f5decf1b74d8fc98b96ef3e65a01051",
      "parents": [
        "5bcd754ff8d7947978acb44e77dcab323973fb1e"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Tue May 19 17:47:21 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:52 2016 +0100"
      },
      "message": "bgpd, zebra: Use next hop tracking for connected routes too\n\nAllow next hop tracking to work with connected routes\nAnd cleanup obsolete code in bgp_scan and bgp_import.\n\nSigned-off-by: Dinesh Dutt \u003cddutt@cumulusnetworks.com\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nEdits: Paul Jakma \u003cpaul.jakma@hpe.com\u003e Rebase re-ordering conflicts with\n       NHT route-map, potential errors.\n"
    },
    {
      "commit": "5bcd754ff8d7947978acb44e77dcab323973fb1e",
      "tree": "75fab09b53d3d810d327d8569e0f1e289550f941",
      "parents": [
        "6c6c1bf0fc66713cb0b3448a4323042f44016502"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Tue May 19 17:58:10 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:52 2016 +0100"
      },
      "message": "bgpd: crash if attributes alone consume \u003e 4096 bytes\n\nThis patch fixes a crash if attributes on a patch consume\nmore than 4096 bytes.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "6c6c1bf0fc66713cb0b3448a4323042f44016502",
      "tree": "500f40a63728f968a8198db0300e8945131fb5b8",
      "parents": [
        "e25a9741fb1ba52a69833687caa01f13cd4d1320"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Mon Nov 09 20:21:56 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:52 2016 +0100"
      },
      "message": "bgpd: Improve peer scaling\n\nReduce the amount of time it takes to bring up a large number of peers.\n\nThis is accomplished by removing jitter and reducing the number\nof seconds to wait before connecting to a peer.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n\nEdited-by: Paul Jakma \u003cpaul.jakma@hpe.com\u003e for rebase conflicts, and to add\n           jitter on connect timer back in. Can be removed in an update.\n"
    },
    {
      "commit": "e25a9741fb1ba52a69833687caa01f13cd4d1320",
      "tree": "bc3eb6ea0e14e142095ada9a0dc44a3447dc009a",
      "parents": [
        "cb9ed1d867f6ac9e0bad85c47aabeb10b94be2e5"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Mon Nov 09 20:21:50 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:52 2016 +0100"
      },
      "message": "bgpd: don\u0027t count a route with an unreachable nexthop in PfxRcd\n\nWhen a route is received from a peer that we cannot\nreach do not count that route as a received route.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "cb9ed1d867f6ac9e0bad85c47aabeb10b94be2e5",
      "tree": "de6801469dbcb226b5373957638a80bc09e4e0d7",
      "parents": [
        "4f84737dee1e84b7219f66e983812abd8a6ca1d3"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Jan 14 09:19:29 2016 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:52 2016 +0100"
      },
      "message": "ospf6d: Fix double increment of Sequence Number\n\nWhen OSPF6 is creating the header for the ROUTER LSA type\nif the packet being sent has interface information to add\nto the data, the Sequence Number is at least double incremented.\n\nThis commit may cause issues with ANVL 16.10.\n\n[note: folded in:\n \"ospf6d: Fix Some ANVL test cases 16.6 and partial 16.10\"\n -- Paul Jakma]\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "4f84737dee1e84b7219f66e983812abd8a6ca1d3",
      "tree": "19a9ba0340602be5754a862686dc0a3738048bac",
      "parents": [
        "afc9cf97363c0b7ec6c253731a75ac83e70ea190"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Tue Dec 22 15:24:25 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:52 2016 +0100"
      },
      "message": "zebra: Fix some warnings found during compile.\n\nThis commit fixes some warnings found in Martin\u0027s Testbed\nthat compiles sun solaris and freebsd images.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "afc9cf97363c0b7ec6c253731a75ac83e70ea190",
      "tree": "929cddfa8cda9136780bccd28ce365365841b3cc",
      "parents": [
        "fc2cee2bed4ebf664ba0afa1678027365f3923f7"
      ],
      "author": {
        "name": "Vipin Kumar",
        "email": "vipin@cumulusnetworks.com",
        "time": "Tue May 19 18:03:50 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:51 2016 +0100"
      },
      "message": "osfd: Make OSPF compliant to the last sentence of this section in RFC 2328\n\n9.5 Sending Hello packets\n\nHello packets are sent out each functioning router interface.\nThey are used to discover and maintain neighbor\nrelationships.[6] On broadcast and NBMA networks, Hello Packets\nare also used to elect the Designated Router and Backup\nDesignated Router.\nThe format of an Hello packet is detailed in Section A.3.2.  The\nHello Packet contains the router\u0027s Router Priority (used in\nchoosing the Designated Router), and the interval between Hello\nPackets sent out the interface (HelloInterval).  The Hello\nPacket also indicates how often a neighbor must be heard from to\nremain active (RouterDeadInterval).  Both HelloInterval and\nRouterDeadInterval must be the same for all routers attached to\na common network.  The Hello packet also contains the IP address\nmask of the attached network (Network Mask).  On unnumbered\npoint-to-point networks and on virtual links this field should\nbe set to 0.0.0.0.\n\nSigned-off-by: Vipin Kumar \u003cvipin@cumulusnetworks.com\u003e\nReviewed-by: Vivek Venkatraman \u003cvivek@cumulusnetworks.com\u003e\nReviewed-by: Dinesh G Dutt \u003cddutt@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "fc2cee2bed4ebf664ba0afa1678027365f3923f7",
      "tree": "11a65e7d126c07460cc72a605831128bfdf38ffe",
      "parents": [
        "c69698704806a9ac5035521b1820057097919227"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Tue May 19 18:03:44 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:51 2016 +0100"
      },
      "message": "zebra: Fix incorrectly flagged nexthop\n\nA valid BGP nexthop is sometimes flagged as invalid, this patch\nfixes that issue.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nEdited-by: Paul Jakma \u003cpaul.jakma@hpe.com\u003e, also add the check for\nNEXTHOP_FLAG_ACTIVE which was added in a separate, route-map related commit\n(6baeed5 lib, zebra: Add route-map support for Next Hop Tracking)\n"
    },
    {
      "commit": "c69698704806a9ac5035521b1820057097919227",
      "tree": "51f9b001c139c75f0ac3088a172f2a6c23bab4a8",
      "parents": [
        "cb37de4c6863c772b654a851c9fe3eeb1f677692"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Tue May 19 18:03:43 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:51 2016 +0100"
      },
      "message": "bgpd: Correct a few fuzz failures in BGP\n\nTesting revealed some issues with handling data input.\nThis patch fixes those issues.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "cb37de4c6863c772b654a851c9fe3eeb1f677692",
      "tree": "602898c0435b1c4ad57afaa15b72d9c1b029d15b",
      "parents": [
        "2153090340f059eb787d72ba973ea55e150e9dec"
      ],
      "author": {
        "name": "Vipin Kumar",
        "email": "vipin@cumulusnetworks.com",
        "time": "Tue May 19 18:03:40 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:51 2016 +0100"
      },
      "message": "ospf6d: Fix loss of hello\u0027s on interface\n\nSYMPTOM:\n\nWith quagga running on Linux, \u0027ifdown \u003cif-name\u003e\u0027 followed by \u0027ifup \u003cifname\u003e\ncan cause OSPFv3 to not receive Hello packets on the interface.\n\nISSUE:\n\nOperating System\u0027s interface IPv6 readiness may not be guaranteed at the\ntime of interface-up event. Thats because the ipv6 components in an OS may\nalso be listening to the same interface-up event that (in this case) is\nrelayed to OSPFv3.\n\nIn this failure case, setsockopt with option IPV6_JOIN_GROUP on the interface\nreturned EINVAL.\n\nError logs -\nOSPF6: Zebra Interface state change: swp1 index 3 flags 11043 metric 1 mtu 1500\nOSPF6: Interface Event swp1: [InterfaceUp]\nOSPF6: Network: setsockopt (20) on ifindex 3 failed: Invalid argument\n\nFIX:\n\nTo take care of this possible race condition, any address-family related\nsetting should be retried. Given it\u0027s a rare condition and window of this\nrace should be short, the patch adds a limited retry mechanism for the\nIPV6 membership setting on the socket.\n\nSigned-off-by: Vipin Kumar \u003cvipin@cumulusnetworks.com\u003e\nReviewed-by: Dinesh Dutt \u003cddutt@cumulusnetworks.com\u003e\n             Satish Ashok \u003csashok@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "2153090340f059eb787d72ba973ea55e150e9dec",
      "tree": "42fa35eb7553402425ce6e836bed00aa828a7ef6",
      "parents": [
        "4c7efde6db75229069be72b34a93f279fe57d23b"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Tue May 19 18:03:38 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:51 2016 +0100"
      },
      "message": "bgpd: Fix BGP_INFO_ATTR_CHANGED being cleared incorrectly\n\nback to back route refreshes can set BGP_INFO_ATTR_CHANGED\non the first route refresh but then clear it on the second\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "4c7efde6db75229069be72b34a93f279fe57d23b",
      "tree": "fb3850cefcb7024fef5f16cc9e056e137d814b04",
      "parents": [
        "988a50c54dbd20290c085a36d4c2893f3d515803"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Mon Nov 16 18:19:18 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:51 2016 +0100"
      },
      "message": "zebra: Add check to notice when an interface is unnumbered\n\nIf an interface is not a loopback and it\u0027s prefixlen \u003d\u003d 32\nassume that it is unnumbered.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "988a50c54dbd20290c085a36d4c2893f3d515803",
      "tree": "def010434d1cf49f61ccbb73dd53f862fef53c82",
      "parents": [
        "9e518dd52b1fbf7d395a6bb49a101d632ced5e5b"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Tue May 19 17:58:11 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:51 2016 +0100"
      },
      "message": "bgpd, lib: Clarify the different permutations of soft clearing a peer\n\nCleanup vtysh output for the soft clearing of a bgp peer so\nthat it is clearer what is going to happen.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "9e518dd52b1fbf7d395a6bb49a101d632ced5e5b",
      "tree": "8cd92e6b61e0d3643b9000444fe252e0b781b8bd",
      "parents": [
        "9ae8552c7341071ffac34aec9902fa3dd7dc8fdf"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Tue May 19 17:47:26 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:50 2016 +0100"
      },
      "message": "bgpd: Alow gracefull shutdown of peers\n\nSend CEASE NOTIFICATIONS to all peers on \"no router bgp\"\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "9ae8552c7341071ffac34aec9902fa3dd7dc8fdf",
      "tree": "37f7b06f2915025b64560e130764007d7914f73f",
      "parents": [
        "c7f25b90902d4be39132b1174440746b571220ce"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Tue May 19 17:47:22 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:50 2016 +0100"
      },
      "message": "zebra: Gather and display detailed info about clients of Zebra\n\nThe display of zebra client info is rather paltry: just the name and the FD.\nFor troubleshooting and general helpfulness, its useful to gather more info\nabout each client and display that. This patch does just that.\n\nSigned-off-by: Dinesh Dutt \u003cddutt@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "c7f25b90902d4be39132b1174440746b571220ce",
      "tree": "b66ca69885ba36884b09473700f08cc3909cfea3",
      "parents": [
        "f2eb9caac6425473af8d6d15534439fe715f7426"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Tue May 19 17:47:22 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:50 2016 +0100"
      },
      "message": "bgpd, ospfd, ospf6d, ripd, ripngd, zebra: \u0027set metric -12\u0027 is broken in the parser\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "f2eb9caac6425473af8d6d15534439fe715f7426",
      "tree": "17ee9ab41bc5afee212825a7fb0c6caeceb4b7bd",
      "parents": [
        "96d1060a704d88e04fcd446cce078a6131c3f6db"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Tue May 19 17:47:21 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:50 2016 +0100"
      },
      "message": "bgpd: atomic-aggregate is lost when we aggregate another aggregate that has atomic-aggregate\n\nThis patch ensures that we don\u0027t accidently loose the atomic-aggregate\nwhen we aggregate another aggregate that also has atomic-aggregates.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "96d1060a704d88e04fcd446cce078a6131c3f6db",
      "tree": "89a6f1285550a2d2f149479cc272450e63294ebc",
      "parents": [
        "3b4fb574b414e7b7776b581688f189f2fc736a38"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Jul 01 14:23:45 2016 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:50 2016 +0100"
      },
      "message": "*: Widen width of Zserv routing tag field.\n\n* lib/zebra.h: Introduce a route_tag_t type for route tags generally,\n  and make it 4 bytes wide - so it can directly hold things like an ASN, or\n  the OSPF ASE-LSA tag.\n* zebra/rib.h: Use route_tag_t instead of u_short.\n* *: Update \u0027u_short (*)?(tag|tmp)\u0027 to use route_tag_t instead of u_short.\n  Update stream_{get,put} to l instead of w.\n* ospf_zebra.c: (ospf_zebra_add) test OSPF tag within range of ROUTE_TAG_MAX.\n"
    },
    {
      "commit": "3b4fb574b414e7b7776b581688f189f2fc736a38",
      "tree": "1ee9f627cef3a59b8e21f0a476a75ca4db43b883",
      "parents": [
        "fb214471c88616d67ece3734128ef04ed4a8ed86"
      ],
      "author": {
        "name": "Piotr Chytła",
        "email": "pch@packetconsulting.pl",
        "time": "Tue Dec 01 10:16:02 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:49 2016 +0100"
      },
      "message": "ripd, ripngd: add support for route tags\n\n[Forward ported by Cumulus]\n\nDocumentation\n-------------\nAll ipv4 and ipv6 static route commands now have a \"tag\" option\nwhich allows the user to set a tag between 1 and 65535.\n\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag ?\n  \u003c1-65535\u003e  Tag value\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag 40\nquagga(config)#\n\nquagga# show ip route 1.1.1.1/32\nRouting entry for 1.1.1.1/32\n  Known via \"static\", distance 1, metric 0, tag 40, best\n  * 10.1.1.1, via swp1\n\nquagga#\n\nThe route-map parser supports matching on tags and setting tags\n!\nroute-map MATCH_TAG_18 permit 10\n  match tag 18\n!\n\n!\nroute-map SET_TAG_22 permit 10\n  set tag 22\n!\n\nBGP and OSPF support:\n- matching on tags when redistribing routes from the RIB into BGP/OSPF.\n- setting tags when redistribing routes from the RIB into BGP/OSPF.\n\nBGP also supports setting a tag via a table-map, when installing BGP\nroutes into the RIB.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nSigned-off-by: Piotr Chytla \u003cpch@packetconsulting.pl\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "fb214471c88616d67ece3734128ef04ed4a8ed86",
      "tree": "04894d9d96861039b8b0cb1677d58c23e206acb3",
      "parents": [
        "605aa331d814b0977dd8435168dca5b2b7928996"
      ],
      "author": {
        "name": "Piotr Chytła",
        "email": "pch@packetconsulting.pl",
        "time": "Tue Dec 01 13:47:06 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:49 2016 +0100"
      },
      "message": "zebra: add support for route tags\n\n[Forward ported by Cumulus]\n\nDocumentation\n-------------\nAll ipv4 and ipv6 static route commands now have a \"tag\" option\nwhich allows the user to set a tag between 1 and 65535.\n\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag ?\n  \u003c1-65535\u003e  Tag value\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag 40\nquagga(config)#\n\nquagga# show ip route 1.1.1.1/32\nRouting entry for 1.1.1.1/32\n Known via \"static\", distance 1, metric 0, tag 40, best\n * 10.1.1.1, via swp1\n\nquagga#\n\nThe route-map parser supports matching on tags and setting tags\n!\nroute-map MATCH_TAG_18 permit 10\n match tag 18\n!\n\n!\nroute-map SET_TAG_22 permit 10\n set tag 22\n!\n\nBGP and OSPF support:\n- matching on tags when redistribing routes from the RIB into BGP/OSPF.\n- setting tags when redistribing routes from the RIB into BGP/OSPF.\n\nBGP also supports setting a tag via a table-map, when installing BGP\nroutes into the RIB.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nSigned-off-by: Piotr Chytla \u003cpch@packetconsulting.pl\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "605aa331d814b0977dd8435168dca5b2b7928996",
      "tree": "c33e213e83b219b61e19aa3dc8edec34dae962c7",
      "parents": [
        "2b2e38c3169ae0221645e4dd9b40388660ce3f68"
      ],
      "author": {
        "name": "Piotr Chytła",
        "email": "pch@packetconsulting.pl",
        "time": "Tue Dec 01 10:03:54 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:49 2016 +0100"
      },
      "message": "bgpd, vtysh: Add support for route tags\n\n[Forward ported by Cumulus]\n\nDocumentation\n-------------\nAll ipv4 and ipv6 static route commands now have a \"tag\" option\nwhich allows the user to set a tag between 1 and 65535.\n\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag ?\n  \u003c1-65535\u003e  Tag value\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag 40\nquagga(config)#\n\nquagga# show ip route 1.1.1.1/32\nRouting entry for 1.1.1.1/32\n  Known via \"static\", distance 1, metric 0, tag 40, best\n  * 10.1.1.1, via swp1\n\nquagga#\n\nThe route-map parser supports matching on tags and setting tags\n!\nroute-map MATCH_TAG_18 permit 10\n match tag 18\n!\n\n!\nroute-map SET_TAG_22 permit 10\n set tag 22\n!\n\nBGP and OSPF support:\n- matching on tags when redistribing routes from the RIB into BGP/OSPF.\n- setting tags when redistribing routes from the RIB into BGP/OSPF.\n\nBGP also supports setting a tag via a table-map, when installing BGP\nroutes into the RIB.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nSigned-off-by: Piotr Chytla \u003cpch@packetconsulting.pl\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n\nEdits by: Paul Jakma \u003cpaul.jakma@hpe.com - conflicts on re-ordering with the\nrmap-event and table-map patches, those will now need to update the tags stuff.\n"
    },
    {
      "commit": "2b2e38c3169ae0221645e4dd9b40388660ce3f68",
      "tree": "4201eb0ecd250b8da03ec7c129ef80a77007ee4a",
      "parents": [
        "eefddcc78abcc91d1d88633a3c6d5a438fe58790"
      ],
      "author": {
        "name": "Piotr Chytła",
        "email": "pch@packetconsulting.pl",
        "time": "Tue Dec 01 10:10:41 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:49 2016 +0100"
      },
      "message": "ospfd, vtysh: Add support for Route tags\n\n[Forward ported by Cumulus]\n\nCredit\n------\nA huge amount of credit for this patch goes to Piotr Chytla for\ntheir \u0027route tags support\u0027 patch that was submitted to quagga-dev\nin June 2007.\n\nDocumentation\n-------------\nAll ipv4 and ipv6 static route commands now have a \"tag\" option\nwhich allows the user to set a tag between 1 and 65535.\n\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag ?\n \u003c1-65535\u003e  Tag value\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag 40\nquagga(config)#\n\nquagga# show ip route 1.1.1.1/32\nRouting entry for 1.1.1.1/32\n  Known via \"static\", distance 1, metric 0, tag 40, best\n  * 10.1.1.1, via swp1\n\nquagga#\n\nThe route-map parser supports matching on tags and setting tags\n!\nroute-map MATCH_TAG_18 permit 10\n match tag 18\n!\n\n!\nroute-map SET_TAG_22 permit 10\n set tag 22\n!\n\nBGP and OSPF support:\n- matching on tags when redistribing routes from the RIB into BGP/OSPF.\n- setting tags when redistribing routes from the RIB into BGP/OSPF.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nSigned-off-by: Piotr Chytla \u003cpch@packetconsulting.pl\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "eefddcc78abcc91d1d88633a3c6d5a438fe58790",
      "tree": "1f5faa31c5070770c55e3f2c52911121fa095efe",
      "parents": [
        "de24f82d0ea7eadd0db7d5c0d340a0579312237c"
      ],
      "author": {
        "name": "Piotr Chytła",
        "email": "pch@packetconsulting.pl",
        "time": "Tue Dec 01 09:48:02 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:49 2016 +0100"
      },
      "message": "bgpd, lib, ospfd, zebra: Add ability to read/write tag value\n\nModify zebra to pass the tag value to and from the\nvarious protocols.\n\n[forward ported by Cumulus]\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nSigned-off-by: Piotr Chytla \u003cpch@packetconsulting.pl\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nEdits: Paul Jakma \u003cpaul.jakma@hpe.com\u003e rebase conflicts in bgp_zebra.c\n"
    },
    {
      "commit": "de24f82d0ea7eadd0db7d5c0d340a0579312237c",
      "tree": "8538c0c863445588c7402672e1cb30596933f66a",
      "parents": [
        "147a812ed15e171d1db882ac96f0f15723bf8b8f"
      ],
      "author": {
        "name": "Piotr Chytła",
        "email": "pch@packetconsulting.pl",
        "time": "Thu Jun 28 00:09:28 2007 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:49 2016 +0100"
      },
      "message": "zebra: Add internal support for route tags\n\nAdd internal support for a route tag to be applied to routes.\nAt this point in time, tags are not being used.\n\n[forward ported by Cumulus]\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nSigned-off-by: Piotr Chytła \u003cpch@packetconsulting.pl\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nEdited-by: Paul Jakma \u003cpaul.jakma@hpe.com\u003e - rebase conflicts\n"
    },
    {
      "commit": "147a812ed15e171d1db882ac96f0f15723bf8b8f",
      "tree": "d394af3adcf89b7eae806693cba7ae5ee5eea7e7",
      "parents": [
        "768d9098a526841d22a8f0b740a919bd6eccee47"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu May 21 16:06:21 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:48 2016 +0100"
      },
      "message": "vtysh: service integrated-vtysh-config not being written to file\n\nThe vtysh commands:\nservice integrated-vtysh-config\nhostname XXXX\n\nwere not being written to the /etc/quagga/Quagga.conf file with a wr mem\nwhen service integrated-vtysh-config was issued.  This patch fixes this\nissue\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "768d9098a526841d22a8f0b740a919bd6eccee47",
      "tree": "adcc88e6c578b62f04933d8741a02245150ebbdb",
      "parents": [
        "d8c5f27777051b3ea32f8b5979ecd9bb7b9475b9"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Tue May 19 18:04:13 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:48 2016 +0100"
      },
      "message": "zebra: Suppress displaying default config as part of running config\n\nQuagga doesn\u0027t display default config as part of the running config, only\nwhat is different from the default. However, in the case of rtadv, every\nlink displays the default \"ipv6 nd suppress-ra\" as part of running config.\nThis patch fixes that.\n\nSigned-off-by: Dinesh Dutt \u003cddutt@cumulusnetworks.com\u003e\n"
    }
  ],
  "next": "d8c5f27777051b3ea32f8b5979ecd9bb7b9475b9"
}
