)]}'
{
  "log": [
    {
      "commit": "424cc3bd48da0f417c9056c5c2ade697a3386cd4",
      "tree": "1d0e9a71f6c27b64d435c276a100f046c30e2a8b",
      "parents": [
        "11b4f01355703d34099d4da145c7d92e32d98636"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Nov 23 16:55:36 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 18 08:45:29 2014 +0100"
      },
      "message": "ospf6d: fix interface_down() stopping hellos\n\ninterface_down() - which also handles some nonobvious cases like the\nlast linklocal address disappearing - was previously not cancelling the\nhello timer.  This had the effect of multiple such threads ending up\nscheduled after a quick down-up cycle.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "11b4f01355703d34099d4da145c7d92e32d98636",
      "tree": "e895a3794edbfe60c481954ed4ad79fcc2b661c3",
      "parents": [
        "b13c1d9299d6426f48f074545f3e403e5a9b8a61"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Mon Dec 09 16:48:55 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 18 08:45:29 2014 +0100"
      },
      "message": "ospf6d: clear lsa-\u003erefresh before clearing LSAs\n\nThis fixes a SEGV when we receive a higher-SeqNum copy of a LSA that we\noriginated ourselves, before a reboot of ospf6d.  We create a new\ncopy of the LSA to resync the SeqNum, but then half an hour later\nthe old refresh thread ends up trying to refresh the free()\u0027d old LSA.\n\nThe SEGV is triggered by this chain:\n  ospf6_lsdb_maxage_remover\n  -\u003e thread_execute(ospf6_lsa_refresh)\n     -\u003e old-\u003erefresh \u003d NULL\nWhich assumes that old-\u003erefresh is no longer scheduled to run, as it is\nbeing run right there.  But the thread_execute() doesn\u0027t know about\nold-\u003erefresh and therefore didn\u0027t remove it.\n\n(Found by ANVL OSPFV3-16.17)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "b13c1d9299d6426f48f074545f3e403e5a9b8a61",
      "tree": "b313288f60c8d76a16e4f9f1796e934c0c8fefc0",
      "parents": [
        "d9628728e0924ae13ef6e8f8a67a2c9802745184"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Dec 13 16:11:16 2012 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 18 08:45:20 2014 +0100"
      },
      "message": "ospf6d: handle missing link local address more gracefully\n\nospf6 can\u0027t run on an interface without a link local address.\nDon\u0027t start the state machine when an interface comes up without\nsuch an ip and bring it up later, when a usable link local\naddress is added.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "d9628728e0924ae13ef6e8f8a67a2c9802745184",
      "tree": "af4cee6c7018580655cb53a0900471128cc0a8bb",
      "parents": [
        "37531a7ec380554b18c004bcae9f5a070385d132"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Fri Mar 08 21:47:35 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 18 08:44:05 2014 +0100"
      },
      "message": "ospf6d: improve ordered shutdown\n\nImprove the _disable/_enable infrastructure so it gets into\na more usable shape and make \u0027no router ospf6\u0027 actually work.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "37531a7ec380554b18c004bcae9f5a070385d132",
      "tree": "fb1893fcf7be8f613a3cd0a82f0150af4a3974f7",
      "parents": [
        "1579a67f130ca34df9acefac14ebcdfdd8f6600a"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Dec 13 13:50:28 2012 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Nov 20 10:35:59 2013 +0100"
      },
      "message": "ospf6d: clear DR info on interface_down\n\nThis fixes an issue where ospf6d would send incorrect hellos and\nperform wrong DR election when an interface went down and up\nagain.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "1579a67f130ca34df9acefac14ebcdfdd8f6600a",
      "tree": "8c12770a8628fc786e08c08a125114f7d56b66d4",
      "parents": [
        "7d4aa1d57d54a57aae78e6b12cf4524e2c43a514"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Fri Mar 08 02:35:38 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Nov 20 10:35:59 2013 +0100"
      },
      "message": "ospf6d: set cmsg size correctly\n\nOn both Linux and FreeBSD, msg_controllen should be set to\nCMSG_LEN, not CMSG_SPACE. This avoids sending 4 bytes of\ntrailing garbage to the kernel.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "7d4aa1d57d54a57aae78e6b12cf4524e2c43a514",
      "tree": "f6c80b75e1f258a9bc3fa7a452807a5762ca7465",
      "parents": [
        "ba960d5ae43e49991ed70fbe9ffa2e4567437a31"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Dec 13 16:10:05 2012 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Nov 20 10:35:59 2013 +0100"
      },
      "message": "ospf6d: don\u0027t run DR election early on \"ipv6 ospf6 priority\"\n\nOn changing the router priority, DR election should only be run when it\nwas completed at least once before.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "ba960d5ae43e49991ed70fbe9ffa2e4567437a31",
      "tree": "8ffe0291edf209d936ce874c7a7104369f611e7e",
      "parents": [
        "a0edf6740e8203abec1ee3efa344a417c16fec7b"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Mon Aug 26 03:40:37 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Nov 20 10:35:59 2013 +0100"
      },
      "message": "ospf6d: fix integrated config\n\nWith integrated config, the line defining an interface to be p2p is defined\nbefore assigning the interface to an area. When during the interface\ntransition, there is an attempt to generate a router LSA, the process\ncrashes. This fix addresses that.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Pradosh Mohapatra \u003cpmohapat at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a0edf6740e8203abec1ee3efa344a417c16fec7b",
      "tree": "501efcc33069c129987ac1ec98dd0656ad67e278",
      "parents": [
        "3d35ca482babab4267570143b8327fc894df0ff8"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Mon Aug 26 03:40:23 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: add SPF logs, statistics, and display of SPF parameters\n\nSigned-off-by: Pradosh Mohapatra \u003cpmohapat at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\n[DL: adapted to rebase / readded randomly lost line]\n[DL: killed timeval_subtract]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "3d35ca482babab4267570143b8327fc894df0ff8",
      "tree": "594c2040b3746a16780d748f24f395688751dd4f",
      "parents": [
        "7cf997226e86d98839f1e7872ca98b023ffea98e"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Mon Aug 26 03:40:16 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: add \u0027log-adjacency-changes [detail]\u0027\n\nSimilar to OSPFv2, add support for \u0027log-adjacency-changes [detail]\u0027 to log\nchanges in adjacency state of ospfv3 neighbors.\n\nSigned-off-by: Pradosh Mohapatra \u003cpmohapat at cumulusnetworks.com\u003e\nReviewed-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nReviewed-by: Shrijeet Mukherjee \u003cshm at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "7cf997226e86d98839f1e7872ca98b023ffea98e",
      "tree": "4407f125907aa5ac7a524d7bf71b9e0028f4c6cb",
      "parents": [
        "01879114f73adaf1cd4c9f5e7ae1550b72ff9ca9"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sun Aug 25 03:03:39 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: don\u0027t send LSAck on an interface if we\u0027ve flooded the LSU out that i/f\n\nIf we flood an LSA back out the same interface we received it from, don\u0027t send\nan LSAck out that interface for that LSA. This is as per RFC 2328, section 13.5\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Pradosh Mohapatra \u003cpmohapat at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "01879114f73adaf1cd4c9f5e7ae1550b72ff9ca9",
      "tree": "95f60a636ad4e2ebb0c55f31301a897fb6559b24",
      "parents": [
        "e68a67672ccfabefadac36c66e88af997fb572b2"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sun Aug 25 03:03:31 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: handle Prefix and Router Options bits correctly\n\nEnsure that prefixes with the NU/LA bit set do not get added to the routing\ntable. Ensure that routers with the V6/R bit set do not get added as transit\nroutes.\n\nSigned-off-by: Dinesh Dutt \u003cddutt at cumulusnetworks.com\u003e\n[DL: adjust to rebase]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "e68a67672ccfabefadac36c66e88af997fb572b2",
      "tree": "7f5b3c1386121457cc5052fc2530018093d947ae",
      "parents": [
        "931b1b8c9a612665391ed43653c970fcb38bbbf0"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sun Aug 25 03:03:23 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: add LSA payload to show summary output\n\nUnlike OSPFv2, the LSID of an LSA isn\u0027t sufficient to know what the contents\nof the LSA are. Its useful for debugging and basic eyeball tests to see the\ncontents of the LSA in the simple tabular format of \"show ipv6 ospf6 database\".\nThis patch adds that output to the command. It replaces the existing fields of\n\"duration, Chksum and Length\" with a single field called Payload which is\ndependent on the LSA type. For Inter-Area Prefix, Intra-Area Prefix and\nAS-External LSAs, this will be the advertised prefix/prefix length, for Router\nLSAs, it is RtrID/IfID etc.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Pradosh Mohapatra \u003cpmohapat at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\n[DL: rebase fix, line disappeared in ospf6_abr_originate_summary_to_area]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "931b1b8c9a612665391ed43653c970fcb38bbbf0",
      "tree": "570f2aca4df8ef6a394925c5a1b7c9e772d3d1a1",
      "parents": [
        "7a10a359e9740710c1e39c8be0f761f506795480"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sun Aug 25 03:03:15 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: increment dbdesc seqnum on SeqNumberMismatch/BadLsReq event\n\nAs per RFC 2328, section 10.3, if the neighbor state machine reaches\nSeqNumberMismatch state when the NSM is in state Exchange or greater,\n\"router increments the DD sequence number in the neighbor data structure,\ndeclares itself master (sets the master/slave bit to master), and starts\nsending Database Description Packets, with the initialize (I), more (M)\nand master (MS) bits set.\".\n\nThe existing code doesn\u0027t increment the DD SeqNum. This patch fixes that.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "7a10a359e9740710c1e39c8be0f761f506795480",
      "tree": "acf3db650a76ef97da33b0703d97920ea3d8e53a",
      "parents": [
        "3b220289a4d0da4539d965ca71e9479d68c87b11"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sun Aug 25 03:03:07 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: don\u0027t change SeqNum on initial DbDesc message\n\nThe code was setting the DbDesc seqnum to the current seconds value of time if\nthis was the initial DbDesc. However, the same code was getting invoked if the\ninitial DbDesc was retransmitted. Caused ANVL test XX.XX to fail.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "3b220289a4d0da4539d965ca71e9479d68c87b11",
      "tree": "232f6c56c5c12cf292937f7b21b002ef63b8c7e3",
      "parents": [
        "f41b4a021659dd48d62b1a7aac4b28e3663dbdaa"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 08:00:44 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: handle seqnum wrapping\n\nSigned-off-by: Shrijeet Mukherjee \u003cshm at cumulusnetworks.com\u003e\nReviewed-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\n[DL: mechanical adjust to rebase]\n[DL: adjust to removal of timerwheel code]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f41b4a021659dd48d62b1a7aac4b28e3663dbdaa",
      "tree": "ec4595f0d79279eef4da07145a30d104604b0035",
      "parents": [
        "e7ad6b20d7a7c63ed7c640ab9f61c853e77508c5"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 08:00:37 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: add overload support\n\nOSPFv3: Support setting/clearing overload bit on router\n\nIt is sometimes necessary for a router to gracefully remove itself from\nthe SPF tree i.e. it cannot act as a transit router. It does this by\nsetting the overload bit in the router LSA. This patch adds support for\nenabling/disabling the overload bit.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Pradosh Mohapatra \u003cpmohapat at cumulusnetworks.com\u003e\n[DL: patch applied with fuzz]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "e7ad6b20d7a7c63ed7c640ab9f61c853e77508c5",
      "tree": "92454d3f9eca7c5f579c0c463f976e3e3b5873cc",
      "parents": [
        "b81e97a8a7f85ecc7489dc8a7c7b9d403d9c4bc6"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:55:57 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: fix linkdown handling\n\nEnsure OSPFv3 handles link down even correctly.\n\nOSPFv3 checks only the administrative status of a link instead of its\noperative status. This prevents it up from detecting a real link down\nevent and reacting appropriately. Only protocol timer timeouts make it\ndetect a link down eventually. This patch makes it look for the operative\nstatus of a link instead of admin status.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: James Li \u003cjli at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "b81e97a8a7f85ecc7489dc8a7c7b9d403d9c4bc6",
      "tree": "48e2c8492f01cc177a6691878cf4e5a329fe4d2d",
      "parents": [
        "17d003da963d6294e5ab95c690de285eccf0bac0"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:55:50 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: correct nexthop through directly connected networks\n\nThis is implementing this part of RFC 2328:\n\nThis is the \"first case\", see below,\n\n16.1.1. The next hop calculation\n\n...\nIf there is at least one intervening router in the current\nshortest path between the destination and the root, the\ndestination simply inherits the set of next hops from the\nparent. Otherwise, there are two cases. In the first case,\nthe parent vertex is the root (the calculating router\nitself). This means that the destination is either a\ndirectly connected network or directly connected router.\nThe outgoing interface in this case is simply the OSPF\ninterface connecting to the destination network/router.\n...\n\nThe current Quagga code always tries to inherit the nexthop from\na parent vertex, but does not cover the case that the destination\nis directly connected to the root vertex. This patch adds support\nfor that case.\n\nSigned-off-by: James Li \u003cjli at cumulusnetworks.com\u003e\nReviewed-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "17d003da963d6294e5ab95c690de285eccf0bac0",
      "tree": "3972c371b676459408d560f4a18dc16295b70c54",
      "parents": [
        "e39d05384d4563f04edf339bbd67a117dd18e533"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:55:43 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: don\u0027t suppress empty router LSA\n\nCurrently in OSPFv3 implementation, if all the interfaces are down/loopback\nor are without any full adjacencies, the router LSA is suppressed. So for\na router with only stub networks, no router LSA is generated. However,\nintra-prefix LSAs are generated for the stub networks and these intra-prefix\nLSAs will reference the router LSA. So the router LSA really should not be\nsuppressed. It needs to be generated to be the starting vertex for SPF\nw.r.t the stub networks.\n\nSigned-off-by: James Li \u003cjli at cumulusnetworks.com\u003e\nReviewed-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "e39d05384d4563f04edf339bbd67a117dd18e533",
      "tree": "5c1ea95d4fcd993014974c862c4b97c8064e7a5f",
      "parents": [
        "a765eb9383c53c68523a67b36cea92eadf6f3439"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:55:36 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: turn off expensive debugging\n\nOSPF6 has very expensive LSDB and route debug on by default. This needs to be\nturned off for scaled performance.\n\nSigned-off-by: James Li \u003cjli at cumulusnetworks.com\u003e\nReviewed-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003eSummary:\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a765eb9383c53c68523a67b36cea92eadf6f3439",
      "tree": "16fa0d6d9bb3ddda5b01d01f31c1eeffd02ded8a",
      "parents": [
        "eb82e9ee81792f86548d4937486b5dcbbd411a98"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:55:14 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: convert LSDB to use route_node, improve performance\n\nthe performance in the presence of a large number of LSAs. I also verified\nthat the performance improvements stayed in the presence of a large number\nof peers (I tested upto 128).\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003eSummary:\nReviewed-by: James Li \u003cjli at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "eb82e9ee81792f86548d4937486b5dcbbd411a98",
      "tree": "9c1f216017923cc40af71755506dc35c5c2c0fbc",
      "parents": [
        "c5926a92235874574b20e426a3752c1451a90ec7"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:55:07 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: fix neighbor state machine (faster lsdb sync, RFC compliance)\n\nThe OSPFv3 code doesn\u0027t do the following things right as part of an adjacency\nbringup:\n - Transmit DbDesc frames appropriately to ensure faster state transition to\n   Loading state\n - Transmit LsReq frames when switching to exchange state and on receipt of\n   an LS update in Loading state\n - Requesting LSAs multiple times in LsReq.\n\nIt currently uses retransmit timer expiry to send the LsReq and DbDesc frames\nwhich significantly slows down large lsdb syncs.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c5926a92235874574b20e426a3752c1451a90ec7",
      "tree": "c8b8b66eee832e3db5e5d315e966b168918ef57e",
      "parents": [
        "bf986da797e7d2a0aaae313fea626ba433581f03"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:55:00 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: add p2p interface support\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nSigned-off-by: Ayan Banerjee \u003cayabaner at gmail.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nReviewed-by: James Li \u003cjli at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "bf986da797e7d2a0aaae313fea626ba433581f03",
      "tree": "79e852020d1f9eb2be774d3050dcc1ea3a88e73b",
      "parents": [
        "8ae454e779d5620576990f4bf5da3a35f913cc4d"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:54:50 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: fix various bugs in installing and flooding LSAs\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Pradosh Mohapatra \u003cpmohapat at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "8ae454e779d5620576990f4bf5da3a35f913cc4d",
      "tree": "cbfb907e0aeef1d5b3076629c8e8d510bb326068",
      "parents": [
        "09df4574b95dbb5880eb2d3c3c3c900687a9a3ef"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:54:41 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: add more details to show ipv6 ospf6 data\n\nSpecifically, it displays the flags, lock and retransmission count fields.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: JR Rivers \u003cjrrivers at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "09df4574b95dbb5880eb2d3c3c3c900687a9a3ef",
      "tree": "b332c0a50379a5efea3ecb9e29931dcd03e0a0ab",
      "parents": [
        "ac58e143f7278d5faaad7a8672e48328b03cffa5"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:54:31 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: enable the commands to support detailed debugging of LSAs.\n\nThe code for the commands exists, but it hasn\u0027t been defined in the\ndefinition of the command itself. This patch fixes that.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "ac58e143f7278d5faaad7a8672e48328b03cffa5",
      "tree": "52ea2eeb0cf614f9fcdf72badfc705d88f623ee3",
      "parents": [
        "2449fcd64ae95d5fbfd95d93468fc57003def57d"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:54:24 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: remove older version of LSA from neigbor retx list before prematurely aging it.\n\nSee comment in code for very detailed issue and fix.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "2449fcd64ae95d5fbfd95d93468fc57003def57d",
      "tree": "8c152a482f2080ee425cd06381861d2bf69769d4",
      "parents": [
        "3810e06eebe14f75c66fb17a88574384573e95fa"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:54:17 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: reinvoke MaxAge remover thread if not all MaxAge LSAs were flushed.\n\nMaxAge LSAs are being flushed out only on an event, unlike OSPFv2 where they\u0027re flushed out\nperiodically. This causes certain LSAs to hang around forever, never getting flushed out.\nThis patch makes flushing out MaxAge LSAs periodic, retriggered after a certain period if\nnot all MaxAge LSAs were flushed out.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "3810e06eebe14f75c66fb17a88574384573e95fa",
      "tree": "0e7ba30d0b24d1ea874eb257b78fdeed2eaebf4c",
      "parents": [
        "8551e6dadce41fb87a61767af723cb25ae611a04"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:54:09 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:30 2013 -0800"
      },
      "message": "ospf6d: schedule SPF to run on events rather than directly on each event.\n\nOSPV3 SPF triggers on every SPF-able event instead of using timers the way\nOSPFv2 does. This patch makes SPF be triggered/throttled similar to OSPFv2.\nIt adds a command to quagga identical to the OSPFv2 equivalent to configure\nthese timers.\nSummary:\n\nSigned-off-by: Dinesh Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\n[DL: removed reference to oa-\u003ets_spf for rebase]\n[DL: killed timeval_subtract]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "8551e6dadce41fb87a61767af723cb25ae611a04",
      "tree": "cb0854c2e216989a0fa211d56d2bf6fd6948b2d6",
      "parents": [
        "a83a1e9c2f035d3152451dcfc97ab13b4ac427b9"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Tue Oct 22 17:42:18 2013 -0700"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Oct 22 18:01:31 2013 -0700"
      },
      "message": "ospf6d/ospfd: refactor some common defines\n\nRearranging common defs and structures for use betweeen OSPFv2 and\nOSPFv3.  Created a new file called libospf.h under lib directory to\nhold defines that are common between OSPFv2 and OSPFv3 code bases.\n\n[DL: split of defines refactor from timer refactor]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a83a1e9c2f035d3152451dcfc97ab13b4ac427b9",
      "tree": "fa8652ff314e4e6ac5a45192742140f2d4157d85",
      "parents": [
        "fed643f4093abc0ed5e796aab9047768f7036ed6"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Oct 22 11:35:48 2013 -0700"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Oct 22 11:35:48 2013 -0700"
      },
      "message": "build: fix tests/prng.h missing from dist\n\nbroken by fa713d9... \"zebra: rework recursive route resolution\", and I\nforgot to squash the fix into that.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "fed643f4093abc0ed5e796aab9047768f7036ed6",
      "tree": "ffa07bd17a939b386813f5b08c8f92f302d8c505",
      "parents": [
        "f3a1732eb3bb41c094ec558d2aeee2766878a91d"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Tue Oct 23 16:00:42 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Oct 22 10:38:35 2013 -0700"
      },
      "message": "zebra: make rib_dump() compatible with IPv6 RIB\n\n[DL: resolved conflicts in zebra_rib.c]\n[DL: fix usage with --disable-ipv6]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f3a1732eb3bb41c094ec558d2aeee2766878a91d",
      "tree": "9cc740a8d4b37bb5e1aa2c00ea1102a26d67809b",
      "parents": [
        "c3e6b595160cd3aa601ae7e1887e695710cde15d"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Fri Jul 05 15:35:41 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 18:04:40 2013 +0200"
      },
      "message": "zebra: apply route-maps for interface routes\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c3e6b595160cd3aa601ae7e1887e695710cde15d",
      "tree": "d7face57a402bd5e4bbdbbeee071df52a84a6fac",
      "parents": [
        "e8d3d2991f72613edb76dea244a8c8e4684873dd"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Fri Jul 05 15:35:40 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 18:04:40 2013 +0200"
      },
      "message": "zebra: fix recursive-routes via ifindex routes\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "e8d3d2991f72613edb76dea244a8c8e4684873dd",
      "tree": "d02f768800ebaac51439368ff3d851e63ed6359e",
      "parents": [
        "48a53dc71cb422e619859b79d5069e02fcd867d0"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Fri Jul 05 15:35:39 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 18:04:40 2013 +0200"
      },
      "message": "zebra: implement NEXTHOP_FLAG_ONLINK\n\nOn Linux, the kernel will only allow for a route to be installed when\nits gateway is directly attached according the kernel fib.\n\nThere are cases when this restriction by the kernel is too strong, in\nthose cases, we deploy the RTNH_F_ONLINK netlink flag.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "48a53dc71cb422e619859b79d5069e02fcd867d0",
      "tree": "ff5e8148efb422e0dd074657951f5dd5a1c0150b",
      "parents": [
        "fa713d9ee5ed30dedd0a290be9aaff780a2896be"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Fri Jul 05 15:35:38 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 18:04:40 2013 +0200"
      },
      "message": "zebra: handle blackholes encountered in recursive resolution\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "fa713d9ee5ed30dedd0a290be9aaff780a2896be",
      "tree": "1d263cce70c341f3f2a73a47d4b1cd5a38b09129",
      "parents": [
        "bfac8dcd2fe7ed099a679b5c8245599c6d0312ed"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Fri Jul 05 15:35:37 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 18:04:40 2013 +0200"
      },
      "message": "zebra: rework recursive route resolution\n\nChange the datastructure for recursive routes. This brings the following\nbenefits:\n\nBy using struct nexthop also to store nexthops obtained by recursive\nresolution, we can get rid of quite a bit of code duplication in the fib\nmanagement. (rt_netlink, rt_socket, ...)\n\nWith the new datastructure we can make use of all available paths when\nrecursive routes are resolved with multipath routes.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "bfac8dcd2fe7ed099a679b5c8245599c6d0312ed",
      "tree": "7674e567b6824aac9dfe78f0e149871b4d49a44c",
      "parents": [
        "02b4805f3914ef6ba0242c6f4dd1b6759ef97bf2"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Jan 24 14:04:50 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 17:51:16 2013 +0200"
      },
      "message": "zebra: improve interface shutdown behaviour\n\nLinux removes IPv6 addresses when the interface is set down. Those\naddresses need to be readded when the interface is set up again.\n\nAlso, an interface should not be reactivated from shutdown by configuring\nan ip address.\n\nFinally, remove the three-state logic for the shutdown setting as its\nsole current use may be mild confusion.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "02b4805f3914ef6ba0242c6f4dd1b6759ef97bf2",
      "tree": "f5194e173f172e7c75cf869c7b7621e09e5e3557",
      "parents": [
        "f7f740fe58fb838fc87e82dc7e1e2d4e5ccf085c"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Jan 24 14:04:49 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 17:51:16 2013 +0200"
      },
      "message": "zebra: don\u0027t change connected state from zebra/interface.c\n\nTry to avoid changing connected state from zebra/interface.c as this\nmeans making assumptions about kernel behaviour which may be or may\nbecome wrong. This state should rather be updated by events from the\nkernel.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f7f740fe58fb838fc87e82dc7e1e2d4e5ccf085c",
      "tree": "5f3d9c866aaf7f8f23aaa5956eb7323d49ef472f",
      "parents": [
        "c7df92de2dc91d0a934cf892e543728cb1a10849"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Jan 24 14:04:48 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 17:51:16 2013 +0200"
      },
      "message": "zebra: add ZEBRA_IFC_QUEUED to keep track of kernel state\n\nAs there are timeframes when we don\u0027t get a notification from the kernel\nabout new addresses. (e.g. while Linux performs IPv6 DAD), we need to\nhave some information whether an address has been sent to the kernel or\nnot.\n\nOne case where this is relevant would be a user adding an IPv6 address,\nbut deleting it before DAD has been complete. With the next patch which\nremoves some (ill assuming) synchronous parts in address setup,\nipv6_address_uninstall would not know whether or not it has to actually\ndelete the prefix from the kernel. Resolving these windows where we lack\ninformation is what the flag ZEBRA_IFC_QUEUED is intended for.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c7df92de2dc91d0a934cf892e543728cb1a10849",
      "tree": "81bbf6ded1b86ccd95cc76d17f9ff3cec55ad9fb",
      "parents": [
        "d7f5dad6d1ab3078fcabc79e15a88873940c074d"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Jan 24 14:04:47 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 17:51:16 2013 +0200"
      },
      "message": "zebra: warn if advertising connected with _REAL unset\n\nThe implementation in zebra and the zclient protocol allow to communicate\naddresses to clients which are not yet in the kernel.\n\nThis is usually not done and most clients seem to expect an address to be\nconfigured in the kernel when they receive it. Therefore, it seems\nreasonable to issue a warning when advertising an address to the clients\nthat is not yet in the kernel.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "d7f5dad6d1ab3078fcabc79e15a88873940c074d",
      "tree": "54906529478fcfbd02168a3958430ddf4c4a5139",
      "parents": [
        "676e1a0142ec8b181d4d7ea1038f461bc67c1ee1"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Jan 24 14:04:46 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 17:51:16 2013 +0200"
      },
      "message": "zebra: consolidate connected_implicit_withdraw\n\nconnected_implicit_withdraw is used at two places and followed by exactly\nthe same code. Move that code into connected_implicit_withdraw and give\nthat function a more descriptive name.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "676e1a0142ec8b181d4d7ea1038f461bc67c1ee1",
      "tree": "69b6bd044d956a591a24bed2245cc48ef2a5c06b",
      "parents": [
        "9db047fcb1bedcf1a5a1962e49aa70f48f969b96"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Jan 24 14:04:45 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 17:51:16 2013 +0200"
      },
      "message": "zebra: clear ZEBRA_IFC_CONFIGURED on \"no ipv6 addr\"\n\nTo match the semantics of IPv4, the ZEBRA_IFC_CONFIGURED flag\nshould be cleared when an IPv6 connected is uninstalled via\nvty.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "9db047fcb1bedcf1a5a1962e49aa70f48f969b96",
      "tree": "d09388f975d4201dc905cb00522e5d56b09a1cfe",
      "parents": [
        "599da95527ec8e09cd3d890dc3addc6f2e791a0c"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Jan 24 14:04:44 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 17:51:16 2013 +0200"
      },
      "message": "zebra: make if_subnet_delete a bit more strict\n\nEnhance if_subnet_delete so it will complain about improper use.\nAlso, fix one occurence of improper use where it was called for\nIPv6 as well.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "599da95527ec8e09cd3d890dc3addc6f2e791a0c",
      "tree": "8d1ba2663b01be4c2be0a05aceef927181f64eb8",
      "parents": [
        "23cd8fb7133befdb84b3a918f7b2f6147161ac6e"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Jan 24 14:04:43 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Sep 19 17:51:00 2013 +0200"
      },
      "message": "zebra: process information about new addresses (BZ#486)\n\nBecause of a change of semantics in the Linux kernel, information\nabout changes made by zebra itself was not considered for updates.\nThis change should fix this by accounting for the new semantics.\n\nIt is based on a patch by lich posted to the bugzilla #486\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "23cd8fb7133befdb84b3a918f7b2f6147161ac6e",
      "tree": "b8ef335dcbc2051a5017aa50bc4b759882b638d2",
      "parents": [
        "a12afd5e8e57c95505d4d0166af234c7f19e9fe1"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Fri Aug 02 07:27:53 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Aug 06 12:41:46 2013 +0200"
      },
      "message": "ospfd: protect vs. VU#229804 (malformed Router-LSA)\n\nVU#229804 reports that, by injecting Router LSAs with the Advertising\nRouter ID different from the Link State ID, OSPF implementations can be\ntricked into retaining and using invalid information.\n\nQuagga is not vulnerable to this because it looks up Router LSAs by\n(Router-ID, LS-ID) pair.  The relevant code is in ospf_lsa.c l.3140.\nNote the double \"id\" parameter at the end.\n\nStill, we can provide an improvement here by discarding such malformed\nLSAs and providing a warning to the administrator.  While we cannot\nprevent such malformed LSAs from entering the OSPF domain, we can\ncertainly try to limit their distribution.\n\ncf. http://www.kb.cert.org/vuls/id/229804 for the vulnerability report.\nThis issue is a specification issue in the OSPF protocol that was\ndiscovered by Dr. Gabi Nakibly.\n\nReported-by: CERT Coordination Center \u003ccert@cert.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a12afd5e8e57c95505d4d0166af234c7f19e9fe1",
      "tree": "62f3d6a2d92ce06d857fd90240a8a8806ff38951",
      "parents": [
        "bb97e4622ed6f48e2b8e07f1f94edd03162223a1"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Sat May 25 14:01:36 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Aug 06 12:41:46 2013 +0200"
      },
      "message": "bgpd, zebra: support NEXTHOP_IPV4_IFINDEX in bgp import check\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "bb97e4622ed6f48e2b8e07f1f94edd03162223a1",
      "tree": "5729ccb02f1de89d4d9bbe5b537de45803d1cf55",
      "parents": [
        "5b9f51828db732d56053500b1d257797f7f3401b"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Sat May 25 14:01:35 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Aug 06 12:41:46 2013 +0200"
      },
      "message": "bgpd, zebra: Support NEXTHOP_IPV4_IFINDEX in nexthop_lookup api\n\nSince commit ba281d3d040, ospfd uses NEXTHOP_IPV4_IFINDEX\nroutes. The API between zebra and bgpd which is used to query\nnexthops for recursive routes did not support this nexthop\ntype and therefore, ospf changes (or any other IGP changes\nwhich use NEXTHOP_IPV4_IFINDEX) would never trigger any\nrecursive route update.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "5b9f51828db732d56053500b1d257797f7f3401b",
      "tree": "d5f43ef09d6a8df6a2eef852bd61020c27395125",
      "parents": [
        "a0f6ce5b41dcfa059074d72c8fc61896d3e996a9"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Sat May 25 14:01:34 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Aug 06 12:41:46 2013 +0200"
      },
      "message": "zebra: improve display of NEXTHOP_IPV4_IFINDEX in show ip route\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a0f6ce5b41dcfa059074d72c8fc61896d3e996a9",
      "tree": "cfaa7586f2d5f434a851088dc7f29a546c74d26c",
      "parents": [
        "4ff3bcad8e81b643f3247317a3949d7867b36f75"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Apr 11 08:24:30 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jul 31 18:49:50 2013 +0200"
      },
      "message": "bgpd: honor PEER_FLAG_DISABLE_CONNECTED_CHECK on bgp_scan\n\nWhen neighbor disable-connected-check was used, bgpd would accept routes\nwith unconnected nexthop as indended, however those routes would be\ninvalidated on the next bgp_scan run as that function did not know about\ndisable-connected-check.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "4ff3bcad8e81b643f3247317a3949d7867b36f75",
      "tree": "4348c8b1db5f0c2af4a99eb560c269542223a8ff",
      "parents": [
        "a52070899afed55ae44ed6a140ac090cdf07d141"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Wed Mar 20 10:50:07 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jul 31 17:58:05 2013 +0200"
      },
      "message": "isisd, ospf6d: use bug-report information from autoconf\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a52070899afed55ae44ed6a140ac090cdf07d141",
      "tree": "7779e6c597ccc4446f6aa239628263c01f2e8a96",
      "parents": [
        "67e7a2127c05a8c7dfddd7ffc6378edf6b666d55"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Apr 11 08:24:29 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jul 31 17:58:05 2013 +0200"
      },
      "message": "zebra: don\u0027t printf to stdout on ZEBRA_IPV6_NEXTHOP_LOOKUP\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "67e7a2127c05a8c7dfddd7ffc6378edf6b666d55",
      "tree": "c2fa4ed97da789f0948736bd34281c0d6b252ee4",
      "parents": [
        "8ff202e2d3fa7ebbd6728fdd230f3ad1a20578cd"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Mon Mar 04 09:23:30 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jul 31 17:58:05 2013 +0200"
      },
      "message": "vtysh: don\u0027t append superflous spaces (BZ#750)\n\nrl_completion_append_character is reset to space every time the completion\nfunction is entered. So we would have to set it to \u0027\\0\u0027 every time\nnew_completion() is called. We can make this conditional and avoid using\nrl_pending_input.\n\nThis code path is most relevant when there are multiple completion\nmatches with the same prefix, e.g. in router bgp context: \"neighbor 1.2.3.4\npa\"\u003cssive|ssword\u003e would have been completed to \"neighbor 1.2.3.4 pass \"\ninstead of \"neighbor 1.2.3.4 pass\".\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "8ff202e2d3fa7ebbd6728fdd230f3ad1a20578cd",
      "tree": "6f8ffd3a083bee4c8c8fa2b4e2eb5981b4af1cbe",
      "parents": [
        "9e47abd862f71847a85f330435c7b3a9b1f76099"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jul 31 14:39:41 2013 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jul 31 14:44:24 2013 +0200"
      },
      "message": "bgpd: write NOTIFY non-blockingly\n\nswitching the socket to blocking may well block the entire bgpd process\nfor some time if our peer is overloaded (which may well be the original\nreason for the NOTIFY)\n\nThe error handling is slightly different from the previous ML discussion\non this;  buffer exhaustion isn\u0027t technically a fatal TCP error, and we\nshould probably proceed with FSM actions according to a sent NOTIFY\n(adjusting timers) even if we didn\u0027t manage to get the NOTIFY onto the\nwire.\n\nAcked-by: Leonid Rosenboim \u003clrosenbo@wrs.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "9e47abd862f71847a85f330435c7b3a9b1f76099",
      "tree": "375f9e63d4a1b206addb615a906f2f5608823612",
      "parents": [
        "397b5bded5654a31b4bd3b904f091fd3859aecf7"
      ],
      "author": {
        "name": "Rakesh Garimella",
        "email": "rakesh.garimella@sophos.com",
        "time": "Mon Mar 11 12:38:31 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Jul 30 20:27:50 2013 +0200"
      },
      "message": "bgpd: prevent double address delete on shutdown\n\nbgp_interface_down() and bgp_exit() both proceed to delete the address\nfrom bgpd\u0027s interface representation, so the second call gets a NULL\nresult from the hash lookup and subsequently crashes.\n\nSigned-off-by: Rakesh Garimella \u003crakesh.garimella@sophos.com\u003e\n[reformatted]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "397b5bded5654a31b4bd3b904f091fd3859aecf7",
      "tree": "5b2a0f99bfa8dd6b774c1149948bc7a5aec3d7d5",
      "parents": [
        "c423d413e464913ee88c1ee700e2c4037e6bdb24"
      ],
      "author": {
        "name": "Leonid Rosenboim",
        "email": "lrosenbo@wrs.com",
        "time": "Tue Jul 30 20:14:25 2013 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Jul 30 20:20:07 2013 +0200"
      },
      "message": "bgpd: stricter packet handling in OpenSent\n\nKeepalives and updates are not expected in OpenSent, prior to receiving\nthe peer\u0027s open message.  Terminate the session with the proper\nnotification.\n\nFrom: Leonid Rosenboim \u003clrosenbo@wrs.com\u003e\n[split off FSM changes, some reordering \u0026 cleanup.  read handling needs\n to be separately addressed]\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "c423d413e464913ee88c1ee700e2c4037e6bdb24",
      "tree": "9cd9cf277703b89736a888a2bbb5455220789046",
      "parents": [
        "c51443f4aa6b7f0b0d6ad5409ad7d4b215092443"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Jul 30 15:36:26 2013 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Tue Jul 30 18:14:13 2013 +0200"
      },
      "message": "lib: unconditionally include stddef.h\n\nI\u0027ve used offsetof() in the previous commit to paper over the security\nproblems in ospf_api.c.  This blows the build on FreeBSD 7.0, missing\noffsetof().  Let\u0027s add that to zebra\u0027s generally used includes.\n\nstddef.h (and offsetof) is defined in C89 section 4.1.5 (and not\ndeprecated/removed by any later standard).  If this causes problems, the\nbug report should go against the host OS/compiler...\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c51443f4aa6b7f0b0d6ad5409ad7d4b215092443",
      "tree": "effbe8695f7bfd0ed5261b08d5beddb66cceed64",
      "parents": [
        "78116ab6e1524815910658898620776ae5fd4d18"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Mon Jul 08 23:05:28 2013 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sun Jul 28 16:13:10 2013 +0200"
      },
      "message": "ospfd: CVE-2013-2236, stack overrun in apiserver\n\nthe OSPF API-server (exporting the LSDB and allowing announcement of\nOpaque-LSAs) writes past the end of fixed on-stack buffers.  This leads\nto an exploitable stack overflow.\n\nFor this condition to occur, the following two conditions must be true:\n- Quagga is configured with --enable-opaque-lsa\n- ospfd is started with the \"-a\" command line option\n\nIf either of these does not hold, the relevant code is not executed and\nthe issue does not get triggered.\n\nSince the issue occurs on receiving large LSAs (larger than 1488 bytes),\nit is possible for this to happen during normal operation of a network.\nIn particular, if there is an OSPF router with a large number of\ninterfaces, the Router-LSA of that router may exceed 1488 bytes and\ntrigger this, leading to an ospfd crash.\n\nFor an attacker to exploit this, s/he must be able to inject valid LSAs\ninto the OSPF domain.  Any best-practice protection measure (using\ncrypto authentication, restricting OSPF to internal interfaces, packet\nfiltering protocol 89, etc.) will prevent exploitation.  On top of that,\nremote (not on an OSPF-speaking network segment) attackers will have\ndifficulties bringing up the adjacency needed to inject a LSA.\n\nThis patch only performs minimal changes to remove the possibility of a\nstack overrun.  The OSPF API in general is quite ugly and needs a\nrewrite.\n\nReported-by: Ricky Charlet \u003cricky.charlet@hp.com\u003e\nCc: Florian Weimer \u003cfweimer@redhat.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "78116ab6e1524815910658898620776ae5fd4d18",
      "tree": "4731474979ed2d232d0d17d7bcaeb80e2e124a72",
      "parents": [
        "d77102025a30eef274e8d343bfec75f87899a417"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Mon Jul 15 10:15:49 2013 -0400"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Mon Jul 15 10:17:06 2013 -0400"
      },
      "message": "doc: Modernize INSTALL.quagga.txt.\n\nNote that list of prereq versions is out of date.\nAdd DejaGnu for testing.\nChange references to CVS to git.\n\nSigned-off-by: Greg Troxel \u003cgdt@ir.bbn.com\u003e\n"
    },
    {
      "commit": "d77102025a30eef274e8d343bfec75f87899a417",
      "tree": "183d4001ebbee78399876e85ba2e6bc0d8ce6be3",
      "parents": [
        "1bf0ca9a07358ff13b1390f4462669e9ea4915dc"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Fri Jul 05 18:30:57 2013 +0200"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Mon Jul 15 08:50:38 2013 -0400"
      },
      "message": "tests: don\u0027t build tests unless make check is run\n\nUse check_PROGRAMS instead of noinst_PROGRAMS in tests/Makefile.am\nto build the tests only when make check is actually run.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "1bf0ca9a07358ff13b1390f4462669e9ea4915dc",
      "tree": "686046d5c7170274aaca7b34faa7a9315a670a2a",
      "parents": [
        "4c14b7f684510592f2eb46fd84859d8bca57def9"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Fri Jul 05 18:30:56 2013 +0200"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Tue Jul 09 12:26:46 2013 -0400"
      },
      "message": "tests: fix Makefile.am so it works with BSD make\n\nThe export statement is specific to GNU make and breaks the build\nwith BSD make. I couldn\u0027t observe any difference in behaviour\nbetween having the export present and absent, therefore, just remove it.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "4c14b7f684510592f2eb46fd84859d8bca57def9",
      "tree": "f42890045f6d1cd37cdd61106b6524e6c476f445",
      "parents": [
        "4de8bf001189d40e086764fd804e59657d2e21e6"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Wed Feb 20 10:00:54 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Sat Apr 20 06:14:27 2013 +0200"
      },
      "message": "ospfd: fix flooding procedure\n\nAn ospf router should accept a new maxage LSA into its lsdb if it has any\nneighbors in state Exchange or Loading. ospfd would however only account\nfor neighbors on the same interface which does not seem to be a valid\noptimization.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Joachim Nilsson \u003ctroglobit@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "4de8bf001189d40e086764fd804e59657d2e21e6",
      "tree": "367c46fff12691e2622abc1d23ea0f95fdb97504",
      "parents": [
        "77ef01392f82c27a9892840c61a5e7391fd82415"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Wed Feb 20 10:00:52 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Sat Apr 20 06:12:13 2013 +0200"
      },
      "message": "ospfd: make ospf_maxage_lsa_remover actually yield\n\nospf_maxage_lsa_remover whould check whether to yield,\nbut run on anyway.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: Joachim Nilsson \u003ctroglobit@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@diac24.net\u003e\n"
    },
    {
      "commit": "77ef01392f82c27a9892840c61a5e7391fd82415",
      "tree": "d2ec3e889e4e6e421ac099006689d8ad796ae456",
      "parents": [
        "c69905b673812ce6ec2a12960727a27b9b8d6426"
      ],
      "author": {
        "name": "Dinesh G Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Fri Apr 12 01:37:15 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Tue Apr 16 11:56:11 2013 +0200"
      },
      "message": "doc: update TODO for ospf6d work \u0026 bgp multipath\n\nThis is work in progress at Cumulus Networks.\n"
    },
    {
      "commit": "c69905b673812ce6ec2a12960727a27b9b8d6426",
      "tree": "2b7608b8d16bedfafbf734d5a0e8ff26646107f1",
      "parents": [
        "5bb7e4d12b3a3015208fad5ee0f3c055b704c8c4"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Jan 24 01:39:14 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Sun Apr 14 16:01:19 2013 +0200"
      },
      "message": "tests: DejaGNU libzebra\n\nWrap the few libzebra test programs we have up for DejaGNU.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "5bb7e4d12b3a3015208fad5ee0f3c055b704c8c4",
      "tree": "715ef4c4c267687d86e0c8fb7a494c31038c32bd",
      "parents": [
        "f281ab9752393fcc7cbb54c50edb66f25c2a31fb"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Feb 26 17:53:30 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Sun Apr 14 16:01:11 2013 +0200"
      },
      "message": "tests: DejaGNU bgpd\n\nthis just wraps the existing test programs in expect wrappers that make\ntheir results usable to DejaGNU.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f281ab9752393fcc7cbb54c50edb66f25c2a31fb",
      "tree": "53be958c127d21c6bc0e2e2abd02f33a3fde16c2",
      "parents": [
        "f2b53dac4c72811c06779c596c6162b994eb427a"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Feb 26 16:21:20 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Sun Apr 14 16:01:05 2013 +0200"
      },
      "message": "tests: add DejaGNU framework\n\nDejaGNU seems to be the \u0027standard\u0027 GNU test framework (which by itself\ndoesn\u0027t say much), but it seems relatively usable and the \"remote\nsystem\" capabilities might come in handy for virtualisation-based tests\nfor kernel interactions or something.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f2b53dac4c72811c06779c596c6162b994eb427a",
      "tree": "9402b6fc1cf366121ba9f3bc623344284fac4196",
      "parents": [
        "677bcbbf153fe73e57cb44f668977cbd26661fd4"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Wed Mar 20 15:28:46 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 09 22:38:04 2013 +0200"
      },
      "message": "ospfd: restore nexthop IP for p2p interfaces\n\ncommit c81ee5c... \"ospfd: Optimize and improve SPF nexthop calculation\"\nsubtly changed semantics of routes calculated over pointopoint links by\nremoving the nexthop IP address and instead using an ifindex route.\n\nThis breaks calculation of AS-Ext routes with a forwarding address since\nin ospf_ase_complete_direct_routes() this will be hit:\n    if (op-\u003enexthop.s_addr \u003d\u003d 0)\n      op-\u003enexthop.s_addr \u003d nexthop.s_addr;\nthus turning the route unusable by having an invalid nexthop.\n\nFix by restoring the nexthop IP on routes over PtP links.  This also\nallows running multi-access (Ethernet) interfaces in PtP mode again.\n\nThis bug is a regression against 0.99.21 and only present in 0.99.22.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\n[patch description and code comments rewritten]\nAcked-by: Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\nAcked-by: James Li \u003cjli@cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "677bcbbf153fe73e57cb44f668977cbd26661fd4",
      "tree": "545636b73b23f02c3ec13261c71ec3058cf089b7",
      "parents": [
        "b68da446e977f8069fb72bce73402e2234ffc1d9"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Wed Feb 27 13:47:23 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 09 22:35:29 2013 +0200"
      },
      "message": "lib/vty: register vtysh socket in server socket vector (BZ#754)\n\nRegister the vtysh socket in Vvty_serv_thread so it will be\ncorrectly closed on vty_reset instead of being leaked.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "b68da446e977f8069fb72bce73402e2234ffc1d9",
      "tree": "6c310ad8fdccf588fcc2ad8b6f03a4602d1b2a13",
      "parents": [
        "8df55970b64984e5071afd510caad5e778569bc1"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Feb 28 22:17:00 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 09 22:33:19 2013 +0200"
      },
      "message": "ripd: correctly redistribute ifindex routes (BZ#664)\n\nripd had a check to restrict metric 0 to only directly connected routes.\nThis check was implemented by checking against Connected as route type.\nThis is, however, incorrect -- all routes that directly use an interface\nwithout a nexthop should be treated as directly connected and passed off\nwith metric 0.\n\nripngd does not posess such a check and was not touched.\n\nReported-by: Sean Fulton \u003csean@gcnpublishing.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "8df55970b64984e5071afd510caad5e778569bc1",
      "tree": "9aedcd7fa1c9b8ced8a140aa2cf7292c9d48d879",
      "parents": [
        "58952492d2eedd4b7974274a578a1fa9707125bb"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 01 12:03:58 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 09 17:07:07 2013 +0200"
      },
      "message": "build: reference libcap from libzebra (BZ#393,626)\n\nWhile the actual build failures have been fixed independently by\nd1d3ac9 \"build: reorder libraries to address linker error\", libzebra\nstill does not reference libcap.  This will lead to more build failures\nif someone else tries to use libzebra and doesn\u0027t add libcap.\n\nLet\u0027s just add libcap here and be done with it.\n\nI\u0027ve not added libcap to the _DEPENDENCIES variable above since libcap\nis a system library.  Actually, the whole _DEPENDENCIES thing is rather\nfishy; automake automatically sets _DEPENDENCIES from _LIBADD.  For the\nsake of not breaking stuff that works (especially since most autotools\nstuff is arcane magic), I\u0027m leaving it alone...\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "58952492d2eedd4b7974274a578a1fa9707125bb",
      "tree": "ef09366f20a103188a07bc9ed753bec723345967",
      "parents": [
        "c095185c26f72bff14238ca1209ef6b2d7a8b935"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Wed Feb 20 10:00:53 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 09 17:06:38 2013 +0200"
      },
      "message": "ospfd: fix LSA initialization for build without opaque LSA\n\nIf configured without opaque LSA support, the old code would incorrectly\nassociate type 5 LSAs with an area.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c095185c26f72bff14238ca1209ef6b2d7a8b935",
      "tree": "b6d9fa2ef2a225ff2c85d3d74dc1c94e327eeaab",
      "parents": [
        "4a014580ff85428aa41b28503554b2ce982805be"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 23 22:17:21 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 09 17:05:37 2013 +0200"
      },
      "message": "tests: make --disable-bgpd kill bgpd tests too\n\nbgpd tests don\u0027t compile or run with --disable-bgpd, let\u0027s catch this in\nthe Makefile.\n\nReported-by: Joachim Nilsson \u003ctroglobit@gmail.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "4a014580ff85428aa41b28503554b2ce982805be",
      "tree": "b66414d21e1a19ab65b34682b2027de349f5d291",
      "parents": [
        "b58c90807c9d0bfa9601704c7490a16070906004"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 27 11:24:24 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 09 17:05:08 2013 +0200"
      },
      "message": "build: fix minimal mixup in gitinfo suffix\n\nthe original version of this had issues with tagless repositories; to\nfix that I removed the \"-g\" part from one of the regexes.  I then failed\nto add those 2 characters back, leading to version numbers like\n\"0.99.220123456\" instead of \"0.99.22-ga123456\".  Let\u0027s put the \"-g\"\nback...\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "b58c90807c9d0bfa9601704c7490a16070906004",
      "tree": "b984d7577d72e5af08cba391c5a2446ec02bac8c",
      "parents": [
        "24c6bb86f4d21c74149bc0a7e50f9b95da0b6fd3"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Fri Mar 22 08:54:44 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 09 17:04:25 2013 +0200"
      },
      "message": "doc: fix makeinfo errors and one warning\n\ncommit 4afa50b added few lines that are syntactically incorrect\nwith leading plus sign.\n\nCc: Denis Ovsienko \u003cinfrastation@yandex.ru\u003e\nSigned-off-by: Timo Teräs \u003ctimo.teras@iki.fi\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "24c6bb86f4d21c74149bc0a7e50f9b95da0b6fd3",
      "tree": "7776b6a7bb4b8ea60a4d3fe17cc4b0acbf76bffd",
      "parents": [
        "3d1e5791c53bf67ebd8ce45322779856974c687f"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 29 19:40:39 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 29 19:40:39 2013 +0100"
      },
      "message": "doc: add OSPFv3 homenet to TODO\n\nThe homenet OSPFv3 extensions are not only relevant TODO items, but also\nsuitable for GSoC students.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "3d1e5791c53bf67ebd8ce45322779856974c687f",
      "tree": "fe041bdbeaaa793b6a9cfd578ead99c0ff08bf67",
      "parents": [
        "f05a5595e6b4805bc1a6bd86fe7076c5ffbb7f00"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 29 19:31:55 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 29 19:33:25 2013 +0100"
      },
      "message": "doc: update TODO\n\nthe TODO was last touched in 2006.  This is a first pass at cleaning it\nup, motivated primarily by the need for an up-to-date idea list for the\nGoogle Summer of Code 2013.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f05a5595e6b4805bc1a6bd86fe7076c5ffbb7f00",
      "tree": "ce7f828822bd61f5c312056eb40949173f5f2e72",
      "parents": [
        "97c84db00c01b808337bedf69f696a1517e3d8c0"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Sun Mar 03 11:38:17 2013 -0500"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Sun Mar 03 11:38:17 2013 -0500"
      },
      "message": "build: Update supported versions.\n\nINSTALL.quagga.tex:\n  Given the statement that it\u0027s viewed as a bug if quagga doesn\u0027t\n  build on OS versions on the list, prune the list to the set for\n  which there would be near-universal agreement that it\u0027s a bug.\n\n  Clarify that the response to a system on the list not building might\n  be dropping it from the list. (Time marches on, and these lists are\n  not necessarily maintained.  As an example, the comment saying\n  FreeBSD4 support was iffy is now 6 years old.)\n\n  Delete old discussion of ancient texinfo.\n\n  Delete discussion of NetBSD versions before 4 (as no longer relevant).\n"
    },
    {
      "commit": "97c84db00c01b808337bedf69f696a1517e3d8c0",
      "tree": "1af03fc32c0fc938c148ebdf3ad1eb812e254efc",
      "parents": [
        "90645f5598ca8b25cd2692f2ac0d2778a3fd2755"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Fri Jan 11 18:25:26 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sun Feb 24 20:48:16 2013 +0100"
      },
      "message": "hash: dynamically grow hash table\n\nDynamically grow the hash table index if the chains get too long.\nIf expansion doesn\u0027t help keep chain length short, then stop expanding,\nto avoid bad behavior if there is a poor hash function.\nNot a new idea, based on concepts in uthash.\n\nDepends on my previous patch to restrict hash to power of 2.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\n[profiling results: sum of cycles spent in hash_get/jhash with RIPE RIS\n test data (single simple BGP peer) improved to 69% of previously spent]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "90645f5598ca8b25cd2692f2ac0d2778a3fd2755",
      "tree": "2b5e67b020eb3f7a2fd9df4faf2f0914e0cbf0cf",
      "parents": [
        "44a86a0278c1678fd4b8dfa56c4f5f2feb6df3ad"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Fri Jan 04 22:29:21 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sun Feb 24 20:42:40 2013 +0100"
      },
      "message": "hash: force size to be a power of 2\n\nBy forcing the hash table size to be a power of 2, a potentially\nexpensive divide can be replaced by a mask operation. Almost all\nusage of the hash table was using default size of 1024. Only places\nwith different size was thread library (1011) and bgp aspath.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "44a86a0278c1678fd4b8dfa56c4f5f2feb6df3ad",
      "tree": "6a959802774bd76621baccfc4d3e79fb7759add6",
      "parents": [
        "fa75585d3cac97616de4ea7c6805d91f709456eb"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jan 25 09:14:52 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 23 22:10:09 2013 +0100"
      },
      "message": "guile: remove\n"
    },
    {
      "commit": "fa75585d3cac97616de4ea7c6805d91f709456eb",
      "tree": "c7900e2f118b558ba87262ee6bf377b438a1b9a5",
      "parents": [
        "844ee10416c42debbfbc4d470eb2fe328e060977"
      ],
      "author": {
        "name": "Matti-Oskari Leppänen",
        "email": "mongrelx@gmail.com",
        "time": "Fri Feb 15 10:12:55 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 23 19:43:18 2013 +0100"
      },
      "message": "build: update quagga.spec.in\n\nboth Quagga and RPM have moved a bit since this was last touched.\nShould now work again on CentOS 5 and 6.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "844ee10416c42debbfbc4d470eb2fe328e060977",
      "tree": "a0e49697ba2079ea271b5003c36455e242827051",
      "parents": [
        "0e4303d3173ecc264b3ec39a863174670bbe2900"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Sat Feb 23 19:38:37 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 23 19:38:37 2013 +0100"
      },
      "message": "vtysh: fix false lib path matching in extract.pl.in\n\nThe if ($file \u003d~ /lib/) path matching logic is supposed to\nmatch Quagga\u0027s lib directory only but will match all path\nhaving lib in it such as /var/lib/jenkins/quagga/...\n\nFix by matching both lib and file: lib/keychain.c etc.\n\nSigned-off-by: Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "0e4303d3173ecc264b3ec39a863174670bbe2900",
      "tree": "f525c8543f07581c9a87fcffb843537e87ddf820",
      "parents": [
        "f1ef81b2476ea533ac3d2129aa0e89653c427323"
      ],
      "author": {
        "name": "Roman Hoog Antink",
        "email": "rha@open.ch",
        "time": "Fri Jan 18 13:52:03 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 23 18:22:34 2013 +0100"
      },
      "message": "bgpd: fix lost passwords of grouped neighbors\n\nThis patch resolves the significance of order of group and password\nstatements.\n\nIt prevents passwords from being lost in cases where all\nthree conditions apply:\n  1. the peer is member of a group with or without group password\n  2. the peer has an individual password set\n  3. the peer is added to a group within an address-family ipv6\n     section\n\nIn addition this patch prevents the same issue in cases, where an IPv4\npeer\u0027s password is set first and the peer is added to a group\nafterwards.\n\nAdding a peer to a group cancels his individual password. Without ipv6\nthis is not a problem, because choosing the right order of config\nstatements will do (set password only after adding peer to group).\n\nWhen adding the peer to a group within the address-family\nsection, his password is definitely lost. The same workaround (ie.\nsetting the password after the address-family section) can not be used,\nbecause \"show run\" will print the configuration statements in the wrong\norder.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f1ef81b2476ea533ac3d2129aa0e89653c427323",
      "tree": "107bc07162b377b16af43d59cca4ce1a82a747f0",
      "parents": [
        "66b63aa036c75737c3a8cea9693eff4dec84f903"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "ulrich.weber@Sophos.com",
        "time": "Tue Jan 22 10:39:18 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 23 18:19:24 2013 +0100"
      },
      "message": "zebra: use SO_RCVBUFFORCE for netlink socket\n\nso net.core.rmem_max must not be adjusted. Requires\nlinux kernel \u003e\u003d 2.6.14, falls back to SO_RCVBUF on error\n\nSigned-off-by: Ulrich Weber \u003culrich.weber@sophos.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "66b63aa036c75737c3a8cea9693eff4dec84f903",
      "tree": "01abd59759289ab0d5bc4a94fda44abb0d585c7b",
      "parents": [
        "b2baffe8d255890b85d93aee653bed2c18371128"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Sun Feb 10 03:08:33 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sun Feb 10 03:09:32 2013 +0100"
      },
      "message": "release: 0.99.22\n"
    },
    {
      "commit": "b2baffe8d255890b85d93aee653bed2c18371128",
      "tree": "59fd3cada2ac805f46641e4aaf6ee98edddee0bd",
      "parents": [
        "b0baf0740e3d6a01980cef7ea0af0a61c10b1bcd"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sun Jan 27 04:46:02 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 09 03:00:12 2013 +0100"
      },
      "message": "build: fix \"pragma weak\" mixups\n\nNot only was there a minor typo in the \"pragma weak\" preprocessor\nchecks, but also were the tests not behaving as needed - they only\nindicated support for the /first/ method of implementing weak aliases,\nwhich on Linux is __attribute__ and not #pragma.\n\n* m4/ax_sys_weak_alias.m4: set defines for _all_ weak alias methods\n* zebra/kernel_null.c: fix typo\n\nCc: Doug VanLeuven \u003croamdad@sonic.net\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "b0baf0740e3d6a01980cef7ea0af0a61c10b1bcd",
      "tree": "d0cd2ba0f37bfceee09ade59f3571a09fd03d628",
      "parents": [
        "d3c74d218bfbd9b5b9c39ef7d286f1dd007f2a74"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jan 18 19:11:59 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Feb 01 17:55:05 2013 +0100"
      },
      "message": "doc: update some introduction paragraphs\n\nin particular,\n- add IS-IS to some listings\n- list Solaris \u0026 OSX as \"some work required\"\n- remove OS version numbers.  We have no base to specify any of them.\n- list supported C compilers (gcc, clang, icc)\n- cut the Quagga 2.0 stuff that promises QoS and firewall functionality\n"
    },
    {
      "commit": "d3c74d218bfbd9b5b9c39ef7d286f1dd007f2a74",
      "tree": "3fcb3df529979097de1bbe8cc33af00b0763394a",
      "parents": [
        "d53d8fda42e1ce43852d3b4cff914ce79b5c6785"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Jan 18 18:56:39 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Feb 01 17:55:05 2013 +0100"
      },
      "message": "doc: update NEWS for 0.99.22 changes\n"
    },
    {
      "commit": "d53d8fda42e1ce43852d3b4cff914ce79b5c6785",
      "tree": "65fabd06d7388d593c1260c18558acd29c82b523",
      "parents": [
        "aeef13b0d5b50a90f293c93eb5a34c2a099d140b"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Mon Jan 28 07:14:43 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Feb 01 17:55:04 2013 +0100"
      },
      "message": "bgpd: fix crash in soft-reconfiguration\n\nCommit 8692c50652 introduced a bug where bgpd would crash on\nsoft-reconfiguration.\n\nThis happens e.g. when there are filtered unicast routes because\nrn-\u003einfo is NULL in that case, which the code did not account for.\n\nReported-by: Paweł Staszewski \u003cpstaszewski@itcare.pl\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "aeef13b0d5b50a90f293c93eb5a34c2a099d140b",
      "tree": "b2463778c9b28b78af6ef722d2ac6b32df7ade6b",
      "parents": [
        "1cb9cf062ec3ed7a3f13fb5465eb5fb917ce3329"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jan 23 04:20:37 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Feb 01 17:55:04 2013 +0100"
      },
      "message": "tests: fix missing init in bgp_mp_attr_test.c\n\nturns out, bgp_mp_reach_parse really doesn\u0027t like getting garbage\nattribute input.  In particular, attr-\u003eextra better be NULL or we\nmerrily go trample random places (like our stack).\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "1cb9cf062ec3ed7a3f13fb5465eb5fb917ce3329",
      "tree": "4ca551c562d14cdd116155dba6aed6d9087c7f7d",
      "parents": [
        "5e728e929942d39ce5a4ab3d01c33f7b688c4e3f"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Jan 22 23:39:17 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Feb 01 17:55:04 2013 +0100"
      },
      "message": "tests: update \u0026 extend AS_PATH tests\n\nNB: these tests test for current implementation state, not for RFC\nconformance.  In particular, behaviour with confederations in AS4_PATH\nas well as reconcilation of short AS_PATH + AS4_PATH is currently NOT\nconforming to RFC 4893/6793.\n\n* tests/aspath_test.c:  add capability to put both AS4_PATH \u0026 AS_PATH,\n  add test for AS4_PATH w/o AS_PATH, update confederation test\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "5e728e929942d39ce5a4ab3d01c33f7b688c4e3f",
      "tree": "6f2b2413fc182b75b589fdb340c813d7da944771",
      "parents": [
        "f47e5a18b5beb00d6b5b94965e305dadb5aa5bad"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jan 23 05:50:24 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Feb 01 17:55:04 2013 +0100"
      },
      "message": "bgpd: relax ORF capability length handling\n\ncommit fe9bb64... \"bgpd: CVE-2012-1820, DoS in bgp_capability_orf()\"\nmade the length test in bgp_capability_orf_entry() stricter and is now\ncausing us to refuse (with CEASE) ORF capabilites carrying any excess\ndata.  This does not conform to the robustness principle as laid out by\nRFC1122 (\"be liberal in what you accept\").\n\nEven worse, RFC5291 is quite unclear on how to use the ORF capability\nwith multiple AFI/SAFIs.  It can be interpreted as either \"use one\ninstance, stuff everything in\" but also as \"use multiple instances\".\nSo, if not for applying robustness, we end up clearing sessions from\nimplementations going by the former interpretation.  (or if anyone dares\nadd a byte of padding...)\n\nCc: Denis Ovsienko \u003cinfrastation@yandex.ru\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f47e5a18b5beb00d6b5b94965e305dadb5aa5bad",
      "tree": "c870b37cdba8e36effae527faf6c266847ad2621",
      "parents": [
        "955be06f8a647d1149d5547e1265fb66f55a9161"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sun Jan 20 18:29:28 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Feb 01 17:55:04 2013 +0100"
      },
      "message": "bgpd: don\u0027t try to reconcile AS4_PATH with NULL\n\nbgp_attr_munge_as4_attrs would previously try to reintegrate an AS4_PATH\nwith a NULL AS_PATH, leading to a rather nasty SEGV.  Let\u0027s go by\nRFC6793 and treat missing AS_PATH as 0-length AS_PATH, which in turn\nmeans discarding the AS4_PATH.\n\n[NB: we don\u0027t actually stick to the actual rule, which is discarding\nAS4_PATH if it\u0027s longer than AS_PATH; indeed we should probably fix that\ntoo]\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "955be06f8a647d1149d5547e1265fb66f55a9161",
      "tree": "3b49f6c76457e2d47a9223fa2d1dc4b3af8b9e5e",
      "parents": [
        "dcab1bb822161d55795aad59b14c5c5d79b71e1f"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jan 16 01:48:04 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jan 16 01:50:52 2013 +0100"
      },
      "message": "build: Quagga 0.99.22-rc1\n\nthis is not a full release version, so neither release notes nor\ndocumentation are updated yet.  Also, signing the tag with my private\nGPG key instead of the Quagga one.\n"
    },
    {
      "commit": "dcab1bb822161d55795aad59b14c5c5d79b71e1f",
      "tree": "0e55397d41d91f613123c6c812bc8691caa02b27",
      "parents": [
        "86998bc2bc9506841250c8d49dd2df2464660a18"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Fri Dec 07 16:45:52 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jan 16 01:45:57 2013 +0100"
      },
      "message": "bgpd: conditional default-originate using route-map\n\nIncorporate a patch by Svetozar Mihailov which implements\ndefault-originate route-maps to behave as expected, i.e. allowing\nthe default route to be advertised conditionally, depending on a\ncriterion given by the route-map.\n\nI am aware that the performance attributes of the following implementation\nare far from optimal. However, this affects only code paths belonging to\na feature that is broken without this patch, therefore, it seems reasonable\nto me to have this in the mainline for now.\n\nCc: Svetozar Mihailov \u003cquagga@j.zarhi.com\u003e\nReported-by: Sébastien Cramatte \u003cscramatte@gmail.com\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "86998bc2bc9506841250c8d49dd2df2464660a18",
      "tree": "1f6796236e69496f3db2bfd32eb2d43c6bfb1a37",
      "parents": [
        "a6694fe8a89b957216f548938cc31602df04d495"
      ],
      "author": {
        "name": "Leonid Rosenboim",
        "email": "Leonid.Rosenboim@windriver.com",
        "time": "Fri Dec 14 19:12:17 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jan 16 01:45:57 2013 +0100"
      },
      "message": "bgpd: uncork/nagle socket when sending BGP NOTIFY\n\nThis pushes out the NOTIFY message before closing a connection.\n\nPreviously, the TCP_CORK bandwidth optimization code caused NOTIFY\nmessages to disappear prior to when the connection is closed.\n\n* bgpd/bgp_packet.c: unset CORK, set NODELAY, and replace\n                     writen() by more correct write()\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a6694fe8a89b957216f548938cc31602df04d495",
      "tree": "cfa46c9261215f8fa6bc991fbc335e99da196ea9",
      "parents": [
        "ca3ccd8748434719e4670ce812d1310013fad518"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jan 16 01:28:36 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jan 16 01:45:57 2013 +0100"
      },
      "message": "Revert \"bgpd: flock() dump files (BZ#742)\"\n\nThis reverts commit b07458a055493dd37cb955ae90f11ae8bc334d3a.\n\nOn second thought, the right way to do this is with rename(), not by\nintroducing a lock that can potentially even stall bgpd.\n\nReported-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "ca3ccd8748434719e4670ce812d1310013fad518",
      "tree": "3fae89070206bc47704a456219350c34b5f8ea54",
      "parents": [
        "8d083b9ec5bb0375ebb6d8b2b05c848febd92cb5"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Sep 26 14:52:39 2012 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jan 16 01:45:57 2013 +0100"
      },
      "message": "zebra: fix sockaddr_dl length assumptions (BZ#737)\n\nQuagga makes bad assumptions about sockaddr_dl (on NetBSD, but possibly\non other systems as well).  Particularly, sizeof(struct sockaddr_dl)\nreturns a size that does not include the full sdl_data field, leading to\nnot enough data being copied.  This breaks IPv6 RAs in particular, as\na broken mac address from sockaddr_dl will be included in the packets.\n\nFrom: Matthias-Christian Ott \u003cott@mirix.org\u003e\nTested-by: Uwe Toenjes \u003c6bone@6bone.informatik.uni-leipzig.de\u003e\n[further simplified + more comments]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    }
  ],
  "next": "8d083b9ec5bb0375ebb6d8b2b05c848febd92cb5"
}
