Donald Sharp 22e0224d41 pimd: Create ability to modify hell and hold timers per interface 4 years ago
..
.gitignore a057a066aa pimd: extend .gitignore 4 years ago
AUTHORS 871dbcfede [pim] Initial pim 0.155 4 years ago
CAVEATS 8852dba773 pimd: React as secondary address change for any address change 4 years ago
COMMANDS bb7feff0af Revert "pimd: clear zclient-update: Reset zclient update connection to zebra daemon" 4 years ago
COPYING 871dbcfede [pim] Initial pim 0.155 4 years ago
DEBUG 3edadebed3 pimd: Clarifications on debug hints. 4 years ago
LINUX_KERNEL_MROUTE_MFC b471196e81 [pim] ip mroute show: can display the MFC 4 years ago
Makefile.am 030674d7f9 pimd: add support for configuring multicast static routes 4 years ago
README 1f7a2b4468 github repository. 4 years ago
TODO 8852dba773 pimd: React as secondary address change for any address change 4 years ago
TROUBLESHOOTING f80f8aa34b pimd: Troubleshooting script. 4 years ago
WHY_SSM 3d62667ab0 pimd: Remove reference to external doc. 4 years ago
git-clone-github.sh 8291988002 pimd: Rename script with recipe for git cloning 4 years ago
git-clone-savannah.sh 8291988002 pimd: Rename script with recipe for git cloning 4 years ago
pim_assert.c c1b228c5cf pimd: Reduce informative mandatory logging. 4 years ago
pim_assert.h f8cfeb25e6 pimd: fix worst char * <> uint8_t * intermingling 4 years ago
pim_cmd.c 22e0224d41 pimd: Create ability to modify hell and hold timers per interface 4 years ago
pim_cmd.h 22e0224d41 pimd: Create ability to modify hell and hold timers per interface 4 years ago
pim_hello.c ed14fa0075 pimd: Addition of Hello & Join-Prune message debug commands 4 years ago
pim_hello.h f8cfeb25e6 pimd: fix worst char * <> uint8_t * intermingling 4 years ago
pim_iface.c 771626860a PIMD: Fix code to use srandom/random 4 years ago
pim_iface.h 126215c123 *: call if_init()/if_terminate() from vrf_init()/vrf_terminate() 4 years ago
pim_ifchannel.c c1b228c5cf pimd: Reduce informative mandatory logging. 4 years ago
pim_ifchannel.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_igmp.c 05c6dcdf8c pimd: Fix invalid memory read when receiving a V1 or V2 query. 4 years ago
pim_igmp.h 567f927c39 [pim] show ip igmp join 4 years ago
pim_igmp_join.c d0d7980b7c [pim] Compile fixes for FreeBSD. 4 years ago
pim_igmp_join.h 40765fe45f [pim] Command line tool to test IGMPv3 join. 4 years ago
pim_igmpv3.c a2c7f4bd86 pimd: cast to sockaddr_in to sockaddr 4 years ago
pim_igmpv3.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_int.c e691c3bb97 *: assorted warning fixes 4 years ago
pim_int.h 7c5f50125d [pim] Fix net/host byte order 4 years ago
pim_join.c d459586904 Parsing fixes. 4 years ago
pim_join.h f8cfeb25e6 pimd: fix worst char * <> uint8_t * intermingling 4 years ago
pim_macro.c 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_macro.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_main.c 126215c123 *: call if_init()/if_terminate() from vrf_init()/vrf_terminate() 4 years ago
pim_mroute.c f24200d77a C18 MFC never recovers from removal of static route to source 4 years ago
pim_mroute.h 1934e7895d pim_mroute.h has a different version of code than linux/mroute.h provides 4 years ago
pim_msg.c 93911267a3 pimd: Remove unused pim checksum in favour of quagga's version. 4 years ago
pim_msg.h f8cfeb25e6 pimd: fix worst char * <> uint8_t * intermingling 4 years ago
pim_neighbor.c 76240f11e6 pimd: Fix first DR Election 4 years ago
pim_neighbor.h 6ae80e0d80 pimd: Add ability to set DR Priority for an interface 4 years ago
pim_oil.c 5c69798346 pimd: fix format strings 4 years ago
pim_oil.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_pim.c a031c4dd72 pimd: Ensure new generation_id is different from previous 4 years ago
pim_pim.h f8cfeb25e6 pimd: fix worst char * <> uint8_t * intermingling 4 years ago
pim_rpf.c c1b228c5cf pimd: Reduce informative mandatory logging. 4 years ago
pim_rpf.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_signals.c ff57d3653e pimd: Fixes to build against current quagga. 4 years ago
pim_signals.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_sock.c f8cfeb25e6 pimd: fix worst char * <> uint8_t * intermingling 4 years ago
pim_sock.h f8cfeb25e6 pimd: fix worst char * <> uint8_t * intermingling 4 years ago
pim_ssmpingd.c a2c7f4bd86 pimd: cast to sockaddr_in to sockaddr 4 years ago
pim_ssmpingd.h 824adbea2d [pim] Hooks for ssmpingd support 4 years ago
pim_static.c 030674d7f9 pimd: add support for configuring multicast static routes 4 years ago
pim_static.h 030674d7f9 pimd: add support for configuring multicast static routes 4 years ago
pim_str.c e96f0af267 [pim] Log physical interface up/down 4 years ago
pim_str.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_time.c 679fab4234 pimd: Simplify gettime-related code. 4 years ago
pim_time.h ff752d4316 [pim] Cosmetic RPF refresh timer display 4 years ago
pim_tlv.c d459586904 Parsing fixes. 4 years ago
pim_tlv.h f8cfeb25e6 pimd: fix worst char * <> uint8_t * intermingling 4 years ago
pim_upstream.c 7f56743f7d pimd assert when no route to source from a new igmp join 4 years ago
pim_upstream.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_util.c 93911267a3 pimd: Remove unused pim checksum in favour of quagga's version. 4 years ago
pim_util.h 93911267a3 pimd: Remove unused pim checksum in favour of quagga's version. 4 years ago
pim_version.c 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_version.h 629e30bb43 pimd: Version up. 4 years ago
pim_vty.c 22e0224d41 pimd: Create ability to modify hell and hold timers per interface 4 years ago
pim_vty.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_zebra.c c99f3481a5 *: add VRF ID in the API message header 4 years ago
pim_zebra.h 1f298949be pimd: -z command-line switch to specify zebra socket path. 4 years ago
pim_zlookup.c c99f3481a5 *: add VRF ID in the API message header 4 years ago
pim_zlookup.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pimd.c 030674d7f9 pimd: add support for configuring multicast static routes 4 years ago
pimd.conf.sample 8bc0b34a2b [pim] Sample config for ssmpingd support 4 years ago
pimd.h 030674d7f9 pimd: add support for configuring multicast static routes 4 years ago
quagga-bootstrap.sh b9ef7704a7 [pim] bootstrap from tarball prefers autoreconf -i 4 years ago
quagga-build-no-vtysh.sh ee61109c04 pimd: Fix comment 4 years ago
quagga-build.sh 871dbcfede [pim] Initial pim 0.155 4 years ago
quagga-configure-no-vtysh.sh 5460baef7f *: fix "babeld: Remove babeld from Quagga" (336724d) 4 years ago
quagga-configure.sh d96f9ffaea pimd: Recipe for building without vtysh. 4 years ago
quagga-git-add.sh 871dbcfede [pim] Initial pim 0.155 4 years ago
quagga-memtypes.sh 871dbcfede [pim] Initial pim 0.155 4 years ago
test_igmpv3_join.c d0d7980b7c [pim] Compile fixes for FreeBSD. 4 years ago

README

#
# $QuaggaId: $Format:%an, %ai, %h$ $
#

INTRODUCTION

qpimd aims to implement a PIM (Protocol Independent Multicast)
daemon for the Quagga Routing Suite.

Initially qpimd targets only PIM SSM (Source-Specific
Multicast) mode as defined in section 4.8.2 (PIM-SSM-Only
Routers) of RFC 4601.

In order to deliver end-to-end multicast routing control
plane, qpimd includes the router-side of IGMPv3 (RFC 3376).

LICENSE

qpimd - pimd for quagga
Copyright (C) 2008 Everton da Silva Marques

qpimd is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2,
or (at your option) any later version.

qpimd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public
License along with qpimd; see the file COPYING. If not, write
to the Free Software Foundation, Inc., 59 Temple Place - Suite
330, Boston, MA 02111-1307, USA.

HOME SITE

qpimd lives at:

https://github.com/udhos/qpimd

PLATFORMS

qpimd has been tested with Debian Lenny under Linux 2.6.

REQUIREMENTS

qpimd requires Quagga (0.99.11 or higher from http://www.quagga.net)

The GNU Build System (Autotools) is required to build from
source code repository.

gawk is also needed to build with Autotools. Any other awk
usually won't work.

BUILDING FROM QUAGGA GIT REPOSITORY

1) Get the latest quagga source tree

