[ Contents] [ Prev] [ Next] [ Index] [ Report an Error]

Are LFI and Load Balancing Working Correctly?

Problem—I have a single network that supports multiple services. My network transmits data and delay-sensitive voice traffic. I configured MLPPP and LFI to make sure that voice packets are transmitted across the network with very little delay and jitter. How can I find out if voice packets are being treated as LFI packets and load balancing is performed correctly?

Solution—When LFI is enabled, data (non-LFI) packets are encapsulated with an MLPPP header and fragmented to packets of a specified size. The delay-sensitive, voice (LFI) packets are PPP-encapsulated and interleaved between data packet fragments. Queuing and load balancing are performed differently for LFI and non-LFI packets. For more information, see Load Balancing with LFI.

To verify that LFI is performed correctly, determine that packets are fragmented and encapsulated as configured. After you know whether a packet is treated as an LFI packet or a non-LFI packet, you can confirm whether the load balancing is performed correctly.

Solution Scenario—Suppose two Services Routers R0 and R1 are connected by a multilink bundle ls-0/0/0.0 that aggregates two serial links, se-1/0/0 and se-1/0/1. On R0 and R1, MLPPP and LFI are enabled on the link services interface and the fragmentation threshold is set to 128 bytes.

In this example, we used a packet generator to generate voice and data streams. You can use the packet capture feature to capture and analyze the packets on the incoming interface. For more information, see the J-series Services Router Administration Guide.

The following two data streams were sent on the multilink bundle:

The following two voice streams were sent on the multilink bundle:

To confirm that LFI and load balancing are performed correctly, first verify that the link services interface is performing packet fragmentation as configured. Second, verify that the interface is encapsulating packets as configured. Finally, use the results to verify load balancing.

Note: Only the significant portions of command output are displayed and described in this example. For more information, see Verifying the Link Services Interface Configuration.

Step 1: Verifying Packet Fragmentation

From the CLI, enter the show interfaces ls-0/0/0 command, to check that large packets are fragmented correctly.


user@R0#> show interfaces ls-0/0/0
Physical interface: ls-0/0/0, Enabled, Physical link is Up
  Interface index: 136, SNMP ifIndex: 29
  Link-level type: LinkService, MTU: 1504
  Device flags   : Present Running
  Interface flags: Point-To-Point SNMP-Traps
  Last flapped   : 2006-08-01 10:45:13 PDT (2w0d 06:06 ago)
  Input rate     : 0 bps (0 pps)
  Output rate    : 0 bps (0 pps)

  Logical interface ls-0/0/0.0 (Index 69) (SNMP ifIndex 42) 
    Flags: Point-To-Point SNMP-Traps 0x4000 Encapsulation: Multilink-PPP
    Bandwidth: 16mbps
    Statistics         Frames      fps       Bytes        bps
    Bundle:
      Fragments:
        Input :             0        0           0          0
        Output:          1100        0      118800          0
      Packets:
        Input :             0        0           0          0
        Output:          1000        0      112000          0
   ...
    Protocol inet, MTU: 1500
      Flags: None
      Addresses, Flags: Is-Preferred Is-Primary
        Destination: 9.9.9/24, Local: 9.9.9.10

What It Means—The output shows a summary of packets transiting the router on the multilink bundle. Verify the following information on the multilink bundle:

The total number of packets sent (600 + 400) on the multilink bundle match the number of transiting packets (1000), indicating that no packets were dropped.

The number of transiting fragments exceeds the number of transiting packets by 100, indicating that 100 large data packets were correctly fragmented.

Corrective Action—If the packets are not fragmented correctly, check your fragmentation threshold configuration. Packets smaller than the specified fragmentation threshold are not fragmented. For information about configuring the fragmentation threshold, see Configuring the Link Services Interface with a Configuration Editor.

Step 2: Verifying Packet Encapsulation

To find out whether a packet is treated as an LFI or non-LFI packet, determine its encapsulation type. LFI packets are PPP encapsulated, and non-LFI packets are encapsulated with both PPP and MLPPP. PPP and MLPPP encapsulations have different overheads resulting in different-sized packets. You can compare packet sizes to determine the encapsulation type.

A small unfragmented data packet contains a PPP header and a single MLPPP header. In a large fragmented data packet, the first fragment contains a PPP header and an MLPPP header, but the consecutive fragments contain only an MLPPP header.

PPP and MLPPP encapsulations add the following number of bytes to a packet:

Figure 43 shows the overhead added to PPP and MLPPP headers.

Figure 43: PPP and MLPPP Headers

Image g016709.gif

For CRTP packets, the encapsulation overhead and packet size are even smaller than for an LFI packet. For more information, see Configuring CRTP.

Table 88 shows the encapsulation overhead for a data packet and a voice packet of 70 bytes each. After encapsulation, the size of the data packet is larger than the size of the voice packet.

Table 88: PPP and MLPPP Encapsulation Overhead

Packet Type

Encapsulation

Initial Packet Size

Encapsulation Overhead

Packet Size after Encapsulation

Voice packet (LFI)

PPP

70 bytes

4 + 2 + 1 = 7 bytes

77 bytes

Data fragment (non-LFI) with short sequence

MLPPP

70 bytes

4 + 2 + 1 + 4 + 2 = 13 bytes

83 bytes

Data fragment (non-LFI) with long sequence

MLPPP

70 bytes

4 + 2 + 1 + 4 + 4 = 15 bytes

85 bytes

