)]}'
{
  "log": [
    {
      "commit": "24c84dbe806084552d7bb14b9f1d00514a048b9d",
      "tree": "cb53212866638b8aa559e573aa320f027d7ed8b7",
      "parents": [
        "4becea724ccd87e88f8454622ae227308b5fa3ce"
      ],
      "author": {
        "name": "Ken Williams",
        "email": "kenneth.j.williams@intel.com",
        "time": "Tue Apr 15 02:23:11 2014 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 22 21:17:26 2014 +0200"
      },
      "message": "zebra: Change the mechanism for comparing route ID\u0027s.\n\nThe current format uses subtraction of two ints. Unfortunately, the\nsubtraction method does not work for all combinations of numbers.\nFor example, the with numbers represented by 10.x.x.x and 192.x.x.x,\n10.x.x.x - 192.x.x.x will yield a very large positive number indicating\nthat 10.x.x.x is larger.\n\nSigned-off-by: Ken Williams \u003ckenneth.j.williams@intel.com\u003e\nAcked-by: Feng Lu \u003clu.feng@6wind.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "4becea724ccd87e88f8454622ae227308b5fa3ce",
      "tree": "a1e07f06ae43698a72a15ee801de86ce3d9ffdf4",
      "parents": [
        "514991c76366c2a9f4c644714ad0722df0eed532"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Tue Nov 19 14:11:42 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 22 21:17:00 2014 +0200"
      },
      "message": "lib: use heap to manage timers\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "514991c76366c2a9f4c644714ad0722df0eed532",
      "tree": "e9cb854e881c4733b3aa5145d7c17388ee99f035",
      "parents": [
        "ba32db1e854ff2b26861a2d4e4193a9f1b3816cd"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Tue Nov 19 14:11:41 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 22 21:16:10 2014 +0200"
      },
      "message": "lib: remove unused thread_master_debug function\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "ba32db1e854ff2b26861a2d4e4193a9f1b3816cd",
      "tree": "ac1e4d87ad17a4ae653576009800b4077c4db00f",
      "parents": [
        "6f2a67031cfb21362fc7ecd3251761799c8ffe27"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Tue Nov 19 14:11:40 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 22 21:15:11 2014 +0200"
      },
      "message": "tests: Add tests for timers\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "6f2a67031cfb21362fc7ecd3251761799c8ffe27",
      "tree": "514ba2ef904d56131bffaa5fbc40443826529641",
      "parents": [
        "cd40b329a2e4da882bcad0431c048c876bbeafbd"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Mon Sep 30 12:27:52 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 20:21:42 2014 +0200"
      },
      "message": "ospfd/ospf_vty.c: use keyword cmd style\n\nUse the new keyword command style for:\n\n  - default-information originate\n  - distance ospf\n  - redistribute\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "cd40b329a2e4da882bcad0431c048c876bbeafbd",
      "tree": "cfbdec5a7559c6d3e56766797896a18809aa1746",
      "parents": [
        "e712d0e3667ffad8109ef8bce3ce01927ee95bb7"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Mon Sep 30 12:27:51 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 20:21:41 2014 +0200"
      },
      "message": "lib/command.c: rewrite command matching/parsing\n\nAdd support for keyword commands.\n\nIncludes new documentation for DEFUN() in lib/command.h, for preexisting\nfeatures as well as new keyword specification.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "e712d0e3667ffad8109ef8bce3ce01927ee95bb7",
      "tree": "7d3fd696c771e742c20135a12b4a8f1e382944ac",
      "parents": [
        "8f399b0e4fff2344d75ebf709e1ce55f15269db2"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 19:34:55 2014 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 20:21:19 2014 +0200"
      },
      "message": "tests: fix build \u0026 disable testcommands\n\nThe perils of having tests, the test wasn\u0027t tested thoroughly enough...\nFixup various automake problems, and then disable it since it depends on\nconfigure parameters in its current version.\n\nFor 0.99.24 we can ship a static copy of vtysh_cmd.c and have it\nreenabled.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "8f399b0e4fff2344d75ebf709e1ce55f15269db2",
      "tree": "e9a2384156a90267a846b03c51435618b2427b1c",
      "parents": [
        "2b00515a9b639fd1e057f3ebf10ded2dde920764"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Mon Sep 30 12:27:50 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 17:38:29 2014 +0200"
      },
      "message": "tests: add a test program for lib/command.c\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "2b00515a9b639fd1e057f3ebf10ded2dde920764",
      "tree": "1167cb145764208a132599e5d83980708501bac4",
      "parents": [
        "f7bf41534e885c7bc077529c591a1bce24a5f1e9"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Mon Sep 30 12:27:49 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 17:32:49 2014 +0200"
      },
      "message": "bgpd, ospfd, zebra: fix some DEFUN definitions\n\nFixup some DEFUNS with incorrect command strings or mixed up helpstrings.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "f7bf41534e885c7bc077529c591a1bce24a5f1e9",
      "tree": "2c119e01872468b249bba44e5f7d20da67147756",
      "parents": [
        "db19c85679b08668c3dce73a655c21753042cf06"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Oct 22 17:10:21 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 17:27:58 2014 +0200"
      },
      "message": "zebra: apply syntactic sugar to rib_dump()\n\nstrip the explicit __func__ present on all calls and make the prefix\nargument a transparent union.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "db19c85679b08668c3dce73a655c21753042cf06",
      "tree": "d36e66a2a34265b9a31bd93ed6bf00d7973b1232",
      "parents": [
        "98a59492d9152df8c93612d2d12f170b5c034189"
      ],
      "author": {
        "name": "Brett Ciphery",
        "email": "brett.ciphery@windriver.com",
        "time": "Thu Oct 03 13:48:54 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 17:27:53 2014 +0200"
      },
      "message": "zebra: set metric for directly connected routes via netlink to 0\n\na value of 1 is hard coded for the metric field, much like the\nifconfig utility it may have roots in.  in order to be in line\nwith the metric used in the linux kernel itself, we switch this\nto 0.\n\nSigned-off-by: Brett Ciphery \u003cbrett.ciphery@windriver.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "98a59492d9152df8c93612d2d12f170b5c034189",
      "tree": "e1c2944f409d2fff83f0498ce5e0504f8d03bf13",
      "parents": [
        "8c99b4c11e69e4cf0ac03c551764cccc0a3fe35a"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Aug 01 08:12:25 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 17:23:21 2014 +0200"
      },
      "message": "build: remove now-useless --{en, dis}able-tests\n\ncommit d771020 \"don\u0027t build tests unless make check is run\" has made the\n --{en,dis}able-tests switch completely useless.  The differentiation is\nnow made by running \"make check\" or not doing so.  The only effect of\nthe switch is an \"empty\" excursion of make into the tests/ directory.\n\n(well, and it turns \"make check\" useless from the main directory if\n --disable-tests is given, which I don\u0027t think makes sense either)\n\nAcked-by: Greg Troxel \u003cgdt@ir.bbn.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "8c99b4c11e69e4cf0ac03c551764cccc0a3fe35a",
      "tree": "930f0e123c239adf23553dfb3d5b5e4f83ab0e5e",
      "parents": [
        "af514777f4327932a3e84f83d79e941967503e15"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Aug 01 07:43:36 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 17:20:44 2014 +0200"
      },
      "message": "build: improve backtrace support/detection\n\nlibexecinfo is used to provide backtrace() on *BSD.  The API is\ncompatible with glibc\u0027s, so this is a \"free\" improvement.\n\nTo improve configure behaviour, the following configure options are\nmodified/introduced:\n\n* --enable-gcc-rdynamic now defaults to \"on\" if the compiler is gcc.\n  (I sadly wasn\u0027t able to find any documentation on the availability of\n  this option for llvm, even though at least the version I have\n  installed does support it)\n\n* --enable-backtrace has been added.  This behaves as off/auto/on\n  switch, i.e. giving either {dis,en}able will result in the requested\n  behaviour (or an error if support wasn\u0027t found)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "af514777f4327932a3e84f83d79e941967503e15",
      "tree": "68ddb2e6dd758b2c50f3a4facea1dfc925460312",
      "parents": [
        "6d729eeac91578dca29961e0e46f246f33c37f0c"
      ],
      "author": {
        "name": "Jorge Boncompte [DTI2]",
        "email": "jorge@dti2.net",
        "time": "Wed Jul 31 16:16:05 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 17:14:44 2014 +0200"
      },
      "message": "lib: fix possible off-by-one in stream_put_prefix()\n\nThe STREAM_WRITEABLE() call only checks if there is space for the\nprefix in the stream but does not account for the prefixlen. The\nstream_putc() call reduces available space by 1 and we can end\ncopying one byte too much and with \"endp\" off by one if we are\nnear the buffer end.\n\nInstead of moving the stream_putc() call before STREAM_WRITEABLE(),\nwe check before hand for the required space, and open-code it. This\navoids a function call and verifying again the stream buffer.\n\nSigned-off-by: Jorge Boncompte [DTI2] \u003cjorge@dti2.net\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "6d729eeac91578dca29961e0e46f246f33c37f0c",
      "tree": "38727ce4ac7c9d6e06298e374ed1a526fe8effb3",
      "parents": [
        "4d474fa3297c0d5d632e2c0bff6ccb0edbedaa5d"
      ],
      "author": {
        "name": "Jorge Boncompte [DTI2]",
        "email": "jorge@dti2.net",
        "time": "Wed Jul 31 15:01:18 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 17:13:02 2014 +0200"
      },
      "message": "lib: fix for dynamically grown hashes\n\nFixes commit 97c84db00c (hash: dynamically grow hash table). The\nno_expand field it\u0027s not initialized and could make the hashes to\nnever grow the table index.\n\nSigned-off-by: Jorge Boncompte [DTI2] \u003cjorge@dti2.net\u003e\nAcked-by: Feng Lu \u003clu.feng@6wind.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "4d474fa3297c0d5d632e2c0bff6ccb0edbedaa5d",
      "tree": "61ca2f19e552df821eb2dc06cd9e06c81993aacf",
      "parents": [
        "c78a46c27f6dfdd42fe0800cebabc1e49cb0a4bf"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Nov 19 15:00:06 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 21 06:28:48 2014 +0100"
      },
      "message": "lib: fix backtraces broken by 837d16c...\n\n837d16c (\"*: use array_size() helper macro\") accidentally changed one of\nthe expressions in the backtrace code, which afterwards read:\n\nzlog_backtrace_sigsafe():\n  if (((size \u003d backtrace(array,array_size(array)) \u003c\u003d 0) ||\n\nwhich boils down to: (size \u003d backtrace(...)  \u003c\u003d 0).  The braces were\nintended to go:      (size \u003d backtrace(...)) \u003c\u003d 0.\n\nAll in all, this makes a nice textbook example of the original author\nbeing too clever (trying to save a single line by pulling the assignment\ninto the condition) and the next person touching the code tripping over\nit...\n\nThis code occurs another time in zlog_backtrace() where it is actually\ncorrect.  Pulling out the assignment nonetheless.  Also, new test\nprogram.\n\nCc: Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\nCc: Balaji.G \u003cbalajig81@gmail.com\u003e\nCc: Scott Feldman \u003csfeldma@cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c78a46c27f6dfdd42fe0800cebabc1e49cb0a4bf",
      "tree": "5d88a885415f3b5e63f7dac5c72dcbcc647a7dfb",
      "parents": [
        "fd5006896fce2816244c1ef4cabc736279548538"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Wed Mar 20 10:50:09 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 21 06:28:48 2014 +0100"
      },
      "message": "ospf6d: fix refcounting in ospf6_asbr_lsa_remove\n\nWhen iterating over a list, also the last node should be unlocked again.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "fd5006896fce2816244c1ef4cabc736279548538",
      "tree": "c9fb889019186c6aa7c800643f3ff1d9171a96a7",
      "parents": [
        "c19543b223d3b8463c048f346b8044589e0cce39"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Wed Oct 24 14:45:54 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 21 06:28:48 2014 +0100"
      },
      "message": "ospf6d: add \"auto-cost reference-bandwidth\" command\n\nThis command allows the user to change to default reference bandwidth\nfor cost calculations. The default value is 100 Mbps. With a default\nbandwidth of 10 MBps, the default cost becomes 10. Those values are\nconsistent with OSPFv2.\n\n[DL: resolved conflicts in vty command additions \u0026 docs]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c19543b223d3b8463c048f346b8044589e0cce39",
      "tree": "7da71baef36e7c7b4e628c645580f8cc18c1aabe",
      "parents": [
        "1db65fadf627637621c342b789b9a3604ca5fab5"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Wed Oct 24 14:45:53 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 21 06:28:47 2014 +0100"
      },
      "message": "ospf6d: compute interface cost from its bandwidth\n\nPreviously, the interface cost was a fixed default value that a user\nwas allowed to change with \"ipv6 ospf6 cost XX\". As what is done with\nOSPFv2, we change this behaviour to compute the default interface cost\nfrom the interface bandwidth.\n\nThe user can still force a cost with \"ipv6 ospf6 cost XX\". He can get\nthe default value with \"no ipv6 ospf6 cost\". Moreover, the default\ncost value was 1. The cost is now computed from the bandwidth and a\ndefault reference bandwidth of 100 MBps (as for OSPFv2). Since the\ndefault bandwidth for an interface is 10 MBps, the \"default\" cost\nbecomes 10 instead of 1.\n\n[DL: resolved conflict in ospf6d/ospf6_interface.c]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "1db65fadf627637621c342b789b9a3604ca5fab5",
      "tree": "546c769ca03e71e6c7bb55a52b4f7ea525542864",
      "parents": [
        "e708ed69aa0b993527f48b1f31b645c00750927f"
      ],
      "author": {
        "name": "Ingo Flaschberger",
        "email": "if@xip.at",
        "time": "Sun Apr 17 18:28:20 2011 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 21 06:28:23 2014 +0100"
      },
      "message": "ospf6d: solve segfaults with ospf6d on FreeBSD\n\nDo not send ospf6d hellos on fresh created interfaces without\nconfiguration (ie. no vlan configured).  Ospf6d use ip6_mtu, if it\u0027s not\ninitalised, Ospf6d tries to alloc indefinite size of memory.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "e708ed69aa0b993527f48b1f31b645c00750927f",
      "tree": "8f33d73b2a85b51c042318d58a1750eeb8019616",
      "parents": [
        "a11e012e8661629d665e992e765741a5eaa7d017",
        "424cc3bd48da0f417c9056c5c2ade697a3386cd4"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 18 17:04:25 2014 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 18 17:04:25 2014 +0100"
      },
      "message": "Merge volatile/cumulus_ospf6d\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "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": "a11e012e8661629d665e992e765741a5eaa7d017",
      "tree": "d6967d9c5044f8c924aa2f4b62bac8e3bda358e2",
      "parents": [
        "b52aef18a9f3acc8b24ab5c2631dc574b8e2ec70"
      ],
      "author": {
        "name": "Remi Gacogne",
        "email": "rgacogne-github@coredump.fr",
        "time": "Sun Sep 08 13:48:34 2013 +0000"
      },
      "committer": {
        "name": "Vincent JARDIN",
        "email": "vincent.jardin@6wind.com",
        "time": "Tue Feb 11 10:28:03 2014 +0100"
      },
      "message": "security: Fix some typos and potential NULL-deref\n\nThis patch against the git tree fixes minor typos, some of them possibily\nleading to NULL-pointer dereference in rare conditions.\n\nSigned-off-by: Remi Gacogne \u003crgacogne-github@coredump.fr\u003e\nSigned-off-by: Joachim Nilsson \u003ctroglobit@gmail.com\u003e\nAcked-by: Feng Lu \u003clu.feng@6wind.com\u003e\n"
    },
    {
      "commit": "b52aef18a9f3acc8b24ab5c2631dc574b8e2ec70",
      "tree": "bfa979bb182304582f6c03884e8c4e3c27c22165",
      "parents": [
        "23f5f7c3dd805b7d6a46d86d23aaa5c71273a84a"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Wed Nov 27 17:06:15 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Feb 11 04:53:14 2014 +0100"
      },
      "message": "zebra: log routes w/o gateway in rib_delete_ipv4\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Feng Lu \u003clu.feng@6wind.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "23f5f7c3dd805b7d6a46d86d23aaa5c71273a84a",
      "tree": "9e512404ad6146e17ee689c16e1509e692d9101c",
      "parents": [
        "a25a1264a5615a90e9ca9f60ccc1f397ca55bc56"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Wed Nov 27 17:06:14 2013 +0000"
      },
      "committer": {
        "name": "Vincent JARDIN",
        "email": "vincent.jardin@6wind.com",
        "time": "Mon Feb 10 22:38:00 2014 +0100"
      },
      "message": "zebra: match gateway when deleting NEXTHOP_IPV4_IFINDEX routes\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Feng Lu \u003clu.feng@6wind.com\u003e\n"
    },
    {
      "commit": "a25a1264a5615a90e9ca9f60ccc1f397ca55bc56",
      "tree": "358307c0bf0d047c7279708ceed154f05dcbc707",
      "parents": [
        "6ee06fa9ed91412cb745668d462031cdbe2642e0"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Wed Nov 27 14:36:05 2013 +0000"
      },
      "committer": {
        "name": "Vincent JARDIN",
        "email": "vincent.jardin@6wind.com",
        "time": "Mon Feb 10 22:07:11 2014 +0100"
      },
      "message": "ospfd: fixup log message in ospf_zebra_delete\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nAcked-by: Feng Lu \u003clu.feng@6wind.com\u003e\n"
    },
    {
      "commit": "6ee06fa9ed91412cb745668d462031cdbe2642e0",
      "tree": "107e951abc716c2ca15fbcc62bdb0858b35036e8",
      "parents": [
        "a83a1e9c2f035d3152451dcfc97ab13b4ac427b9"
      ],
      "author": {
        "name": "Pradosh Mohapatra",
        "email": "pmohapat@cumulusnetworks.com",
        "time": "Sun Jan 12 18:30:13 2014 +0000"
      },
      "committer": {
        "name": "Vincent JARDIN",
        "email": "vincent.jardin@6wind.com",
        "time": "Mon Feb 10 09:37:30 2014 +0100"
      },
      "message": "bgpd: bgpd-set-v4-nexthop-for-v6-peering.patch\n\nBGP: While advertising v4 prefixes over a v6 session, set the correct v4 nexthop.\n\nISSUE:\n\nFor an IPv6 peer, BGPd sets the local router-id as the next-hop\u0027s v4 address.\nThis is incorrect as the router-id may not be a valid next-hop to be included\nin UPDATEs that contain v4 prefixes.\n\nPATCH:\n\nSet the v4 address in the next-hop field based on the interface that the\npeering is on (directly connected interface or loopback).\n\nSigned-off-by: Pradosh Mohapatra \u003cpmohapat at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nAcked-by: Feng Lu \u003clu.feng@6wind.com\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"
    }
  ],
  "next": "4a014580ff85428aa41b28503554b2ce982805be"
}
