Table Of Contents
Multicast Forwarding Information Base Overview
First Published: October 2, 2009Last Updated: November 17, 2010
The Multicast Forwarding Information Base (MFIB) architecture provides modularity and separation between the multicast control plane (Protocol Independent Multicast [PIM] and Internet Group Management Protocol [IGMP]) and the multicast forwarding plane (MFIB). This architecture is used in Cisco IOS IPv6 multicast implementations. With the introduction of the IPv4 MFIB infrastructure, the Cisco IOS IPv4 multicast implementation has been enhanced, making the MFIB forwarding model the only forwarding engine used.
Finding Feature Information
Your software release may not support all the features documented in this module. For the latest feature information and caveats, see the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the "Feature Information for the Multicast Forwarding Information Base" section.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Information About the Multicast Forwarding Information Base
Before implementing a multicast network that supports the MFIB, you should be familiar with the following concepts:
Benefits of the MFIB Architecture
•Simplifies multicast operation through the separation of the control and forwarding planes.
•Protects mission critical multicast applications by enabling new services such as multicast high availability (HA).
•Eliminates the need for the route cache maintenance associated with demand caching schemes such as multicast fast switching.
Types of Multicast Tables
The following tables are used for general multicast routing and forwarding:
•IGMP—Contains local IGMP memberships on the router.
•Multicast Route (Mroute)—Contains (*, G) and (S, G) multicast states on the router (including PIM mode, incoming interfaces, and outgoing interfaces).
•Multicast Source Discovery Protocol (MSDP)—Contains all Source-Active (SA) messages.
•Multicast Routing Information Base (MRIB)—Contains (*, G), (S, G), and (*, G/m) MRIB entries.
•MFIB—Contains (*, G), (S, G), and (*, G/m) MFIB entries.
Multicast tables can be further defined by the following contexts:
•VRF—Layer-3 VPN context.
•IPv4—IPv4 address family context.
•IPv6—IPv6 address family context.
Types of Multicast Entries
•(*, G)—Shared tree entries used by PIM sparse mode (PIM-SM) and bidirectional PIM (bidir-PIM).
•(S, G)—Source tree entries used by PIM-SM and Source Specific Multicast (PIM-SSM).
•(*, G/mask)—Shared tree entries used by the bidir-PIM and the MFIB.
Note For more information about (*, G/mask) entries, see the "Introduction of (*, G/Mask) Entries" section.
The following sections describe the components that make up the MFIB architecture:
Figure 1 illustrates the components that make up the MFIB architecture.
Figure 1 IPv4 MFIB Architecture
Note When you enter the show ip mrib client command on a multicast router in an IP multicast network, PIM, the mroute table, and IGMP will appear as one client to the MRIB. For more information, see the Cisco IOS IP Multicast Command Reference.
Figure 2 illustrates the IPv4 MFIB distributed architecture.
Figure 2 IPv4 MFIB Distributed Architecture
The MFIB is a multicast routing protocol independent forwarding engine; that is, it does not depend on PIM or any other multicast routing protocol. It is responsible for:
•Forwarding multicast packets
•Registering with the MRIB to learn the entry and interface flags set by the control plane
•Handling data-driven events that must be sent to the control plane
•Maintaining counts, rates, and bytes of received, dropped, and forwarded multicast packets
Distributed MFIB (dMFIB) is used to switch multicast packets on distributed platforms. dMFIB may also contain platform-specific information on replication across line cards. The basic MFIB routines that implement the core of the forwarding logic are common to all forwarding environments.
dMFIB implements the following functions:
•Distributes a copy of the MFIB to the line cards.
•Relays data-driven protocol events generated in the line cards to PIM.
•Provides an MFIB platform application program interface (API) to propagate MFIB changes to platform-specific code responsible for programming the hardware acceleration engine. This API also includes entry points to switch a packet in software (necessary if the packet is triggering a data-driven event) and to upload traffic statistics to the software.
•Provides hooks to allow clients residing on the Route Processor (RP) to read traffic statistics on demand. (dMFIB does not periodically upload these statistics to the RP.)
The combination of dMFIB and MRIB subsystem (MRIB proxy) also allows the router to have a "customized" copy of the MFIB database in each line card and to transport MFIB-related platform-specific information from the RP to the line cards.
The MRIB is the communication channel between MRIB clients. Examples of MRIB clients are PIM, IGMP, the multicast routing (mroute) table, and the MFIB.
MRIB communication is based on the setting and clearing of entry and interface flags. MRIB entries are keyed on source, group, and group mask; and appear as (*, G), (S, G), and (*, G/m) multicast entries in the output of the show ip mrib route commands. In addition, every MRIB entry will have a list of interfaces associated with it and each interface will have flags set that describe its forwarding state.
The MRIB does not interpret any entry or interface flags. The flags are significant only to MRIB clients.
Note The MRIB uses different tables for different contexts. MRIB tables are separated by address family to distinguish between IPv4 and IPv6 multicast entries. Each table can further be divided within a VRF or global context.
Multicast Control Plane (PIM, IGMP, and Mroute Table)
The multicast control plane is responsible for building and maintaining multicast distribution trees. It consists of PIM, IGMP, and the mroute table, which are MRIB clients in the MFIB architecture. Any changes, additions, and deletions to the mroute table (learned from either PIM or IGMP) are communicated across the MRIB and then distributed to the MFIB for multicast forwarding. Any events related to packet reception that require updates to the control plane are handled between the MRIB and MFIB. Such events include liveness checking, shortest path tree (SPT) switchover, and PIM asserts.
Multicast Packet Forwarding Using the MFIB
The core forwarding engine used by the MFIB is shared by both interrupt-level (fast switching) and process-level forwarding (process switching) as shown in Figure 3. Multicast packets received with a forwarding entry in the MFIB will be fast-switched by the MFIB, and multicast packets received without a forwarding entry that require the creation of a new forwarding entry will be process-switched by the MFIB.
Figure 3 Multicast Forwarding Engine
MFIB and MRIB Entry and Interface Flags
Table 1 lists the significant MFIB and MRIB entry and interface flags used by IPv4 multicast.
Introduction of (*, G/Mask) Entries
The MFIB architecture introduces (*, G/mask) entries to describe a group range present in a router's local group-to-RP mapping cache (static, Auto-RP, Bootstrap Router [BSR]).
(*, G/mask) entries are used by the MFIB to:
•Create (S, G) entries if they are not already present in the MFIB table (for PIM-SM)
•Create (*, G) entries along source-only branches (for bidir-PIM)
•Forward multicast traffic along shared-tree branches (for bidir-PIM)
Note (*, G/mask) entries are present until the group-to-RP mapping cache either times out or is cleared.
Introduction of PIM Tunnel Interfaces
The MFIB architecture introduces PIM tunnel interfaces. PIM tunnel interfaces are used by the MFIB for the PIM-SM registration process. Two types of PIM tunnel interfaces are used by the MFIB:
•A PIM encapsulation tunnel (PIM Encap Tunnel)
•A PIM decapsulation tunnel (PIM Decap Tunnel)
The PIM Encap Tunnel interface is dynamically created whenever a group-to-RP mapping is learned (via Auto-RP, BSR, or static RP configuration). The PIM Encap Tunnel interface is used to encapsulate multicast packets sent by first-hop designated routers (DRs) that have directly connected sources.
Similar to the PIM Encap Tunnel, the PIM Decap Tunnel interface is dynamically created—with the exception that it is created on the RP only whenever a group-to-rp mapping is learned. The PIM Decap Tunnel interface is used by the RP to decapsulate PIM registers.
Note PIM tunnels will not appear in the running configuration. To display information about PIM Tunnel interfaces, use the show ip pim tunnel command.
The following syslog message will appear when a PIM tunnel interface is created:* %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel<interface_number>, changed state to up
MFIB Statistics Support
In the MFIB forwarding model, the MFIB maintains multicast state packet and byte counts and packet rates. The MFIB calculates these statistics as it forwards traffic. There is no periodic polling of these statistics by the control plane, nor does the MFIB periodically upload these statistics to the control plane. The MFIB has an API to these statistics allowing the control plane to query multicast counters when requested from the command-line interface (CLI) for the show ip mroute count command and for MIB statistics objects.
Where to Go Next
Proceed to the "Verifying IPv4 Multicast Forwarding Using the MFIB" module.
Related Topic Document Title
Multicast verification tasks and examples using the MFIB
IP multicast commands: complete command syntax, command mode, command history, defaults, usage guidelines, and examples
No new or modified standards are supported, and support for existing standards has not been modified.
MIB MIBs Link
No new or modified MIBs are supported, and support for existing MIBs has not been modified.
To locate and download MIBs for selected platforms, Cisco software releases, and feature sets, use Cisco MIB Locator found at the following URL:
No new or modified RFCs are supported, and support for existing RFCs has not been modified.
Feature Information for the Multicast Forwarding Information Base
Table 2 lists the release history for this feature.
Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which software images support a specific software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required..
Note Table 2 lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.
Cisco and the Cisco Logo are trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and other countries. A listing of Cisco's trademarks can be found at www.cisco.com/go/trademarks. Third party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1005R)
Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in illustrative content is unintentional and coincidental.
© 2010 Cisco Systems, Inc. All rights reserved.