IP multicast distributed switching using MFIB (MDS) --------------------------------------------------------- Description: ----------- Multicast Distributed Switching (MDS) incorporates support for distributed switching of multicast packets at the line cards (VIPs in case of RSP and BFR lc in case of GSR). The switching function is always performed at the line cards so that the RP is used only to do route processing. This feature can work in conjunction with DFIB (cisco express forwarding), DFS (unicast distributed fastswitching) or flow switching. Multicast distributed switching is accomplished using a forwarding data structure called MFIB which is downloaded from the RP to all the linecards. Caveats/Restrictions -------------------- - Prior to IOS versions 11.1(25.2)CC, 12.0(3.7)S3, and 12.0(4.0.4)S there was no MDS support available for switching packets received on subinterfaces. This was resolved with DDTs: CSCdm21399 MDS does not support ATM subinterfaces - Support is only for Ethernet, Fddi, ATM, Tunnels, serial and POS interfaces. TR would not do MDS. - When running with DFS or FIB, at least 32 meg of memory is a pre-requisite on both the RSP and VIP2 boards. - MDS will work only on packets incoming on VIP2 interfaces. If the packet arrives on a VIP1/legacy IPs, it will be fast-switched as before. But, packets incoming on VIP2 interfaces, but outgoing on VIP1 or legacy interfaces will be distributed switched. Configuration ------------- o Global command ip multicast-routing [distributed] The distributed extension to the global command - "ip multicast-routing" will enable distributed switching globally. The interface command described below will enable individual interfaces for distributed switching. o Interface command ip mroute-c [distributed] The distributed extension to the interface command - " ip mroute-cache" will enable that interface to do distributed switching on incoming packets. This command applies to the configuration of the physical interface and not to the logical interface(subinterface). Once this command is configured on the interface, all packets coming in this interface will be distributed switched. "ip route-cache distributed" should be configured before this command is configured on the RSP platform. Show commands -------------- On the line cards (Note that to reach a VIP's console, you have to do if-con ) ================= show ip mds forwarding [group - IP ] [source - IP] Displays the MFIB table. Displays forwarding information and related flags and counts. show ip mds summary Summary of MFIB. On the RP ========= show ip mds stats [switching | linecard] Displays switching stats and linecard stats. show ip mds interface Displays MDS interfaces. show ip mroute [* | summary |count] Displays the mroute table at thr RP as before. show ip pim int count Displays switching counts for DFS along with other fastswitching stats. show ip mcache Displays "mds" if MDS is being used instead of the fast-cache. Displays the "last used time" if the fast-cache is being used. Displays "never" if the fast-cache entry is not used (process switched). Note that if MDS is not enabled on an incoming interface which is capable of doing MDS, incoming packets wont be distributed switched and will be fastswitched at the RP as before. Also, if the incoming interface is not MDS capable, the packet will get fast-switched or process-switched at the RP as before. If the incoming interface is enabled for MDS but at least one of the outgoing interfaces is not fast-switch capable, packets will be process- switched. So it is a good idea not to disable fast-switching on any interface when MDS is enabled. show int stats Displays packets switched by the distributed cache along with other stats. Clear commands -------------- On the line cards ================= clear ip mds forwarding * Clears this linecards MFIB table and resync with the RP. On the RP ========= clear ip mroute * Clears all mroutes and counts. clear ip pim int count Clears all lc/packet counts. Debug commands -------------- On the line cards ================= debug ip mds ipc [event | packet] - IPC related debug. (used to debug synchronization between the MFIB on the VIP and the mroute table in the RP) debug ip mds mevent - Multicast FIB related events. (used to debug MFIB route creation/update etc.) debug ip mds mpacket - Multicast switching events. (used to debug packet drops/interface drops/switching failures) debug ip mds process - Linecard events. (used to debug linecard process level events) On the RP ========= debug ip mds ipc [event | packet] - IPC related debug. debug ip mds process - RP events. Examples: -------- chimp#sho ip mds stats linecard Slot Status IPC(seq/max) Q(high/route) Reloads 1 active 8/58 0/0 1 2 active 8/58 0/0 1 chimp#sho ip mds stats swi Slot Total Switched Drops RPF Punts Failures (switch/clone) 1 0 0 0 0 0 0/0 2 0 0 0 0 0 0/0 Punted == Packets sent to the RP from the LC. Clone-failures == Failed to get system resources to replicate packets. chimp#sho ip mds int Ethernet1/0/0 is up, line protocol is up FastEthernet2/0/0 is up, line protocol is up chimp#sho ip pim int count Address Interface FS Mpackets In/Out 171.69.233.34 Ethernet0/0 * 129/0 172.19.177.18 Ethernet1/0/0 D 227/0 147.1.5.104 FastEthernet2/0/0 D 0/0 171.69.233.34 Tunnel0 * 0/0 D indicated MDS switched chimp# VIP-Slot2#sho ip mds fo IP multicast MDS forwarding information and statistics: Flags: N - Not MDS switchable, F - Not all MDS switchable, O - OIF Null R - In-ratelimit, A - In-access, M - MTU mismatch, P - Register set Interface state: Interface, Next-Hop, Mac header (141.21.23.4, 224.5.5.5), Incoming interface: FastEthernet2/0/0 Pkts: 5, last used: 00:01:29, Bps: 0, fast-flags: Outgoing interface list: Ethernet1/0/0, MAC Header: 01005E0001280060836FA7200800 Ethernet1/0/1, MAC Header: 01005E0001280060836FA7200800 N - implies that the MFIB entry is not MDS capable, either because it has no incoming interface or because the incoming interface is not MDS enabled F - at least one of the OIF is not enabled for/capable of fast-switching. This results in the packets for this MFIB getting process-switched.