Paul Jakma 5e13840d7f lib/thread: get rid of the shallow-copy thread_fetch add a sane thread_main 2 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 456cb63343 pimd: Add ability to safely ignore route-maps 2 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
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 68b45cc592 *: Consolidate all double VIEW_NODE and ENABLE_NODE's 3 years ago
pim_cmd.h 22e0224d41 pimd: Create ability to modify hell and hold timers per interface 4 years ago
pim_hello.c 6d853c43d9 pimd: Limit pim hello log messages 3 years ago
pim_hello.h f8cfeb25e6 pimd: fix worst char * <> uint8_t * intermingling 4 years ago
pim_iface.c c96e78dde1 pimd: Fix of using uninitialized Memory 2 years ago
pim_iface.h 9099f9b2a6 *: use an ifindex_t type, defined in lib/if.h, for ifindex values 3 years ago
pim_ifchannel.c c96e78dde1 pimd: Fix of using uninitialized Memory 2 years ago
pim_ifchannel.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_igmp.c f8aef5fd4a pimd: Remove igmp_add_group_by_addr unneeded parameter 2 years ago
pim_igmp.h f8aef5fd4a pimd: Remove igmp_add_group_by_addr unneeded parameter 2 years ago
pim_igmp_join.c 9099f9b2a6 *: use an ifindex_t type, defined in lib/if.h, for ifindex values 3 years ago
pim_igmp_join.h 9099f9b2a6 *: use an ifindex_t type, defined in lib/if.h, for ifindex values 3 years ago
pim_igmpv3.c c96e78dde1 pimd: Fix of using uninitialized Memory 2 years ago
pim_igmpv3.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_int.c 821df2cf18 *: make sure zebra.h is always included first 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 5e13840d7f lib/thread: get rid of the shallow-copy thread_fetch add a sane thread_main 1 year 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 f3734dd5fc pimd: Cleanup zebra debugs to be protected by debug commands 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 c96e78dde1 pimd: Fix of using uninitialized Memory 2 years ago
pim_pim.h dea43dee04 pimd: Add knowledge of different packet types 4 years ago
pim_routemap.c 456cb63343 pimd: Add ability to safely ignore route-maps 2 years ago
pim_rpf.c 06de82eaeb pimd: send pim prune via correct interface when rpf upstream interface for a source changes 3 years ago
pim_rpf.h 06de82eaeb pimd: send pim prune via correct interface when rpf upstream interface for a source changes 3 years ago
pim_signals.c 283596fd6d Merge 'patch-tracking/4/proposed/netdef-solaris' into accepted 4 years ago
pim_signals.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_sock.c 9099f9b2a6 *: use an ifindex_t type, defined in lib/if.h, for ifindex values 3 years ago
pim_sock.h 9099f9b2a6 *: use an ifindex_t type, defined in lib/if.h, for ifindex values 3 years ago
pim_ssmpingd.c 9099f9b2a6 *: use an ifindex_t type, defined in lib/if.h, for ifindex values 3 years ago
pim_ssmpingd.h 824adbea2d [pim] Hooks for ssmpingd support 4 years ago
pim_static.c d1da1e9d18 pimd: don't leak original_s_route on error 2 years ago
pim_static.h 18343eeff6 pimd: Add support for displaying ip mroute 2 years ago
pim_str.c 821df2cf18 *: make sure zebra.h is always included first 4 years ago
pim_str.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_time.c 821df2cf18 *: make sure zebra.h is always included first 4 years ago
pim_time.h ff752d4316 [pim] Cosmetic RPF refresh timer display 4 years ago
pim_tlv.c 6d853c43d9 pimd: Limit pim hello log messages 3 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 821df2cf18 *: make sure zebra.h is always included first 4 years ago
pim_version.h 629e30bb43 pimd: Version up. 4 years ago
pim_vty.c 18343eeff6 pimd: Add support for displaying ip mroute 2 years ago
pim_vty.h 871dbcfede [pim] Initial pim 0.155 4 years ago
pim_zebra.c ddc160cce1 *: Port Christians tweaks for 32-bit route tags 2 years ago
pim_zebra.h 7125293d65 lib: zclient.c remove extern struct thread_master * 4 years ago
pim_zlookup.c 80f61a9979 pimd: Fix hang when doing nexthop lookup from zebra 3 years ago
pim_zlookup.h 9099f9b2a6 *: use an ifindex_t type, defined in lib/if.h, for ifindex values 3 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 456cb63343 pimd: Add ability to safely ignore route-maps 2 years ago
test_igmpv3_join.c 9099f9b2a6 *: use an ifindex_t type, defined in lib/if.h, for ifindex values 3 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 --