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

Pimd | the Original PIM-SM Daemon

Fork me on GitHub

pimd is a lightweight stand-alone PIM-SM v2 multicast routing daemon. It is the original USC (netweb/ implementation of the protocol, according to RFC 2362.

Thanks to OpenBSD freeing mrouted, pimd is now also fully free to use under the 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 the 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 the USC pimd.
  • MRD6, an IPv6 Multicast Router
  • The upcoming Quagga PIM-SSM, qpimpd

Mailing Lists

The following mailing list is directly related to PIM: