David Lamparter 237aac5696 build: get rid of INCLUDES, use AM_CPPFLAGS 5 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 237aac5696 build: get rid of INCLUDES, use AM_CPPFLAGS 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 bb7feff0af Revert "pimd: clear zclient-update: Reset zclient update connection to zebra daemon" 4 years ago
pim_cmd.h ed14fa0075 pimd: Addition of Hello & Join-Prune message debug commands 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 85385f7eee pimd: Log ifindex found for an interface when zebra lib reports a new connected address. 4 years ago
pim_iface.h b240297cfe pimd: Detection of interface primary address changes. 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 24e3a9b5ff pimd: Report del_oif() failure within igmp_source_forward_stop(). 4 years ago
pim_igmpv3.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_int.c 7c5f50125d [pim] Fix net/host byte order 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 d632689579 pimd: Fix configuration file reading upon startup 4 years ago
pim_mroute.c f24200d77a C18 MFC never recovers from removal of static route to source 4 years ago
pim_mroute.h 871dbcfede [pim] Initial pim 0.155 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 c1b228c5cf pimd: Reduce informative mandatory logging. 4 years ago
pim_neighbor.h 871dbcfede [pim] Initial pim 0.155 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 85385f7eee pimd: Log ifindex found for an interface when zebra lib reports a new connected address. 4 years ago
pim_pim.h f8cfeb25e6 pimd: fix worst char * <> uint8_t * intermingling 4 years ago
pim_rand.c 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_rand.h 871dbcfede [pim] Initial pim 0.155 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 f8cfeb25e6 pimd: fix worst char * <> uint8_t * intermingling 4 years ago
pim_ssmpingd.h 824adbea2d [pim] Hooks for ssmpingd support 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 6c1d36a462 pimd: Clean-up. 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 67faabc180 [pim] debug mroute 4 years ago
pim_vty.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_zebra.c bb7feff0af Revert "pimd: clear zclient-update: Reset zclient update connection to zebra daemon" 4 years ago
pim_zebra.h 1f298949be pimd: -z command-line switch to specify zebra socket path. 4 years ago
pim_zlookup.c a59f21b1a5 pimd: Update lookup zclient counter for connection failures. 4 years ago
pim_zlookup.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pimd.c 3456a80f5f pimd: clear zclient-update: Reset zclient update connection to zebra daemon 4 years ago
pimd.conf.sample 8bc0b34a2b [pim] Sample config for ssmpingd support 4 years ago
pimd.h ed14fa0075 pimd: Addition of Hello & Join-Prune message debug commands 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 ee61109c04 pimd: Fix comment 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 --