Multicast Forwarding Information Base Overview

Multicast Forwarding Information Base Overview

Last Updated: May 27, 2011

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 Table at the end of this document.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.

Information About the Multicast Forwarding Information Base

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:

  • Global--Non-VRF context.
  • 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 New Multicast Forwarding Entries section.

MFIB Components

The following sections describe the components that make up the MFIB architecture:

The figure 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.

The figure illustrates the IPv4 MFIB distributed architecture.

Figure 2. IPv4 MFIB Distributed Architecture

MFIB

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

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.

MRIB

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

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 the figure. 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

The table lists the significant MFIB and MRIB entry and interface flags used by IPv4 multicast.

Table 1 Significant MFIB and MRIB Flags

Entry Flag

Table

Description

C

MFIB/MRIB

Connected--Indicates that the MFIB will inform the multicast control plane when it receives traffic from a directly connected source. This flag is used for multicast groups running in PIM sparse mode (PIM-SM) or PIM dense mode (PIM-DM). For PIM-SM, it triggers PIM registration. For PIM-DM, it triggers dense mode flooding.

Note    MFIB entries with Source Specific Multicast (PIM-SSM) and bidirectional PIM (bidir-PIM) environments will not have the C flag set.

DDE

MFIB/MRIB

Data Driven Event--Set by the forwarding plane when an entry is created due to receiving traffic. This flag is used only for HA operations. When there is a RP switchover, entries with this flag set are replayed by the MFIB and signaled to PIM.

ET

MFIB/MRIB

Data Rate Exceeds a Threshold--Set by the forwarding plane when an entry surpasses the data multicast distribution tree (MDT ) threshold in a Multicast VPN (MVPN) environment (configured using the mdt data command). This flag is used by PIM to initiate the switchover of the data MDT to the default MDT, and vice versa.

IA

MFIB/MRIB

Inherit A Flag--(*, G) entries with the IA flag set indicate that the accept check be performed using its (*, G/mask) parent entry. In other words, the accept check is used to inherit interfaces with the A flag set in the (*, G/m) parent entry.

Note    The IA flag is used for bidir-PIM entries.

K

MFIB/MRIB

Keepalive--Set by PIM to indicate that the entry has been processed and should be stored in the MFIB.

S

MFIB/MRIB

Signal--Indicates the MFIB will notify the multicast control plane when traffic is received on any interface for this entry that does not have the NS flag set.

Interface Flag

Table

Description

A

MFIB/MRIB

Accept--Indicates that multicast data can be accepted on this interface. For example, for PIM-SM and PIM-SSM, the A flag would appear on the Reverse Path Forwarding (RPF) interface set in the mroute table.

Note    The A flag in the MFIB is cleared if MFIB forwarding has been disabled on the interface using the no ip mfib forwarding input command.

F

MFIB/MRIB

Forward--Indicates that multicast data can be forwarded out this interface. For example, the interfaces that are in the outgoing interface list in the mroute table will have this flag set.

Note    The F flag in the MFIB is cleared if the MFIB forwarding has been disabled on the interface using the no ip mfib forwarding outputcommand.

IC

MFIB/MRIB

Internal Copy--Indicates that a copy of the packet will be processed by the control plane.

The IC flag applies to:

  • Static IGMP joins--Indicates that the ip igmp join-group interface command is configured.
  • Auto-RP groups (224.0.1.39 and 224.0.1.40)--Indicates that the router is participating in Auto-RP.
  • Linkscope multicast groups (224.0.0.0/24)--Indicates that the router is listening to linkscope multicast groups, which include PIM hellos, PIM joins and prunes, IGMPv2 /v3 reports, and IGP hello packets (Enhanced Interior Gateway Protocol [EIGRP], Open Shortest Path First [OSPF], and Routing Information Protocol Version 2 [RIPv2]).

NP

MFIB

Not Platform Switched--Indicates that this interface is not being hardware switched. The NP flag is an MFIB specific flag.

NS

