PIMD(8) (smm)
PIMD(8) System Manager's Manual (smm) PIMD(8)

NAME

pimdPIM-SM/SSM multicast routing daemon

SYNOPSIS

pimd [-hnrsv] [-f FILE] [--no-fallback] [-d SYS[,SYS,...]] [-i NAME] [--pidfile FILE] [--disable-vifs] [-l LEVEL] [-t ID]

DESCRIPTION

pimd is a stand-alone PIM-SM/SSM multicast routing daemon available under the free 3-clause BSD license. This is the restored original from University of Southern California, by Ahmed Helmy, Rusty Eddy and Pavlin Ivanov Radoslavov.
Protocol Independent Multicast - Sparse Mode (PIM-SM):
The robustness, flexibility, and scaling properties of this architecture make it well suited to large heterogeneous internetworks.
pimd originally only implemented RFC2362, but since v2.3.0 is supporting more and more of RFC4601.

OPTIONS

This program follows the usual UNIX command line syntax, with long options starting with two dashes (`-'). The options are as follows:
-h, --help
Print a help message and exit.
-f, --config FILE
Specify an alternative configuration file, the default /etc/pimd.conf, is derived from --ident NAME, which is strongly recommended to use over this option.
--no-fallback
If pimd cannot find its configuration file it will start up with fallback defaults for bsr-candidate and rp-candidate. These fallbacks exist to ensure a fully working multicast routing setup. However, if there are other PIM routers that act as BSR and RP in the network, this option can be used to disable the built-in fallbacks.
This option works the same as if pimd finds an empty configuration file, or when bsr-candidate and rp-candidate are commented out.
-d, --debug SYS[,SYS...]
This option controls extended subsystem debugging, use all to enable all subsystems.
Available subsystems are:
all
All subsystems
asserts
PIM assert messages
bsr
PIM bootstrap router messages
crp
PIM Candidate Rendez-Vous Point messages
detail
Detailed PIM debug messages
igmp
IGMP messages
interfaces
Interface (VIF) debug messages
jp
PIM join-prune messages
kernel
Kernel messages
mfc
Multicast forwarding cache messages
mrt
Routing messages
neighbors
PIM hello messages to/from neighbors
packets
All inbound/outbout packets
pim
All PIM messages
registers
PIM register tunnel messages
rpf
PIM reverse-path forwarding messages
rsrr
RSRR messages (if enabled)
timers
PIM timer events
traceroute
Multicast traceroute information
-n, --foreground
Run in the foreground, do not detach from calling terminal and do not fork to background. Useful not only when debugging (above) but also when running under a process monitor like daemontools, runit, finit, or systemd. Remember to also use -s, to send all logs to the syslog daemon, unless you want to debug pimd and run in the foreground.
-i, --ident NAME
Specify program identity (name) to be used for configuration file, PID file and syslog messages. Useful with multiple instances of pimd, or to simply adapt to site specific practices, e.g. "PIM", without renaming the binary. Note, this option only changes the base name of the PID or configuration files, not the location, which is system specific. Usually /var/run/pimd.pid, or /run/pimd.pid, and /etc/pimd.conf.
--disable-vifs
This prevents pimd from running on all interfaces by default. When this command line option is given, use phyint IFNAME enable to selectively activate PIM services on an interface. This command line option is also available as a setting in the configuration file.
--pidfile FILE
Set PID file name and location, defaults to /var/run/pimd.pid, derived from --ident NAME, which is strongly recommended to change over this option.
-l, --loglevel LEVEL
Set log level to one of the following, default notice:
none
Disable all logging
error
Error conditions
warning
Warning conditions
notice
Normal but significant condition (default)
info
Informational
debug
Debug-level messages
-r
With this option, and --disable-vifs, pimd will retry (forever) querying the kernel for all required phyint interfaces listed in /etc/pimd.conf. Useful at startup when not all interfaces may be up or have an IP address assigned yet.
-s, --syslog
Use syslog, default unless running in foreground, -n.
-t, --table-id ID
Set multicast routing table ID. Remember to also create routing rules directing packets to the table. This example uses routing table ID 123:
ip mrule add iif eth0 lookup 123 
ip mrule add oif eth0 lookup 123
    
Note: Only available on Linux.
-v, --version
Show pimd version

SIGNALS

pimd responds to the following signals. However, consider using pimctl instead since this gives more and better output, and is also less prone to race conditions.
HUP
Restart pimd and reload configuration file
TERM
Terminate execution gracefully, i.e. by sending good-bye messages to neighboring routers
INT
The same as TERM
For convenience in sending signals, pimd writes its process ID to /var/run/pimd.pid upon startup. If started with a different identy, -i NAME, then NAME is used as basename of the PID file.

FILES

The basename of the following files change if pimd is started with a different identity, -i NAME:
/etc/pimd.conf
Main configuration file
/var/run/pimd.pid
Pidfile (re)created by pimd daemon when it has started up and is ready to receive commands
/var/run/pimd.sock
UNIX-domain socket used for communication with pimctl(8)

SEE ALSO

pimd.conf(5) pimd-dense(8), pimctl(8), mrouted(8), smcroute(8),
PIM-SM is described in, the now obsolete RFC2362, and the current RFC4601, with additions in RFC5059 and RFC5796.
The pages at USC, http://netweb.usc.edu/pim/, are unfortunately no longer available. The wiki pages at http://github.com/troglobit/pimd/, the new GitHub project, are an attempt to gather as much info as possible.

AUTHORS

pimd was originally written by Ahmed Helmy, George Edmond "Rusty" Eddy, and Pavlin Ivanov Radoslavov. PIM-SSM, including full IGMPv3 support, was added by Markus Veranen. With contributions by many others.
This manual page was initially written by Antonín Král for the Debian GNU/Linux system. Updated by Joachim Wiberg for the GitHub pimd project.
October 17, 2020 Debian