6.3.2
2. Protocol Independent Multicast (PIM)
Traditional multicast routing mechanism (e.g. DVMRP and MOSPF) were in intended for use
within regions were groups are densely populated or bandwidth is universally plentiful. When
groups, and senders to these groups, are distributed sparsely cross a wide area, these "dense
mode" schemes do not perform efficiently. PIM is made of two protocols, one for each type of
group distribution. PIM Sparse Mode (PIM-SM) provides efficient routing for a group
distributed sparsely across a wide area. PIM Dense Mode (PIM-DM) provides multicast routing
for a densely populated group.
Multicasting Protocols require two different functions in order to create the source based trees or
group based tree:
- a set of routes used to calculate the Reverse Path Forwarding, and
- a mechanism by which to build trees.
PIM is protocol independent because it depends on existing unicast routes to calculate the
Reverse Path forwarding. In contrast, DVMRP passes this set of routes within the protocol.
An overview of PIM can be found in the document Protocol Independent Multicast (PIM):
Motivation and Architecture. The detailed protocol specification is also available as Protocol
Independent Multicast (PIM): Protocol Specification. Both of these documents are considered
Work in Progress.
PIM-DM and PIM-SM share some common processing of PIM packets received. This common
processing is configured in the PIM protocol statement. The PIM-SM protocol
statementconfigures the PIM-SM information for components on this router or PIM-SM
neighbors. The PIM-DM protocol statement configures the PIM Dense Mode protocol.
The PIM Statement
pim yes | no | on | off [ {
queryinterval sec ;
routertimeout sec ;
prunetimeout sec ;
inactivitytimeout sec ;
graftacktimeout sec ;
preference {
direct preference ;
kernel preference ;
ospf preference ;
ospfase preference ;
rip preference ;
hello preference ;
static preference ;
bgp preference ;
egp preference ;
idrp preference ;
isis preference ;
slsp preference ;
} ;
interface interface_list pim_options ;
traceoptions trace_options ;
} ] ;
The pim statement enables or disables the PIM protocol. If the pim statement is not specified the
default is pim off; If enabled, PIM will default to enabling all interfaces that are multicast
capable. These interfaces are identified by the IFF_MULTICAST interface flag.
The options are as follows:
- queryinterval sec
- This is the interval at which PIM Router Queries are sent on the multicast capable LAN.
PIM Router Queries are sent to the All Routers Multicast Group in order for PIM
routers to find other PIM routers on a multiaccess network. If not specified, the default
value is 30 seconds.
- routertimeout sec
- This is the interval that a PIM router is remembered without receiving a PIM Router
Query. After this time, the router is deleted from the local database. Its value defaults to
three times the queryinterval or 90 seconds when the default queryinterval is used.
- prunetimeout sec
- This is the duration that a prune will stay active for a prune sent by this router. It
defaults to 180 seconds.
- inactivitytimeout sec
- This is the length of time that a forwarding cache entry will remain active once it
becomes inactive, i.e. no more traffic is being forwarded for the Source, Group pair.
The default value is 180 seconds.
- graftacktimeout sec
- This is the length of time this PIM router will wait for a Graft to be acknowledged
before it retransmits the Graft. The default value is 60 seconds.
- preference
- The preference statement allows changing the preference values used in comparing
protocols to determine the router that will forward multicast packets on a multiaccess
LAN. These values are sent in Assert messages when more than one router is capable of
forwarding the multicast packets and one detects the others duplicate packets. These
values must be the same for each router on a multiaccess LAN. Therefore, the default
values have been specifically coordinated to match other implementations. The default
values are 0 for direct routes, 1 for static routes, 110 for OSPF and OSPFASE routes,
115 of ISIS routes, 120 for RIP routes, 130 for SLSP routes, 140 for EGP routes, 200
for BGP routes, 210 for IDRP routes, 220 for existing kernel routes, and 255 for hello
routes.
- interface interface_list pim_options
- Enables or disables PIM on this interface or list of interfaces.
- Currently, the gated implementation of PIM cannot detect when there are multiple
addresses configured on the same physical interface. It will send PIM messages to
each logical network. This should be fixed in a future release.
- The possible parameters are:
- disable
- Specifies that PIM packets received via the specified interface will be ignored.
The default is to listen to PIM on all multicast capable interfaces.
- enable
- This is the default. This argument may be necessary when disable is used on
a wildcard interface descriptor.
- mode sparse
- This command specifies the default mode of PIM on the interface. It is
exchanged with other PIM routers in the Router Query messages and allows the
router to determine if explicit joins should be sent upstream (sparse) or default
flooding and pruning should be performed (dense).
- mode dense
- This command specifies the default mode of PIM on the interface. It is
exchanged with other PIM routers in the Router Query messages and allows the
router to determine if explicit joins should be sent upstream (sparse) or default
flooding and pruning should be performed (dense).
- traceoptions trace_options
- Specifies the tracing options for PIM. (See Trace Statements and the PIM specific
tracing options below.)
Tracing options
Packet tracing options (which may be modified with detail, send or recv):
- packets
- All PIM packets.
- query
- PIM Router Query packets
- register
- PIM Register and Register Stop packets
- rp
- PIM RP packets
- join
- PIM Join packets
- prune
- PIM Prune packets
- assert
- PIM Assert packets
- assert
- PIM Graft and Graft Ack packets
Sample PIM configurations
See the sample multicast router configurations.
Last updated April 27, 1997
gated@gated.merit.edu