# Configuring MLPPP Fragmentation and Reassembly

You can configure MLPPP fragmentation and reassembly on a static link interface before adding the link to a bundle, or in a profile assigned to a dynamic MLPPP interface. You can also configure fragmentation and reassembly for all current member links in an MLPPP bundle.

## Overview

E Series routers support fragmentation and reassembly as part of their MLPPP implementation. Fragmentation is the process by which a large packet is broken up into multiple smaller fragments for simultaneous transmission across multiple links of an MLPPP bundle. Reassembly is the process by which the destination router reassembles the fragments into the original packets.

### Application

You can use MLPPP fragmentation and reassembly to reduce transmission latency. You can also use the feature to implement a packet-prioritization scheme that allows smaller, delay-sensitive packets (such as high-priority voice packets) to be interleaved with or race ahead of larger, delay-insensitive packets (such as low-priority data packets) when they are transmitted in the network.

### Supported Configurations

Table 16 lists the static and dynamic MLPPP configurations on E Series routers that support fragmentation and reassembly.

Table 16: Supported Configurations for MLPPP Fragmentation and Reassembly

Static MLPPP Configurations | Dynamic MLPPP Configurations
--- | ---
Static MLPPP over ATM 1483 subinterfaces | Dynamic MLPPP over ATM 1483 subinterfaces
Static MLPPP over PPPoE over ATM 1483 subinterfaces | Dynamic MLPPP over PPPoE over ATM 1483 subinterfaces
Static MLPPP over serial (HDLC) interfaces | Dynamic MLPPP over serial (HDLC) interfaces
– | Dynamic MLPPP over L2TP (on the L2TP network server)
Static MLPPP over PPPoE over Ethernet | Dynamic MLPPP over PPPoE over Ethernet

### Module Requirements

For a list of the line modules and corresponding I/O modules that support MLPPP fragmentation and reassembly on ERX7xx models, ERX14xx models, and the ERX310 router, see ERX Module Guide, Appendix A, Module Protocol Support.

For a list of the line modules and corresponding IOAs that support MLPPP fragmentation and reassembly on the E120 and E320 routers, see E120 and E320 Module Guide, Appendix A, IOA Protocol Support.

### Link Configuration Parameters

The parameters for MLPPP fragmentation and reassembly are configured on a per-link basis for each link interface (also known as a member link) in an MLPPP bundle.

By default, fragmentation and reassembly are disabled for MLPPP links. You can enable or disable fragmentation and reassembly for an individual link, or for all member links in a bundle, by using the ppp fragmentation and ppp reassembly commands. However, you must configure the same fragmentation setting and the same reassembly setting—enabled or disabled—for all member links in a bundle.

When you use the ppp fragmentation command to enable fragmentation on a link, you can optionally specify the maximum fragment size to be used on the link interface. When you use the ppp reassembly command to enable reassembly on a link, you can optionally specify the administrative multilink maximum received reconstructed unit (MRRU) value for the link.

### Bundle Validation and Configuration Guidelines

When you configure MLPPP, the router validates that each link interface attempting to join a statically or dynamically created bundle has Link Control Protocol (LCP) parameters that are compatible with the other member links already in the bundle. This validation includes examining the parameters configured for fragmentation and reassembly on a particular link interface and verifying that these parameters are compatible with the other member links in the bundle.

To ensure that the bundle validation succeeds, make sure you observe the following configuration guidelines for MLPPP fragmentation and reassembly.

#### Guidelines for MLPPP Fragmentation

Use the following guidelines when you configure MLPPP fragmentation on a link interface:

- Configure the same fragmentation setting—enabled or disabled—for all member links in a bundle.
- When fragmentation is enabled, configure the same fragment size for all member links in a bundle.
- Make sure a link’s fragment size does not exceed its maximum transmission unit (MTU) size.
- Do not configure both MLPPP fragmentation (with the ppp fragmentation command) and IP fragmentation of L2TP packets (with the ip mtu command) on the same interface. Instead, you must choose only one of the fragmentation configurations by setting it to the necessary value and set the other fragmentation configuration to the maximum allowable value.

#### Guidelines for MLPPP Reassembly

Use the following guidelines when you configure MLPPP reassembly on a link interface:

- Configure the same reassembly setting—enabled or disabled—for all member links in a bundle.
- Make sure a link’s administrative MRRU is greater than or equal to the local maximum receive unit (MRU) negotiated both on that link and on other member links in the bundle.
- The local MRRU negotiated on a link must be the same as the local MRRU negotiated on the other member links in the bundle.
- The peer MRRU negotiated on a link must be the same as the peer MRRU negotiated on the other member links in the bundle.
- When reassembly is enabled, member links belonging to the same bundle can have different local MRU values.
- When reassembly is disabled, member links belonging to the same bundle must negotiate the same local MRU value.

### Bundle Validation Failure

If an MLPPP link interface fails bundle validation because one or more of the preceding configuration guidelines are not met, the router’s actions differ depending on whether you are using a static MLPPP configuration or a dynamic MLPPP configuration, as follows:

- For static MLPPP configurations, the router permits the failed link to join the bundle, but forces the link into a down state.
- For dynamic MLPPP configurations, the router prohibits the failed link from joining the bundle, and subsequently tears down the link.

### Recovering from Bundle Validation Failure

To recover from a bundle validation failure, you must reconfigure the link interface (for static MLPPP configurations) or reconfigure the profile (for dynamic MLPPP configurations) according to the guidelines described in Bundle Validation and Configuration Guidelines.

## Configuring Fragmentation and Reassembly for Static MLPPP

To configure fragmentation and reassembly on a static MLPPP link interface:

1. From Global Configuration mode, specify the individual link interface on which you want to configure fragmentation and reassembly.
   host1(config)#interface serial 4/0:1/1/1/1/1
2. Specify MLPPP as the encapsulation method on the link interface.
   host1(config-if)#encapsulation mlppp
3. Enable fragmentation on the link interface, and optionally specify the maximum allowable fragment size to use.
   host1(config-if)#ppp fragmentation 128

   | Note: You can specify the maximum fragment size for a link only when you use the ppp fragmentation command to enable fragmentation on that link. You cannot specify the maximum fragment size for a link when fragmentation is disabled.

4. Enable reassembly on the link interface, and optionally specify the administrative MRRU value to use.
   host1(config-if)#ppp reassembly 1590

   | Note: You can specify the administrative MRRU value for a link only when you use the ppp reassembly command to enable reassembly on that link. You cannot specify the administrative MRRU for a link when reassembly is disabled.

5. Exit Interface Configuration mode.
   host1(config-if)#exit
6. Repeat Steps 1 through 5 for each additional link interface on which you want to configure fragmentation and reassembly. For example:
   host1(config)#interface serial 4/0:1/1/1/1/2 host1(config-if)#encapsulation mlppp host1(config-if)#ppp fragmentation 128 host1(config-if)#ppp reassembly 1590 host1(config-if)#exit
7. Define the MLPPP bundle.
   host1(config)#interface mlppp group1
8. Add each member link to the bundle.
   host1(config-if)#member-interface serial 4/0:1/1/1/1/1 host1(config-if)#member-interface serial 4/0:1/1/1/1/2
9. Assign an IP address to the MLPPP bundle.
   host1(config-if)#ip address 10.10.100.1 255.255.255.0

### Static MLPPP over ATM 1483 Example

The following example configures MLPPP fragmentation and reassembly for two member links in an MLPPP bundle over an ATM 1483 subinterface.

host1(config)#interface atm 2/0 host1(config-if)#interface atm 2/0.2 host1(config-subif)#atm pvc 42 0 42 aal5snap host1(config-subif)#encapsulation mlppp host1(config-subif)#ppp fragmentation host1(config-subif)#ppp reassembly 1400 host1(config-subif)#ppp authentication pap chap host1(config-subif)#exit host1(config)#interface atm 2/0.3 host1(config-subif)#atm pvc 43 0 43 aal5snap host1(config-subif)#encapsulation mlppp host1(config-subif)#ppp fragmentation host1(config-subif)#ppp reassembly 1600 host1(config-subif)#ppp authentication pap chap host1(config-subif)#exit host1(config)#interface mlppp client1 host1(config-if)#member-interface atm 2/0.2 host1(config-if)#member-interface atm 2/0.3 host1(config-if)#ip address 10.10.200.1 255.255.255.0

## Configuring Fragmentation and Reassembly for Dynamic MLPPP

To configure fragmentation and reassembly for dynamic MLPPP, you must create a profile that includes commands to define the link and bundle attributes, just as you do for a static MLPPP configuration.

For more information, see:

- Configuring Dynamic Interfaces
- LAC Configuration Prerequisites
- LNS Configuration Prerequisites

To define a profile that configures MLPPP fragmentation and reassembly for a dynamic MLPPP interface:

1. From Global Configuration mode, create a profile by assigning it a name, and access Profile Configuration mode.
   host1(config)#profile dynmlppp1 host1(config-profile)#
2. Enable the creation of dynamic MLPPP interfaces.
   host1(config-profile)#ppp multilink enable
3. Enable fragmentation on the link interface, and optionally specify the maximum allowable fragment size to use.
   host1(config-profile)#ppp fragmentation 128

   | Note: You can specify the maximum fragment size for a link only when you use the ppp fragmentation command to enable fragmentation on that link. You cannot specify the maximum fragment size for a link when fragmentation is disabled.

4. Enable reassembly on the link interface, and optionally specify the administrative MRRU value to use.
   host1(config-profile)#ppp reassembly 1800

   | Note: You can specify the administrative MRRU value for a link only when you use the ppp reassembly command to enable reassembly on that link. You cannot specify the administrative MRRU for a link when reassembly is disabled.

5. (Optional) Specify a virtual router to which dynamic IP interfaces created with this profile will be assigned.
   host1(config-profile)#ip virtual-router boston
6. (Optional) Specify an IP loopback interface with which dynamic IP interfaces created with this profile will be associated.
   host1(config-profile)#ip unnumbered loopback 0
7. (Optional) Set other PPP characteristics as needed by using the ppp commands described in Configuring Multilink PPP.

### Dynamic MLPPP over PPPoE Example

The following example configures MLPPP fragmentation and reassembly for a dynamic MLPPP interface over dynamic PPPoE over an ATM 1483 subinterface.

host1(config)#profile dynmlppp2 host1(config-profile)#ppp multilink enable host1(config-profile)#ppp fragmentation 128 host1(config-profile)#ppp reassembly 1800 host1(config-profile)#ip virtual-router westford host1(config-profile)#ip unnumbered loopback 1 host1(config-profile)#pppoe sessions 9 host1(config-profile)#ppp authentication chap host1(config-profile)#exit host1(config)#interface atm 4/0 host1(config-if)#interface atm 4/0.1 host1(config-subif)#atm pvc 52 0 52 aal5autoconfig 0 0 0 host1(config-subif)#profile pppoe dynmlppp2 host1(config-subif)#auto-configure pppoe

### Dynamic MLPPP over L2TP Example

The following example configures MLPPP fragmentation and reassembly for a dynamic MLPPP interface over L2TP over a Gigabit Ethernet interface.

host1(config)#ip router-id 193.1.1.1 host1(config)#interface loopback 0 host1(config-if)#ip address 193.1.1.1 255.255.255.0 host1(config-if)#interface gigabitEthernet 1/1 host1(config-if)#ip unnumbered loopback 0 host1(config-if)#exit host1(config)#ip route 193.1.1.2 255.255.255.255 gigabitEthernet 1/1 host1(config)#profile l2tp-profile host1(config-profile)#ip virtual-router default host1(config-profile)#ip unnumbered loopback 0 host1(config-profile)#ip access-routes host1(config-profile)#ppp authentication pap host1(config-profile)#ppp keepalive host1(config-profile)#ppp multilink enable host1(config-profile)#ppp mru 1590 host1(config-profile)#ppp reassembly 1590 host1(config-profile)#ppp fragmentation 128 host1(config-profile)#pppoe session 8000 host1(config-profile)#exit host1(config)#l2tp destination profile lac ip address 193.1.1.2 host1(config-l2tp-dest-profile)#remote host xxx.com host1(config-l2tp-dest-profile-host)#enable proxy authenticate host1(config-l2tp-dest-profile-host)#tunnel password welcome host1(config-l2tp-dest-profile-host)#profile l2tp-profile

encapsulation mlppp

- Use to configure MLPPP as the encapsulation method on an individual interface.
- Use this command only within the context of an individual interface. Issuing this command creates an MLPPP link interface, which can be configured as a member of an MLPPP bundle.
- Example
  host1(config)#interface serial 2/0:1/1 host1(config-if)#encapsulation mlppp
- Use the no version to disable MLPPP on an interface.
- See encapsulation mlppp.

interface mlppp

- Use to create an MLPPP network interface, also known as an MLPPP bundle.
- Example
  host1(config-if)#interface mlppp group2
- Use the no version to delete the MLPPP bundle. To delete an MLPPP bundle you must first delete the IP interface, then delete the bundle members (link interfaces), and finally delete the MLPPP bundle itself.
- See interface mlppp.

member-interface

- Use to add an MLPPP link interface—also known as an MLPPP bundle member—to an MLPPP bundle.
- Example
  host1(config-if)#member-interface serial 2/0:1/1
- Use the no version to remove the specified interface from the MLPPP bundle.
- See member-interface.

ppp fragmentation

- Use to enable fragmentation on an MLPPP link interface.
- If fragmentation is enabled on the link, you can optionally specify the maximum fragment size to be used on that link, in the range 128–65535 octets.
- A link’s maximum fragment size cannot exceed the MTU size on that link.
- We recommend that all member links in an MLPPP bundle be assigned the same fragment size.
- Do not configure both MLPPP fragmentation and IP fragmentation of L2TP packets (with the ip mtu command) on the same interface. Instead, you must choose only one of the fragmentation configurations by setting it to the necessary value and set the other fragmentation configuration to the maximum allowable value.
- Example
  host1(config-if)#ppp fragmentation 128
- Use the no version to disable fragmentation on the link and restore the default fragment size, which is the link’s MTU.
- See ppp fragmentation.

ppp multilink enable

- Use in a profile to enable the creation of dynamic MLPPP interfaces.
- Example
  host1(config-profile)#ppp multilink enable
- Use the no version to reject any incoming requests to create dynamic MLPPP interfaces.
- See ppp multilink enable.

ppp reassembly

- Use to enable reassembly on an MLPPP link interface.
- If reassembly is enabled on the link, you can optionally specify the administrative MRRU for the link, in the range 64–65535 octets. The administrative MRRU is the maximum allowable size of the PPP packet payload that the router can receive.
- A link’s MRRU must be greater than or equal to the local MRU on that link.
- We recommend that all member links in an MLPPP bundle be assigned the same reassembly setting: enabled or disabled.
- Example
  host1(config-if)#ppp reassembly 1590
- Use the no version to disable reassembly on the link and restore the default value, which is the local MRU on the link.
- See ppp reassembly.

profile

- Use to create a profile for a dynamic interface.
- You specify a profile name of up to 80 characters.
- Example
  host1(config)#profile dynmlppp1
- Use the no version to remove a profile.
- See profile.

## Configuring Fragmentation and Reassembly for MLPPP Bundles

If you issue the ppp fragmentation command or the ppp reassembly command in the context of an MLPPP bundle, the command affects all the current member links in the bundle. This enables you to issue a single command for the entire bundle instead of having to issue individual commands for each member link in the bundle.

For example, the following commands configure MLPPP fragmentation and reassembly for all member links in the bundle group1.

host1(config)#interface mlppp group1 host1(config-if)#ppp fragmentation 128 host1(config-if)#ppp reassembly 1590 host1(config-if)#exit host1(config)#

Any member links added to the bundle after you issue an MLPPP configuration command in the bundle context are not affected by the command. For example, if you add a member link to the group1 bundle after you issue the ppp fragmentation or ppp reassembly command, MLPPP fragmentation and reassembly for this link and any member links subsequently added to the bundle is not enabled.