is a lightweight stand-alone PIM-SM v2 multicast routing daemon. This is the
original USC (netweb/catarina) implementation of the protocol, which nowadays is
fully free to use under the 3-clause BSD license.
maintains the traditional IP multicast service model of receiver-initiated membership;
uses explicit joins that propagate hop-by-hop from members' directly connected
routers toward the distribution tree.
builds a shared multicast distribution tree centered at a Rendezvous Point, and then
builds source-specific trees for those sources whose data traffic warrants it.
is not dependent on a specific unicast routing protocol; and
uses soft-state mechanisms to adapt to underlying network conditions and group
The robustness, flexibility, and scaling properties of this architecture make it well
suited to large heterogeneous internetworks.
implements RFC 2362, which has been obsoleted by RFC 4601. Please see the TODO file
for more information on this.
This program follows the usual UNIX command line syntax, with long options starting
with two dashes (`-'). The options are as follows:
Print a help message and exit.
Specify an alternative configuration file, instead of the default
detaches from the invoking terminal.
If this option is specified,
it runs in foreground of the starting terminal and responds to signals.
is given with no argument, the debug level defaults to
igmp, cache, interface, groups, prunes, routes and peers
Regardless of the debug level,
always writes warning and error messages to the system log daemon.
Debug levels have the following effects:
Debug inbound/outbout packets
Pruning operations, or pruned routes
Detailed routing information
Debug routing cache
Show interface, or vif, debug messages
Debug group memberships
Multicast traceroute information
Debug IGMP messages
Debug ICMP messages
Debug RSRR messages
All PIM messages
PIM routing messages
PIM bootstrap router messages
Detailed PIM debug
Debug hello messages to/from neighbors
Run in foreground, do not detach from calling terminal
Tell a running pimd to reload its configuration. This is done by sending
a SIGHUP to the PID listed in
from being activated on all interfaces by default. Use `phyint enable` to selectively
Tell a running pimd to quit. Similar to --reload-config but this command sends SIGTERM.
Show state of VIFs and multicast routing tables. This is command sends SIGUSR1 to a
running pimd, similar to --reload-config.
The configuration is kept in the file
The file format is free-form: whitespace (including newlines) is not
significant. There are eight different types of configuration commands:
will be activated on all multicast capable interfaces. The
setting and the
command line option control this behaviour. More on
option is used by assert elections to determine upstream routers. Currently
pimd cannot reliably obtain preferences and metrics from the unicast routing
protocols, so a default preference may be configured. In an assert election,
the router advertising the lowest assert preference will be selected as the
forwarder and upstream router for the LAN. Setting 101 should be sufficiently
high so that asserts from Cisco or GateD routers are prefered over poor-little
It is reccommended that preferences be set such that metrics are never
consulted. However, default metrics may also be set using the
option. This item sets the cost for sending data through this router. You
want only PIM-SM data to go to this daemon; so once again, a high value is
recommended to prevent accidental usage. The preferred default value is 1024.
option refers to a physical interface and must come after
Select the interface either by its IP address
or interface name
(e.g. le0). If you just want to activate this interface with default values,
you don't need to put anything else on the line. However, there are some
Do not send PIM-SM traffic through this interface nor listen for PIM-SM traffic
from this interface. Default: enable.
Selectively enable which interfaces to send PIM-SM traffic through. Useful with
command line option.
This interface's value in an election. It will have the
if not assigned.
The cost of sending data through this interface. It will have the
if not assigned.
line per interface on this router. If you don't do this,
will either be completely silent (if you provide the
command line option), or simply assume that you want it to utilize all interfaces
using default settings.
setting refers to Candidate Rendez-vous Point (CRP). It specifies which
interface on this machine should be included in RP elections.
The default is the highest active IP address.
The number of seconds to wait between advertising this CRP. The default value
is 60 seconds.
How important this CRP is compared to others. The lower the value here, the
more important the CRP.
setting is similar to CRP. Only difference is the lack of a
statement outlines the set of multicast addresses that the CRP, if it wins an
election, will advertise to other routers.
A specific multicast group or network range this router will handle.
The number of IP address segments taken up by the netmask. Remember that a
multicast address is a Class D and has a netmask of 240.0.0.0, which means its
length is 4.
multicast addresses supported in pimd is 255.
setting is for static Rendez-vous Point configurations. The argument can either
be a unicast address or a multicast group.
setting defines the threshold at which transmission rates trigger the
changeover from the shared tree to the RP tree; starting the line with
does the opposite in the same format. Regardless of which of these you choose,
the rate option is for transmission rate in bits per second, interval is the
sample rate in seconds -- with a recommended minimum of five seconds. It is
recommended to have the same interval if both settings are used.
responds to the following signals:
The configuration file is reread every time this signal is evoked.
Terminates execution gracefully (i.e. by sending good-bye messages to all neighboring
The same as TERM.
Dumps the internal state of VIFs and multicast routing tables to
See also the --show-routes option above.
For convenience in sending signals,
writes its process ID to