Introduction
This document describes the Multicast Leaf Recycle Elimination (mLRE) feature on the IOS-XE router.
Problem
If hosts are connected on multiple interfaces and request multicast traffic on a router. The router has to make a copy of multicast traffic and has to send it on all the interfaces which request the multicast traffic of that particular multicast group. If the packets are processed serially, which means one packet after another, then it helps the router to improve performance. However, it creates an unfair delay in different nodes due to its nature. This serial processing of multicast traffic is called as LRE in the multicast routers and is by default enable on routers that depend upon their IOS version and model.
Even though processing packets serially causes a difference of 4-12 microseconds between to adjacently processed packets.
It could create a significant delay in time-critical environments like Trading company if there are a large number of leaf nodes that request multicast traffic.
This image shows the topology to understand this better.
As you can see that we have 4 hosts connected to the LHR and they are requesting traffic for multicast group 239.1.1.1.
If packet tracer runs on LHR then it is seen that the packet received from the source is silently consumed by LHR and then it created 4 similar packets and forwarded them to each interface connected to the host.
LHR#show platform packet-trace summary
Pkt Input Output State Reason
0 Gi2 <none> CONS Packet Consumed Silently <<< recieved packet from sender
1 Gi2 Gi6 FWD <<< first replicated packet sent to int gig6
2 Gi2 Gi5 FWD <<< first replicated packet sent to int gig5
3 Gi2 Gi4 FWD <<< first replicated packet sent to int gig4
4 Gi2 Gi3 FWD <<< first replicated packet sent to int gig3
If the details of captured packets are opened, you can see the start time and end time for each packet.
LHR#show platform packet-trace packet 0
Packet: 0 CBUG ID: 85
Summary
Input : GigabitEthernet2
Output : <none>
State : CONS Packet Consumed Silently
Timestamp
Start : 37067929596524 ns (05/27/2020 02:43:56.203649 UTC)
Stop : 37067929669545 ns (05/27/2020 02:43:56.203722 UTC)
LHR#show platform packet-trace packet 1
Packet: 1 CBUG ID: 85
Summary
Input : GigabitEthernet2
Output : GigabitEthernet6
State : FWD
Timestamp
Start : 37067929722925 ns (05/27/2020 02:43:56.203776 UTC)
Stop : 37067929750941 ns (05/27/2020 02:43:56.203804 UTC)
LHR#show platform packet-trace packet 2
Packet: 2 CBUG ID: 85
Summary
Input : GigabitEthernet2
Output : GigabitEthernet5
State : FWD
Timestamp
Start : 37067929752437 ns (05/27/2020 02:43:56.203805 UTC)
Stop : 37067929759667 ns (05/27/2020 02:43:56.203812 UTC)
LHR#show platform packet-trace packet 3
Packet: 3 CBUG ID: 85
Summary
Input : GigabitEthernet2
Output : GigabitEthernet4
State : FWD
Timestamp
Start : 37067929760929 ns (05/27/2020 02:43:56.203814 UTC)
Stop : 37067929766997 ns (05/27/2020 02:43:56.203820 UTC)
LHR#show platform packet-trace packet 4
Packet: 4 CBUG ID: 85
Summary
Input : GigabitEthernet2
Output : GigabitEthernet3
State : FWD
Timestamp
Start : 37067929768236 ns (05/27/2020 02:43:56.203821 UTC)
Stop : 37067929774283 ns (05/27/2020 02:43:56.203827 UTC)
If the start and end time of previously mentioned outputs are compared, it is understood that the packet processing is going on serially.
Start : 37067929722925 ns (05/27/2020 02:43:56.203776 UTC) << packet1
Stop : 37067929750941 ns (05/27/2020 02:43:56.203804 UTC)
Start : 37067929752437 ns (05/27/2020 02:43:56.203805 UTC) << packet 2
Stop : 37067929759667 ns (05/27/2020 02:43:56.203812 UTC)
Start : 37067929760929 ns (05/27/2020 02:43:56.203814 UTC) << packet 3
Stop : 37067929766997 ns (05/27/2020 02:43:56.203820 UTC)
Start : 37067929768236 ns (05/27/2020 02:43:56.203821 UTC) << packet 4
Stop : 37067929774283 ns (05/27/2020 02:43:56.203827 UTC)
If the stop time of packet 1 (02:43:56.203804) and packet 4 (02:43:56.203821) are compared, you can see that there is a time difference of 17 micro-seconds.
In some time-critical organizations this delay may not be acceptable and hence needs to be reduced.
Solution
In order to avoid this time delay, disable the LRE feature on the router.
If the LRE feature is disabled, the packet processing for the different interface for the replication of multicast traffic is independent of each other and are processed parallelly.
In order to disable the mLRE feature, use this command: outer(config)# platform multicast lre off