Go to file
anuradhak 7176984f74 pim-anycast-rp: Add limited support for secondary addresses.
Anycast requires that the lo interface be associated with multiple
addresses. One is the anycast IP address (which is the same on all RPs
participating in RP redundancy) and the second is the unique IP address
that will be used as the router id by routing protocols.

To accomodate that we maintain a list of secondary addresses per-pim iface
and allow any of them to be the RP address. This lets the I_am_RP macro
succeed on anycast RPs.

Note that the support is limited i.e. we don't actually advertise a
secondary list to the neighbors. This is assuming the anycast IP will never
be used as a router id i.e. will never be an RPF neighbor.

Sample output:
==============
dell-s6000-04# sh ip pim interface lo
Interface : lo
State     : up
Address   : 100.1.1.1 (primary)
            100.1.1.2
            100.1.1.3
            100.1.2.1
>>>>>>> SNIP >>>>>>>>>>>>>>>
dell-s6000-04# sh ip pim interface lo json
{
  "lo":{
    "name":"lo",
    "state":"up",
    "address":"100.1.1.1",
    "index":1,
    "lanDelayEnabled":true,
    "secondaryAddressList":[
      "100.1.1.2",
      "100.1.1.3",
      "100.1.2.1"
    ],
>>>>>>> SNIP >>>>>>>>>>>>>>>
dell-s6000-04#sh ip pim rp-info
RP address       group/prefix-list   OIF         I am RP
100.1.2.1        224.0.0.0/4         lo          yes
dell-s6000-04#

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-12-21 20:26:16 -05:00
bgpd bgpd: shuffle qobj_init() 2016-12-16 20:42:01 +01:00
cumulus Merge remote-tracking branch 'origin/cmaster' into cmaster-next 2016-08-17 20:52:04 -04:00
debian Merge branch 'cmaster-next' into vtysh-grammar 2016-11-22 21:36:54 +00:00
doc build: COMMUNITY.md: add git branch diagram 2016-12-01 17:16:24 +01:00
fpm Use only the ISC license for .proto files. 2016-09-23 12:12:16 -04:00
gdb gdb: Add a directory of files with gdb macros 2016-05-26 15:33:30 +00:00
init build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
isisd *: kill useless if(...) after VTY_DECLVAR_CONTEXT 2016-12-09 17:50:01 +01:00
ldpd Merge branch 'dev/osr/vty_index' 2016-12-15 21:34:53 +01:00
lib lib: Fix clang SA warnings. 2016-12-21 20:26:15 -05:00
m4 build: check flex >= 2.5.20 is available 2016-12-16 20:42:01 +01:00
ospf6d *: kill useless if(...) after VTY_DECLVAR_CONTEXT 2016-12-09 17:50:01 +01:00
ospfclient lib: migrate to new memory-type handling 2016-09-19 18:35:50 +02:00
ospfd *: kill useless if(...) after VTY_DECLVAR_CONTEXT 2016-12-09 17:50:01 +01:00
pimd pim-anycast-rp: Add limited support for secondary addresses. 2016-12-21 20:26:16 -05:00
pkgsrc build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
ports pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04:00
qpb fpm/protobuf: fix compile errors & warnings 2016-09-23 12:12:17 -04:00
redhat build: drop TODO from redhat/quagga.spec.in 2016-11-29 20:31:43 +01:00
ripd *: coccinelle-replace vty->index 2016-12-09 17:36:25 +01:00
ripngd *: coccinelle-replace vty->index 2016-12-09 17:36:25 +01:00
solaris solaris: fix SMF manifest dependency model and start method 2016-05-26 15:25:13 +00:00
tests tests: fix mis-fixed format string 2016-12-16 20:42:01 +01:00
tools *: kill useless if(...) after VTY_DECLVAR_CONTEXT 2016-12-09 17:50:01 +01:00
vtysh vtysh: Fix static compilation 2016-12-08 14:52:37 +01:00
watchquagga Merge remote-tracking branch 'opensourcerouting/cmaster-next-vty2' into cmaster-next 2016-11-10 08:08:23 -05:00
zebra zebra: Cleanup zebra_static CLANG/SA issues. 2016-12-21 20:26:15 -05:00
.gitignore build: check flex >= 2.5.20 is available 2016-12-16 20:42:01 +01:00
AUTHORS Initial revision 2002-12-13 20:15:29 +00:00
bootstrap.sh autoreconf -i 2007-02-06 19:28:28 +00:00
buildtest.sh build: remove --disable-ipv6 2016-06-03 15:51:36 -04:00
ChangeLog [trivia] Make 'make dist' happy about ChangeLog expunge 2008-08-23 08:36:42 +01:00
common.am qpb: Add support for protobuf. 2016-09-23 12:12:16 -04:00
COMMUNITY.md quagga: Remove description of deprecated interfaces 2016-12-08 12:50:25 +01:00
configure.ac build: automake 1.12 to deal with flex & bison 2016-12-16 20:42:01 +01:00
COPYING *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
COPYING-LGPLv2.1 build: remove LGPL v2.0, add LGPL v2.1 2016-11-15 17:19:38 +09:00
INSTALL.quagga.txt build: goodbye, gawk 2016-09-19 16:31:08 -04:00
Makefile.am build: ditch outdated documents, including HACKING 2016-11-28 19:03:10 +01:00
NEWS release: 0.99.24 2016-06-03 15:56:44 -04:00
README doc: update README to mention PIM-SSM and LDP support 2016-12-05 15:48:46 +01:00
README.NetBSD Omit --opaque-lsa from build (now default). 2011-06-28 15:05:05 -04:00
render_md.py build: number sections in COMMUNITY.md HTML 2016-12-05 19:08:00 +01:00
REPORTING-BUGS Update for git and emphasize asking for good reports. 2010-05-05 07:51:26 -04:00
SERVICES pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
update-autotools * README.NetBSD: use update-autotools instead of autoreconf 2007-02-02 16:52:38 +00:00

Quagga is free software that manages various IPv4 and IPv6 routing
protocols.

Currently Quagga supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1,
RIPv2, RIPng, PIM-SSM and LDP as well as very early support for IS-IS.
  
See the file INSTALL.quagga.txt for building and installation instructions.
  
See the file REPORTING-BUGS to report bugs.
  
Quagga is free software. See the file COPYING for copying conditions.