)]}'
{
  "log": [
    {
      "commit": "2c0adbf9bc0c2425f567848ba7f790059d18b253",
      "tree": "45a7267272bb312c13d24db395e7cd94c95094bb",
      "parents": [
        "f2f44eaa321be5a52e5ad67069bd8061603589a1"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Fri Nov 18 15:42:41 2016 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 23 18:51:57 2017 +0000"
      },
      "message": "vtysh, zebra: Fix link-params to use exit-link-params\n\nFix the link-params submode to use the \u0027exit-link-params\u0027\nto indicate we are exiting a submode.\n\nFixup all the relevant bits.\n"
    },
    {
      "commit": "605aa331d814b0977dd8435168dca5b2b7928996",
      "tree": "c33e213e83b219b61e19aa3dc8edec34dae962c7",
      "parents": [
        "2b2e38c3169ae0221645e4dd9b40388660ce3f68"
      ],
      "author": {
        "name": "Piotr Chytła",
        "email": "pch@packetconsulting.pl",
        "time": "Tue Dec 01 10:03:54 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:49 2016 +0100"
      },
      "message": "bgpd, vtysh: Add support for route tags\n\n[Forward ported by Cumulus]\n\nDocumentation\n-------------\nAll ipv4 and ipv6 static route commands now have a \"tag\" option\nwhich allows the user to set a tag between 1 and 65535.\n\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag ?\n  \u003c1-65535\u003e  Tag value\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag 40\nquagga(config)#\n\nquagga# show ip route 1.1.1.1/32\nRouting entry for 1.1.1.1/32\n  Known via \"static\", distance 1, metric 0, tag 40, best\n  * 10.1.1.1, via swp1\n\nquagga#\n\nThe route-map parser supports matching on tags and setting tags\n!\nroute-map MATCH_TAG_18 permit 10\n match tag 18\n!\n\n!\nroute-map SET_TAG_22 permit 10\n set tag 22\n!\n\nBGP and OSPF support:\n- matching on tags when redistribing routes from the RIB into BGP/OSPF.\n- setting tags when redistribing routes from the RIB into BGP/OSPF.\n\nBGP also supports setting a tag via a table-map, when installing BGP\nroutes into the RIB.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nSigned-off-by: Piotr Chytla \u003cpch@packetconsulting.pl\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n\nEdits by: Paul Jakma \u003cpaul.jakma@hpe.com - conflicts on re-ordering with the\nrmap-event and table-map patches, those will now need to update the tags stuff.\n"
    },
    {
      "commit": "2b2e38c3169ae0221645e4dd9b40388660ce3f68",
      "tree": "4201eb0ecd250b8da03ec7c129ef80a77007ee4a",
      "parents": [
        "eefddcc78abcc91d1d88633a3c6d5a438fe58790"
      ],
      "author": {
        "name": "Piotr Chytła",
        "email": "pch@packetconsulting.pl",
        "time": "Tue Dec 01 10:10:41 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:49 2016 +0100"
      },
      "message": "ospfd, vtysh: Add support for Route tags\n\n[Forward ported by Cumulus]\n\nCredit\n------\nA huge amount of credit for this patch goes to Piotr Chytla for\ntheir \u0027route tags support\u0027 patch that was submitted to quagga-dev\nin June 2007.\n\nDocumentation\n-------------\nAll ipv4 and ipv6 static route commands now have a \"tag\" option\nwhich allows the user to set a tag between 1 and 65535.\n\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag ?\n \u003c1-65535\u003e  Tag value\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag 40\nquagga(config)#\n\nquagga# show ip route 1.1.1.1/32\nRouting entry for 1.1.1.1/32\n  Known via \"static\", distance 1, metric 0, tag 40, best\n  * 10.1.1.1, via swp1\n\nquagga#\n\nThe route-map parser supports matching on tags and setting tags\n!\nroute-map MATCH_TAG_18 permit 10\n match tag 18\n!\n\n!\nroute-map SET_TAG_22 permit 10\n set tag 22\n!\n\nBGP and OSPF support:\n- matching on tags when redistribing routes from the RIB into BGP/OSPF.\n- setting tags when redistribing routes from the RIB into BGP/OSPF.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nSigned-off-by: Piotr Chytla \u003cpch@packetconsulting.pl\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "62f936e7960a7c08f4ae42ad43726d8d6e8e949d",
      "tree": "53dbbf703d51c38e0bf41cc979434b32c3b5d430",
      "parents": [
        "92992c69afd0095b183a3b905598d194115b27a7"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Mon Nov 09 20:21:59 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 13 10:36:45 2016 +0100"
      },
      "message": "ospf6d, ripd, vtysh: Fix \"no set metric\" for ospf6 and RIP\n\nAllow the user to actually turn off the set metric command\nin ospf6d and rip.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "a4f40293db1055387d5b901fe0dbb556226b2024",
      "tree": "09ac6cebe377c249426a3760d008b031c84b1be5",
      "parents": [
        "0f2f7a3fa5d55e682d0739d586da021cbd43bc3c"
      ],
      "author": {
        "name": "vivek",
        "email": "vivek@cumulusnetworks.com",
        "time": "Mon Nov 09 20:21:46 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 13 10:36:44 2016 +0100"
      },
      "message": "vtysh: Make ipv6 unicast/multicast address-family work\n\nIn the absence of this patch, attempting to type \"address-family ipv6 unicast\"\nwould result in an \"Ambiguous command\" error and in the case of\n\"address-family ipv6 multicast\", the command would silently fail, without the\nprompt dropping into the address-family mode.\n\nThe cause is how the parse tree is constructed for ipv6 address family. There\nwas an error in extract.pl.in script and in vtysh.c files which assumed that\nthere was only address family ipv6 command, without unicast or multicast and\nso the command was failing.\n\nSigned-off-by: vivek \u003cvivek@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "ac10d30c03091eace3c0405aa8ccb7d3c09e7bd2",
      "tree": "b855b841903149f68f518068fe99b120f94c0712",
      "parents": [
        "15773a87ce652da5b02ca14dc0088408899ea007"
      ],
      "author": {
        "name": "Olivier Dugeon",
        "email": "olivier.dugeon@orange.com",
        "time": "Tue Apr 19 18:33:42 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 13 10:36:38 2016 +0100"
      },
      "message": "vtysh: Add support of new link-params CLI\n\nIn vtysh_config.c/vtysh_config_parse_line(), it is not possible to continue\nto use the ordered version for adding line i.e. config_add_line_uniq() to print\nInterface CLI commands as it completely break the new LINK_PARAMS_NODE.\n\nSigned-off-by: Olivier Dugeon \u003colivier.dugeon@orange.com\u003e\n"
    },
    {
      "commit": "a3fda886cdd48b6d8c421ebb1401142fa9ee93b0",
      "tree": "42a5e6fda0978185128544fd199caf8ed93e58a3",
      "parents": [
        "637035710a2f8e1e5944ee714135b7f88ac15ac4"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Tue Jan 12 13:42:04 2016 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Feb 26 14:11:44 2016 +0000"
      },
      "message": "bgpd, lib, vtysh: hook up bgp ENCAP CLI node\n\nSigned-off-by: Lou Berger \u003clberger@labn.net\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "acf9865f7fcec6a8d47df6ed7946a5e8ca398918",
      "tree": "fac7d9ce2d2b6d984bde675641556e5063e8f655",
      "parents": [
        "9dfcca6122c9f4f3642241ff50029d7669af3999"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Nov 12 14:24:22 2015 +0100"
      },
      "committer": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Tue Dec 08 14:12:50 2015 -0500"
      },
      "message": "isisd: add support to import routes from other protocols\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "6064613154b6302606547735f0c466910a6443ea",
      "tree": "6f30a6c896ff67c2cb6b7494f5d03d45f341f5ae",
      "parents": [
        "c9b07581e0df8867499e97e08b382b6d3cc9c4c4"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Aug 04 17:37:16 2015 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Aug 04 17:40:25 2015 +0100"
      },
      "message": "vtysh: adjust bad_cli_stomps in extract.pl.in to reflect fixes \u0026 fix build\n"
    },
    {
      "commit": "b1891fb9705b6085f81269dec0795f2065442047",
      "tree": "002bccbf21caf38ec1dab8f36020b3eab7356a30",
      "parents": [
        "1934e7895ded8d9d7a76ab3f482c381bf5f6725c"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Tue Jun 09 20:22:42 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jun 21 14:56:55 2015 +0100"
      },
      "message": "Add code to extract.pl.in to prevent further cli function overwrites\n\nCurrently extract.pl.in is used to build the vtysh cli.  When two\ndifferent cli\u0027s collide with the same command name, the original\ncli is never called, because it is dropped.  This code notes the\nsilent drop and tracks the number of drops.  If they change then\nthe code will fail the build.  The current number of drops was\nfigured out by running extract.pl and counting up the drops\nthen adding code to compare the numbers returned.\n\nIf you have added to the problem, the solution is to fix your cli\ncommand to not stomp on someone else\u0027s command.  If you have removed\na stomp, safely modify extract.pl.in as part of your commit.\n\nSigned-off-by: Donald Sharp \u003csharpd at cumulusnetworks.com\u003e\nAcked-by: Vincent Jardin \u003cvincent.jardin@6wind.com\u003e\n"
    },
    {
      "commit": "55cfa2f190620f7c711944637659bc208970324d",
      "tree": "13e8a607e6e552da0f4218b4a8473dbcd738845b",
      "parents": [
        "c99f3481a598e9cadd1de96714f6b5df9ad85c4a"
      ],
      "author": {
        "name": "Feng Lu",
        "email": "lu.feng@6wind.com",
        "time": "Thu Jul 03 18:24:34 2014 +0800"
      },
      "committer": {
        "name": "Nicolas Dichtel",
        "email": "nicolas.dichtel@6wind.com",
        "time": "Wed Jun 03 17:26:27 2015 +0200"
      },
      "message": "lib, vtysh: support multiple VRFs by using linux netns\n\nWe realize VRFs with linux netns by default. The main job is\nto associate a VRF with a netns. Currently this is done by\nthe configuration:\n\n  [no] vrf N netns \u003cnetns-name\u003e\n\nThis command is also available in vtysh and goes to only\nzebra, because presently only zebra supports multiple VRF.\n\nA file descriptor is added to \"struct vrf\". This is for the\nassociated netns file. Once the command \"vrf N netns NAME\"\nis executed, the specified file is opened and the file\ndescriptor is stored in the VRF N. In this way the\nassociation is formed.\n\nIn vrf_socket(), we first switch to the specified VRF by\nusing the stored file descriptor, and then can allocate\na socket which is working in the associated netns.\n\nSigned-off-by: Feng Lu \u003clu.feng@6wind.com\u003e\nReviewed-by: Alain Ritoux \u003calain.ritoux@6wind.com\u003e\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\n"
    },
    {
      "commit": "471ea39ce54537194ff2f22420589ddec5ef5ada",
      "tree": "65b04ef42d4ece7e4a44d230fcc0a15f388755c4",
      "parents": [
        "5a5702fac5458d63d7a099c4db7ac387afefd2de"
      ],
      "author": {
        "name": "Feng Lu",
        "email": "lu.feng@6wind.com",
        "time": "Fri May 22 11:40:00 2015 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Jun 02 06:59:36 2015 +0200"
      },
      "message": "lib, zebra, vtysh: configure an interface in non-default VRF\n\nIntroduce a new command \"interface IFNAME vrf N\" to configure an\ninterface in the non-default VRF.\n\nTill now, only zebra uses this command. Other daemons will install\nthe command when they support multiple VRFs.\n\nSigned-off-by: Feng Lu \u003clu.feng@6wind.com\u003e\nReviewed-by: Alain Ritoux \u003calain.ritoux@6wind.com\u003e\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nAcked-by: Vincent JARDIN \u003cvincent.jardin@6wind.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "5460baef7f0014f2d0c3459aa9c4180da19d6850",
      "tree": "43c44fde298e4fbaf1de87a6dc287b0c82a4f515",
      "parents": [
        "336724d628be71022f80cfe3dfb34274ad95ec14"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue May 19 00:35:04 2015 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed May 20 00:34:21 2015 +0200"
      },
      "message": "*: fix \"babeld: Remove babeld from Quagga\" (336724d)\n\nThis removes some more bits of babeld, particularly from:\n- buildtest.sh\n- redhat/ build files\n- vtysh integration (which actively broke the build)\n\nThe memtype and zclient/route type are kept in place since these don\u0027t\nbreak anything and -theoretically- make it possible to build babeld\nwith some Quagga integration externally.\n(Keeping vtysh integration is unfortunately not as easy.)\n\nReported-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nFixes: 336724d (\"babeld: Remove babeld from Quagga\")\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nAcked-by: Paul Jakma \u003cpaul@quagga.net\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "844ee10416c42debbfbc4d470eb2fe328e060977",
      "tree": "a0e49697ba2079ea271b5003c36455e242827051",
      "parents": [
        "0e4303d3173ecc264b3ec39a863174670bbe2900"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Sat Feb 23 19:38:37 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 23 19:38:37 2013 +0100"
      },
      "message": "vtysh: fix false lib path matching in extract.pl.in\n\nThe if ($file \u003d~ /lib/) path matching logic is supposed to\nmatch Quagga\u0027s lib directory only but will match all path\nhaving lib in it such as /var/lib/jenkins/quagga/...\n\nFix by matching both lib and file: lib/keychain.c etc.\n\nSigned-off-by: Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "ed6e297972318a0070ad4d973401fbc6e0def558",
      "tree": "cc544ec6f62a22cb2281e7665a39d469b377cc63",
      "parents": [
        "bb2315f2878da685fae094aece13409667d21f97"
      ],
      "author": {
        "name": "Serj Kalichev",
        "email": "serj.kalichev@gmail.com",
        "time": "Fri Sep 07 13:29:42 2012 +0400"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Sep 25 06:07:03 2012 +0200"
      },
      "message": "build: fix extract.pl for cross compilation\n\nextract.pl should invoke the C preprocessor for the target system, not the\nhost.\n\n* vtysh/extract.pl.in: use @CPP@ to get target cpp\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "08d7f6533ecc0f935a76918c462982004534864d",
      "tree": "0e67590a8a2aba551439c46bfa8b33d7fba4feb7",
      "parents": [
        "6b1e37f8537fa2a4560de32e83ca5089763e2d39"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Tue May 22 22:29:17 2012 +0200"
      },
      "committer": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Mon Jun 25 19:03:23 2012 +0200"
      },
      "message": "build: use net-snmp-config to configure NetSNMP\n\nThe correct method to link to NetSNMP is to use net-snmp-config (which\nis like pkg-config). Explicit link to libcrypto is also dropped\n(NetSNMP libs are linked to libcrypto, no need to link Quagga to\nit). Moreover, @SNMP_INCLUDES@ is dropped because useless. Due to a\nbug in configure.ac, it was properly populated.\n"
    },
    {
      "commit": "9e7a548ce421660b0d22bfeb90c2b2b53742aac7",
      "tree": "4c962403808f98806781fb4ad15594152bc1effa",
      "parents": [
        "a47c5838e9f445ab887ad927706b11ccbb181364"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Tue May 22 14:32:22 2012 +0200"
      },
      "committer": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Mon Jun 25 19:03:23 2012 +0200"
      },
      "message": "build: allow configure and build in a separate directory\n\nSome .h files in lib/ are autogenerated. The search path should\ninclude the build directory and the source directory. They usually\nmatch but sometimes, they may be different. For example:\n\n $ mkdir build\n $ cd build\n $ ../configure\n $ make\n"
    },
    {
      "commit": "feb6c53eacf630bf18d29e1994f65e567dbdd985",
      "tree": "4401c28048c69cdbced6be4ab1cd3bbd496b50af",
      "parents": [
        "831aeb9a87d9071829758caf11130aee5578f9c2"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 07 04:58:49 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "vtysh: Vtysh support for babeld.\n"
    },
    {
      "commit": "0b42c70840e16b048f62a38652123eb2cb900b65",
      "tree": "d0aec2e81624a7b0c43a0319515d257439f57e59",
      "parents": [
        "a19a3bf94740aebff6fdfc76f3d4b17c0013fae4"
      ],
      "author": {
        "name": "Ang Way Chuang",
        "email": "wcang79@gmail.com",
        "time": "Fri Jan 27 20:52:27 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "vtysh: fix regexp for install_element() in babeld\n"
    },
    {
      "commit": "566b36ebf903fd873c974ba34c19097d8fb48ce4",
      "tree": "8205c1387ca019b608e745049c6ebee0c32d6cff",
      "parents": [
        "ad61af67b548fa787d4c1da0024ba30f8c3b19c8"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Tue Sep 27 19:27:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 19:00:02 2011 +0400"
      },
      "message": "vtysh: [build] silence preprocessor errors in some cases\n\n* extract.pl.in: use configured CPPFLAGS in cpp invocation.\n"
    },
    {
      "commit": "10895fd6c8f7383786f5a03cf99c0a796792ba1d",
      "tree": "803907d4ada28b762b0d24533cdd7ab7cec21ecb",
      "parents": [
        "320da874d75acb7d0cb69c531ee6255e63fe0336"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jul 03 19:34:48 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jul 03 19:34:48 2008 +0000"
      },
      "message": "[vtysh] small fix to previous CMD_AS_RANGE patch, and add missing command\n\n2008-07-03 MIYAJIMA Mitsuharu \u003cmiyajima.mitsuharu@anchor.jp\u003e\n\n\t* extract.pl.in: Fix as-range to match CPP output.\n\t* vtysh.c: Add missing router_bgp_view_cmd alias.\n"
    },
    {
      "commit": "320da874d75acb7d0cb69c531ee6255e63fe0336",
      "tree": "063cceec70b3d71ef65a957956088f06d6b5bbe5",
      "parents": [
        "b608d5b5ac469d47072aedd573e5d3475f4d9cf4"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jul 02 13:40:33 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jul 02 13:40:33 2008 +0000"
      },
      "message": "[vty] CMD_AS_RANGE accidently quoted and so not expanded in vty\n\n2008-07-02 MIYAJIMA Mitsuharu \u003cmiyajima.mitsuharu@anchor.jp\u003e\n\n\t* *.c: CMD_AS_RANGE was being used inside command strings, and thus\n\t  not being expanded, fix by dequoting.\n"
    },
    {
      "commit": "0b2aa3a0a8b095bdef1eddda117d173af75dede2",
      "tree": "29201cb2beec187409e842b4078ed8a8047d3f11",
      "parents": [
        "7593fddfa1558d086e3142ad96cf2790007f5d84"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Oct 14 22:32:21 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Oct 14 22:32:21 2007 +0000"
      },
      "message": "[bgpd] Merge AS4 support\n\n2007-10-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* NEWS: Note that MRT dumps are now version 2\n\t* (general) Merge in Juergen Kammer\u0027s AS4 patch.\n\n2007-09-27 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_aspath.c: (assegment_normalise) remove duplicates from\n\t  from sets.\n\t  (aspath_reconcile_as4) disregard a broken part of the RFC around\n\t  error handling in path reconciliation.\n\t* aspath_test.c: Test dupe-weeding from sets.\n\t  Test that reconciliation merges AS_PATH and AS4_PATH where\n\t  former is shorter than latter.\n\n2007-09-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* aspath_test.c: Test AS4_PATH reconcilation where length\n\t  of AS_PATH and AS4_PATH is same.\n\n2007-09-25 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_open.c: (peek_for_as4_capability) Fix to work.\n\t* bgp_packet.c: (bgp_open_receive) Fix sanity check of as4.\n\t* tests/bgp_capability_test.c: (general) Extend tests to validate\n\t  peek_for_as4_capability.\n\t  Add test of full OPEN Option block, with multiple capabilities,\n\t  both as a series of Option, and a single option.\n\t  Add some crap to beginning of stream, to prevent code depending\n\t  on getp \u003d\u003d 0.\n\n2007-09-18 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_open.c: (bgp_capability_as4) debug printf inline with others.\n\t  (peek_for_as4_capability) There\u0027s no need to signal failure, as\n\t  failure is better dealt with through full capability parser -\n\t  just return the AS4, simpler.\n\t* bgp_packet.c: (bgp_open_receive) Update to match\n\t  peek_for_as4_capability change.\n\t  Allow use of BGP_AS_TRANS by 2b speakers.\n\t  Use NOTIFY_OPEN_ERR rather than CEASE for OPEN parsing errors.\n\t  (bgp_capability_msg_parse) missing argument to debug print\n\t  (bgp_capability_receive) missing return values.\n\t* tests/bgp_capability_test.c: (parse_test) update for changes to\n\t  peek_for_as4_capability\n\n2007-07-25 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* Remove 2-byte size macros, just make existing macros take\n\t  argument to indicate which size to use.\n\t  Adjust all users - typically they want \u00271\u0027.\n\t* bgp_aspath.c: (aspath_has_as4) New, return 1 if there are any\n\t  as4\u0027s in a path.\n\t  (aspath_put) Return the number of bytes actually written, to\n\t  fix the bug Juergen noted: Splitting of segments will change\n\t  the number of bytes written from that already written to the\n\t  AS_PATH header.\n\t  (aspath_snmp_pathseg) Pass 2-byte flag to aspath_put. SNMP\n\t  is still defined as 2b.\n\t  (aspath_aggregate) fix latent bug.\n\t  (aspath_reconcile_as4) AS_PATH+NEW_AS_PATH reconciliation\n\t  function.\n\t  (aspath_key_make) Hash the AS_PATH string, rather than\n\t  just taking the addition of assegment ASes as the hash value,\n\t  hopefully sligthly more collision resistant.\n\t  (bgp_attr_munge_as4_attrs) Collide the NEW_ attributes\n\t  together with the OLD 2-byte forms, code Juergen\n\t  had in bgp_attr_parse but re-organised a bit.\n\t  (bgp_attr_parse) Bunch of code from Juergen moves\n\t  to previous function.\n\t  (bgp_packet_attribute) Compact significantly by\n\t  just /always/ using extended-length attr header.\n\t  Fix bug Juergen noted, by using aspath_put\u0027s\n\t  (new) returned size value for the attr header rather\n\t  than the (guesstimate) of aspath_size() - the two could\n\t  differ when aspath_put had to split large segments, unlikely\n\t  this bug was ever hit in the \u0027wild\u0027.\n\t  (bgp_dump_routes_attr) Always use extended-len and\n\t  use aspath_put return for header length. Output 4b ASN\n\t  for AS_PATH and AGGREGATOR.\n\t* bgp_ecommunity.c: (ecommunity_{hash_make,cmp}) fix\n\t  hash callback declarations to match prototypes.\n\t  (ecommunity_gettoken) Updated for ECOMMUNITY_ENCODE_AS4,\n\t  complete rewrite of Juergen\u0027s changes (no asdot support)\n\t* bgp_open.c: (bgp_capability_as4) New, does what it says\n\t  on the tin.\n\t  (peek_for_as4_capability) Rewritten to use streams and\n\t  bgp_capability_as4.\n\t* bgp_packet.c: (bgp_open_send) minor edit\n\t  checked (in the abstract at least) with Juergen.\n\t  Changes are to be more accepting, e.g, allow AS_TRANS on\n\t  a 2-byte session.\n\t* (general) Update all commands to use CMD_AS_RANGE.\n\t* bgp_vty.c: (bgp_clear) Fix return vals to use CMD_..\n\t  Remove stuff replicated by VTY_GET_LONG\n\t  (bgp_clear_vty) Return bgp_clear directly to vty.\n\t* tests/aspath_test.c: Exercise 32bit parsing. Test reconcile\n\t  function.\n\t* tests/ecommunity_test.c: New, test AS4 ecommunity changes,\n\t  positive test only at this time, error cases not tested yet.\n\n2007-07-25 Juergen Kammer \u003cj.kammer@eurodata.de\u003e\n\n\t* (general) AS4 support.\n\t* bgpd.h: as_t changes to 4-bytes.\n\t* bgp_aspath.h: Add BGP_AS4_MAX and BGP_AS_TRANS defines.\n\t* bgp_aspath.c: AS_VALUE_SIZE becomes 4-byte, AS16_VALUE_SIZE\n\t  added for 2-byte.\n\t  Add AS16 versions of length calc macros.\n\t  (aspath_count_numas) New, count number of ASes.\n\t  (aspath_has_as4) New, return 1 if there are any as4\u0027s in a\n\t  path.\n\t  (assegments_parse) Interpret assegment as 4 or 2 byte,\n\t  according to how the caller instructs us, with a new\n\t  argument.\n\t  (aspath_parse) Add use32bit argument to pass to\n\t  assegments_parse. Adjust all its callers to pass 1, unless\n\t  otherwise noted.\n\t  (assegment_data_put) Adjust to be able to write 2 or 4 byte\n\t  AS, according to new use32bit argument.\n\t  (aspath_put) Adjust to write 2 or 4.\n\t  (aspath_gettoken) Use a long for passed in asno.\n\t* bgp_attr.c: (attr_str) Add BGP_ATTR_AS4_PATH and\n\t  BGP_ATTR_AS4_AGGREGATOR.\n\t  (bgp_attr_aspath) Call aspath_parse with right 2/4 arg, as\n\t  determined by received-capability flag.\n\t  (bgp_attr_aspath_check) New, code previously in attr_aspath\n\t  but moved to new func so it can be run after NEW_AS_PATH\n\t  reconciliation.\n\t  (bgp_attr_as4_path) New, handle NEW_AS_PATH.\n\t  (bgp_attr_aggregator) Adjust to cope with 2/4 byte ASes.\n\t  (bgp_attr_as4_aggregator) New, read NEW_AGGREGATOR.\n\t  (bgp_attr_parse) Add handoffs to previous parsers for the two\n\t  new AS4 NEW_ attributes.\n\t  Various checks added for NEW/OLD reconciliation.\n\t  (bgp_packet_attribute) Support 2/4 for AS_PATH and\n\t  AGGREGATOR, detect when NEW_ attrs need to be sent.\n\t* bgp_debug.{c,h}: Add \u0027debug bgp as4\u0027.\n\t* bgp_dump.c: MRTv2 support, unconditionally enabled, which\n\t  supports AS4. Based on patches from Erik (RIPE?).\n\t* bgp_ecommunity.c: (ecommunity_ecom2str) ECOMMUNITY_ENCODE_AS4\n\t  support.\n\t* bgp_open.c: (peek_for_as4_capability) New, peek for AS4\n\t  capability prior to full capability parsing, so we know which\n\t  ASN to use for struct peer lookup.\n\t  (bgp_open_capability) Always send AS4 capability.\n\t* bgp_packet.c: (bgp_open_send) AS4 handling for AS field\n\t  (bgp_open_receive) Peek for AS4 capability first, and figure\n\t  out which AS to believe.\n\t* bgp_vty.c: (bgp_show_peer) Print AS4 cap\n\t* tests/aspath_test.c: Support asn32 changes, call aspath_parse\n\t  with 16 bit.\n\t* vtysh/extract.pl: AS4 compatibility for router bgp ASNUMBER\n\t* vtysh/extract.pl.in: AS4 compatibility for router bgp ASNUMBER\n\t* vtysh/vtysh.c: AS4 compatibility for router bgp ASNUMBER\n"
    },
    {
      "commit": "7514fb7739f74311830e9ddd1381d0d228224f61",
      "tree": "4d4b9a4fdfcea4cb6fa496085327f1aae9a9a380",
      "parents": [
        "5fa05099567bbe42aae87a9bef8fd630b3666a4d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 02 16:05:35 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 02 16:05:35 2007 +0000"
      },
      "message": "[zebra] Routemap support on received routes, with \u0027set src\u0027 command (linux)\n\n2007-05-01 David L Stevens \u003cdlstevens@us.ibm.com\u003e\n\n\t* (general) These changes collectively add route-map and\n\t  prefix-list support to zebra and fix a bug in \"show\n\t  route-map\" (with no argument).\n\t* doc/main.texi: added route-map, prefix-list, ip protocol\n\t  and set src documentation\n\t* lib/command.h: added PROTOCOL_NODE type\n\t* lib/log.c: (proto_name2num) new function, protocol name to\n\t  number translation.\n\t* lib/routemap.c: (vty_show_route_map) fixed \"show route-map\"\n\t  without route-map name\n\t* lib/routemap.h: added RMAP_ZEBRA type\n\t* lib/zebra.h: added proto_name2num() prototype\n\t* vtysh/extract.pl.in: added VTYSH_ZEBRA flag for route-map and\n\t  plist\n\t* vtysh/Makefile.am: added zebra_routemap.c\n\t* vtysh/vtysh.h: added VTYSH_ZEBRA flag to VTYSH_RMAP\n\t* zebra/connected.c: (connected_up_ipv4) added src preference argument\n\t  to rib_add_ipv4()\n\t* zebra/kernel_socket.c: (rtm_read) ditto\n\t* zebra/main.c: added prefix list initialization\n\t* zebra/Makefile.am: added zebra_routemap.c source file\n\t* zebra/rib.h: added generic address union \"g_addr\" and use in\n\t  existing places that had an explicit union.\n\t  Added \"src\" to struct nexthop.\n\t  Added preferred src arg to nexthop_ipv4_add and rib_add_ipv4.\n\t* zebra/rt_netlink.c: (netlink_routing_table) set preferred source on\n\t  netlink messages.\n\t  (netlink_route_change) ditto\n\t  (netlink_route_multipath) ditto.\n\t* zebra/rtread_getmsg.c: (handle_route_entry) added (NULL) src to\n\t  rib_add_ipv4() call.\n\t* zebra/rtread_proc.c: (proc_route_read) ditto\n\t* zebra/zebra_rib.c: (nexthop_ipv4_add) add src argument.\n\t  (nexthop_ipv4_ifindex_add) ditto\n\t  (rib_add_ipv4) ditto\n\t  (nexthop_active_check) Add route-map processing.\n\t* zebra/zebra_routemap.c: new file for zebra route-map commands.\n\t* zebra/zebra_vty.c: (ip_protocol_cmd) Apply route-map to protocol\n\t  (vty_show_ip_route_detail) added \"src\" printing\n\t  (vty_show_ip_route) ditto\n\t  (show_ip_protocol_cmd) new command, list routemaps.\n\t  (config_write_protocol) write out routemap protocl config.\n\t  (zebra_vty_init) Install the new routemap protocol commands.\n\t* zebra/zserv.c: (zread_ipv4_add) added (NULL) src arg\n\t  (zebra_init) init zebra route-maps.\n\t* zebra/zserv.h: add zebra_route_map_init\n"
    },
    {
      "commit": "53a6f932032a30625358414ae0f77790656ccaca",
      "tree": "aa5b33c8e58024ba68543ad8e2c3eaaa36984fd8",
      "parents": [
        "ca16218df74a43491e34a577db5023c89a7e79c8"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 15 06:50:53 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 15 06:50:53 2005 +0000"
      },
      "message": "\t* vtysh.c: Fix warning by casting rl_bind_key 2. argument correctly.\n\t* extract.pl.in: Fix warning - add isisd/topology to the includes.\n"
    },
    {
      "commit": "528bed4a9a997216ba95e3ae445efa79436cc551",
      "tree": "9fc01b13c038a322aad47364cda888f2ed098e20",
      "parents": [
        "b5d518fb32a796a0b376d79bdc5199c48d0a4052"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Apr 07 18:42:09 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Apr 07 18:42:09 2005 +0000"
      },
      "message": "\t* extract.pl.in: Ignore \"router zebra\".\n"
    },
    {
      "commit": "7f22396bdc304c14f1c7ef0402ba9bd1450661b7",
      "tree": "45f231620cdec24c12b4b59be738dc144b4210d1",
      "parents": [
        "2d58228ecabb23b064e8a06e6241cf0d7e5ca785"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 28 15:38:16 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 28 15:38:16 2005 +0000"
      },
      "message": "\t* extract.pl.in: Use SNMP_INCLUDES to avoid warnings if compiling with\n\t  snmp support.\n"
    },
    {
      "commit": "43fb1352a1cc9ef05ac7124d18099ed6f8c3986a",
      "tree": "a55e49a7aad13e427d4a08e2c88537053e1640a4",
      "parents": [
        "c729c65010a11f011ebae654fa1a8444c7443c10"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 08:47:32 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 08:47:32 2004 +0000"
      },
      "message": "All access lists (IPv4 and IPv6) are used by all daemons to limit access to\nvty.\n"
    },
    {
      "commit": "e7168df4eff0d377621c45deb32cfcfa72e0dd83",
      "tree": "86c4017761ffd8cfdbc16223915a9f537844c4f2",
      "parents": [
        "eef1fe11b89c5ec3c035ff6e4a9acfbc5780b539"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 20:11:32 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 20:11:32 2004 +0000"
      },
      "message": "Big vtysh cleanup. See changelogs for details.\n"
    },
    {
      "commit": "b63dc1f30ee935184918becd4dbfd535c632c620",
      "tree": "101c63423965284c7a0a7e8aeb67bd7c4425b4f5",
      "parents": [
        "33394766a502eff6315bd8d9b1c43a773b2ec35b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 13 12:59:08 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 13 12:59:08 2004 +0000"
      },
      "message": "2004-09-13 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* Makefile.am: remove zebra/irdp.c from list - dead.\n\t* extract.pl.in:  Substitute in the autoconf srcdir/builddir paths\n\t  for includes to cpp.\n"
    },
    {
      "commit": "0e82d0e1204e45ecce773a7e19f7d64140f7a66a",
      "tree": "9c1065e4ca14d42e8d68eba935189f42aab182a4",
      "parents": [
        "72e2d828154a5f3ae463e211c5f3787fc0624a90"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 13 05:00:18 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 13 05:00:18 2004 +0000"
      },
      "message": "2004-09-13 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * Makefile.am: extract.pl isnt in srcdir, it\u0027s always in the\n          builddir.\n        * extract.pl.in: match on end of filenames, filename could contain\n          various preamble due to out of tree builds.\n"
    },
    {
      "commit": "fc9d074576c89299cb624b49810b52eda2da9b2c",
      "tree": "9e83c1c0ecbd4d81313bdfbcd1716983e9825c23",
      "parents": [
        "cf3138890672e3ab65d10d50c1bb48ace04f6066"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Jun 30 14:25:12 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Jun 30 14:25:12 2004 +0000"
      },
      "message": "Make vtysh work on NetBSD, and minor cleanups:\n\n  if --enable-vtysh, look for perl, and substitute into vtysh/extract.pl,\n  rather than assuming perl is in /usr/bin\n\n  Look for tputs in libtermcap and libcurses, in addition to\n  previously-searched locations.  Follow GNU readlines search order.\n\n  Clean up --enable-vtysh definition in configure.ac.\n\n  Add vtysh/vtysh_cmds.c to CLEANFILES.  This is important if\n  extract.pl fails, so that \u0027make clean \u0026\u0026 make\u0027 will regenerate\n  vtysh_cmds.c rhather than using the old zero-length file.\n"
    },
    {
      "commit": "6c0f9a782a7be49de53b5ae00980990d96edbf03",
      "tree": "10ebaa062f04c94f7964d4b6c8df5c8b49fca507",
      "parents": [
        "74bcbed6e0979c42ca4681eb488ce30d4063d075"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 20 09:30:57 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 20 09:30:57 2004 +0000"
      },
      "message": "Zebra daemon has access lists.\n"
    },
    {
      "commit": "c25e458a4de6b3fc9089fbc21b0ef4a6ba8e6018",
      "tree": "40cee762b8d411d8c0c9d19851e2f804811256ad",
      "parents": [
        "c32e1b5788b996f6c5a9521c1fc79f5640e10d99"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Dec 23 10:39:08 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Dec 23 10:39:08 2003 +0000"
      },
      "message": "*** empty log message ***\n"
    },
    {
      "commit": "4f84947985d5a8f43f6f694055333af1e897de0e",
      "tree": "a27dd6e338687e6da837d8a7ac27f46ee0c35bcc",
      "parents": [
        "16705130a1c842f7de252779514e4e7f92d967e2"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 15:13:49 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 15:13:49 2003 +0000"
      },
      "message": "RIP has now \"route-map x [in|out] \u003cinterface\u003e\" as well.\n"
    },
    {
      "commit": "0750d21fcfb034e47f781b09d984bfeec62b56a4",
      "tree": "d8be8f2b61607f34a74c1897e6abdf3466917ff3",
      "parents": [
        "04a72e593b870688649653f569ebc0e7589b4fdb"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat May 24 21:41:49 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat May 24 21:41:49 2003 +0000"
      },
      "message": "Revert my http://hasso.linux.ee/zebra/ht-ifrmap-14042003.patch patch. Used\nsame idea as in lib/distribute.c to allow extract.pl to pick up commands\nfor vtysh.\n"
    },
    {
      "commit": "a304c1a4121c27ef807ffbea979f1460d4c5e0ee",
      "tree": "cfa8276ee7f7d21491fec44f87aff20b64ee1c1f",
      "parents": [
        "28efaa3669242a2a00207e209a86aebfbefaf6e0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 21 17:18:09 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 21 17:18:09 2003 +0000"
      },
      "message": "From: Hasso Tepper \u003chasso@estpak.ee\u003e\nSubject: [zebra 19120] [PATCH] Vtysh\n\nI really don\u0027t know how I could miss that one. Opsf(6)d have\nprefix-lists as well.\n"
    },
    {
      "commit": "ba23a6919378933d9502ac15dcb2c13231be2663",
      "tree": "32912b4cfa74db9a58fa418b647ad1a90cc63269",
      "parents": [
        "41ce926cb4c0eb7fc07aed25c0452793fc054fc5"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Apr 19 15:55:08 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Apr 19 15:55:08 2003 +0000"
      },
      "message": "Hasso Tepper\nhttp://hasso.linux.ee/zebra/ht-distribute-18042003.patch\nAllows to extract.pl to pickup \"distribute-list ...\" commands for vtysh\n(ripngd and ripd).\n"
    },
    {
      "commit": "73ffb25bec41d729b0dac34d17b6ccd4aa25803b",
      "tree": "69906ad70c8dd767c51677480f8034a3be3f5edd",
      "parents": [
        "147193a28a19f2f98545b14ad38935423415f53e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Apr 19 15:49:49 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Apr 19 15:49:49 2003 +0000"
      },
      "message": "Hasso Tepper\nhttp://hasso.linux.ee/zebra/ht-routemap-18042003_5.patch\nTrivial fixes to sync daemon\u0027s route-map commands to have same syntax. Fixes\na lot of errors with \"match ...\" and \"set ...\" commands when using vtysh.\n"
    },
    {
      "commit": "6898008484a562ff5bae178a6fb0bd885fe8b1e5",
      "tree": "27797ca6532ca0ef85f538ac8f3070639e579229",
      "parents": [
        "1ef74ef70bdab672458c4d1e4cea24197066c0af"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Mar 25 05:07:42 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Mar 25 05:07:42 2003 +0000"
      },
      "message": "2003-03-25 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* sync to latest zebra CVS\n\t* spec file: updated and added define for ospf-api/client\n\nNB: OSPF-API has been broken by the zebra.org changes, which\nhas added struct ospf * as a new arg to many functions\n"
    },
    {
      "commit": "569c0f0188168b79044cc8fcba4639585a3be661",
      "tree": "873bf6be6ca17ba3327ab76cf3cb4739792228b4",
      "parents": [
        "338a99166f59e474c522d2eb7417b0de57f598d2"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Mar 02 21:19:26 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Mar 02 21:19:26 2003 +0000"
      },
      "message": "Updated vtysh_cmd\u0027s. Previously, this was only updated in rpm builds.\n"
    },
    {
      "commit": "718e3744195351130f4ce7dbe0613f4b3e23df93",
      "tree": "bac2ad39971cd43f31241ef123bd4e470f695ac9",
      "parents": [],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "message": "Initial revision\n"
    }
  ]
}
