summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * [pim] igmpv3: specific query interval set to 1 second (RFC 3376 8.8.)Leonard Herve2015-02-048-29/+80
| | | | | | | | | | | | | | [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
| * [pim] Log physical interface up/downEverton Marques2015-02-0414-62/+85
| | | | | | | | | | | | | | | | | | [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
| * [pim] pim commands added to vtyshLeonard Herve2015-02-047-153/+207
| |
| * [pim] Initial pim 0.155Everton Marques2015-02-0490-17/+21722
| |
| * doc: explain rpf lookup default modeDavid Lamparter2015-02-021-0/+5
| | | | | | | | | | Reported-by: Alexis Rosen <quagga-users@alexis.users.panix.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * doc: zebra multicast RIB commandsDavid Lamparter2015-01-301-0/+76
| | | | | | | | Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: mark multicast commands experimentalDavid Lamparter2015-01-302-0/+15
| | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: add "show ip rpf" to get result of RPF lookupDavid Lamparter2015-01-301-5/+47
| | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: make MRIB lookup behaviour switchableDavid Lamparter2015-01-304-21/+169
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: return route_node from rib_match_ipv4_safiDavid Lamparter2015-01-303-10/+18
| | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: dummy kernel "install" multicast routesDavid Lamparter2015-01-301-8/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: fix optional distance on static mrib routeDavid Lamparter2015-01-221-8/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: mrib: static route supportEverton Marques2015-01-223-36/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: kill rib_match_ipv4()David Lamparter2015-01-223-9/+2
| | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: mrib: Include BGP routes in RPF lookupsEverton Marques2015-01-223-7/+7
| | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: add ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIBEverton Marques2015-01-222-1/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: point rib_match_ipv4() to ._safi()Everton Marques2015-01-221-58/+1
| | | | | | | | | | | | | | | | | | 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 <balajig81@gmail.com> Cc: Everton Marques <everton.marques@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: add rib_match_ipv4_safi()Everton Marques2015-01-222-0/+58
| | | | | | | | | | | | | | | | This is the same as rib_lookup_ipv4(), without the SAFI hardcoded. Cc: Balaji G <balajig81@gmail.com> Cc: Everton Marques <everton.marques@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * zebra: identify MRIB on debug messagesDavid Lamparter2015-01-221-1/+4
| | | | | | | | | | | | | | | | 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 <equinox@opensourcerouting.org>
| * zebra: factor out rib debug logsDavid Lamparter2015-01-221-63/+51
| | | | | | | | | | | | | | | | | | | | 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 <equinox@opensourcerouting.org>
* | doc: explain rpf lookup default modeDavid Lamparter2015-02-061-0/+5
| | | | | | | | | | Reported-by: Alexis Rosen <quagga-users@alexis.users.panix.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | doc: zebra multicast RIB commandsDavid Lamparter2015-02-061-0/+76
| | | | | | | | Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: mark multicast commands experimentalDavid Lamparter2015-02-062-0/+15
| | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: add "show ip rpf" to get result of RPF lookupDavid Lamparter2015-02-061-5/+47
| | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: make MRIB lookup behaviour switchableDavid Lamparter2015-02-064-21/+169
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: return route_node from rib_match_ipv4_safiDavid Lamparter2015-02-063-10/+18
| | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: dummy kernel "install" multicast routesDavid Lamparter2015-02-061-8/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: fix optional distance on static mrib routeDavid Lamparter2015-02-061-8/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: mrib: static route supportEverton Marques2015-02-063-36/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: kill rib_match_ipv4()David Lamparter2015-02-063-9/+2
| | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: mrib: Include BGP routes in RPF lookupsEverton Marques2015-02-063-7/+7
| | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: add ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIBEverton Marques2015-02-062-1/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <everton.marques@gmail.com> Cc: Balaji G <balajig81@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: point rib_match_ipv4() to ._safi()Everton Marques2015-02-061-58/+1
| | | | | | | | | | | | | | | | | | 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 <balajig81@gmail.com> Cc: Everton Marques <everton.marques@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: add rib_match_ipv4_safi()Everton Marques2015-02-062-0/+58
| | | | | | | | | | | | | | | | This is the same as rib_lookup_ipv4(), without the SAFI hardcoded. Cc: Balaji G <balajig81@gmail.com> Cc: Everton Marques <everton.marques@gmail.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | zebra: identify MRIB on debug messagesDavid Lamparter2015-02-061-1/+4
| | | | | | | | | | | | | | | | 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 <equinox@opensourcerouting.org>
* | zebra: factor out rib debug logsDavid Lamparter2015-02-061-63/+51
| | | | | | | | | | | | | | | | | | | | 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 <equinox@opensourcerouting.org>
* | isisd: match adjacency with source of hellosAmritha Nambiar2015-02-061-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | 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 <amritha.nambiar@intel.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | isisd: fix crash on changing the circuit type of a passive interfaceLu Feng2015-02-061-19/+22
| | | | | | | | | | Signed-off-by: Feng Lu <lu.feng@6wind.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | ospfd: set O-bit in the option of all DD packetsLu Feng2015-02-061-16/+1
| | | | | | | | | | | | | | | | | | | | 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 <lu.feng@6wind.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | bgpd: fix negative values in outputMilan Kocian2015-02-062-6/+6
| | | | | | | | | | | | | | | | | | 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 <milon@wq.cz> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | tests: fix tests for 1a211cb (missing well-known)David Lamparter2015-02-061-2/+5
| | | | | | | | | | | | | | | | | | | | | | 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 <paul@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | ospfd: Fix initial Opaque LSA DB synchronisationOlivier Dugeon2015-01-271-7/+13
|/ | | | | | | | | | | | | 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 <olivier.dugeon@orange.com>
* lib: don't create circular lists (fixes 6d83113)David Lamparter2015-01-061-0/+1
| | | | | | | | | | | | | | | 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 <mwinter@netdef.org> Fixes: 6d83113 ("ospfd: Tweak previous iface RR write patch to avoid free/malloc & redundant log") Cc: Paul Jakma <paul@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Acked-by: Greg Troxel <gdt@ir.bbn.com> Acked-by: Dinesh Dutt <ddutt@cumulusnetworks.com> Acked-by: Vincent JARDIN <vincent.jardin@6wind.com>
* bgpd: set BGP_ATTR_MP_[UN]REACH_NLRI (fixes 1a211cb)David Lamparter2014-12-081-0/+5
| | | | | | | | | | | 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 <mwinter@netdef.org> Fixes: 1a211cb "bgpd: one more fix for tightening of check for missing well-known attributes" Cc: Paul Jakma <paul@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* bgpd: stop startup timer on stopping BGP (fixes dd49eb1)David Lamparter2014-12-071-0/+2
| | | | | | | | | | | | 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 <mwinter@netdef.org> Fixes: dd49eb1 ("Fix BGP's use of restart bit.") Cc: Vipin Kumar <vipin@cumulusnetworks.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Acked-by: Vincent JARDIN <vincent.jardin@6wind.com>
* zebra/kernel_socket.c: Use platform alignmentGreg Troxel2014-12-021-10/+40
| | | | | | | | | 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.
* doc: Document 'set as-path prepend' and 'set as-path prepend last-as'Paul Jakma2014-11-251-1/+5
|
* bgpd: implement route-map set as-path prepend last-asTimo Teräs2014-11-254-28/+87
| | | | | | | | 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 <timo.teras@iki.fi> Reviewed-by: Paul Jakma <paul@opensourcerouting.org>
* bgpd: one more fix for tightening of check for missing well-known attributesPaul Jakma2014-11-251-2/+2
| | | | | | | | | * 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.
* bgpd: trivial, remove unneeded extra variable in bgp_capability_restartPaul Jakma2014-11-111-6/+5
|