“Elegance is not a dispensable luxury” — Edsger Wybe Dijkstra

Pimd | the Original PIM-SM Daemon

Fork me on GitHub

pimd is a lightweight standalone PIM-SM/SSM v2 multicast routing daemon. It is the original USC (netweb/ implementation of the protocol, RFC 2362. Today pimd strives for RFC 4601 compliance, with the v2.3.0 release supporting both PIM-SSM and IGMPv3.

In 2003 the OpenBSD project managed to convince Stanford in to change the license of mrouted. This in turn also freed pimd, since it is built with DNA strands from mrouted. pimd is fully free to use under the simplified 3-clause BSD license.

Protocol Independent Multicast, PIM, allows existing networks to route IP multicast, regardless of what unicast routing protocol is in use. It is designed to use existing routing tables to make its multicast routing decisions. PIM-SM is suitable for sparsely located multicast subscribers, for dense mode operation mrouted is recommended, and for static multicast routing smcroute may be used.

pimd was written by Ahmed Helmy, George Edmond “Rusty” Eddy, and Pavlin Ivanov Radoslavov. With contributions by many others.

Issue tracker and GIT repository available at GitHub:

See also the OpenHub page, or the (sadly) dormant Free(code) page,

Problems? See the multicast howto


The PIM-SM protocol was first defined in RFC 2362 and later updated in RFC 4601, with additions in RFC 5059 and RFC 5796.

  • The PIM-SM GateD implementation from ISI. (defunct)
  • The PIM-DM GateD implementation from the University of Oregon. (defunct)
  • The pimd-dense University of Oregon standalone implementation, based on the USC pimd.
  • The PIM-SM implementation from the XORP project
  • The PIM IPv6 pim6sd by Mickael Hoerdt at LSIIT Laboratory, based on USC pimd.
  • MRD6, an IPv6 Multicast Router
  • The upcoming Quagga PIM-SSM, qpimpd – Now merged!

Mailing Lists

The following mailing list is directly related to PIM: