The block diagram below shows the software architecture of the DC-PIM protocol product.

For an overview of the DC-PIM software and its features, see DC-PIM Product Overview.
Components
To create a maintainable product, DC-PIM-SM is split into the following modules, with clear well-defined interfaces between them.
Neighbor Manager
In common with many routing protocols, there are a number of areas of the PIM-SM protocol that are purely concerned with interactions between neighboring PIM-SM routers.
- PIM Hello messages are sent periodically on each PIM-enabled
interface, with a destination address of the ALL PIM ROUTERS multicast group. Other PIM messages from a neighbor
are not accepted unless a Hello message has previously been received, although this can be disabled by user
configuration. (Some old implementations fail to send Hellos on point-to-point networks.)
- On a multidrop interface, a single designated router (DR) is responsible for advertising the group membership status of that interface. The PIM Hello message includes information to allow the election of this DR. The DR is also the router that is responsible for encapsulating and sending to the RP multicast data sourced on the interface.
The Neighbor Manager (NM) subcomponent of DC-PIM performs these functions, and also
- parses and syntax checks all received PIM messages
- maintains the PIM Neighbor MIB.
TIB Manager
The Tree Information Base (TIB) Manager (TM) subcomponent of DC-PIM performs the bulk of the protocol processing required by PIM. Its responsibilities are as follows.
- It stores state for the PIM Tree Information Base.
- It uses this state to program the Multicast Forwarding Table.
- It processes PIM Join and Prune messages, and runs the PIM
Join/Prune FSMs.
- It tracks the group membership needs of locally attached hosts,
as advertised to it over the GMI interface.
- It performs Reverse Path Forwarding (RPF) lookups in order to route PIM Joins and Prune
messages to upstream PIM routers.
- It takes part in PIM Assert processing, and tracks the assert
state of each interface.
- It maintains the PIM Interface MIB, IP Multicast Route MIB and Next Hop MIB.
DC-PIM-SM SSM-only Architecture
Data Connection offers DC-PIM-SM in its entirety and the option to license the DC-PIM-SSM subset. PIM-SSM is a strict subset of the PIM SM protocol, and is described in RFC 4601.
The key differences between PIM-SSM and PIM-SM are as follows.
- Group multicast addresses in PIM-SSM (and indeed, any SSM
protocol) are restricted to the range 232.0.0.0/8 (in IPv4 multicast) or ff3x::/96 (in IPv6 multicast).
- Only (S, G) Joins are permitted in PIM-SSM. Joins therefore
always create source-specific trees. As a consequence, only the (S, G) variants of the Upstream, Downstream and
Assert state machines described in draft-ietf-pim-sm-v2-new-09 are used.
- Because all trees are source-specific in PIM-SSM, there are no
Rendezvous Points, and consequently there is no Bootstrap Router mechanism for electing RPs.
- Because there are no Rendezvous Points in PIM-SSM, there is no
unicast encapsulation of multicast data by the data plane.
- Because all multicast traffic is forwarded on source-specific trees in PIM-SSM, there is no requirement for the data plane to run the source-specific state keep alive timer. Instead, this timer is treated as having an infinite duration.
These differences are reflected in the architecture of the DC-PIM-SM SSM-subset as follows.
- It only accepts Joins and Prunes that specify a source
address, and a group address in the SSM range. Other Joins and Prunes are discarded.
- It does not track any (*, G), or (S, G, rpt) state.
- It does not accept any indications of (*, G) membership
of locally attached hosts from the GMI interface. Any such indications are ignored.
- It does not instruct the Multicast Forwarding Table to
perform unicast encapsulation or decapsulation of multicast packets.
- The Multicast Forwarding Table sends an indication to DC-PIM-SM when it detects that multiple PIM routers are forwarding traffic from the same source onto the same LAN. This triggers DC-PIM-SM to send an Assert(S, G).
Related links:
For more information about Data Connection's Multicast IP Routing products and expertise contact dciprouting@dataconnection.com.