MFIB/MRIB

Negate Signal--Indicates that the MFIB will notify the multicast control plane when traffic is received on the specified interface, if the S flag is not set.

The NS flag is used for:

  • SPT switchover in PIM-SM--The NS flag is set on the (*, G) accept interface towards the RP to trigger SPT switchover.
  • Asserts--The NS-flag is set on (*, G) and (S, G) forward interfaces to trigger PIM asserts.
  • Liveness checking for active sources in PIM-SM--The NS flag is set on the (S, G) accept interface toward the source to check for active sources.
  • Proxy registers that enable a PIM-DM domain to register within a PIM-SM domain--The NS flag is set on the (S, G) accept interface where the ip pim dense-mode proxy-register command is configured.
Note    For PIM-SSM, the accept interface entries will not have the NS flag set. PIM-SSM neither performs SPT-switchover nor liveness checking.
Note    For PIM-SM, entries that have the ip pim spt-threshold infinity command configured globally will not have the NS flag set on their accept interfaces because SPT switchover will be disabled.

RA

MFIB

MRIB Accept--The RA flag is an MFIB-specific flag. The MFIB sets this flag when the MRIB sets the A flag on an interface.

RF

MFIB

MRIB Forward--The RF flag is an MFIB-specific flag. The MFIB sets this flag when the MRIB sets the F flag on an interface.

Introduction of New Multicast Forwarding 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 countcommand and for MIB statistics objects.

Where to Go Next

Proceed to the “ Verifying IPv4 Multicast Forwarding Using the MFIB ” module.

Additional References

Related Documents

Related Topic

Document Title

Multicast verification tasks and examples using the MFIB

“ Verifying IPv4 Multicast Forwarding Using the MFIB ” module

IP multicast commands: complete command syntax, command mode, command history, defaults, usage guidelines, and examples

Cisco IOS IP Multicast Command Reference

Standards

Standard

Title

No new or modified standards are supported, and support for existing standards has not been modified.

--

MIBs

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 IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:

http://www.cisco.com/go/mibs

RFCs

RFC

Title

No new or modified RFCs are supported, and support for existing RFCs has not been modified.

--

Technical Assistance

Description

Link

The Cisco Support website provides extensive online resources, including documentation and tools for troubleshooting and resolving technical issues with Cisco products and technologies.

To receive security and technical information about your products, you can subscribe to various services, such as the Product Alert Tool (accessed from Field Notices), the Cisco Technical Services Newsletter, and Really Simple Syndication (RSS) Feeds.

Access to most tools on the Cisco Support website requires a Cisco.com user ID and password.

http://www.cisco.com/techsupport

Feature Information for the Multicast Forwarding Information Base

The following table provides release information about the feature or features described in this module. This table 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.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.

Table 2 Feature Information for Multicast Forwarding Information Base Overview

Feature Name

Releases

Feature Information

IPv4 Multicast Support of the MFIB

15.0(1)M

The MFIB architecture provides modularity and separation between the multicast control plane (PIM and IGMP) and the multicast forwarding plane (MFIB). This architecture is used in Cisco IOS IPv6 and Cisco IOS XR 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.

The following commands were introduced or modified: clear ip mfib counters, debug ip mcache, debug ip mfib adjacency, debug ip mfib db, debug ip mfib fs, debug ip mfib init, debug ip mfib interface, debug ip mfib mrib, debug ip mfib pak, debug ip mfib platform, debug ip mfib ppr, debug ip mfib ps, debug ip mfib signal, debug ip mfib table, debug ip mpacket, debug ip mrib, ip mfib, ip mfib cef, ip mfib forwarding, ip mroute-cache, ip multicast cache-headers, ip multicast rate-limit, ip multicast ttl-threshold, ip pim register-rate-limit, show ip mcache, show ip mfib, show ip mfib active, show ip mfib count, show ip mfib interface, show ip mfib route, show ip mfib status, show ip mfib summary, show ip pim interface, show ip pim tunnel.

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.