From the CLI, enter the show interfaces queue command to display the size of transmitted packet on each queue. Divide the number of bytes transmitted by the number of packets to obtain the size of the packets and determine the encapsulation type.

Step 3: Verifying Load Balancing

From the CLI, enter the show interfaces queue command on the multilink bundle and its constituent links to confirm whether load balancing is performed accordingly on the packets.


user@R0> show interfaces queue ls-0/0/0
Physical interface: ls-0/0/0, Enabled, Physical link is Up
  Interface index: 136, SNMP ifIndex: 29
Forwarding classes: 8 supported, 8 in use
Egress queues: 8 supported, 8 in use
Queue: 0, Forwarding classes: DATA 
  Queued:
    Packets              :                600                  0 pps
    Bytes                :              44800                  0 bps
  Transmitted:
    Packets              :                600                  0 pps
    Bytes                :              44800                  0 bps
    Tail-dropped packets :                  0                  0 pps
    RED-dropped packets  :                  0                  0 pps
    …
Queue: 1, Forwarding classes: expedited-forwarding 
  Queued:
    Packets              :                  0                  0 pps
    Bytes                :                  0                  0 bps
  …
Queue: 2, Forwarding classes: VOICE 
  Queued:
    Packets              :                400                  0 pps
    Bytes                :              61344                  0 bps
  Transmitted:
    Packets              :                400                  0 pps
    Bytes                :              61344                  0 bps
    …
Queue: 3, Forwarding classes: NC 
  Queued:
    Packets              :                  0                  0 pps
    Bytes                :                  0                  0 bps
 …

user@R0> show interfaces queue se-1/0/0
Physical interface: se-1/0/0, Enabled, Physical link is Up
  Interface index: 141, SNMP ifIndex: 35
Forwarding classes: 8 supported, 8 in use
Egress queues: 8 supported, 8 in use
Queue: 0, Forwarding classes: DATA 
  Queued:
    Packets              :                350                 0 pps
    Bytes                :              24350                 0 bps
  Transmitted:
    Packets              :                350                 0 pps
    Bytes                :              24350                 0 bps
   ..
Queue: 1, Forwarding classes: expedited-forwarding 
  Queued:
    Packets              :                  0                 0 pps
    Bytes                :                  0                 0 bps
  …
Queue: 2, Forwarding classes: VOICE 
  Queued:
    Packets              :                100                 0 pps
    Bytes                :              15272                 0 bps
  Transmitted:
    Packets              :                100                 0 pps
    Bytes                :              15272                 0 bps
    …
Queue: 3, Forwarding classes: NC 
  Queued:
    Packets              :                 19                 0 pps
    Bytes                :                247                 0 bps
  Transmitted:
    Packets              :                 19                 0 pps
    Bytes                :                247                 0 bps
    …

user@R0> show interfaces queue se-1/0/1
Physical interface: se-1/0/1, Enabled, Physical link is Up
  Interface index: 142, SNMP ifIndex: 38
Forwarding classes: 8 supported, 8 in use
Egress queues: 8 supported, 8 in use
Queue: 0, Forwarding classes: DATA 
  Queued:
    Packets              :                350                 0 pps
    Bytes                :              24350                 0 bps
  Transmitted:
    Packets              :                350                 0 pps
    Bytes                :              24350                 0 bps
    …
Queue: 1, Forwarding classes: expedited-forwarding 
  Queued:
    Packets              :                  0                 0 pps
    Bytes                :                  0                 0 bps
  …
Queue: 2, Forwarding classes: VOICE 
  Queued:
    Packets              :                300                 0 pps
    Bytes                :              45672                 0 bps
  Transmitted:
    Packets              :                300                 0 pps
    Bytes                :              45672                 0 bps
    …
Queue: 3, Forwarding classes: NC 
  Queued:
    Packets              :                 18                 0 pps
    Bytes                :                234                 0 bps
  Transmitted:
    Packets              :                 18                 0 pps
    Bytes                :                234                 0 bps

What It Means—The output from these commands shows the packets transmitted and queued on each queue of the link services interface and its constituent links. Table 89 shows a summary of these values. (Because the number of transmitted packets equaled the number of queued packets on all the links, this table shows only the queued packets.)

Table 89: Number of Packets Transmitted on a Queue

Packets Queued

Bundle ls-0/0/0.0

Constituent Link se-1/0/0

Constituent Link se-1/0/1

Explanation

Packets on Q0

600

350

350

The total number of packets transiting the constituent links (350+350 = 700) exceeded the number of packets queued (600) on the multilink bundle.

Packets on Q2

400

100

300

The total number of packets transiting the constituent links equaled the number of packets on the bundle.

Packets on Q3

0

19

18

The packets transiting Q3 of the constituent links are for keepalive messages exchanged between constituent links. Thus no packets were counted on Q3 of the bundle.

On the multilink bundle, verify the following:

On the constituent links, verify the following:

Corrective Action—If the packets transited only one link, take the following steps to resolve the problem:

  1. Determine whether the physical link is up (operational) or down (unavailable). An unavailable link indicates a problem with the PIM, interface port, or physical connection (link-layer errors). If the link is operational, move to the next step.
  2. Verify that the classifiers are correctly defined for non-LFI packets. Make sure that non-LFI packets are not configured to be queued to Q2. All packets queued to Q2 are treated as LFI packets.
  3. Verify that at least one of the following values is different in the LFI packets: source address, destination address, IP protocol, source port, or destination port. If the same values are configured for all LFI packets, the packets are all hashed to the same flow and transit the same link.

[ Contents] [ Prev] [ Next] [ Index] [ Report an Error]