# git clone git://code.quagga.net/quagga.git quagga

2) Apply qpimd patch into quagga source tree

# patch -p1 -d quagga < pimd-0.153-quagga-git20090623.patch

3) Compile and install quagga

# cd quagga
# ./bootstrap.sh
# ./configure --prefix=/usr/local/quagga --enable-pimd
# make
# make install

BUILDING FROM QUAGGA TARBALL

1) Get the latest quagga tarball

# wget http://www.quagga.net/download/quagga-0.99.13.tar.gz

2) Unpack the quagga tarball

# tar xzf quagga-0.99.13.tar.gz

3) Apply qpimd patch into quagga source tree

# patch -p1 -d quagga-0.99.13 < pimd-0.153-quagga-0.99.13.patch

4) Compile and install quagga

# cd quagga-0.99.13
# ./configure --prefix=/usr/local/quagga --enable-pimd
# make
# make install

USAGE

1) Configure and start the zebra daemon

# cp /usr/local/quagga/etc/zebra.conf.sample /usr/local/quagga/etc/zebra.conf
# vi /usr/local/quagga/etc/zebra.conf
# /usr/local/quagga/sbin/zebra

2) Configure and start the pimd daemon

# cp /usr/local/quagga/etc/pimd.conf.sample /usr/local/quagga/etc/pimd.conf
# vi /usr/local/quagga/etc/pimd.conf
# /usr/local/quagga/sbin/pimd

3) Access pimd vty interface at port TCP 2611

# telnet localhost 2611

CONFIGURATION COMMANDS

See available commands in the file pimd/COMMANDS.

KNOWN CAVEATS

See list of known caveats in the file pimd/CAVEATS.

SUPPORT

Please post comments, questions, patches, bug reports at the
support site:

https://github.com/udhos/qpimd

RELATED WORK

igmprt: An IGMPv3-router implementation
- http://www.loria.fr/~lahmadi/igmpv3-router.html

USC pimd: PIMv2-SM daemon
- http://netweb.usc.edu/pim/pimd (URL broken in 2008-12-23)
- http://packages.debian.org/source/sid/pimd (from Debian)

troglobit pimd: This is the original USC pimd from
http://netweb.usc.edu/pim/. In January 16, 2010 it was revived
with the intention to collect patches floating around in
Debian, Gentoo, Lintrack and other distribution repositories
and to provide a central point of collaboration.
- http://github.com/troglobit/pimd

zpimd: zpimd is not dependent of zebra or any other routing daemon
- ftp://robur.slu.se/pub/Routing/Zebra
- http://sunsite2.icm.edu.pl/pub/unix/routing/zpimd

mrd6: an IPv6 Multicast Router for Linux systems
- http://fivebits.net/proj/mrd6/

MBGP: Implementation of RFC 2858 for Quagga
- git://git.coplanar.net/~balajig/quagga
- http://www.gossamer-threads.com/lists/quagga/dev/18000

REFERENCES

IANA Protocol Independent Multicast (PIM) Parameters
http://www.iana.org/assignments/pim-parameters/pim-parameters.txt

Address Family Numbers
http://www.iana.org/assignments/address-family-numbers

-- END --