Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Understanding Fragmented Packet Queuing

 

Fragmented Multilink PPP (MLPPP) packets have a multilink header containing a multilink sequence number. The sequence numbers on these fragments must be preserved so that the remote device receiving these fragments can correctly reassemble them into a complete packet. To accommodate this requirement, Junos OS queues all packets on member links of a multilink bundle with a MLPPP header into a single queue (q0) by default.

  • Traffic flows of a forwarding class that has MLPPP fragmentation configured are distributed from the inline services si bundle interface queues to the member link queues (queue 0) following a round-robin method.

  • Traffic flows of a forwarding class without MLPPP fragmentation are distributed from the si bundle interface queues to the member link queues based on a hashing algorithm computed from the destination address, source address, and IP protocol of the packet.

    If the IP payload contains TCP or UDP traffic, the hashing algorithm also includes the source and destination ports. As a result, all traffic belonging to one traffic flow is queued to one member link.

Figure 1 shows how traffic is queued on an MLPPP multilink bundle and its member links. Packet flows in the figure use the notation Px,Fx; for example, P1,F1 represents Packet 1, Fragment 1.

  • There are four queues.

  • Forwarding classes be, af, and nc are mapped to queues q0, q1, and q3, respectively, on the multilink bundle. These are fragmented.

  • Forwarding class ef contains voice traffic, and is mapped to q2 and is not fragmented.

  • Interface si-1/0/0.1 is the bundle, and pp0.1 and pp0.2 are the member links for that bundle.

Queuing on member links proceeds as follows:

  1. The packet fragments of forwarding classes be, af, and nc on the multilink bundle are mapped to q0 on Member Links 1 and 2. These packets are distributed from the si queues to the member links using a round-robin method.
  2. The packets of forwarding class ef (voice) from the multilink bundle are mapped to q2 on the member links. This forwarding class is not fragmented. The packets are distributed from the si queues to the member links based on a hashing algorithm.
  3. The network control packets from the multilink bundle are mapped to q0 on the member links. The bundle network control traffic is queued with the data flows on the member link. However, q3 on the member links transmits network control packets that exchange protocol information related to member links, such as packets exchanging hello messages on member links.

This section contains the following topics:

Queuing of Fragmented Packets to Member Links

On a multilink bundle, packet fragments from all forwarding classes with fragmentation enabled are transmitted to q0 on member links. On the q0 queues of member links, packets are queued using a round-robin method to enable per-fragment load balancing.

Figure 2 shows how fragmented packet queuing is performed on the member links. Packet flows in the figure use the notation Px,Fx; for example, P1,F1 represents Packet 1, Fragment 1.

Figure 2: Queuing of Fragmented Packets on Member Links
Queuing of Fragmented Packets
on Member Links

Packet fragments from the multilink bundle are queued to member links one by one using a round-robin method:

  • Packet P1,F1 from q0 on the multilink bundle is queued to q0 on Member Link 1.

  • Packet P1,F2 from q0 on the multilink bundle is queued to q0 on Member Link 2.

  • Packet P1,F3 from q0 on the multilink bundle is queued to q0 on Member Link 1.

  • Packet P2,F1 from q1 on the multilink bundle is queued to q0 on Member Link 2, and so on.

Note

Packets that are part of the fragmented forwarding class, but are not fragmented, follow the same procedure.

After exiting the si interface, Microcode adds a header of approximately 40 bytes to the MLPPP packets. When configuring the class-of-service shaping, you may need to adjust bytes to account for this.

Queuing of LFI Packets to Member Links

On a multilink bundle, all non-MLPPP encapsulated traffic [link fragmenting and interleaving (LFI) traffic] from the multilink bundle are queued to the queue as defined by the forwarding class of that packet.

Figure 3 shows how LFI packet queuing is performed on the member links.

Figure 3: Queuing of LFI Packets on Member Links
Queuing of LFI Packets on Member Links

The packets are distributed from the si interface to the member links based on a hashing algorithm computed from the source address, destination address, and IP protocol of the packet.

If the IP payload contains TCP or UDP traffic, the hashing algorithm also includes the source and destination ports. As a result, all traffic belonging to one traffic flow is queued to one member link.