Description

LFI (Link Fragmentation and Interleaving) reduces excessive delays by fragmenting large packets into smaller packets and interleaving them with real-time frames. This allows real-time and non-real-time data frames to be carried together on lower-speed links, without causing excessive delays to the real-time traffic. For example, short delay-sensitive packets, such as packetized voice, can race ahead of larger delay-insensitive packets, such as common data packets.

If MLPPP LFI (Link Fragmentation and Interleaving) is enabled for the required forwarding-class that maps the voice traffic and even though the voice packets' size is less than the configured fragment-threshold, as per Junos implementation, the no-fragmentation knob must be enabled under this forwarding-class.

Symptoms

In certain cases, customers want to enable MLPPP LFI for voice traffic over the LSQ interface. Most of voice packets' size is about 100 bytes; so they configure the fragment threshold as 128 bytes under the LSQ interface, while taking it for granted that it is not necessary to set the no-fragmentation option for the forwarding-class, which is mapped to the voice traffic.

So, it will not lessen the delay for the voice traffic, as expected.

Test scenario :

Tester will generate traffic that passes through two Juniper routers and back to the tester. The link bandwidth between the two routers is 256 Kbps.

The traffic that is generated by tester consists of two streams:

  • Standard traffic for normal data: IP Precedence 0; Packet size 1500bytes; stream load 200Kbps.
  • Premium traffic for voice: IP Precedence 5; Packet size 100bytes; stream load 100Kbps

Related configuration: The fragmentation threshold is set to 128 bytes, with no fragmentation-map being configured.

Test results :

When the packet is received on the ingress interface, the router will perform CoS classification on the egress interface, based on the CoS configuration in the router.
The following statistics illustrate how the traffic is being classified and queued at the egress interface. It shows the number of packets in every queue, before fragmentation take place.
> show interfaces queue lsq-2/1/0 | no-more
Physical interface: lsq-2/1/0, Enabled, Physical link is Up
*Skip
Packet Forwarding Engine Chassis Queues:
Queues: 8 supported, 8 in use
Queue: 0, Forwarding classes: standard
   Queued:
      Packets  :       987        0   pps
      Bytes    :       1462734    0   bps
   Transmitted:
      Packets : 987 0 pps
      Bytes : 1462734 0 bps
     Tail-dropped packets  :   0     0   pps
     RED-dropped packets   :   0     0   pps
      Low : 0 0 pps
      Medium-low  :  0   0   pps
      Medium-high :  0   0   pps
      High : 0 0 pps
    RED-dropped bytes :  0   0   bps
    Low   :       0    0   bps
    Medium-low :  0    0   bps
    Medium-high : 0    0   bps
    High :        0    0   bps
Queue: 1, Forwarding classes: business 
*Skip
Queue: 2, Forwarding classes: premiumrt
Queued:
Packets  :    7500     0   pps
Bytes    :    615000   0   bps
Transmitted:
Packets  :    7500     0   pps
Bytes    :    615000   0   bps
Tail-dropped packets : 0   0   pps
 RED-dropped packets : 0   0   pps
  Low  : 0  0   pps
  Medium-low :  0  0   pps
  Medium-high : 0  0   pps
  High :        0  0   pps
RED-dropped bytes : 0  0   bps
Low   :             0  0   bps
Medium-low :        0  0   bps
Medium-high :       0  0   bps
High   :            0  0   bps

Latency measurement on the tester:
Test case # Name/ID    Tx Count (Frames)  Rx Count (Frames)  Avg Latency (us)
fragmentation-maps disabled  Voice-1/65536 7,500    7,500    27,856.71
Standard-1/65537  987  727   751,574.75

Solution

