commit f191f1e6d64e9f2cefacc91023a2359d037fea79 Author: David Lamparter Date: Tue Mar 3 00:50:57 2015 +0100 release: 0.99.24 commit 4c421215a0330b96d85879810558d40027a96ca6 Author: David Lamparter Date: Mon Mar 2 06:42:11 2015 +0100 zebra: print "no link-detect" The default for this is slated to change, so let's print the current default value for preexisting configurations. Signed-off-by: David Lamparter commit 75a3cf6cf69f6ab940f8421b0f79b2b1f689b904 Author: Brian Bennett Date: Tue Feb 17 23:26:12 2015 +0000 solaris: fix SMF manifest dependency model and start method Resolves an issue where quagga daemons restart in an infinite loop. Quagga daemons declare a dependency on zebra that requires a restart of the daemon when zebra restarts and they explicitly restart zebra, which again triggers their own restart. Restarting zebra when other daemons are started is explicitly removed, leaving dependency management up to SMF rather than handling it in the start method. solaris/quagga.init.in: Remove calls to routeadm_zebra_enable, and the routeadm_zebra_enable function. solaris/quagga.xml.in: Set dependency zebra grouping to require_all. Fixes: #818 Signed-off-by: Greg Troxel Signed-off-by: David Lamparter commit b8a893c38e97377b2a2582b1621b988e55811412 Author: Brian Bennett Date: Tue Feb 17 22:32:22 2015 +0000 build: Extend ip_mreq hack to DragonFlyBSD and SunOS This extends the ip_mreq hack to DragonFlyBSD and SunOS. This has been in pkgsrc for some time. I've cleaned up the pkgsrc patch a little and am submitting it upstream. Credit is due to pkgsrc maintainers. Tested on SmartOS (illumos). Fixes: #819 Signed-off-by: Greg Troxel Signed-off-by: David Lamparter commit cc81308148271aeed2277e16885ddca7e2d5bb9b Author: David Lamparter Date: Tue Feb 10 11:39:39 2015 +0100 build: enable AM_SILENT_RULES This shuts up make by default (can be reversed with "make V=1" or --disable-silent-rules). This is useful since warnings and error messages become more visible with less noise. Tested on Linux with GNU make and FreeBSD with system's BSD make. Signed-off-by: David Lamparter Acked-by: Paul Jakma commit 656a2c0724f0978d9cc5cf892f0373e808639288 Author: David Lamparter Date: Mon Feb 9 11:36:10 2015 +0100 build: enable isisd by default Most distributors enable it anyway, and it's not THAT broken anymore to mandate disabling it by default. Signed-off-by: David Lamparter Acked-by: Paul Jakma commit f16195c173f8e2e17ea35f143b6ffcd50c0619fb Author: David Lamparter Date: Fri Nov 28 08:40:58 2014 +0100 doc: fix some warnings Signed-off-by: David Lamparter Acked-by: Paul Jakma commit 7abd87529499e5d76435213e2590838c5e320a9a Author: David Lamparter Date: Sat Nov 22 10:43:29 2014 -0800 build: track config args Record the ./configure arguments used and make them user-visible. Signed-off-by: David Lamparter Acked-by: Paul Jakma commit 85c63b844df4a295a64f37573e0ba08a7cc63659 Author: David Lamparter Date: Sat Nov 22 10:31:44 2014 -0800 tests: remove --disable-ipv6 With --disable-ipv6 gone, the IPv6 detection logic in the tests is not needed anymore either. Signed-off-by: David Lamparter Acked-by: Paul Jakma commit 7fe17e6975f4c4dd359364177a1d73ed770d6cd4 Author: David Lamparter Date: Sat Nov 22 10:31:33 2014 -0800 build: remove --disable-ipv6 Building with IPv6 disabled tends to break rather often and sprinkles ugly #ifdefs around the code. All that only to support systems where the C library doesn't have IPv6 capability. The year now being 2015, if this is a problem the thing to fix is the C library. The implication of this patch is that future patches need not care about HAVE_IPV6 = 0 and may remove ifdefs gratuitously. This patch doesn't remove these ifdefs to not create unneccessary churn. Signed-off-by: David Lamparter Acked-by: Paul Jakma commit 237aac56960575f6ad2451ba2796d94bd5ae4b33 Author: David Lamparter Date: Sat Jun 28 22:23:10 2014 +0200 build: get rid of INCLUDES, use AM_CPPFLAGS INCLUDES in configure.ac was not used at all, and INCLUDES in Makefile.am is supposed to be AM_CPPFLAGS these days. Reduces warnings spewed during bootstrap/autoreconf. Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Feng Lu Acked-by: Paul Jakma commit b6fa76098d127f5641a7dda0dee21f06ca167edb Author: David Lamparter Date: Sat Jun 28 22:15:59 2014 +0200 build: harmonize configure help strings Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Feng Lu Acked-by: Paul Jakma commit e8d0d24e7ac5e5ffdee04128b08a6004fdb831ba Author: David Lamparter Date: Sat Jun 28 22:07:41 2014 +0200 build: remove --enable-solaris parameter This switch controlled descending into the solaris/ subdirectory, which contains package descriptions and init scripts. If they're not appropriate, they'd better be removed outright. Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Feng Lu Acked-by: Paul Jakma commit 39b233f0d789a6b5273c3dd279f17a67c718ea1a Author: David Lamparter Date: Sat Jun 28 21:49:18 2014 +0200 zebra: remove rt_ioctl kernel interface None of the BSDs uses ioctls to set routes anymore. Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Feng Lu Acked-by: Paul Jakma commit 29ed622f3dc32816236a89de6fce323e3b092cf0 Author: David Lamparter Date: Sat Jun 28 21:42:25 2014 +0200 build: remove ancient Linux/BSD IPv6 cruft IPv6 functions in a separate library... yeah, right. Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Feng Lu Acked-by: Paul Jakma commit 51bdebad99fe813d1b7104543b352f0e39b1c8dc Author: David Lamparter Date: Sat Jun 28 21:28:50 2014 +0200 zebra: remove kernel_delete_ipv6_old() The only user of this was rib_bogus_ipv6(), which was removed in the previous commit. Good riddance. Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Feng Lu Acked-by: Paul Jakma commit 86a82e99aa3728d78a1ec65b60a2162914cd7519 Author: David Lamparter Date: Sat Jun 28 21:26:36 2014 +0200 zebra, ripngd: remove ::/64 special-casing In the 90ies, IPv4 was believed to exist within IPv6, with some kernels implementing this belief in code... Our code here is keyed to "#ifdef LINUX", yet no Linux from the past 10 years had this, making the code completely useless. FreeBSD 10.0 does in fact have a "::/96 via ::1 dev lo0 reject" route. IMHO we shouldn't mess with that, the admin can filter as neccessary anyway. Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Feng Lu [DL: slightly adjusted commit message to remove misunderstanding] Acked-by: Paul Jakma commit 6d6df30386423518b5daef93c2f047b4140f85f4 Author: David Lamparter Date: Sat Jun 28 21:12:37 2014 +0200 build: remove INRIA, NRL and MUSICA IPv6 quirks Valar dohaeris. Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Feng Lu Acked-by: Paul Jakma commit 0f048b90b5d6e4bd185913945b68dd254126eb9f Author: David Lamparter Date: Sat Jun 28 21:01:32 2014 +0200 build: remove AIX, NEC EWS and IRIX Valar morghulis. Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Feng Lu Acked-by: Paul Jakma commit 2e5ca49758543cde69d98f4a6a7b39486e88311d Author: David Lamparter Date: Sat Jun 28 20:54:31 2014 +0200 build: remove Linux non-netlink config This path is deprecated, completely untested, likely broken and will not be maintained. Kill it with fire. Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Feng Lu Acked-by: Paul Jakma commit 79f74962d20fa2c90df5a57335fc3b5e19bfeccf Author: David Lamparter Date: Sat Jun 28 20:22:55 2014 +0200 build: remove bogus/deprecated inet_* tests These actually break configure on FreeBSD very subtly, because inet_aton and __inet_aton are both detected, and then later other tests get warnings about HAVE_INET_ATON being defined twice. That said, they're incorrect to begin with since they detect alternative functions but there is nothing in place to actually use these alternates. Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Feng Lu Acked-by: Paul Jakma commit 369b973e42f2b4f00a02e3ca8a1c6f1b252cf4ae Author: David Lamparter Date: Tue Feb 10 11:00:30 2015 +0100 build: Quagga 0.99.24-rc1 this is not a full release version, so neither release notes nor documentation are updated yet. Also, signing the tag with my private GPG key instead of the Quagga one. Signed-off-by: David Lamparter commit 77ef0ace6b178601a0649ecf88c12c8203c9e077 Author: David Lamparter Date: Wed Feb 4 06:24:41 2015 +0100 build: enable pimd in test script Signed-off-by: David Lamparter commit 87fbe9ec6188f18c77171fa6ebad25dd2d3b8b1f Merge: 7397217 7d924b4 Author: David Lamparter Date: Wed Feb 4 07:01:14 2015 +0100 pimd: merge pimd as of 2015-01-19 Welcome pimd to the Quagga daemon zoo! This is a merge of commit 77ae369 ("pimd: Log ifindex found for an interface when zebra lib reports a new connected address."), with the intermediate "reconnect" changes removed (c9adf00...d274381). d274381 is replaced with b162ab7, which includes some changes. In addition, 4 reconnect-related changes and 1 cosmetic one have been bumped out. The rebase command used to produce the branch that is merged here is: git rebase --onto b162ab7 c9adf00 77ae369 Note that 3 patches had their author rewritten from "Anonymous SR#108542 <>" (which is not a valid git author ID) to: "Savannah SR#108542 " (which is the e-mail address listed in the associated Savannah ticket) Signed-off-by: David Lamparter commit 7397217e9dbc7384951ea146c0f9ca5784f6561e Author: David Lamparter Date: Mon Feb 2 03:00:22 2015 +0100 doc: explain rpf lookup default mode Reported-by: Alexis Rosen Signed-off-by: David Lamparter commit 3a27aae7e479b2fa09cc9f27c439b9dfdb383364 Author: David Lamparter Date: Fri Jan 30 01:44:25 2015 +0100 doc: zebra multicast RIB commands Signed-off-by: David Lamparter commit 863f20c326758c8a97e0a7a41c87355b66c4012d Author: David Lamparter Date: Tue Jan 27 20:24:15 2015 +0100 zebra: mark multicast commands experimental depending on feedback from actually having these commands in a released version, we may want to adjust them. Thus, mark them as experimental so users are aware of this. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit 3b02fe84aae567c56ef63e74cdb0dc63c66e2968 Author: David Lamparter Date: Thu Jan 22 19:12:35 2015 +0100 zebra: add "show ip rpf" to get result of RPF lookup Checking what route exactly a RPF lookup for a given source uses is essential for an administrator to debug multicast routing issues. This command provides exactly that, using the multicst RPF lookup function and printing out its result to the CLI. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit bd0781296703cf2eddebced34258a1897a03b535 Author: David Lamparter Date: Tue Jan 6 19:53:24 2015 +0100 zebra: make MRIB lookup behaviour switchable depending on the usage scenario (and availability of multitopology IGP protocols, which is currently zero in Quagga), different approaches of Multicast RPF lookups are useful. Reference behaviours from commercial vendors are urib-only/mrib-only (Juniper, depending on inet.2 availability) and lowest-distance (Cisco). As we are currently without MT IGP support, mrib-first seems the most useful default for Quagga. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit 24480d426046e46fbcec098be1147650d6d3ff50 Author: David Lamparter Date: Thu Jan 22 19:09:36 2015 +0100 zebra: return route_node from rib_match_ipv4_safi The multicast code needs to know the route_node in addition to the rib entry in order to perform distance or prefix-length comparisons. Add it as optional "out" pointer parameter. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit 7ce9e6a3e8f0318656c1e619f48f3935e41638f1 Author: David Lamparter Date: Mon Jan 12 07:05:06 2015 +0100 zebra: dummy kernel "install" multicast routes This is a followup to 9511633 ("zebra: MBGP routes should not be installed in the kernel"), which was correct in disabling MRIB routes being installed in the kernel, yet broke the MRIB since now routes were never marked as active. Hence, push down the check into the kernel install functions, so that the routes are still marked active. At the same time, the FPM calls get a check each since otherwise we'd bump the FPM interface on MRIB updates. Fixes: 9511633 ("zebra: MBGP routes should not be installed in the kernel") Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit a76681b66746a8b1cbaea7032044b93958473aa1 Author: David Lamparter Date: Thu Jan 22 19:03:53 2015 +0100 zebra: fix optional distance on static mrib route Unfortunately, the quagga CLI parser doesn't support [<1-255>]. Fix by working around with an alias. Replaces the following commits: - zebra: mrib: [no] ip mroute - require distance. - zebra: mrib: [no] ip mroute - make distance optional. (Rewritten as alias) Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit 33d86db3df7052da33990b47ad5a171dad6df691 Author: Everton Marques Date: Mon Jul 14 11:19:00 2014 -0300 zebra: mrib: static route support With the MRIB being independent from the Unicast RIB, there's currently now way to add static routes to the MRIB. Address that by adding a separate set of commands for MRIB static routes. Combines these original patches: - zebra: mrib: ip mroute command to add unicast route to MRIB for multicast RPF. - zebra: mrib: no ip mroute: Fix removal of static multicast RPF route. - zebra: mrib: remove unused static_add/delete_ipv4 - zebra: Cleanups to zebra_rib. - pimd: Merge pim-only branch. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit f598cf7ecc8dd72dca08e97eb766e5ccaabe3424 Author: David Lamparter Date: Sat Nov 22 14:44:20 2014 -0800 zebra: kill rib_match_ipv4() Since this function is internal to zebra, there is no reason to keep this one-line indirect wrapper to rib_match_ipv4_safi() around. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit 83d711234a22a2e7996905667468b0276e5b2c57 Author: Everton Marques Date: Fri Sep 19 16:39:34 2014 -0300 zebra: mrib: Include BGP routes in RPF lookups The rib_match_ipv4() function was previously used only for iBGP recursive nexthop lookups, which ignore eBGP routes. This is not desirable for PIM RPF lookups, which may well use an eBGP route. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit 4e5275befee4acd91edd835a0b037cc2161ff834 Author: Everton Marques Date: Tue Jul 1 15:15:52 2014 -0300 zebra: add ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB This adds a new zapi call "ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB" performing a Multicast RPF lookup for a given source. Details of the lookup behaviour are left to the zebra side of things. Note: this is non-reactive, as in, only delivers a snapshot of the state at a particular point in time. There's no push notification of changes happening to the RIB. This combines the following 3 original patches: - zebra: add zsend_ipv4_nexthop_lookup_mrib() - zserv: Query mrib (SAFI_MULTICAST). - zebra: Cleanups to zebra_rib. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit f9b9234bae058a7d152c51c318997c459f54e59d Author: Everton Marques Date: Fri Nov 21 15:57:45 2014 -0800 zebra: point rib_match_ipv4() to ._safi() Since rib_match_ipv4() is just rib_match_ipv4_safi() for SAFI_UNICAST, the former can be removed and pointed to the latter instead. Cc: Balaji G Cc: Everton Marques Signed-off-by: David Lamparter commit 3dea1780c98ab3717c9c61f401b66a9c08a23661 Author: Everton Marques Date: Mon Sep 22 19:35:51 2014 -0300 zebra: add rib_match_ipv4_safi() This is the same as rib_lookup_ipv4(), without the SAFI hardcoded. Cc: Balaji G Cc: Everton Marques Signed-off-by: David Lamparter commit ab2ba612320e011abbb1011823b66afc35859081 Author: David Lamparter Date: Thu Jan 22 19:02:13 2015 +0100 zebra: identify MRIB on debug messages since the same code handles both URIB and MRIB, the debug messages can get rather confusing if the RIB isn't identified. Mark the MRIB in debug messages so we can distinguish that. Signed-off-by: David Lamparter commit 9481374d4ff7cfbc6274954bff8b0e4c52578911 Author: David Lamparter Date: Thu Apr 24 20:22:53 2014 +0200 zebra: factor out rib debug logs Introduces a logging function that takes a struct route_node * argument, and prefixes log output with that node's prefix. While this removes some duplication, it will also later be useful for srcdest route nodes. Behaviour before and after the patch should be exactly identical. Signed-off-by: David Lamparter commit 3c28aaf437d8d473adb89c5e74574a61a9ea7cc6 Author: Amritha Nambiar Date: Wed Jan 28 18:09:30 2015 +0000 isisd: match adjacency with source of hellos isis_pdu.c: match adjacency with source of hellos, check for source ID on receiving hello If an adjacency exists, check the adjacency is with the same router as the source of the hellos. In case a mismatch is detected, bring down the adjacency and let the next hellos trigger creating the new adjacency. Signed-off-by: Amritha Nambiar Signed-off-by: David Lamparter commit 92cff4f7cd7e805e6689e73e63029aaccd145eca Author: Lu Feng Date: Thu Jan 8 01:21:02 2015 +0000 isisd: fix crash on changing the circuit type of a passive interface Signed-off-by: Feng Lu Signed-off-by: David Lamparter commit 86ce951e349fd08d1ba2c66f5f6d07756689422a Author: Lu Feng Date: Thu Jan 8 01:39:18 2015 +0000 ospfd: set O-bit in the option of all DD packets If opaque-capability is enabled, we must set the O-bit in the option field of all DD packets. Changing the option field of DD packets may cause the peer to reset the state back to ExStart. Signed-off-by: Feng Lu Signed-off-by: David Lamparter commit cb4fc59c8a0f9df81109d38acbeaab5627e361f5 Author: Milan Kocian Date: Mon Dec 1 12:48:25 2014 +0000 bgpd: fix negative values in output Negative value in output of ecommunities (and as numbers) seems odd :-). This patch fixes it. And add minor formating modification, better for big as numbers. Signed-off-by: Milan Kocian Signed-off-by: David Lamparter commit 143637198e333f0c822766b38f9d8cfe75c04e21 Author: David Lamparter Date: Wed Feb 4 07:26:03 2015 +0100 tests: fix tests for 1a211cb (missing well-known) Fix tests/aspathtest.c again, this time by including a NEXT_HOP attribute (which is out of correct order with AS_PATH, but that doesn't matter here.) This satisfies bgp_attr_check(), which after 1a211cb refuses updates without nexthop attribute. Fixes: 1a211cb ("one more fix for tightening of check for missing well-known attributes") Cc: Paul Jakma Signed-off-by: David Lamparter commit 7d924b422ffdeb37027ac979c6a62d845499fab8 Author: David Lamparter Date: Wed Feb 4 07:00:06 2015 +0100 doc: list pimd.8 in EXTRA_DIST Signed-off-by: David Lamparter commit 60b815eb26c4e94e07524a508433e6f66a6d6183 Author: David Lamparter Date: Wed Feb 4 06:53:46 2015 +0100 vtysh: add missing pimd define Signed-off-by: David Lamparter commit bb7feff0af6c8519df45a4f40f06cdd819fe70d0 Author: David Lamparter Date: Wed Feb 4 06:40:25 2015 +0100 Revert "pimd: clear zclient-update: Reset zclient update connection to zebra daemon" This reverts commit 3456a80f5f8e6e44c30453bd92eabf5faf7ab25b. Conflicts: pimd/pim_zebra.c This depends on the zebra reconnect changes, which we're not picking up at this point. This revert is partial, only bumping out the reconnect-related changes. Signed-off-by: David Lamparter commit 5d5af78a1b9310c0c2290f81ee8abc12d5376500 Author: David Lamparter Date: Wed Feb 4 06:33:59 2015 +0100 Revert "pim: Remove connected addresses on loss of zebra connection." This reverts commit 96b6dfe98793549aca6a7cc77eaf0957b1168ed2. This depends on the zebra reconnect changes, which we're not picking up at this point. Signed-off-by: David Lamparter commit a2805de2b25383695f38a3ebbefe75e26a5e9aba Author: David Lamparter Date: Wed Feb 4 06:33:26 2015 +0100 Revert "pimd: Explicitly restart zclient update connection." This reverts commit 8150beed9a4f50a72696a65c1f40889ab65ad7ff. This depends on the zebra reconnect changes, which we're not picking up at this point. Signed-off-by: David Lamparter commit b3c6afe9fdc8c65d71abde3a2f26525b87189297 Author: David Lamparter Date: Wed Feb 4 06:32:28 2015 +0100 Revert "pimd: Revert: Explicitly restart zclient update connection." This reverts commit 199f85ade39f751dd493fe011107736c9b168953. This depends on the zebra reconnect changes, which we're not picking up at this point. Signed-off-by: David Lamparter commit 1b47764f50cc074ba795d2b4477a3bc2372a8d9b Author: David Lamparter Date: Wed Feb 4 06:15:34 2015 +0100 redhat: revert non-pim changes in .spec No idea what weird Fedora magic this does... if it's needed, it can be pushed separately from pimd. Signed-off-by: David Lamparter commit 85385f7eeee14d529065db7b863478c3ba455dd4 Author: Everton Marques Date: Mon Jan 19 18:25:45 2015 -0200 pimd: Log ifindex found for an interface when zebra lib reports a new connected address. commit d632689579bbcbfb5f38c3faf05ad675e002c059 Author: Donald Sharp Date: Mon Jan 19 16:50:24 2015 -0200 pimd: Fix configuration file reading upon startup Without the fix, qpimd issues this error message: pim_if_add_vif: ifindex=0 < 1 on interface swp1 It happens because in pim_main.c:main() we are initializing zebra with pim_zebra_init() after we read in the configuration with vty_read_config(). See also: https://github.com/udhos/qpimd/issues/3 commit ed14fa00758a156b108854bb35bc5077654f080d Author: Balaji.G Date: Wed Oct 8 01:11:31 2014 -0300 pimd: Addition of Hello & Join-Prune message debug commands Separate "debug pim packets hello and Join-Prune" added to enable hello and Join-Prune debugs specifically commit 21d1e26dcb4dc290fd0fe05618cbc96c67f85ffe Author: Everton Marques Date: Wed Oct 1 18:34:04 2014 -0300 pimd: show ip pim lan-prune-delay: Cosmetic. commit 24e3a9b5ff17553d20a2f9e4ce2a61b5012cd0f6 Author: Everton Marques Date: Tue Sep 30 19:14:19 2014 -0300 pimd: Report del_oif() failure within igmp_source_forward_stop(). commit ddc6659dd0f05b304ef579dcee6ac803e1a4b6d2 Author: Everton Marques Date: Tue Sep 30 16:49:36 2014 -0300 pimd: sh ip multicast: Display zclient socket fail counter. commit 199f85ade39f751dd493fe011107736c9b168953 Author: Everton Marques Date: Tue Sep 30 16:50:40 2014 -0300 pimd: Revert: Explicitly restart zclient update connection. commit a59f21b1a58f121aac466710f32b557a4c75061d Author: Everton Marques Date: Tue Sep 30 17:23:56 2014 -0300 pimd: Update lookup zclient counter for connection failures. commit 8150beed9a4f50a72696a65c1f40889ab65ad7ff Author: Everton Marques Date: Mon Sep 29 17:58:30 2014 -0300 pimd: Explicitly restart zclient update connection. commit e324ddc5c73b2e2fb1c450a5fe927aa336e568e6 Author: Everton Marques Date: Mon Sep 29 17:59:02 2014 -0300 pimd: sh ip multicast: Display zclient sockets. commit 6ab3e2f5759db58469ceb1702df1bc3d18f7a952 Author: Savannah SR#108542 Date: Thu Sep 25 16:59:38 2014 -0300 pimd: Fix attempted out of bounds read when deleteing an interface. https://savannah.nongnu.org/support/index.php?108542 commit ecc1fb93419e0f9d9297f0417bee0b697ce24dec Author: Savannah SR#108542 Date: Thu Sep 25 14:41:43 2014 -0300 pimd: Fix igmp_source_forward_stop called when IGMP forwarding flag is not set in oif_flags. https://savannah.nongnu.org/support/index.php?108542 commit 05c6dcdf8cd8e50681de76cc787f46389a7b9238 Author: Savannah SR#108542 Date: Thu Sep 25 14:52:18 2014 -0300 pimd: Fix invalid memory read when receiving a V1 or V2 query. https://savannah.nongnu.org/support/index.php?108542 commit d8410a0242ab055b96708c5b33358916330bc85a Author: Everton Marques Date: Tue Sep 23 16:14:49 2014 -0300 pimd: Remove non-standard copyright line. commit 05a49cea19d861ceec67ce6402264d353bb3b290 Author: Everton Marques Date: Tue Sep 23 16:14:27 2014 -0300 zebra: mrib: Remove non-standard copyright line. commit 8f4a59aaffd90ac820601fdf69accc8f6c953a1c Author: Everton Marques Date: Tue Sep 23 15:51:11 2014 -0300 pimd: Revert accidental removal of show_memory_isis_cmd(). commit 1a9352a7487531578a0db9ca86c2647f8e304ca4 Author: Everton Marques Date: Tue Sep 23 14:33:34 2014 -0300 zclient: Revert lib export of zclient_socket()/zclient_socket_un(). commit ea537be5278398cd8c32f8046e4789e613420916 Author: Everton Marques Date: Tue Sep 23 14:30:10 2014 -0300 pimd: Remove debuggging for zclient TCP/UNIX sockets. commit bbb8a18bb5570ff59cf71b46793465828af1fcf3 Author: Everton Marques Date: Tue Sep 23 14:05:55 2014 -0300 zebra_rib: Revert work-around for zebra marking recursive static route as inactive. commit 96b6dfe98793549aca6a7cc77eaf0957b1168ed2 Author: Everton Marques Date: Mon Sep 22 15:47:52 2014 -0300 pim: Remove connected addresses on loss of zebra connection. commit 679fab42343381f609527166f48dbf9ba19f3aab Author: Everton Marques Date: Thu Sep 18 14:54:07 2014 -0300 pimd: Simplify gettime-related code. commit 4d330a2719fd684739a16c6aa3be6632bc3745a2 Author: Everton Marques Date: Thu Sep 18 12:15:55 2014 -0300 pimd: Remove conflict marker. commit a089db4a0678cc1bbbf003bbda2561c03760badc Author: Everton Marques Date: Thu Sep 18 12:08:05 2014 -0300 pimd: Fix log about PIM_USE_QUAGGA_GETTIME. commit 74b4fad93e89df358441b1b3b23282aaca8c80b8 Author: Everton Marques Date: Thu Sep 18 12:06:53 2014 -0300 pimd: Remove motd tweaking. commit 3d62667ab0e8e7ee6e17e883b144e25ee84c4545 Author: Everton Marques Date: Thu Sep 18 11:24:36 2014 -0300 pimd: Remove reference to external doc. commit 93911267a3105931fbaee62dabf7cc444466a6c2 Author: Everton Marques Date: Thu Sep 18 11:10:58 2014 -0300 pimd: Remove unused pim checksum in favour of quagga's version. commit 629e30bb436ce2231c47a38e1a5c5ac1c72beefa Author: Everton Marques Date: Fri Aug 29 16:10:08 2014 -0300 pimd: Version up. commit f80f8aa34b88c4e97654bca62b43605a3d029d92 Author: Everton Marques Date: Fri Aug 29 14:55:30 2014 -0300 pimd: Troubleshooting script. commit 8852dba7737d85f9ff37c38358a4c92006c9a92e Author: Everton Marques Date: Thu Aug 28 16:02:11 2014 -0300 pimd: React as secondary address change for any address change commit c1b228c5cfd589b3fee5c0cbe1564f38df57f7f6 Author: Everton Marques Date: Wed Aug 27 15:27:26 2014 -0300 pimd: Reduce informative mandatory logging. commit bb61be2e5acd272d4e1467406bc13e5b56b8ef66 Author: Everton Marques Date: Fri Aug 22 15:40:02 2014 -0300 pimd: Replace assert with warning. commit 3edadebed3f29383cc8d5825a9ef2fed5431235d Author: Everton Marques Date: Fri Aug 22 14:29:31 2014 -0300 pimd: Clarifications on debug hints. commit 275e24d0ec67f79ae4c5977ea419e1659f9c40ac Author: Everton Marques Date: Fri Aug 22 11:12:23 2014 -0300 pimd: Fix interface "no ip igmp" should not disrupt PIM. Plus docs updates. commit 1f298949bea9e58623eb81f245491dcdb1df8c59 Author: Everton Marques Date: Thu Aug 21 15:47:28 2014 -0300 pimd: -z command-line switch to specify zebra socket path. commit 7cb0d4a384b4964cc53b61549ffdef37fb0d76c5 Author: Everton Marques Date: Tue Aug 19 13:44:37 2014 -0300 pimd: Cisco Documentation for SSM Benefits commit 9830ce2ef715a79c691866b83526d1025e47082d Author: Everton Marques Date: Tue Aug 19 12:16:11 2014 -0300 pimd: Why ssm. commit cf800dd0f9f2ae58efedc6af4e39ae6c0d99f873 Author: Everton Marques Date: Tue Aug 19 12:01:52 2014 -0300 pimd: Version up. commit df838e2abd9727109cba559c6429ee4da82f863c Author: Everton Marques Date: Fri Jul 25 15:38:00 2014 -0300 pimd: Better assert state transition message. commit 3456a80f5f8e6e44c30453bd92eabf5faf7ab25b Author: Everton Marques Date: Tue Jul 22 14:52:57 2014 -0300 pimd: clear zclient-update: Reset zclient update connection to zebra daemon commit ee61109c045f3c9960ec52912ebdbb8998ac63a1 Author: Everton Marques Date: Tue Jul 22 14:27:54 2014 -0300 pimd: Fix comment commit d96f9ffaeac6ebb5b897c318b82fcb37c3ee81c2 Author: Everton Marques Date: Tue Jul 22 14:24:49 2014 -0300 pimd: Recipe for building without vtysh. commit b240297cfea37f7a6608cac9fd2ae4848fe88e3f Author: Everton Marques Date: Mon Sep 22 18:29:29 2014 -0300 pimd: Detection of interface primary address changes. commit 2a0ecf21d6c0918da92033fbe4741ede63f108f2 Author: Everton Marques Date: Mon Sep 22 18:18:26 2014 -0300 pimd: Withstand zclient connection restablishment. commit b24c7fed49a861562bfb713db70ed1db2b89ff42 Author: Everton Marques Date: Mon Sep 22 18:00:15 2014 -0300 zebra_rib: Revert debug hooks. commit d96ab32b6fce23907f0c5f35760a2b7410724d95 Author: Everton Marques Date: Mon Sep 22 17:59:13 2014 -0300 pimd: Update configure recipe. commit 075ac8ddbd6aa782619565a97ec474a90f1b6f4c Author: Everton Marques Date: Wed Sep 24 15:18:37 2014 -0300 pimd: Prevent interfaces' addresses duplication when zebra connection is restored. commit 306c99eae67a7966a3994be1007f03665eb6682b Author: Everton Marques Date: Wed Jul 16 15:51:37 2014 -0300 pimd: FIXED C14 T32 Detection of interface primary address changes may fail. commit f6e16b9f3592a3213e94f44b71caa311e0270cd9 Author: Everton Marques Date: Wed Jul 16 14:13:47 2014 -0300 pimd: Document MRIB support. commit e4f2a2bef879d9e7f5c4c80994c44772b09beb59 Author: Everton Marques Date: Wed Jul 16 12:19:40 2014 -0300 pimd: Report first route's metric/distance for recursive RPF lookup. commit 6c1d36a462388039f92b875196c4d1c92ae69644 Author: Everton Marques Date: Thu Sep 18 14:15:04 2014 -0300 pimd: Clean-up. commit 6f40e6b74effb7447854f690a2a4fa9339d8a967 Author: Everton Marques Date: Fri Jul 11 14:16:45 2014 -0300 pimd: Fix compiler warnings. commit 2f1df6a58b9f0a278cbdee9fc57f964eef1c7bf7 Author: Everton Marques Date: Thu Jul 3 15:37:52 2014 -0300 pimd: Version up to 0.164 commit f62a19cc281276607b164c99e672d536a012514d Author: Everton Marques Date: Thu Jul 3 14:53:44 2014 -0300 zebra: Export zclient_socket_un(). commit 5c55a496fae5ab089c5009bc4c03084fdeb51f55 Author: Everton Marques Date: Wed Jul 2 12:12:16 2014 -0300 pimd: Cosmetic fix for dr uptime display. commit 04c833a1e0fbf063f49ff0b9f837b07456580374 Author: Everton Marques Date: Mon Sep 22 19:35:24 2014 -0300 pimd: Query mrib (SAFI_MULTICAST). commit 82e6c730e624e86c00042b64fc32170630b2c18c Author: Everton Marques Date: Wed Jun 25 17:28:04 2014 -0300 pimd: Reset DR uptime only on actual change commit ff57d3653efe4a1428147204b54cacf3651c4dd0 Author: Everton Marques Date: Wed Jun 25 15:54:03 2014 -0300 pimd: Fixes to build against current quagga. commit 829198800217fe321faa397d21e2d8f99fcaf0dd Author: Everton Marques Date: Wed Jun 25 13:25:17 2014 -0300 pimd: Rename script with recipe for git cloning commit 60353ab4b0857d3f416e315fd81568d9e60205c4 Author: Everton Marques Date: Wed Apr 2 11:46:45 2014 -0300 C19 Provision to prevent group mode clash commit 069a0208ec10fca53676ec187f958037108363a6 Author: Everton Marques Date: Wed Apr 2 11:04:52 2014 -0300 Fixed recipe to re-sync with Quagga repository commit 1f7a2b44687a49e4dab649ce369b5735aa2dd20f Author: Everton Marques Date: Tue Apr 1 18:38:50 2014 -0300 github repository. commit d1a87ee63042225d4b3bf6b4655cd7e0e2b64828 Author: Everton Marques Date: Fri Feb 14 16:51:05 2014 -0200 Fix pim join uptime display. commit f24200d77a98c8091d23638096faf366e7c6c953 Author: Everton Marques Date: Fri Feb 14 16:40:34 2014 -0200 C18 MFC never recovers from removal of static route to source commit 777fe1f2b63c76d0df5c136dbd335bd2718785fb Author: Everton Marques Date: Fri Feb 14 14:16:07 2014 -0200 Run DR election when hello packet is received. commit d4595869045498d830be34403217822f77446ae0 Author: Everton Marques Date: Thu Feb 13 19:50:30 2014 -0200 Parsing fixes. commit 3defeb3465a1f6e7a50d0f2b3d292686bb1449b1 Author: Klemen Sladic Date: Fri Feb 7 16:23:44 2014 +1300 fix address assigment commit c77f01b9c9056bf39a62911218b308cdb11c4718 Author: Everton Marques Date: Thu Feb 13 14:54:43 2014 -0200 PIM_ZCLIENT_DEBUG enables zclient_socket() / zclient_socket_un() debug commit a057a066aa258a0f9cf3ae4946ec66adcd2f28f7 Author: David Lamparter Date: Tue Jan 17 23:52:58 2012 +0000 pimd: extend .gitignore commit 3de4ae90586e4a99ab706c5d3726ef1d5aef95c0 Author: Everton Marques Date: Thu Feb 13 14:28:26 2014 -0200 Define pim_gettime() when PIM_GETTIME_USE_GETTIMEOFDAY is not available. commit 105ad8615da1bcb417e1757ef4787cd2cdbb3cbc Author: David Lamparter Date: Thu Feb 16 04:50:35 2012 +0000 pimd: fix wtf code * pim_hello.c, * pim_neighbor.c: print pointers as %p * pim_time.c: comment out unused function * pim_zebra.c: wtf commit f8cfeb25e62206aaf940b2aabf6a96c36ad4627d Author: David Lamparter Date: Thu Feb 16 04:31:08 2012 +0000 pimd: fix worst char * <> uint8_t * intermingling commit e269b968fdcd44d7a4043c4e67c3e008f85e7379 Author: David Lamparter Date: Thu Feb 16 04:32:08 2012 +0000 pimd: use socklen_t consistently commit 5c6979834655fb7244e23b958582d51bb176ce9a Author: David Lamparter Date: Thu Feb 16 04:47:56 2012 +0100 pimd: fix format strings * pim_igmp.c, * pim_igmpv3.c, * pim_pim.c, * pim_tlv.c: use %zu / %zd for size_t/ssize_t * pim_iface.c, * pim_ifchannel.c, * pim_mroute.c, * pim_neighbor.c, * pim_oil.c, * pim_ssmpingd.c, * pim_upstream.c: %zu for size_t * pim_cmd.c: %zu + a few (long long) casts for int64_t * pim_hello.c: %td for ptrdiff_t commit eb383d931c2bb54b5b84a827503f62cbf1070ef5 Author: Everton Marques Date: Fri Aug 27 18:16:33 2010 -0300 [pim] Version up to 0.163 commit b9ef7704a72e3ec52174c2792404b15275ff4681 Author: Everton Marques Date: Fri Aug 27 18:11:10 2010 -0300 [pim] bootstrap from tarball prefers autoreconf -i commit 8281793ebaa1953d679c553f552ba0eee2bab758 Author: Everton Marques Date: Wed Aug 18 10:05:47 2010 -0300 [pim] Additional PIM drafts. commit d0d7980b7c71c95fd0ddc491b2e60260c604d04b Author: User Date: Thu Aug 5 13:26:25 2010 -0700 [pim] Compile fixes for FreeBSD. commit 9f4e191bb0c639a21c69b3d139349040283fa941 Author: Everton Marques Date: Thu May 27 10:08:43 2010 -0300 [pim] Version up to 0.162 commit 4560c44d109a25672bf7ec41adb3c63950c46f3e Author: Everton Marques Date: Wed May 5 14:32:52 2010 -0300 [pim] Reference to troglobit pimd commit 05e573de60c0b3f1dd874d306b818f7c0dc12bf7 Author: Everton Marques Date: Tue Apr 20 12:20:46 2010 -0300 [pim] "show ip route" renamed to "show ip rib" commit 6d26c37a21f65bd7b4c8a9a272fafd0a07091c98 Author: Everton Marques Date: Thu Apr 15 16:22:11 2010 -0300 [pim] .gitignore commit 55b12ff4602ae802281f76e4cda681104a6cf89d Author: Everton Marques Date: Thu Apr 15 15:58:30 2010 -0300 [pim] PIM route type. commit fa2e1ee255c6a3be76f74b07cb441c34d4b2583f Author: Everton Marques Date: Wed Mar 17 10:51:34 2010 -0300 [pim] Uniform format for commands "debug pim packet-dump" and "test pim receive dump" commit ff752d431675caed78e7b460b2d9a4845e5b6a73 Author: Everton Marques Date: Wed Mar 17 10:34:24 2010 -0300 [pim] Cosmetic RPF refresh timer display commit 0ef36d82d87094b32f71be47a73144459f057db9 Author: Everton Marques Date: Thu Mar 11 14:47:42 2010 -0300 [pim] Work-around improper monotonic clock commit f9e05e5f2ae7bc8352a0744d4e4b5105b60e74a4 Author: Everton Marques Date: Thu Mar 11 11:17:33 2010 -0300 [pim] Version up to 0.161 commit 034bd7fe705b03ea4025478650bd3d690bda923f Author: Everton Marques Date: Mon Mar 1 17:00:07 2010 -0300 [pim] debug mroute commit 67faabc18026bf3f8ae6d7ee1df9f2b1729ea06b Author: Everton Marques Date: Tue Feb 23 12:11:11 2010 -0300 [pim] debug mroute commit 9986fb3a25a0432dbd89aa1e319c89691db05bc0 Author: Everton Marques Date: Mon Feb 22 09:09:09 2010 -0300 [pim] TODO T42 Static igmp join fails when loading config at boot time commit 567f927c39061a0b98caf23381f5eb523f6d5600 Author: Everton Marques Date: Fri Feb 19 19:07:00 2010 -0200 [pim] show ip igmp join commit 7c5f50125d9ef099336660330b7432fb848b7e75 Author: Everton Marques Date: Thu Nov 19 17:00:23 2009 -0200 [pim] Fix net/host byte order commit dba7758a7fa712fc712cd3063a2724bb15c92e60 Author: Everton Marques Date: Thu Nov 19 10:32:19 2009 -0200 [pim] test pim receive dump commit 42e3078a1e4a0bbb033351ad5a65729a17c1fa19 Author: Everton Marques Date: Wed Nov 18 17:19:43 2009 -0200 [pim] Clean-up commit 3e92c456b01bb9364a0e68e0124c9ff36edc0b4b Author: Everton Marques Date: Wed Nov 18 16:26:38 2009 -0200 [pim] test pim receive dump commit 929bb95587fe43db9a904464d973c0605d160644 Author: Everton Marques Date: Wed Nov 18 11:55:13 2009 -0200 [pim] Fix dump byte type commit 627380420e60a4b944646eb1ce2b1552e6e03565 Author: Everton Marques Date: Wed Nov 18 10:44:13 2009 -0200 [pim] Packet dump debugging commit e0b8b9b6e465bc8ae4a416e5297fa682d7feb39e Author: Everton Marques Date: Tue Nov 17 10:17:21 2009 -0200 [pim] Clean-up log messages commit 3466dae420942b3a5b342c95d5667e1927409e8a Author: Everton Marques Date: Wed Oct 21 11:33:47 2009 -0200 [pim] Reference about draft mboned-ssmping commit 779e220f30ace11acb23ba81ed6eaef51db6f1e4 Author: Everton Marques Date: Fri Oct 16 08:40:11 2009 -0300 [pim] Version up to 0.159 commit e85a9371c01751273858db94aa5b0f99b11dbf1f Author: Everton Marques Date: Thu Oct 8 16:05:44 2009 -0300 [pim] ssmpingd commands commit 8bc0b34a2bee1627de04415fe2fddecb3d71e165 Author: Everton Marques Date: Thu Oct 8 15:29:59 2009 -0300 [pim] Sample config for ssmpingd support commit e8c11bbf75c881e3beaadb85d5485161855424a7 Author: Everton Marques Date: Thu Oct 8 15:06:32 2009 -0300 [pim] T41 DONE ssmping support commit 824adbea2d8d78f626f32d5b7900121fdebf6937 Author: Everton Marques Date: Thu Oct 8 09:16:27 2009 -0300 [pim] Hooks for ssmpingd support commit 96f91aefc06477e73d0e93008b51fc6e87fa2bc4 Author: Everton Marques Date: Wed Oct 7 18:41:45 2009 -0300 [pim] Skeleton for ssmpingd support commit ccc5d2bb9b7a395375a34cb6a6b703d78e885b1d Author: Everton Marques Date: Fri Oct 2 14:50:08 2009 -0300 [pim] Ref. on LW-MLDv2 commit 31894370d26de0b91b5c003ca6c592f0a487d60f Author: Everton Marques Date: Thu Oct 1 10:04:02 2009 -0300 [pim] Hint for test_igmpv3_join command-line utility commit 40765fe45f39767ad545ca693fb5985fa90ce4ca Author: Everton Marques Date: Wed Sep 30 17:10:11 2009 -0300 [pim] Command line tool to test IGMPv3 join. commit 465185300b26042e1813d53f179616a17154d37a Author: Everton Marques Date: Fri Sep 11 15:05:40 2009 -0300 [pim] clean-up commit b471196e812d98b3ce42bcc186d3a381080d423a Author: Everton Marques Date: Fri Sep 11 11:15:42 2009 -0300 [pim] ip mroute show: can display the MFC commit 47afa6e19b69b433c0c0d0b73837118e0a1284cc Author: Everton Marques Date: Thu Aug 27 18:23:02 2009 -0300 [pim] Version up to 0.158 commit 54d6c57db53a626e21766ce608e69f30396a95f0 Author: Everton Marques Date: Thu Aug 20 18:31:03 2009 -0300 [pim] Fixed doc on CAVEAT C7 commit 5f35a5236435522f49f9a95d3b59009f947b9130 Author: Everton Marques Date: Thu Aug 20 11:57:41 2009 -0300 [pim] show ip pim lan-prune-delay: fix cosmetic alignment commit bcc4abe09d3faa9b392be2d46e3f6a29b75e46d9 Author: Everton Marques Date: Mon Aug 17 18:18:59 2009 -0300 [pim] More RPF cache refresh statistics commit 942b0fdcc18c3841c6781f6a3f36aa47a604ba1f Author: Leonard Herve Date: Fri Aug 14 15:49:06 2009 +0200 [pim] Correction for cross-compilation error with this syntax commit df4044b2cbe0015d06d25de25e640fca231243dd Author: Leonard Herve Date: Fri Aug 14 10:38:52 2009 +0200 Router Alert option for IGMP packets but not for PIM packets commit 613938d48abb863660691641a5761f10402cf3f3 Author: Everton Marques Date: Thu Aug 13 15:39:31 2009 -0300 [pim] RPF cache refresh statistics commit d12beab1b9ce09c50672adb3c980e64ccd11edb4 Author: Everton Marques Date: Wed Aug 12 10:52:22 2009 -0300 [pim] Move encoded source address length check to pim_parse_addr_source commit 236b01556122fba479118797163c44849073ff46 Author: Leonard Herve Date: Tue Aug 11 15:51:52 2009 -0300 [pim] igmpv3: specific query interval set to 1 second (RFC 3376 8.8.) [pim] pim messages: encoded source address format with Sparse bit=1 (RFC 4601 4.9.1.) [pim] and Mask Len MUST be equal to 32 [pim] dr election: new traces [pim] fix triggered_hello_delay_msec randomization commit e96f0af2679e3c91518f62b3a86d811cafba1adc Author: Everton Marques Date: Tue Aug 11 15:48:02 2009 -0300 [pim] Log physical interface up/down [pim] Replace strerror with safe_strerror [pim] Fix PIM socket removal from non-PIM interfaces [pim] show ip igmp querier: left-align Querier string [pim] Version up to 0.157 [pim] Recipe to re-sync with Quagga repository [pim] Build vtysh in development script commit 596470f2a410fb58109fd880f04362984ffd7c69 Author: Leonard Herve Date: Tue Aug 11 15:45:26 2009 -0300 [pim] pim commands added to vtysh commit 871dbcfede60a8d2d286728bcbd88f27c2035b87 Author: Everton Marques Date: Tue Aug 11 15:43:05 2009 -0300 [pim] Initial pim 0.155 commit b162ab753e70328cb6815e58b4bc5b03e9dd4f42 Author: David Lamparter Date: Mon Feb 2 03:00:22 2015 +0100 doc: explain rpf lookup default mode Reported-by: Alexis Rosen Signed-off-by: David Lamparter commit a4e830c7cc0e10a851047aebe008ce7a3f8ef29b Author: David Lamparter Date: Fri Jan 30 01:44:25 2015 +0100 doc: zebra multicast RIB commands Signed-off-by: David Lamparter commit e832c34fd19aa6b2df7c28e78f07617095cf136e Author: David Lamparter Date: Tue Jan 27 20:24:15 2015 +0100 zebra: mark multicast commands experimental depending on feedback from actually having these commands in a released version, we may want to adjust them. Thus, mark them as experimental so users are aware of this. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit ca2b105f3bdd8859117756dc8d8c2406e28af28b Author: David Lamparter Date: Thu Jan 22 19:12:35 2015 +0100 zebra: add "show ip rpf" to get result of RPF lookup Checking what route exactly a RPF lookup for a given source uses is essential for an administrator to debug multicast routing issues. This command provides exactly that, using the multicst RPF lookup function and printing out its result to the CLI. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit 240c56f3a41cb7018460ba6e36c9b559c897e3d0 Author: David Lamparter Date: Tue Jan 6 19:53:24 2015 +0100 zebra: make MRIB lookup behaviour switchable depending on the usage scenario (and availability of multitopology IGP protocols, which is currently zero in Quagga), different approaches of Multicast RPF lookups are useful. Reference behaviours from commercial vendors are urib-only/mrib-only (Juniper, depending on inet.2 availability) and lowest-distance (Cisco). As we are currently without MT IGP support, mrib-first seems the most useful default for Quagga. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit 29ce93ebf6427d1d64eae8b385e36873e3ddcb88 Author: David Lamparter Date: Thu Jan 22 19:09:36 2015 +0100 zebra: return route_node from rib_match_ipv4_safi The multicast code needs to know the route_node in addition to the rib entry in order to perform distance or prefix-length comparisons. Add it as optional "out" pointer parameter. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit c048dccaf537508019ccda658d75bbb0cfd7ad18 Author: David Lamparter Date: Mon Jan 12 07:05:06 2015 +0100 zebra: dummy kernel "install" multicast routes This is a followup to 9511633 ("zebra: MBGP routes should not be installed in the kernel"), which was correct in disabling MRIB routes being installed in the kernel, yet broke the MRIB since now routes were never marked as active. Hence, push down the check into the kernel install functions, so that the routes are still marked active. At the same time, the FPM calls get a check each since otherwise we'd bump the FPM interface on MRIB updates. Fixes: 9511633 ("zebra: MBGP routes should not be installed in the kernel") Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit 149210656045c363d8f59b97ad9251b0c06a15df Author: Olivier Dugeon Date: Mon Nov 3 14:59:06 2014 +0100 ospfd: Fix initial Opaque LSA DB synchronisation ospfd has issues resynchronising its Opaque LSA DB with neighbours after restart or interface events. The problem comes from opaque_lsa.c code that blocks subsequent opaque LSA flooding until the neighbour router acknowledge that, and removes the old opaque LSA from its LSDB. The bug comes from the fact that the lock is never release, thus avoiding subsequent opaque LSA flooding. More detail about the bugs and its solution is describeid in file doc/te-link-params.md Signed-off-by: Olivier Dugeon commit 9e6366d73675a5b65220641b71d7710cde8c1143 Author: David Lamparter Date: Thu Jan 22 19:03:53 2015 +0100 zebra: fix optional distance on static mrib route Unfortunately, the quagga CLI parser doesn't support [<1-255>]. Fix by working around with an alias. Replaces the following commits: - zebra: mrib: [no] ip mroute - require distance. - zebra: mrib: [no] ip mroute - make distance optional. (Rewritten as alias) Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit 96bb266e0fde451f36c5463e789714eacc1ae63c Author: Everton Marques Date: Mon Jul 14 11:19:00 2014 -0300 zebra: mrib: static route support With the MRIB being independent from the Unicast RIB, there's currently now way to add static routes to the MRIB. Address that by adding a separate set of commands for MRIB static routes. Combines these original patches: - zebra: mrib: ip mroute command to add unicast route to MRIB for multicast RPF. - zebra: mrib: no ip mroute: Fix removal of static multicast RPF route. - zebra: mrib: remove unused static_add/delete_ipv4 - zebra: Cleanups to zebra_rib. - pimd: Merge pim-only branch. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit c409791083892f6c95baca1c79c80290dc595be4 Author: David Lamparter Date: Sat Nov 22 14:44:20 2014 -0800 zebra: kill rib_match_ipv4() Since this function is internal to zebra, there is no reason to keep this one-line indirect wrapper to rib_match_ipv4_safi() around. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit 12150f08b76c91225dcd877308fecb13026041ef Author: Everton Marques Date: Fri Sep 19 16:39:34 2014 -0300 zebra: mrib: Include BGP routes in RPF lookups The rib_match_ipv4() function was previously used only for iBGP recursive nexthop lookups, which ignore eBGP routes. This is not desirable for PIM RPF lookups, which may well use an eBGP route. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit be4fb4312531cdae986a83b0375dbd1e0606067e Author: Everton Marques Date: Tue Jul 1 15:15:52 2014 -0300 zebra: add ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB This adds a new zapi call "ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB" performing a Multicast RPF lookup for a given source. Details of the lookup behaviour are left to the zebra side of things. Note: this is non-reactive, as in, only delivers a snapshot of the state at a particular point in time. There's no push notification of changes happening to the RIB. This combines the following 3 original patches: - zebra: add zsend_ipv4_nexthop_lookup_mrib() - zserv: Query mrib (SAFI_MULTICAST). - zebra: Cleanups to zebra_rib. Cc: Everton Marques Cc: Balaji G Signed-off-by: David Lamparter commit a59b6152bbcd2ff6734872ecbffbc9c43701e1a8 Author: Everton Marques Date: Fri Nov 21 15:57:45 2014 -0800 zebra: point rib_match_ipv4() to ._safi() Since rib_match_ipv4() is just rib_match_ipv4_safi() for SAFI_UNICAST, the former can be removed and pointed to the latter instead. Cc: Balaji G Cc: Everton Marques Signed-off-by: David Lamparter commit 346a8b50334ac837e6a6af0dbe472e9a87dacd1e Author: Everton Marques Date: Mon Sep 22 19:35:51 2014 -0300 zebra: add rib_match_ipv4_safi() This is the same as rib_lookup_ipv4(), without the SAFI hardcoded. Cc: Balaji G Cc: Everton Marques Signed-off-by: David Lamparter commit f7b3d1e067ac8088a61136c53d24078b675e0197 Author: David Lamparter Date: Thu Jan 22 19:02:13 2015 +0100 zebra: identify MRIB on debug messages since the same code handles both URIB and MRIB, the debug messages can get rather confusing if the RIB isn't identified. Mark the MRIB in debug messages so we can distinguish that. Signed-off-by: David Lamparter commit e0b0ac8c97d9b8885785ed0461f87a34e70f368e Author: David Lamparter Date: Thu Apr 24 20:22:53 2014 +0200 zebra: factor out rib debug logs Introduces a logging function that takes a struct route_node * argument, and prefixes log output with that node's prefix. While this removes some duplication, it will also later be useful for srcdest route nodes. Behaviour before and after the patch should be exactly identical. Signed-off-by: David Lamparter commit 1c6db0d2da34044ddfb42665fda8a3387ecc451d Author: David Lamparter Date: Fri Dec 12 21:35:28 2014 +0100 lib: don't create circular lists (fixes 6d83113) LISTNODE_DETACH doesn't clear out the node, and LISTNODE_ATTACH doesn't set ->next (since it assumes a fresh/zeroed listnode). As a result, the new listnode_move_to_tail() created a nice circular list, in turn crashing ospfd in ospf_write() later. Reported-by: Martin Winter Fixes: 6d83113 ("ospfd: Tweak previous iface RR write patch to avoid free/malloc & redundant log") Cc: Paul Jakma Signed-off-by: David Lamparter Acked-by: Greg Troxel Acked-by: Dinesh Dutt Acked-by: Vincent JARDIN commit daefeb8755e194dd19a5f1910bc78d13c8147efb Author: David Lamparter Date: Mon Dec 8 17:42:12 2014 +0100 bgpd: set BGP_ATTR_MP_[UN]REACH_NLRI (fixes 1a211cb) Unfortunately, the attribute present bits for MP_REACH and MP_UNREACH which 1a211cb ("bgpd: one more fix"...) tests for are never set in their corresponding attribute parsing functions. Reported-by: Martin Winter Fixes: 1a211cb "bgpd: one more fix for tightening of check for missing well-known attributes" Cc: Paul Jakma Signed-off-by: David Lamparter commit cffe7807c03b7edea005869086720e2f1fb070c6 Author: David Lamparter Date: Sun Dec 7 03:27:13 2014 +0100 bgpd: stop startup timer on stopping BGP (fixes dd49eb1) bgp_delete() really needs to kill t_startup, otherwise after creating and quickly destroying a BGP instance it may fire on a deallocated struct bgp, overwriting memory. Reported-by: Martin Winter Fixes: dd49eb1 ("Fix BGP's use of restart bit.") Cc: Vipin Kumar Signed-off-by: David Lamparter Acked-by: Vincent JARDIN commit 273b1bd341afff86ba571e0be296d88dba627136 Author: Greg Troxel Date: Tue Dec 2 14:51:49 2014 -0500 zebra/kernel_socket.c: Use platform alignment Use the platform-provided RT_ROUNDUP macro to align sockaddrs on the routing socket, rather than using hard-coded assumptions about alignment. Emit a warning if the OS doesn't define alignment macros. Resolves failure of ripngd on NetBSD 6 i386, which changed alignment to uint64_t from long. commit 5e4ba81dc212b172e715afa7b6ea668cddd8485d Author: Paul Jakma Date: Mon Oct 20 17:49:44 2014 +0100 doc: Document 'set as-path prepend' and 'set as-path prepend last-as' commit 85c854aa720c02a56b1ecbbf12a763a326d11a63 Author: Timo Teräs Date: Tue Sep 30 11:31:53 2014 +0300 bgpd: implement route-map set as-path prepend last-as It picks up the AS to add from the aspath, or uses the peers AS number. Useful mostly in iBGP setups. Signed-off-by: Timo Teräs Reviewed-by: Paul Jakma commit 1a211cb369dc865a4e7e9f58a100c041af457262 Author: Paul Jakma Date: Sat Nov 1 17:21:47 2014 +0000 bgpd: one more fix for tightening of check for missing well-known attributes * bgp_attr.c: (bgp_attr_check) The check for missing NEXT_HOP has the right spirit, but wrong where it counts, on the logic. It wouldn't catch a missing NEXT_HOP on a v4-only UPDATE. It would though have incorrectly flagged next-hop as missing on multi-protocol-only UPDATEs. Caught by Martin Winter with a test-suite. commit ec98d90767b341877fb7f1547f025b946955899a Author: Paul Jakma Date: Tue Oct 14 11:14:06 2014 +0100 bgpd: trivial, remove unneeded extra variable in bgp_capability_restart commit dd49eb1f0232cd0600a3565b44b5c066a8d7872d Author: Vipin Kumar Date: Tue Sep 30 14:36:38 2014 -0700 Fix BGP's use of restart bit. bgpd-restart-bit-fix.patch ISSUE: Quagga BGP doesn't send or use the restart-bit via the Graceful-Restart(GR) capability. GR capability implementation isn't complete as per the RFC. PATCH: Patch uses BGP instance creation as the beginning of the startup period, and 'restart_time' is taken as the startup period. As a result, BGP will set the restart bit in the GR capability of the OPEN messages during the startup period. As an indication of quagga implementation's capability of sending End-Of-RIB, helping a restarting neighbor, quagga BGP will now send global GR capability irrespective of the graceful-restart config in BGP and the address-family specific GR capability will be sent only if the GR config is present. Forwarding bit is not set assuming its not preserved. Incorporated feedback from David Lamparter via the quagga-dev mailing list. Signed-off-by: Vipin Kumar Reviewed-by: Pradosh Mohapatra Reviewed-by: Paul Jakma commit 443010383e2c8e5dc1bc722d9e22a97c513b4647 Author: Paul Jakma Date: Thu Oct 9 18:14:54 2014 +0100 bgpd: remove unused variables commit 4bab6806914dbb4b43f376ebf966a034a0ea72cd Author: Vipin Kumar Date: Tue Sep 30 14:32:22 2014 -0700 Fix to take care of ordering between interface and router ospf command. SYMPTOM: Interface mode OSPF area configuration is not retained after restarting quagga. Example - quagga(config)# interface swp49 quagga(config-if)# ip ospf area 0.0.0.0 quagga# sh run interface swp49 ip ospf area 0.0.0.0 ipv6 nd suppress-ra link-detect ! quagga# write memory * Restart quagga at this point* quagga# sh run interface swp49 ipv6 nd suppress-ra link-detect ! ISSUE: The issue is that the interface mode commands can reach the OSPF process even before 'router ospf' command that initializes the default OSPF instance, this is not getting handled properly in OSPF process. FIX: Initialize the default OSPF instance during OSPF process initializations, which is before 'router ospf' command is received in OSPF process. So, when interface mode command is received, it is guaranteed to have ospf instance to work with. Other way could be to call ospf_get() instead of ospf_lookup() while processing the config command callbacks, although OSPF needs to have at least one instance structure anyways, therefore calling it unconditionally in OSPF initializations should be fine too. There could be more elaborate fix(es) possible to handle this, like adding some ordering mechanism for commands as they are read by a process, or storing the received command and applying it after the commands its dependent upon are processed. For the issue at hand, initializing the default instance in main() serves the purpose well. Signed-off-by: Vipin Kumar Reviewed-by: Dinesh Dutt Reviewed-by: Paul Jakma commit ad5233a1bcdd7124992300673ad9c1035336eadd Author: Dinesh G Dutt Date: Tue Sep 30 14:19:57 2014 -0700 Add set ipv6 next-hop peer-address command. IPv4 has the ability to specify the peer address with the keyword peer-address. IPv6 mandates the use of a specific global or local address only in setting the next-hop in routemaps. This makes it cumbersome to configure some large networks with BGP and IPv6. This patch fixes that deficiency. Signed-off-by: Dinesh G Dutt Reviewed-by: Paul Jakma commit 8306be211f1bcd5a19e74d08cde399e1b518ed25 Author: Dinesh G Dutt Date: Tue Sep 30 14:11:17 2014 -0700 OSPFd: Update timestamps when we MaxAge LSAs. When an LSA is flushed we need to update the timestamps for them. This allows for the node to give the neighbor sufficient time to send back an acknowledgement before retransmission kicks in. Signed-off-by: Dinesh G Dutt Reviewed-by: Scott Feldman Reviewed-by: James Li Reviewed-by: Paul Jakma commit 6d831139569dbee69acc631361db917e2c47feeb Author: Paul Jakma Date: Thu Oct 9 16:05:15 2014 +0100 ospfd: Tweak previous iface RR write patch to avoid free/malloc & redundant log * linklist.{c,h}: (listnode_move_to_tail) new unction to move a listnode to tail of list. * ospf_packet.c: (ospf_write) remove debug that seemed to be mostly covered by existing debug. Use listnode_move_to_tail to just move the list node to the end of the tail, rather than freeing the one to hand and allocing a new one. commit 1c06334f51c00471b0731227384ef42dc463db54 Author: Dinesh G Dutt Date: Tue Sep 30 13:04:45 2014 -0700 Avoid timing out of adjacencies by serving all interfaces in round-robin. Ensure that all interfaces are served in a round robin fashion during write. This prevents adjacencies from timing out when you have a lot of LSAs to be sent out each adjacency. This is essentially a scalability improvement. Signed-off-by: Ayan Banerjee Reviewed-by: Dinesh G Dutt Reviewed-by: Scott Feldman Reviewed-by: Paul Jakma commit 56a5f7752d9bf7297ea022544112909cf2ccba97 Author: Dinesh G Dutt Date: Tue Sep 30 12:58:04 2014 -0700 Added show command to display only the routes in the RIB that does not count ECMPs Signed-off-by: Ayan Banerjee Reviewed-by: JR Rivers Reviewed-by: Paul Jakma commit d1b0991ad8404366811a7ccc86e76f70a1ba399e Author: Dinesh G Dutt Date: Tue Sep 30 12:54:13 2014 -0700 Make static IPv6 routes respect non-default routing tables. Signed-off-by: Nolan Leake Reviewed-by: Shrijeet Mukherjee Reviewed-by: Paul Jakma commit b6eef003e1a79471addea0b01853b08aed812cc8 Author: Paul Jakma Date: Thu Oct 9 14:19:51 2014 +0100 ospfd: Some small tweaks to the SPF execution reason patch * ospf_spf.h: use an enum for the reason, and have it as a new argument to ospf_spf_calculate_schedule, no need for additional call, and let compiler do the checking. * ospf_spf.c: format changes - Quagga coding style places function names at the start of a new line, for easy grepping for definition. (ospf_spf_calculate_timer) Change the log format of SPF execution time to avoid ginormous line, and make logging conditional, as is the norm. commit 50f38b3500a6af6e1b0d1389d65c62d70c41e8c2 Author: Dinesh G Dutt Date: Tue Sep 30 12:53:28 2014 -0700 Compute and display SPF execution statistics Detailed SPF statistics, all around time spent executing various pieces of SPF such as the SPF algorithm itself, installing routes, pruning unreachable networks etc. Reason codes for firing up SPF are: R - Router LSA, N - Network LSA, S - Summary LSA, ABR - ABR status change, ASBR - ASBR Status Change, AS - ASBR Summary, M - MaxAge Signed-off-by: Dinesh G Dutt Reviewed-by: JR Rivers Reviewed-by: Scott Feldman Reviewed-by: Ayan Banerjee Reviewed-by: Paul Jakma commit 88d37b902bc8127379d3293b9671aa6a11479c23 Author: Stephen Hemminger Date: Mon Nov 3 01:20:09 2014 +0000 make some structures constant. These pre-initialized arrays are not modified. Signed-off-by: Stephen Hemminger Acked-by: Feng Lu commit 9511633e08ff15c23608983fdc1bc735d427332e Author: Balaji Date: Thu Oct 23 15:25:25 2014 +0000 zebra: MBGP routes should not be installed in the kernel MBGP routes are used only for PIM RPF checks and hence should not be installed in the kernel's FIB. Ignore route node set to Multicast SAFI. Signed-off-by: Balaji.G Acked-by: Everton Marques [pushed down rn->table->info assignment below assert] Signed-off-by: David Lamparter commit c68f6d9dbb9f910d3ee82e099655fff7c12ef856 Author: David Lamparter Date: Thu Oct 30 06:42:00 2014 +0100 tests: fix tests for 055086f (well-known attr check) Fix tests/aspathtest.c by including an ORIGIN attribute in the testcases. After 055086f "bgpd: well-known attr check only run for v4/uni, which could cause a crash," we're now checking for it and tests are failing due to that. Note that test #11 ("4b AS4_PATH w/o AS_PATH") is no longer accepted as OK since the function now checks for the existence of an AS_PATH attr. Fixes: 055086f ("bgpd: well-known attr check only run for v4/uni"...) Signed-off-by: David Lamparter commit 59135bde25441cd39cea0389467eb206fc9030c9 Author: David Lamparter Date: Thu Oct 30 06:19:15 2014 +0100 build: fix 9562a77... (mrlg removal) mrlg.cgi was removed in 9562a77 "mrlg: Remove obsolete version." but the file was still listed in Makefile.am. Fixes: 9562a77 ("mrlg: Remove obsolete version.") Signed-off-by: David Lamparter commit 93b344f3b14390e3952ea9025ac5996ae9131148 Author: David Lamparter Date: Tue Oct 28 14:52:49 2014 +0100 Revert "zebra: Set link-detect on by default" This reverts commit 773224404cb33b2dbd3d8d8d2572013603995ce4. This patch is nontrivial but wasn't passed along on the mailing list; this is a revert purely on procedural reasons. Signed-off-by: David Lamparter commit 773224404cb33b2dbd3d8d8d2572013603995ce4 Author: Dinesh G Dutt Date: Tue Sep 30 12:39:24 2014 -0700 zebra: Set link-detect on by default Signed-off-by: Roopa Prabhu Reviewed-by: Dinesh G Dutt Reviewed-by: Scott Feldman commit aed1b556cf2f55680ae09d7ad1a1f22729dea8c5 Author: Paul Jakma Date: Tue Oct 21 16:59:01 2014 +0100 bgpd: Fixes for recent well-known-attr check patch. * bgp_attr.c: Recent patch to tighten well-known attr checks and apply that to all AFIs has some breakage with MP-extensions and GR, which needs to be fixed. (bgp_attr_check) Graceful Restart EoR can be an empty UPDATE for IPv4/uni. MP-Ext allow UPDATE with just MP_UNREACH_NLRI. Check for these and return proceed. NEXT_HOP becomes optional, if MP_REACH_NLRI is present and there's no v4 NLTI, update NEXT_HOP check accordingly. Print the missing attr in string form in the log message. (bgp_attr_parse) AS_PATH need not be there, so bgp_attr_munge_as4_attrs call needs to be conditional on that. commit 9562a7774b76df050d3e01632c6203796dc72c87 Author: Paul Jakma Date: Tue Oct 21 10:59:45 2014 +0100 mrlg: Remove obsolete version. * mrlg.cgi: The version we shipped was very much out of date, remove it. * mrlg.txt: Add file pointing to the official MRLG site. commit f80ba04074f1211d857d08d6deddc41d029be1c7 Author: Vincent JARDIN Date: Mon Oct 27 13:03:14 2014 +0000 Handy guidelines to contribute Explain how to be a nice contributor in a handy way. Signed-off-by: Vincent JARDIN Acked-by: Paul Jakma commit 6b274d90fa9b0c9f43e3ca9494cd78df1ccad14e Author: Joakim Tjernlund Date: Tue Mar 9 06:42:30 2010 +0000 ospfd: Don't leave stale RouterLSA's when changing areaID Signed-off-by: Joakim Tjernlund Acked-by: Feng Lu commit 3790eb0d3f0bbb24b9c6be97f547cec144ee05d1 Author: Stephen Hemminger Date: Wed Jan 13 00:32:43 2010 +0000 stream: remove unused stream_read_unblock The one place this was being used in BGP is now gone, can remove deprecated interface. Acked-by: Feng Lu commit bdd8cd70a042473477f9144c9cedb8dde11ba2c1 Author: Yasuhiro Ohara Date: Thu Dec 17 05:41:17 2009 +0000 Bug in ospf6_lsa_compare() This fix is probably correct on 32bit systems, but i think it will not work on 64bit systems. sizeof(signed long) would be 8 and therefore the cast from u_int32_t will map all the values to non-negative part of long int. You would like to use int (like in ospfd) and change the type of seqnuma, seqnumb to that. The type int32_t would be even more proper, but sizeof(int) is 4 on relevant platforms. Signed-off: Ondrej Zajicek Acked-by: Feng Lu Acked-by: Yasuhiro Ohara commit ea2a598411cc7bd20456849e56bbc9e93c9916e7 Author: Joakim Tjernlund Date: Thu Nov 26 12:23:07 2009 +0000 ospfd: invalid MD5 auth_key? This looks fishy in ospf_make_md5_digest() if (list_isempty (OSPF_IF_PARAM (oi, auth_crypt))) auth_key = (const u_int8_t *) ""; ... MD5Update(&ctx, auth_key, OSPF_AUTH_MD5_SIZE); auth_key points to a "" string of len 1 which is a lot smaller that OSPF_AUTH_MD5_SIZE. Is this intentional to get some random data or just a plain bug? Anyone using MD5 should have a closer look and decide what to do. Acked-by: Feng Lu commit 969d3550a8cbb07f8b4d5ebe8dde5064f8260140 Author: Lu Feng Date: Tue Oct 21 06:24:07 2014 +0000 zebra: route_unlock_node is missing in "show ip[v6] route " commands Signed-off-by: Feng Lu Acked-by: Vincent Jardin commit 384d7ad98c109e92eaf65bf10a3256e5657639c3 Author: Paul Jakma Date: Thu Oct 9 16:09:10 2014 +0100 docs: defines.texi include seems to want to be after setfilename * quagga.texi: I'm getting warnings about stuff in defines.texi not being defined when building quagga.info. Seems to be fixed by moving the include of defines.texi to the end of the header. Also, the Texinfo docs suggest setfilename must go first. commit 7a6eec54eaffa82f4f03363314bb81c400eb2a66 Author: Paul Jakma Date: Thu Oct 9 10:51:41 2014 +0100 zebra: Build the test client, can be useful, and add IPv6 to testrib.conf commit f6444e4f6e1664f49f7552f894c8c94e45dd3c35 Author: Olivier Cochard-Labbé Date: Thu Oct 9 10:28:21 2014 +0100 FreeBSD has changed its SOCK_RAW for being truly raw. commit 055086f70febc30fdfd94bb4406e9075d6934cd8 Author: Paul Jakma Date: Tue Sep 23 15:23:01 2014 +0100 bgpd: well-known attr check only run for v4/uni, which could cause a crash. * ANVL testing by Martin Winter threw up a crash in bgpd in aspath_dup called from bgp_packet_attribute, if attr->aspath was NULL, on an IPv6 UPDATE. This root cause is that the checks for well-known, mandatory attributes were being applied only if an UPDATE contained the IPv4 NLRI and the peer was configured for v4/unicast (i.e. not deconfigured). This is something inherited from GNU Zebra, and never noticed before. * bgp_attr.c: (bgp_attr_parse) Move the well-known mandatory attribute check to here, so that it can be run immediately after all attributes are parsed, and before any further processing of attributes that might assume the existence of WK/M attributes (e.g. AS4-Path). (bgp_attr_munge_as4_attrs) Missing AS_PATH shouldn't happen here anymore, but retain a check anyway for robustness - it's definitely a hard error though. * bgp_attr.h: (bgp_attr_check) No longer needs to be exported, make static. * bgp_packet.c: (bgp_update_receive) Responsibility for well-known check now in bgp_attr_parse. commit b166ea2dda9f04a8b75e0bf5adb7064580695f22 Author: Joakim Tjernlund Date: Thu Jun 25 16:40:06 2009 +0100 [lib] Add support for backtrace on more platforms * lib/sigevent.c: (program_counter) extend to support more platforms. Joint effort with Paul Jakma. commit 18f420e9f99e7f6557cf5877673cd6e71ac32192 Author: Paul Jakma Date: Fri Sep 19 16:55:46 2014 +0100 lib/plist: Add some required parentheses, according to clang-analyzer commit 16f1606382b77ac6b951ea0de15384fcbc1df73f Author: Paul Jakma Date: Fri Sep 19 15:35:54 2014 +0100 ripng_nexthop: remove unused store to variable commit 7bef33cbf5027189bd55e4890a07a6bef8277f93 Author: Paul Jakma Date: Fri Sep 19 15:35:15 2014 +0100 ospf6_lsdb: trivial, make it clear that showfunc is set before deref. commit b2dd59ee0e74926278e128846624f5c93288223b Author: Paul Jakma Date: Fri Sep 19 15:34:48 2014 +0100 bgpd.c: Remove unused store to variable commit 7aa9dcef80b2ce50ecaa77653d87c8b84e009c49 Author: Paul Jakma Date: Fri Sep 19 14:42:23 2014 +0100 Fix most compiler warnings in default GCC build. Fix lots of warnings. Some const and type-pun breaks strict-aliasing warnings left but much reduced. * bgp_advertise.h: (struct bgp_advertise_fifo) is functionally identical to (struct fifo), so just use that. Makes it clearer the beginning of (struct bgp_advertise) is compatible with with (struct fifo), which seems to be enough for gcc. Add a BGP_ADV_FIFO_HEAD macro to contain the right cast to try shut up type-punning breaks strict aliasing warnings. * bgp_packet.c: Use BGP_ADV_FIFO_HEAD. (bgp_route_refresh_receive) fix an interesting logic error in (!ok || (ret != BLAH)) where ret is only well-defined if ok. * bgp_vty.c: Peer commands should use bgp_vty_return to set their return. * jhash.{c,h}: Can take const on * args without adding issues & fix warnings. * libospf.h: LSA sequence numbers use the unsigned range of values, and constants need to be set to unsigned, or it causes warnings in ospf6d. * md5.h: signedness of caddr_t is implementation specific, change to an explicit (uint_8 *), fix sign/unsigned comparison warnings. * vty.c: (vty_log_fixed) const on level is well-intentioned, but not going to fly given iov_base. * workqueue.c: ALL_LIST_ELEMENTS_RO tests for null pointer, which is always true for address of static variable. Correct but pointless warning in this case, but use a 2nd pointer to shut it up. * ospf6_route.h: Add a comment about the use of (struct prefix) to stuff 2 different 32 bit IDs into in (struct ospf6_route), and the resulting type-pun strict-alias breakage warnings this causes. Need to use 2 different fields to fix that warning? general: * remove unused variables, other than a few cases where they serve a sufficiently useful documentary purpose (e.g. for code that needs fixing), or they're required dummies. In those cases, try mark them as unused. * Remove dead code that can't be reached. * Quite a few 'no ...' forms of vty commands take arguments, but do not check the argument matches the command being negated. E.g., should 'distance X ' succeed if previously 'distance Y ' was set? Or should it be required that the distance match the previously configured distance for the prefix? Ultimately, probably better to be strict about this. However, changing from slack to strict might expose problems in command aliases and tools. * Fix uninitialised use of variables. * Fix sign/unsigned comparison warnings by making signedness of types consistent. * Mark functions as static where their use is restricted to the same compilation unit. * Add required headers * Move constants defined in headers into code. * remove dead, unused functions that have no debug purpose. commit 010ebbbca6396f272cc2d50d147dd922dda68213 Author: Paul Jakma Date: Tue Sep 16 11:53:49 2014 +0100 Add missing GPL headers, and copyright claims that certainly apply. * Fix (a subset of)? files with non-trivial code that are missing GPL headers. * A few copyright claims added which I am certain apply, but which I had missed out on the original commits. NB: Copyright claims are not exclusive and the addition of any copyright claim should not be read as implying a lack of any further claims, or denying the validity of any other claims. All those with claims of copyright over any portion of Quagga are welcome to submit them, ideally as patches to update copyright strings in files. commit ea55500409651b0f8fd2c8a02fdbf245acc96dd8 Author: Steve Hill Date: Tue Jul 28 16:36:14 2009 -0400 lib: Improve error reporting from broken config files * command.h: (config_from_file) Add variable to interface for line number reporting. * command.c: (config_from_file) Set & increment 'line_num' while parsing. * vty.c: (vty_read_file) Report parse errors in the correct order to stderr, with added line numbers. commit d4a8607d12e1d3f655055647f1633ec154685545 Author: Paul Jakma Date: Fri Oct 19 12:02:42 2012 +0100 HACKING: remove an unneeded escape commit 615f9f18fc025757a255f936748fc1e86e922783 Author: David Lamparter Date: Mon Nov 18 23:52:02 2013 +0100 lib: include thread information in backtraces now that we know what thread we're currently executing, let's add that information to SEGV / assert backtraces. Signed-off-by: David Lamparter commit 3493b7731b750cbc62f00be94b624a08ccccf0b2 Author: David Lamparter Date: Mon Nov 18 23:04:27 2013 +0100 lib: unstupidify thread debug information the library's thread scheduling functions keep track of the thread function's name, so far so good. However, copying the compiler-provided constant into a buffer inside the thread structure is plain useless. Also, strip_funcname() was trying to support something that never happens. Instead, let's use some bytes here to track where threads are scheduled from. Another commit will print that information on crashes. Ripping out useless stuff: -64 bytes in the thread structure Re-add as const ptr: +8 bytes Extra debug info: +12 bytes Signed-off-by: David Lamparter commit 621e2aaf33d8ab73bf44b0eea3f3900135d34996 Author: Lu Feng Date: Fri Jul 11 07:52:15 2014 +0000 zebra: fix rtnh_len in the rt_netlink messages for multipath case In _netlink_route_build_multipath(): - Each time when appending a IPv4 gateway in the message, rtnh_len is increased by sizeof (struct rtattr) + 4, where we should use "bytelen" instead of the hard coding "4". - As what done for IPv4, we should increase rtnh_len accordingly along with adding a IPv6 gateway, or else the IPv6 gateways will be lost. Signed-off-by: Feng Lu Reviewed-by: Alain Ritoux Signed-off-by: David Lamparter commit 0b74a0a5db7bcf65bf68c44b547b02b1310b5cdb Author: Lu Feng Date: Fri Jul 18 06:13:19 2014 +0000 ripd: allow to enable/disable the ECMP feature Introduce a new command "[no] allow-ecmp" to enable/disable the ECMP feature in RIP. By default, ECMP is not allowed. Once ECMP is disabled, only one route entry can exist in the list. * rip_zebra.c: adjust a debugging information, which shows the number of nexthops according to whether ECMP is enabled. * ripd.c: rip_ecmp_add() will reject the new route if ECMP is not allowed and some entry already exists. A new configurable command "allow-ecmp" is added to control whether ECMP is allowed. When ECMP is disabled, rip_ecmp_disable() is called to remove the multiple nexthops. * ripd.h: Add a new member "ecmp" to "struct rip", indicating whether ECMP is allowed or not. Signed-off-by: Feng Lu Reviewed-by: Alain Ritoux Signed-off-by: David Lamparter commit b397cf4f0fc484c5ebfc8a680090055c8e6cbe32 Author: Lu Feng Date: Fri Jul 18 06:13:18 2014 +0000 ripd: add ECMP support * Each node in the routing table is changed into a list, holding the multiple equal-cost paths. * If one of the multiple entries gets less-preferred (greater metric or greater distance), it will be directly deleted instead of starting a garbage-collection timer for it. The garbage-collection timer is started only when the last entry in the list gets INFINITY. * Some new functions are used to maintain the ECMP list. And hence rip_rte_process(), rip_redistribute_add() and rip_timeout() are significantly simplified. * rip_zebra_ipv4_add() and rip_zebra_ipv4_delete() now can share the common code. The common part is moved to rip_zebra_ipv4_send(). Signed-off-by: Feng Lu Reviewed-by: Alain Ritoux Signed-off-by: David Lamparter commit 1520e4748129c4eb97ac3090bcc97149a1900611 Merge: 342a31b 90444ca Author: David Lamparter Date: Tue Aug 19 18:15:40 2014 +0200 *: merge branch stable/0.99.23 Signed-off-by: David Lamparter commit 90444ca35e3037ed43ec695428f0ef6d82f9a320 Author: David Lamparter Date: Tue Jul 1 16:14:05 2014 +0200 lib: unset ZEBRA_IFA_PEER if no dst addr present (BZ#801) On OpenBSD, carp interfaces claim to be PtP interfaces with a 0.0.0.0/0 peer address. We process those in zebra and try to send them to clients, at which point they get encoded as all-0. The client code, however, decodes that to a NULL pointer instead of 0.0.0.0. This later turns into a SEGV when CONNECTED_PREFIX sees that ZEBRA_IFA_PEER is set and tries to access the peer prefix. This is a band-aid fix for stable/0.99.23, a long-term solution needs some conceptual improvements on the entire thing. (The usefulness of a PtP-to-0.0.0.0/0 is a separate question; at this point dropping the peer prefix seems the least intrusive solution.) Reported-by: Laurent Lavaud Signed-off-by: David Lamparter commit ad2f92b6b07883f6a2a26499eab1776933185960 Author: David Lamparter Date: Mon Aug 18 18:05:25 2014 +0200 isisd: type mix-up in 28a8cfc "don't require IPv4" Whoops, these are in6_addrs, not prefix_ipv6... funnily enough, it does the right thing either way, if it compiles, which it only does on Linux because IN6_IS_ADDR_LINKLOCAL contains a cast to the right type. On BSD there is no such cast, hence it explodes on trying to compile, trying to access struct members of in6_addrs while operating on prefix_ipv6... Fixes: 28a8cfc ("isisd: don't require IPv4 for adjacency") Signed-off-by: David Lamparter commit 4c005e3f65a1f5b4592b1ebbac392cbb1a710998 Author: John Glotzer Date: Mon Aug 4 19:39:23 2014 +0000 bgpd: memmove needed in community_del_val In bgpd/bgp_community_del_val memcpy is used for potentially overlapping regions which is *not* safe. It may "work" in some cases but is not guaranteed to work in all cases. The case that I saw fail was on an x86_64 architecture with the number of bytes being moved/copied equal to 8. The way the code is written the uint32_t pointers will always differ by 1, which is equivalent to a memcpy/memmove of regions that are 4 bytes away from one another. So the code failed while copying an 8 byte region to an address that is 4 bytes lower i.e. overlapping regions. Interestingly, the same architecture had no problems with a 12 byte copy. When the code failed the communities were [200,300,400] and a call was made to delete the 200 community. The result of this was an array that looked like [400,400] which was uniquified to [400]. Of course the expected result should have been [300, 400]. One additional point - in our production environment memmove would not *link* without including but in an isolated quagga git repo this #include does not seem to be required and I see memmove is used in vtysh.c without this #include either. Signed-off-by: David Lamparter commit 3ef0b877f08344aa52367794aa4ec32b12becd6d Author: Timo Teräs Date: Tue Jul 29 09:41:56 2014 +0000 build: do not assume glibc on linux The whole IPv6 stack detection could need refactoring. But this fixes the linux check to not assume glibc. Fixes build against musl c-library. Signed-off-by: Timo Teräs Signed-off-by: David Lamparter commit c299ed717eea4dbf7ca3581bcba05ff09f79276c Author: Timo Teräs Date: Tue Jul 29 09:41:55 2014 +0000 zebra: fix struct msghdr initializers struct msghdr field orders are not strictly specified in POSIX. Improve portability by using designated initializer. This fixes build against musl c-library where struct msghdr is POSIX compliant (Linux kernel and glibc definitions are non-conforming). As the result is also more readable, struct iovec initilizers were also converted. Signed-off-by: Timo Teräs Signed-off-by: David Lamparter commit 16ffb26fbbf8b3d1fee7a14eb401ecb02eed5058 Author: Timo Teräs Date: Tue Jul 29 09:41:54 2014 +0000 *: fix detection and usage of sys/cdefs.h This header is non-standard (though present on many systems) and there is no standard for what it should or should not define. Remove it where it is not really needed. But add also a configure check, so it can be used if available but otherwise fallback to defining the needed macroes. Signed-off-by: Timo Teräs Signed-off-by: David Lamparter commit 28a8cfcbc3a5cc74bb3b87981b878f8b4edc2dd6 Author: David Lamparter Date: Sun Jun 29 13:48:18 2014 +0200 isisd: don't require IPv4 for adjacency This was precluding isisd from IPv6-only operation; no adjacency would come up unless there was IPv4 in parallel. Reported-by: Martin Winter Signed-off-by: David Lamparter commit 8b16ed74fa61523c3348d2584b66a56a8ad4e350 Author: David Lamparter Date: Sun Jul 6 22:33:48 2014 +0200 tests/bgpd: don't hardcode error number (fix f57000c) f57000c ("bgpd: don't send NOTIFY twice for malformed attrs") introduces BGP_ATTR_PARSE_ERROR_NOTIFYPLS as additional error code that implies the caller should sent a NOTIFY and convert it to BGP_ATTR_PARSE_ERROR. Sadly, the latter was hardcoded in bgp_mp_attr_test.c, which now didn't consider the new value to be an error. Make the testcase treat all nonzero values as error without discern. Signed-off-by: David Lamparter commit 342a31bfda21616209366679ac522471e5772a2f Author: Lu Feng Date: Wed Jun 25 07:43:15 2014 +0000 ripd: use only one constant for derivation RIP_MAX_RTE is defined in ripd.h as 25 but is in fact the result of a formula. More over it is not used in the code: the code itself includes the fomula. This makes it un-clear for maintenance. Signed-off-by: Feng Lu Reviewed-by: Alain Ritoux Signed-off-by: David Lamparter commit 052573ee2319b21657a79e1b76a5c801701fa38c Merge: 0ff692e f57000c Author: David Lamparter Date: Sun Jun 29 12:52:52 2014 +0200 *: merge branch stable/0.99.23 bgp extcommunity fixes from stable branch Signed-off-by: David Lamparter commit f57000c0dbdd0e30e71b6651022392f284201e19 Author: David Lamparter Date: Wed Jun 4 01:01:10 2014 +0200 bgpd: don't send NOTIFY twice for malformed attrs Most of the attribute parsing functions were already sending a notify, let's clean up the code to make it happen only once. Signed-off-by: David Lamparter commit bb02b82354a80f74706efc5e4c914b3f89fb033e Author: David Lamparter Date: Wed Jun 4 01:01:00 2014 +0200 bgpd: fix IP endianness in debug message inet_ntop expects network byte order. Signed-off-by: David Lamparter commit f80f838b2f54738937ef1281b237710132195c44 Author: David Lamparter Date: Wed Jun 4 01:00:51 2014 +0200 bgpd: fix memory leak on malformed attribute When bgp_attr_parse returns BGP_ATTR_PARSE_ERROR, it may already have parsed and allocated some attributes before hitting that error. Free the attr's data before returning. Signed-off-by: David Lamparter commit 27bf90a14670283a899b96c56dd23f8413e0973e Author: David Lamparter Date: Wed Jun 4 00:59:01 2014 +0200 bgpd: fix double free after extcommunity set (BZ#799) The route-map extcommunity set code was incorrectly assuming that it owns the intern'd struct ecommunity reference. In reality, the intern'd reference belongs to bgp_update_receive() and we're not supposed to touch it in the route-map code. Instead, like all the other set commands, we use a on-heap but non-intern'd ecommunity to set the new value. This is then either intern'd in bgp_update_main/_rsclient() through bgp_attr_intern(), or free'd through bgp_attr_flush(). This fixes Bugzilla #799, which is that bgpd otherwise crashes with a double free. The ecommunity got unintern'd first in the route-map set command, then in bgp_update_receive(). Debugged-by: Milan Kocian Reported-by: Florian S Signed-off-by: David Lamparter commit 73d78ea0153fd36a300be5fec2ef0fca34a67477 Author: David Lamparter Date: Wed Jun 4 00:58:47 2014 +0200 bgpd: remove duplicate route-map extcommunity code route_set_ecommunity_rt and _soo share almost all of their code. Let's remove one of the redundant copies. Signed-off-by: David Lamparter commit c460e5720c1101a6da53e5b753b736ac2c7981af Author: David Lamparter Date: Wed Jun 4 00:54:58 2014 +0200 bgpd: fix some bgp_update_main() attribute leaks bgp_update_main() wasn't doing anything to release attribute values set from route maps for two of its error paths. To fix, pull up the appropriate cleanup from further down and apply it here. bgp_update_rsclient() doesn't have the issue since it immediately does bgp_attr_intern() on the results from bgp_{export,import}_modifier. Signed-off-by: David Lamparter commit 0ff692ed59696c534e6bfd0f9d6e83706fbbec4a Merge: a4b5665 b304dcb Author: David Lamparter Date: Sun Jun 29 11:57:26 2014 +0200 bgpd: merge branch tteras/master~3 (b304dcb) route-map tidying + next-hop-self all Signed-off-by: David Lamparter commit b304dcb8abc4e5b93f86a4024990980746e730be Author: Timo Teräs Date: Tue May 20 09:04:49 2014 +0300 bgpd: route-map: share aspath object compilation code where possible Signed-off-by: Timo Teräs commit 9e7a53c179f6897128b24435452b5d3d0f8c715a Author: Timo Teräs Date: Thu Apr 24 10:22:37 2014 +0300 bgpd: implement "next-hop-self all" As specified in: http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_bgp/command/irg-cr-book/bgp-m1.html#wp4972925610 This allows overriding next-hop for ibgp learned routes on an RR for reflected routes. Especially useful for using iBGP in DMVPN setups. See: http://blog.ipspace.net/2014/04/changes-in-ibgp-next-hop-processing.html Signed-off-by: Timo Teräs commit 2aa640bd78b64821bde9a53ecdd1e96e91b20ae4 Author: Timo Teräs Date: Tue May 20 08:57:26 2014 +0300 bgpd: fix route-map comments Signed-off-by: Timo Teräs