[quagga-dev 11997] Re: [PATCH 15/15] doc: zebra multicast RIB commands

2015-01-29 Thread Alexis Rosen
On Jan 29, 2015, at 7:54 PM, David Lamparter wrote: > +@deffn Command {ip multicast rpf-lookup-mode @var{mode}} {} > +@deffnx Command {no ip multicast rpf-lookup-mode [@var{mode}]} {} > + > +@var{mode} sets the method used to perform RPF lookups. Supported modes: > + > +@table @samp > +@item uri

[quagga-dev 11994] [PATCH 10/15] zebra: dummy kernel "install" multicast routes

2015-01-29 Thread David Lamparter
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 th

[quagga-dev 11986] [PATCH 02/15] zebra: identify MRIB on debug messages

2015-01-29 Thread David Lamparter
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 --- zebra/zebra_rib.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) di

[quagga-dev 11996] [PATCH 12/15] zebra: make MRIB lookup behaviour switchable

2015-01-29 Thread David Lamparter
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 lowes

[quagga-dev 11989] [PATCH 05/15] zebra: add ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB

2015-01-29 Thread David Lamparter
From: Everton Marques 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 p

[quagga-dev 11993] [PATCH 08/15] zebra: mrib: static route support

2015-01-29 Thread David Lamparter
From: Everton Marques 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 rout

[quagga-dev 11985] [PATCH 01/15] zebra: factor out rib debug logs

2015-01-29 Thread David Lamparter
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: Da

[quagga-dev 11990] [PATCH 06/15] zebra: mrib: Include BGP routes in RPF lookups

2015-01-29 Thread David Lamparter
From: Everton Marques 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 --- zebra/r

[quagga-dev 11996] [PATCH 15/15] doc: zebra multicast RIB commands

2015-01-29 Thread David Lamparter
Signed-off-by: David Lamparter --- doc/main.texi | 76 +++ 1 file changed, 76 insertions(+) diff --git a/doc/main.texi b/doc/main.texi index a6bf0d1..810866a 100644 --- a/doc/main.texi +++ b/doc/main.texi @@ -10,6 +10,7 @@ different routing

[quagga-dev 11984] Multicast RIB/zebra code

2015-01-29 Thread David Lamparter
Hi everyone, this is Everton Marques' code (original to be found at https://github.com/udhos/qpimd/tree/mrib.v2), rebased, history-cleaned and extended with some side bits: preparatory: - zebra: factor out rib debug logs - zebra: identify MRIB on debug messages MRPF lookup: - zebra: add rib_match

[quagga-dev 11991] [PATCH 07/15] zebra: kill rib_match_ipv4()

2015-01-29 Thread David Lamparter
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 --- zebra/rib.h | 1 - zebra/zebra_rib.c | 6 -- zebra/zserv.c | 4 ++-- 3 files ch

[quagga-dev 11997] [PATCH 14/15] zebra: mark multicast commands experimental

2015-01-29 Thread David Lamparter
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 --- lib/vty.h | 8 zebra/zebra_vty.c | 7 ++

[quagga-dev 11998] [PATCH 13/15] zebra: add "show ip rpf" to get result of RPF lookup

2015-01-29 Thread David Lamparter
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

[quagga-dev 11988] [PATCH 04/15] zebra: point rib_match_ipv4() to ._safi()

2015-01-29 Thread David Lamparter
From: Everton Marques 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 --- zebra/zebra_rib.c | 59 +--

[quagga-dev 11995] [PATCH 11/15] zebra: return route_node from rib_match_ipv4_safi

2015-01-29 Thread David Lamparter
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 --- zebra/rib.h | 3 ++- zebra/zebra_rib.c

[quagga-dev 11992] [PATCH 09/15] zebra: fix optional distance on static mrib route

2015-01-29 Thread David Lamparter
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 S

[quagga-dev 11987] [PATCH 03/15] zebra: add rib_match_ipv4_safi()

2015-01-29 Thread David Lamparter
From: Everton Marques This is the same as rib_lookup_ipv4(), without the SAFI hardcoded. Cc: Balaji G Cc: Everton Marques Signed-off-by: David Lamparter --- zebra/rib.h | 1 + zebra/zebra_rib.c | 57 +++ 2 files changed, 58 insertion