Based on the configuration in this test case, the fragmentation threshold set to 128Bytes with no fragmentation-map being configured:

  • Standard traffic will be fragmented, as the size (1500Bytes) is larger than fragmentation threshold (128 bytes).

  • Premium traffic will not be fragmented, as the size (100Bytes) is smaller than fragmentation threshold (128 bytes).

  • premium traffic will not interleave due to no fragmentation-map being configured:
    > show interfaces extensive lsq-2/1/0 | no-more
    Physical interface: lsq-2/1/0, Enabled, Physical link is Up
    *Skip
    Multilink detail statistics:
    Bundle:
    Fragments:
    Input : 0    0     0          0
    Output : 8472      0      1114774  0
    Non-fragments:
    Input :  0    0    0      0
    Output : 7500  0  682500  0
    LFI:
    Input :  0  0   0   0
    Output : 0  0   0   0 > there is no interleaving
    *Skip

Configuring a fragmentation map with the no-fragmentation knob being enabled for the premium forwarding-class that is mapped to voice traffic:

> show configuration class-of-service fragmentation-maps

fragmentation-maps {
    LFI-TEST {
        forwarding-class {
            premium {
                no-fragmentation;
            }
        }
    }
}
When the packet is received on the ingress interface, the router will perform CoS classification on the egress interface, based on the CoS configuration in the router. The following statistics illustrates how the traffic is being classified and queued at the egress interface. It displays the number of packets in every queue, before fragmentation takes place.
> show interfaces queue lsq-2/1/0 | no-more
Physical interface: lsq-2/1/0, Enabled, Physical link is Up
*Skip
Packet Forwarding Engine Chassis Queues:
Queues: 8 supported, 8 in use
Queue: 0, Forwarding classes: standard
Queued:
Packets : 987 0 pps
Bytes : 1462734 0 bps
Transmitted:
Packets : 987 0 pps
Bytes : 1462734 0 bps
Tail-dropped packets : 0 0 pps
RED-dropped packets : 0 0 pps
Low : 0 0 pps
Medium-low : 0 0 pps
Medium-high : 0 0 pps
High : 0 0 pps
RED-dropped bytes : 0 0 bps
Low : 0 0 bps
Medium-low : 0 0 bps
Medium-high : 0 0 bps
High : 0 0 bps
Queue: 1, Forwarding classes: business
*Skip
Queue: 2, Forwarding classes: premiumrt
Queued:
Packets : 7500 0 pps
Bytes : 615000 0 bps
Transmitted:
Packets : 7500 0 pps
Bytes : 615000 0 bps
Tail-dropped packets : 0 0 pps
RED-dropped packets : 0 0 pps
Low : 0 0 pps
Medium-low : 0 0 pps
Medium-high : 0 0 pps
High : 0 0 pps
RED-dropped bytes : 0 0 bps
Low : 0 0 bps
Medium-low : 0 0 bps
Medium-high : 0 0 bps
High : 0 0 bps
Based on the configuration in this test case, fragmentation threshold set to 128 bytes and the fragmentation-map is enabled:

  • Standard traffic will be fragmented, as the size (1500 bytes) is larger than the fragmentation threshold (128 bytes).
  • Premium traffic will not be fragmented, as the size (100 bytes) is smaller than the fragmentation threshold (128 bytes).
  • Premium traffic will interleave between standard packets due to the fragmentation-map being configured:
    [edit groups edi]
    edi@LAB-M120-01# run show interfaces extensive lsq-2/1/0| no-more 
    Physical interface: lsq-2/1/0, Enabled, Physical link is Up
    *Skip
    Multilink detail statistics:
    Bundle:
    Fragments:
    Input : 0 0 0 0
    Output: 8736 0 1149512 0
    Non-fragments:
    Input : 0 0 0 0
    Output: 0 0 0 0
    LFI:
    Input : 0 0 0 0
    Output: 7500 0 645000 0 // Interleaving observed for Premium traffic
    *Skip
    
    
    Latency measurement on the tester:
    Test case #                 Name/ID Tx Count (Frames) Rx Count (Frames) Avg Latency (us)
    fragmentation-maps enabled  Voice-1/65536 7,500 7,499 26,042.87
                                Standard-1/65537 987 767 782,567.86