7 Network Working Group K. Sklower
8 Request for Comments: 1990 University of California, Berkeley
9 Obsoletes: 1717 B. Lloyd
10 Category: Standards Track G. McGregor
13 Newbridge Networks Corporation
19 The PPP Multilink Protocol (MP)
24 This document specifies an Internet standards track protocol for the
25 Internet community, and requests discussion and suggestions for
26 improvements. Please refer to the current edition of the "Internet
27 Official Protocol Standards" (STD 1) for the standardization state
28 and status of this protocol. Distribution of this memo is unlimited.
32 This document proposes a method for splitting, recombining and
33 sequencing datagrams across multiple logical data links. This work
34 was originally motivated by the desire to exploit multiple bearer
35 channels in ISDN, but is equally applicable to any situation in which
36 multiple PPP links connect two systems, including async links. This
37 is accomplished by means of new PPP [2] options and protocols.
39 The differences between the current PPP Multilink specification (RFC
40 1717) and this memo are explained in Section 11. Any system
41 implementing the additional restrictions required by this memo will
42 be backwards compatible with conforming RFC 1717 implementations.
46 The authors specifically wish to thank Fred Baker of ACC, Craig Fox
47 of Network Systems, Gerry Meyer of Spider Systems, Dan Brennan of
48 Penril Datability Networks, Vernon Schryver of SGI (for the
49 comprehensive discussion of padding), and the members of the IP over
50 Large Public Data Networks and PPP Extensions working groups, for
51 much useful discussion on the subject.
58 Sklower, et. al. Standards Track [Page 1]
60 RFC 1990 PPP Multilink August 1996
65 1. Introduction ................................................ 2
66 1.1. Motivation ................................................ 2
67 1.2. Functional Description .................................... 3
68 1.3. Conventions ............................................... 4
69 2. General Overview ............................................ 4
70 3. Packet Formats .............................................. 7
71 3.1. Padding Considerations .................................... 10
72 4. Trading Buffer Space Against Fragment Loss .................. 10
73 4.1. Detecting Fragment Loss ................................... 11
74 4.2. Buffer Space Requirements ................................. 12
75 5. PPP Link Control Protocol Extensions ........................ 13
76 5.1. Configuration Option Types ................................ 13
77 5.1.1. Multilink MRRU LCP option ............................... 14
78 5.1.2. Short Sequence Number Header Format Option .............. 15
79 5.1.3. Endpoint Discriminator Option ........................... 15
80 6. Initiating use of Multilink Headers ......................... 19
81 7. Closing Member links ........................................ 20
82 8. Interaction with Other Protocols ............................ 20
83 9. Security Considerations ..................................... 21
84 10. References ................................................. 21
85 11. Differences from RFC 1717 .................................. 22
86 11.1. Negotiating Multilink, per se ............................ 22
87 11.2. Initial Sequence Number defined .......................... 22
88 11.3. Default Value of the MRRU ................................ 22
89 11.4. Config-Nak of EID prohibited ............................. 22
90 11.5. Uniformity of Sequence Space ............................. 22
91 11.6. Commencing and Abating use of Multilink Headers .......... 23
92 11.7. Manual Configuration and Bundle Assignment ............... 23
93 12. Authors' Addresses ......................................... 24
99 Basic Rate and Primary Rate ISDN both offer the possibility of
100 opening multiple simultaneous channels between systems, giving users
101 additional bandwidth on demand (for additional cost). Previous
102 proposals for the transmission of internet protocols over ISDN have
103 stated as a goal the ability to make use of this capability, (e.g.,
106 There are proposals being advanced for providing synchronization
107 between multiple streams at the bit level (the BONDING proposals);
108 such features are not as yet widely deployed, and may require
109 additional hardware for end system. Thus, it may be useful to have a
110 purely software solution, or at least an interim measure.
114 Sklower, et. al. Standards Track [Page 2]
116 RFC 1990 PPP Multilink August 1996
119 There are other instances where bandwidth on demand can be exploited,
120 such as using a dialup async line at 28,800 baud to back up a leased
121 synchronous line, or opening additional X.25 SVCs where the window
122 size is limited to two by international agreement.
124 The simplest possible algorithms of alternating packets between
125 channels on a space available basis (which might be called the Bank
126 Teller's algorithm) may have undesirable side effects due to
127 reordering of packets.
129 By means of a four-byte sequencing header, and simple synchronization
130 rules, one can split packets among parallel virtual circuits between
131 systems in such a way that packets do not become reordered, or at
132 least the likelihood of this is greatly reduced.
134 1.2. Functional Description
136 The method discussed here is similar to the multilink protocol
137 described in ISO 7776 [4], but offers the additional ability to split
138 and recombine packets, thereby reducing latency, and potentially
139 increase the effective maximum receive unit (MRU). Furthermore,
140 there is no requirement here for acknowledged-mode operation on the
141 link layer, although that is optionally permitted.
143 Multilink is based on an LCP option negotiation that permits a system
144 to indicate to its peer that it is capable of combining multiple
145 physical links into a "bundle". Only under exceptional conditions
146 would a given pair of systems require the operation of more than one
147 bundle connecting them.
149 Multilink is negotiated during the initial LCP option negotiation. A
150 system indicates to its peer that it is willing to do multilink by
151 sending the multilink option as part of the initial LCP option
152 negotiation. This negotiation indicates three things:
154 1. The system offering the option is capable of combining multiple
155 physical links into one logical link;
157 2. The system is capable of receiving upper layer protocol data
158 units (PDU) fragmented using the multilink header (described
159 later) and reassembling the fragments back into the original PDU
162 3. The system is capable of receiving PDUs of size N octets where N
163 is specified as part of the option even if N is larger than the
164 maximum receive unit (MRU) for a single physical link.
170 Sklower, et. al. Standards Track [Page 3]
172 RFC 1990 PPP Multilink August 1996
175 Once multilink has been successfully negotiated, the sending system
176 is free to send PDUs encapsulated and/or fragmented with the
181 The following language conventions are used in the items of
182 specification in this document:
184 o MUST, SHALL or MANDATORY -- the item is an absolute requirement
185 of the specification.
187 o SHOULD or RECOMMENDED -- the item should generally be followed
188 for all but exceptional circumstances.
190 o MAY or OPTIONAL -- the item is truly optional and may be
191 followed or ignored according to the needs of the implementor.
195 In order to establish communications over a point-to-point link, each
196 end of the PPP link must first send LCP packets to configure the data
197 link during Link Establishment phase. After the link has been
198 established, PPP provides for an Authentication phase in which the
199 authentication protocols can be used to determine identifiers
200 associated with each system connected by the link.
202 The goal of multilink operation is to coordinate multiple independent
203 links between a fixed pair of systems, providing a virtual link with
204 greater bandwidth than any of the constituent members. The aggregate
205 link, or bundle, is named by the pair of identifiers for two systems
206 connected by the multiple links. A system identifier may include
207 information provided by PPP Authentication [3] and information
208 provided by LCP negotiation. The bundled links can be different
209 physical links, as in multiple async lines, but may also be instances
210 of multiplexed links, such as ISDN, X.25 or Frame Relay. The links
211 may also be of different kinds, such as pairing dialup async links
212 with leased synchronous links.
214 We suggest that multilink operation can be modeled as a virtual PPP
215 link-layer entity wherein packets received over different physical
216 link-layer entities are identified as belonging to a separate PPP
217 network protocol (the Multilink Protocol, or MP) and recombined and
218 sequenced according to information present in a multilink
219 fragmentation header. All packets received over links identified as
220 belonging to the multilink arrangement are presented to the same
221 network-layer protocol processing machine, whether they have
222 multilink headers or not.
226 Sklower, et. al. Standards Track [Page 4]
228 RFC 1990 PPP Multilink August 1996
231 The packets to be transmitted using the multilink procedure are
232 encapsulated according to the rules for PPP where the following
233 options would have been manually configured:
235 o No async control character Map
237 o No Link Quality Monitoring
238 o Address and Control Field Compression
239 o Protocol Field Compression
241 o No Self-Describing-Padding
243 According to the rules specified in RFC1661, this means that an
244 implementation MUST accept reassembled packets with and without
245 leading zeroes present in the Protocol Field of the reassembled
246 packet. Although it is explicitly forbidden below to include the
247 Address and Control fields (usually, the two bytes FF 03) in the
248 material to be fragmented, it is a good defensive programming
249 practice to accept the packet anyway, ignoring the two bytes if
250 present, as that is what RFC1661 specifies.
252 As a courtesy to implementations that perform better when certain
253 alignment obtains, it is suggested that a determination be made when
254 a bundle is created on whether to transmit leading zeroes by
255 examining whether PFC has been negotiated on the first link admitted
256 into a bundle. This determination should be kept in force so long as
259 Of course, individual links are permitted to have different settings
260 for these options. As described below, member links SHOULD negotiate
261 Self-Describing-Padding, even though pre-fragmented packets MUST NOT
262 be padded. Since the Protocol Field Compression mode on the member
263 link allows a sending system to include a leading byte of zero or not
264 at its discretion, this is an alternative mechanism for generating
267 LCP negotiations are not permitted on the bundle itself. An
268 implementation MUST NOT transmit LCP Configure-Request, -Reject,
269 -Ack, -Nak, Terminate-Request or -Ack packets via the multilink
270 procedure, and an implementation receiving them MUST silently discard
271 them. (By "silently discard" we mean to not generate any PPP packets
272 in response; an implementation is free to generate a log entry
273 registering the reception of the unexpected packet). By contrast,
274 other LCP packets having control functions not associated with
275 changing the defaults for the bundle itself are permitted. An
276 implementation MAY transmit LCP Code-Reject, Protocol-Reject, Echo-
277 Request, Echo-Reply and Discard-Request Packets.
282 Sklower, et. al. Standards Track [Page 5]
284 RFC 1990 PPP Multilink August 1996
287 The effective MRU for the logical-link entity is negotiated via an
288 LCP option. It is irrelevant whether Network Control Protocol
289 packets are encapsulated in multilink headers or not, or even over
290 which link they are sent, once that link identifies itself as
291 belonging to a multilink arrangement.
293 Note that network protocols that are not sent using multilink headers
294 cannot be sequenced. (And consequently will be delivered in any
297 For example, consider the case in Figure 1. Link 1 has negotiated
298 network layers NL 1, NL 2, and MP between two systems. The two
299 systems then negotiate MP over Link 2.
301 Frames received on link 1 are demultiplexed at the data link layer
302 according the PPP network protocol identifier and can be sent to NL
303 1, NL 2, or MP. Link 2 will accept frames with all network protocol
304 identifiers that Link 1 does.
306 Frames received by MP are further demultiplexed at the network layer
307 according to the PPP network protocol identifier and sent to NL 1 or
308 NL 2. Any frames received by MP for any other network layer
309 protocols are rejected using the normal protocol reject mechanism.
338 Sklower, et. al. Standards Track [Page 6]
340 RFC 1990 PPP Multilink August 1996
343 Figure 1. Multilink Overview.
352 | | +-------------o-o-o-+
353 | +------+ +-----+ | | |
355 | +------o--o-------+ + |
358 | | | MLCP | <--- Link Layer
359 | | \______/ Demultiplexing
362 | | | <--- Virtual Link
369 | LCP |------+-----| LCP | <--- Link Layer
370 \______/ \______/ Demultiplexing
377 In this section we describe the layout of individual fragments, which
378 are the "packets" in the Multilink Protocol. Network Protocol
379 packets are first encapsulated (but not framed) according to normal
380 PPP procedures, and large packets are broken up into multiple
381 segments sized appropriately for the multiple physical links.
382 Although it would otherwise be permitted by the PPP spec,
383 implementations MUST NOT include the Address and Control Field in the
384 logical entity to be fragmented. A new PPP header consisting of the
385 Multilink Protocol Identifier, and the Multilink header is inserted
386 before each section. (Thus the first fragment of a multilink packet
387 in PPP will have two headers, one for the fragment, followed by the
388 header for the packet itself).
394 Sklower, et. al. Standards Track [Page 7]
396 RFC 1990 PPP Multilink August 1996
399 Systems implementing the multilink procedure are not required to
400 fragment small packets. There is also no requirement that the
401 segments be of equal sizes, or that packets must be broken up at all.
402 A possible strategy for contending with member links of differing
403 transmission rates would be to divide the packets into segments
404 proportion to the transmission rates. Another strategy might be to
405 divide them into many equal fragments and distribute multiple
406 fragments per link, the numbers being proportional to the relative
409 PPP multilink fragments are encapsulated using the protocol
410 identifier 0x00-0x3d. Following the protocol identifier is a four
411 byte header containing a sequence number, and two one bit fields
412 indicating that the fragment begins a packet or terminates a packet.
413 After negotiation of an additional PPP LCP option, the four byte
414 header may be optionally replaced by a two byte header with only a 12
415 bit sequence space. Address & Control and Protocol ID compression
416 are assumed to be in effect. Individual fragments will, therefore,
417 have the following format:
419 Figure 2: Long Sequence Number Fragment Format.
422 +---------------+---------------+
423 PPP Header: | Address 0xff | Control 0x03 |
424 +---------------+---------------+
425 | PID(H) 0x00 | PID(L) 0x3d |
426 +-+-+-+-+-+-+-+-+---------------+
427 MP Header: |B|E|0|0|0|0|0|0|sequence number|
428 +-+-+-+-+-+-+-+-+---------------+
429 | sequence number (L) |
430 +---------------+---------------+
435 +---------------+---------------+
437 +---------------+---------------+
450 Sklower, et. al. Standards Track [Page 8]
452 RFC 1990 PPP Multilink August 1996
455 Figure 3: Short Sequence Number Fragment Format.
458 +---------------+---------------+
459 PPP Header: | Address 0xff | Control 0x03 |
460 +---------------+---------------+
461 | PID(H) 0x00 | PID(L) 0x3d |
462 +-+-+-+-+-------+---------------+
463 MP Header: |B|E|0|0| sequence number |
464 +-+-+-+-+-------+---------------+
469 +---------------+---------------+
471 +---------------+---------------+
473 The (B)eginning fragment bit is a one bit field set to 1 on the first
474 fragment derived from a PPP packet and set to 0 for all other
475 fragments from the same PPP packet.
477 The (E)nding fragment bit is a one bit field set to 1 on the last
478 fragment and set to 0 for all other fragments. A fragment may have
479 both the (B)eginning and (E)nding fragment bits set to 1.
481 The sequence field is a 24 bit or 12 bit number that is incremented
482 for every fragment transmitted. By default, the sequence field is 24
483 bits long, but can be negotiated to be only 12 bits with an LCP
484 configuration option described below.
486 Between the (E)nding fragment bit and the sequence number is a
487 reserved field, whose use is not currently defined, which MUST be set
488 to zero. It is 2 bits long when the use of short sequence numbers
489 has been negotiated, 6 bits otherwise.
491 In this multilink protocol, a single reassembly structure is
492 associated with the bundle. The multilink headers are interpreted in
493 the context of this structure.
495 The FCS field shown in the diagram is inherited from the normal
496 framing mechanism from the member link on which the packet is
497 transmitted. There is no separate FCS applied to the reconstituted
498 packet as a whole if transmitted in more than one fragment.
506 Sklower, et. al. Standards Track [Page 9]
508 RFC 1990 PPP Multilink August 1996
511 3.1. Padding Considerations
513 Systems that support the multilink protocol SHOULD implement Self-
514 Describing-Padding. A system that implements self-describing-padding
515 by definition will either include the padding option in its initial
516 LCP Configure-Requests, or (to avoid the delay of a Configure-Reject)
517 include the padding option after receiving a NAK containing the
520 A system that must pad its own transmissions but does not use Self-
521 Describing-Padding when not using multilink, MAY continue to not use
522 Self-Describing-Padding if it ensures by careful choice of fragment
523 lengths that only (E)nding fragments of packets are padded. A system
524 MUST NOT add padding to any packet that cannot be recognized as
525 padded by the peer. Non-terminal fragments MUST NOT be padded with
526 trailing material by any other method than Self-Describing-Padding.
528 A system MUST ensure that Self-Describing-Padding as described in RFC
529 1570 [11] is negotiated on the individual link before transmitting
530 any multilink data packets if it might pad non-terminal fragments or
531 if it would use network or compression protocols that are vulnerable
532 to padding, as described in RFC 1570. If necessary, the system that
533 adds padding MUST use LCP Configure-NAK's to elicit a Configure-
534 Request for Self-Describing-Padding from the peer.
536 Note that LCP Configure-Requests can be sent at any time on any link,
537 and that the peer will always respond with a Configure-Request of its
538 own. A system that pads its transmissions but uses no protocols
539 other than multilink that are vulnerable to padding MAY delay
540 ensuring that the peer has Configure-Requested Self-Describing-
541 Padding until it seems desireable to negotiate the use of Multilink
542 itself. This permits the interoperability of a system that pads with
543 older peers that support neither Multilink nor Self-Describing-
546 4. Trading Buffer Space Against Fragment Loss
548 In a multilink procedure one channel may be delayed with respect to
549 the other channels in the bundle. This can lead to fragments being
550 received out of order, thus increasing the difficulty in detecting
551 the loss of a fragment. The task of estimating the amount of space
552 required for buffering on the receiver becomes more complex because
553 of this. In this section we discuss a technique for declaring that a
554 fragment is lost, with the intent of minimizing the buffer space
555 required, yet minimizing the number of avoidable packet losses.
562 Sklower, et. al. Standards Track [Page 10]
564 RFC 1990 PPP Multilink August 1996
567 4.1. Detecting Fragment Loss
569 On each member link in a bundle, the sender MUST transmit fragments
570 with strictly increasing sequence numbers (modulo the size of the
571 sequence space). This requirement supports a strategy for the
572 receiver to detect lost fragments based on comparing sequence
573 numbers. The sequence number is not reset upon each new PPP packet,
574 and a sequence number is consumed even for those fragments which
575 contain an entire PPP packet, i.e., one in which both the (B)eginning
576 and (E)nding bits are set.
578 An implementation MUST set the sequence number of the first fragment
579 transmited on a newly-constructed bundle to zero. (Joining a
580 secondary link to an exisiting bundle is invisible to the protocol,
581 and an implementation MUST NOT reset the sequence number space in
584 The receiver keeps track of the incoming sequence numbers on each
585 link in a bundle and maintains the current minimum of the most
586 recently received sequence number over all the member links in the
587 bundle (call this M). The receiver detects the end of a packet when
588 it receives a fragment bearing the (E)nding bit. Reassembly of the
589 packet is complete if all sequence numbers up to that fragment have
592 A lost fragment is detected when M advances past the sequence number
593 of a fragment bearing an (E)nding bit of a packet which has not been
594 completely reassembled (i.e., not all the sequence numbers between
595 the fragment bearing the (B)eginning bit and the fragment bearing the
596 (E)nding bit have been received). This is because of the increasing
597 sequence number rule over the bundle. Any sequence number so
598 detected is assumed to correspond to a fragment which has been lost.
600 An implementation MUST assume that if a fragment bears a (B)eginning
601 bit, that the previously numbered fragment bore an (E)nding bit.
602 Thus if a packet is lost bearing the (E)nding bit, and the packet
603 whose fragment number is M contains a (B)eginning bit, the
604 implementation MUST discard fragments for all unassembled packets
605 through M-1, but SHOULD NOT discard the fragment bearing the new
606 (B)eginning bit on this basis alone.
608 The detection of a lost fragment, whose sequence number was deduced
609 to be U, causes the receiver to discard all fragments up to the
610 lowest numbered fragment with an ending bit (possibly deduced)
611 greater than or equal to U. However, the quantity M may jump into
612 the middle of a chain of packets which can be successful completed.
618 Sklower, et. al. Standards Track [Page 11]
620 RFC 1990 PPP Multilink August 1996
623 Fragments may be lost due to corruption of individual packets or
624 catastrophic loss of the link (which may occur only in one
625 direction). This version of the multilink protocol mandates no
626 specific procedures for the detection of failed links. The PPP link
627 quality management facility, or the periodic issuance of LCP echo-
628 requests could be used to achieve this.
630 Senders SHOULD avoid keeping any member links idle to maximize early
631 detection of lost fragments by the receiver, since the value of M is
632 not incremented on idle links. Senders SHOULD rotate traffic among
633 the member links if there isn't sufficient traffic to overflow the
634 capacity of one link to avoid idle links.
636 Loss of the final fragment of a transmission can cause the receiver
637 to stall until new packets arrive. The likelihood of this may be
638 decreased by sending a null fragment on each member link in a bundle
639 that would otherwise become idle immediately after having transmitted
640 a fragment bearing the (E)nding bit, where a null fragment is one
641 consisting only of a multilink header bearing both the (B)egin and
642 (E)nding bits (i.e., having no payload). Implementations concerned
643 about either wasting bandwidth or per packet costs are not required
644 to send null fragments and may elect to defer sending them until a
645 timer expires, with the marginally increased possibility of lengthier
646 stalls in the receiver. The receiver SHOULD implement some type of
647 link idle timer to guard against indefinite stalls.
649 The increasing sequence per link rule prohibits the reallocation of
650 fragments queued up behind a failing link to a working one, a
651 practice which is not unusual for implementations of ISO multilink
654 4.2. Buffer Space Requirements
656 There is no amount of buffering that will guarantee correct detection
657 of fragment loss, since an adversarial peer may withhold a fragment
658 on one channel and send arbitrary amounts on the others. For the
659 usual case where all channels are transmitting, you can show that
660 there is a minimum amount below which you could not correctly detect
661 packet loss. The amount depends on the relative delay between the
662 channels, (D[channel-i,channel-j]), the data rate of each channel,
663 R[c], the maximum fragment size permitted on each channel, F[c], and
664 the total amount of buffering the transmitter has allocated amongst
667 When using PPP, the delay between channels could be estimated by
668 using LCP echo request and echo reply packets. (In the case of links
669 of different transmission rates, the round trip times should be
670 adjusted to take this into account.) The slippage for each channel
674 Sklower, et. al. Standards Track [Page 12]
676 RFC 1990 PPP Multilink August 1996
679 is defined as the bandwidth times the delay for that channel relative
680 to the channel with the longest delay, S[c] = R[c] * D[c,c-worst].
681 (S[c-worst] will be zero, of course!)
683 A situation which would exacerbate sequence number skew would be one
684 in which there is extremely bursty traffic (almost allowing all
685 channels to drain), and then where the transmitter would first queue
686 up as many consecutively numbered packets on one link as it could,
687 then queue up the next batch on a second link, and so on. Since
688 transmitters must be able to buffer at least a maximum- sized
689 fragment for each link (and will usually buffer up at least two) A
690 receiver that allocates any less than S[1] + S[2] + ... + S[N] + F[1]
691 + ... + F[N], will be at risk for incorrectly assuming packet loss,
692 and therefore, SHOULD allocate at least twice that.
694 5. PPP Link Control Protocol Extensions
696 If reliable multilink operation is desired, PPP Reliable Transmission
697 [6] (essentially the use of ISO LAPB) MUST be negotiated prior to the
698 use of the Multilink Protocol on each member link.
700 Whether or not reliable delivery is employed over member links, an
701 implementation MUST present a signal to the NCP's running over the
702 multilink arrangement that a loss has occurred.
704 Compression may be used separately on each member link, or run over
705 the bundle (as a logical group link). The use of multiple
706 compression streams under the bundle (i.e., on each link separately)
707 is indicated by running the Compression Control Protocol [5] but with
708 an alternative PPP protocol ID.
710 5.1. Configuration Option Types
712 The Multilink Protocol introduces the use of additional LCP
713 Configuration Options:
715 o Multilink Maximum Received Reconstructed Unit
716 o Multilink Short Sequence Number Header Format
717 o Endpoint Discriminator
730 Sklower, et. al. Standards Track [Page 13]
732 RFC 1990 PPP Multilink August 1996
735 5.1.1. Multilink MRRU LCP option
737 Figure 4: Multilink MRRU LCP option
740 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
741 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
742 | Type = 17 | Length = 4 | Max-Receive-Reconstructed-Unit|
743 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
745 The presence of this LCP option indicates that the system sending it
746 implements the PPP Multilink Protocol. If not rejected, the system
747 will construe all packets received on this link as being able to be
748 processed by a common protocol machine with any other packets
749 received from the same peer on any other link on which this option
752 The Max-Receive-Reconstructed unit field is two octets, and specifies
753 the maximum number of octets in the Information fields of reassembled
754 packets. A system MUST be able to receive the full 1500 octet
755 Information field of any reassembled PPP packet although it MAY
756 attempt to negotiate a smaller, or larger value. The number 1500
757 here comes from the specification for the MRU LCP option in PPP; if
758 this requirement is changed in a future version of RFC 1661, the same
759 rules will apply here.
761 A system MUST include the LCP MRRU option in every LCP negotiation
762 intended to instantiate a bundle or to join an existing bundle. If
763 the LCP MRRU option is offered on a link which is intended to join an
764 existing bundle, a system MUST offer the same Max-Receive-
765 Reconstruct-Unit value previously negotiated for the bundle.
767 A system MUST NOT send any multilink packets on any link unless its
768 peer has offered the MMRU LCP option and the system has configure-
769 Ack'ed it during the most recent LCP negotiation on that link. A
770 system MAY include the MMRU LCP option in a configure-NAK, if its
771 peer has not offered it (until, according to PPP rules, the peer
772 configure-Reject's it).
774 Note: the MRRU value conveyed im this option corresponds to the MRU
775 of the bundle when conceptualized as a PPP entity; but the rules for
776 the Multilink MRRU option are different from the LCP MRU option, as
777 some value MUST be offered in every LCP negotiation, and that
778 confirmation of this option is required prior to multilink
786 Sklower, et. al. Standards Track [Page 14]
788 RFC 1990 PPP Multilink August 1996
791 5.1.2. Short Sequence Number Header Format Option
793 Figure 5: Short Sequence Number Header Format Option
796 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
797 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
798 | Type = 18 | Length = 2 |
799 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
801 This option advises the peer that the implementation wishes to
802 receive fragments with short, 12 bit sequence numbers. When a peer
803 system configure-Ack's this option, it MUST transmit all multilink
804 packets on all links of the bundle with 12 bit sequence numbers or
805 configure-Reject the option. If 12 bit sequence numbers are desired,
806 this option MUST be negotiated when the bundle is instantiated, and
807 MUST be explicitly included in every LCP configure request offered by
808 a system when the system intends to include that link in an existing
809 bundle using 12 bit sequence numbers. If this option is never
810 negotiated during the life of a bundle, sequence numbers are 24 bits
813 An implementation wishing to transmit multilink fragments with short
814 sequence numbers MAY include the multilink short sequence number in a
815 configure-NAK to ask that the peer respond with a request to receive
816 short sequence numbers. The peer is not compelled to respond with
819 5.1.3. Endpoint Discriminator Option
821 Figure 7: Endpoint Discriminator Option
824 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
825 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
826 | Type = 19 | Length | Class | Address ...
827 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
829 The Endpoint Discriminator Option represents identification of the
830 system transmitting the packet. This option advises a system that
831 the peer on this link could be the same as the peer on another
832 existing link. If the option distinguishes this peer from all
833 others, a new bundle MUST be established from the link being
834 negotiated. If this option matches the class and address of some
835 other peer of an existing link, the new link MUST be joined to the
836 bundle containing the link to the matching peer or MUST establish a
837 new bundle, depending on the decision tree shown in (1) through (4)
842 Sklower, et. al. Standards Track [Page 15]
844 RFC 1990 PPP Multilink August 1996
847 To securely join an existing bundle, a PPP authentication protocol
848 [3] must be used to obtain authenticated information from the peer to
849 prevent a hostile peer from joining an existing bundle by presenting
850 a falsified discriminator option.
852 This option is not required for multilink operation. If a system
853 does not receive the Multilink MRRU option, but does receive the
854 Endpoint Discriminator Option, and there is no manual configuration
855 providing outside information, the implementation MUST NOT assume
856 that multilink operation is being requested on this basis alone.
858 As there is also no requirement for authentication, there are four
861 (1) No authentication, no discriminator:
862 All new links MUST be joined to one bundle, unless
863 there is manual configuration to the contrary.
864 It is also permissible to have more than one manually
865 configured bundle connecting two given systems.
867 (2) Discriminator, no authentication:
868 Discriminator match -> MUST join matching bundle,
869 discriminator mismatch -> MUST establish new bundle.
871 (3) No discriminator, authentication:
872 Authenticated match -> MUST join matching bundle,
873 authenticated mismatch -> MUST establish new bundle.
875 (4) Discriminator, authentication:
876 Discriminator match and authenticated match -> MUST join bundle,
877 discriminator mismatch -> MUST establish new bundle,
878 authenticated mismatch -> MUST establish new bundle.
880 The option contains a Class which selects an identifier address space
881 and an Address which selects a unique identifier within the class
884 This identifier is expected to refer to the mechanical equipment
885 associated with the transmitting system. For some classes,
886 uniqueness of the identifier is global and is not bounded by the
887 scope of a particular administrative domain. Within each class,
888 uniqueness of address values is controlled by a class dependent
889 policy for assigning values.
891 Each endpoint may chose an identifier class without restriction.
892 Since the objective is to detect mismatches between endpoints
893 erroneously assumed to be alike, mismatch on class alone is
894 sufficient. Although no one class is recommended, classes which have
898 Sklower, et. al. Standards Track [Page 16]
900 RFC 1990 PPP Multilink August 1996
903 universally unique values are preferred.
905 This option is not required to be supported either by the system or
906 the peer. If the option is not present in a Configure-Request, the
907 system MUST NOT generate a Configure-Nak of this option for any
908 reason; instead it SHOULD behave as if it had received the option
909 with Class = 0, Address = 0. If a system receives a Configure-Nak or
910 Configure-Reject of this option, it MUST remove it from any
911 additional Configure-Request.
913 The size is determined from the Length field of the element. For
914 some classes, the length is fixed, for others the length is variable.
915 The option is invalid if the Length field indicates a size below the
916 minimum for the class.
918 An implementation MAY use the Endpoint Discriminator to locate
919 administration or authentication records in a local database. Such
920 use of this option is incidental to its purpose and is deprecated
921 when a PPP Authentication protocol [3] can be used instead. Since
922 some classes permit the peer to generate random or locally assigned
923 address values, use of this option as a database key requires prior
924 agreement between peer administrators.
926 The specification of the subfields are:
929 19 = for Endpoint Discriminator
932 3 + length of Address
935 The Class field is one octet and indicates the identifier
936 address space. The most up-to-date values of the LCP Endpoint
937 Discriminator Class field are specified in the most recent
938 "Assigned Numbers" RFC [7]. Current values are assigned as
943 1 Locally Assigned Address
945 2 Internet Protocol (IP) Address
947 3 IEEE 802.1 Globally Assigned MAC Address
949 4 PPP Magic-Number Block
954 Sklower, et. al. Standards Track [Page 17]
956 RFC 1990 PPP Multilink August 1996
959 5 Public Switched Network Directory Number
962 The Address field is one or more octets and indicates the
963 identifier address within the selected class. The length and
964 content depend on the value of the Class as follows:
971 This class is the default value if the option is not
972 present in a received Configure-Request.
974 Class 1 - Locally Assigned Address
980 This class is defined to permit a local assignment in the
981 case where use of one of the globally unique classes is not
982 possible. Use of a device serial number is suggested. The
983 use of this class is deprecated since uniqueness is not
986 Class 2 - Internet Protocol (IP) Address
992 An address in this class contains an IP host address as
995 Class 3 - IEEE 802.1 Globally Assigned MAC Address
1001 An address in this class contains an IEEE 802.1 MAC address
1002 in canonical (802.3) format [9]. The address MUST have the
1003 global/local assignment bit clear and MUST have the
1004 multicast/specific bit clear. Locally assigned MAC
1005 addresses should be represented using Class 1.
1010 Sklower, et. al. Standards Track [Page 18]
1012 RFC 1990 PPP Multilink August 1996
1015 Class 4 - PPP Magic-Number Block
1021 This is not an address but a block of 1 to 5 concatenated
1022 32 bit PPP Magic-Numbers as defined in [2]. This class
1023 provides for automatic generation of a value likely but not
1024 guaranteed to be unique. The same block MUST be used by an
1025 endpoint continuously during any period in which at least
1026 one link is in the LCP Open state. The use of this class
1029 Note that PPP Magic-Numbers are used in [2] to detect
1030 unexpected loopbacks of a link from an endpoint to itself.
1031 There is a small probability that two distinct endpoints
1032 will generate matching magic-numbers. This probability is
1033 geometrically reduced when the LCP negotiation is repeated
1034 in search of the desired mismatch, if a peer can generate
1035 uncorrelated magic-numbers.
1037 As used here, magic-numbers are used to determine if two
1038 links are in fact from the same peer endpoint or from two
1039 distinct endpoints. The numbers always match when there is
1040 one endpoint. There is a small probability that the
1041 numbers will match even if there are two endpoints. To
1042 achieve the same confidence that there is not a false match
1043 as for LCP loopback detection, several uncorrelated magic-
1044 numbers can be combined in one block.
1046 Class 5 - Public Switched Network Directory Number
1052 An address in this class contains an octet sequence as
1053 defined by I.331 (E.164) representing an international
1054 telephone directory number suitable for use to access the
1055 endpoint via the public switched telephone network [10].
1057 6. Initiating use of Multilink Headers
1059 When the use of the Multilink protocol has been negotiated on a link
1060 (say Y), and the link is being added to a bundle which currently
1061 contains a single existing link (say X), a system MUST transmit a
1062 Multilink-encapsulated packet on X before transmitting any Multilink-
1066 Sklower, et. al. Standards Track [Page 19]
1068 RFC 1990 PPP Multilink August 1996
1071 encapsulated packets on Y.
1073 Since links may be added and removed from a bundle without destroying
1074 the state associated with it, the fragment should be assigned the
1075 appropriate (next) fragment number. As noted earlier, the first
1076 fragment transmitted in the life of a bundle is assigned fragment
1079 7. Closing Member links
1081 Member links may be terminated according to normal PPP LCP procedures
1082 using LCP Terminate-Request and Terminate-Ack packets on that member
1083 link. Since it is assumed that member links usually do not reorder
1084 packets, receipt of a terminate ack is sufficient to assume that any
1085 multilink protocol packets ahead of it are at no special risk of
1088 Receipt of an LCP Terminate-Request on one link does not conclude the
1089 procedure on the remaining links.
1091 So long as any member links in the bundle are active, the PPP state
1092 for the bundle persists as a separate entity. However, if the there
1093 is a unique link in the bundle, and all the other links were closed
1094 gracefully (with Terminate-Ack), an implementation MAY cease using
1098 If the multilink procedure is used in conjunction with PPP reliable
1099 transmission, and a member link is not closed gracefully, the
1100 implementation should expect to receive packets which violate the
1101 increasing sequence number rule.
1103 8. Interaction with Other Protocols
1105 In the common case, LCP, and the Authentication Control Protocol
1106 would be negotiated over each member link. The Network Protocols
1107 themselves and associated control exchanges would normally have been
1108 conducted once, on the bundle.
1110 In some instances it may be desirable for some Network Protocols to
1111 be exempted from sequencing requirements, and if the MRU sizes of the
1112 link did not cause fragmentation, those protocols could be sent
1113 directly over the member links.
1115 Although explicitly discouraged above, if there were several member
1116 links connecting two implementations, and independent sequencing of
1117 two protocol sets were desired, but blocking of one by the other was
1118 not, one could describe two multilink procedures by assigning
1122 Sklower, et. al. Standards Track [Page 20]
1124 RFC 1990 PPP Multilink August 1996
1127 multiple endpoint identifiers to a given system. Each member link,
1128 however, would only belong to one bundle. One could think of a
1129 physical router as housing two logically separate implementations,
1130 each of which is independently configured.
1132 A simpler solution would be to have one link refuse to join the
1133 bundle, by sending a Configure-Reject in response to the Multilink
1136 9. Security Considerations
1138 Operation of this protocol is no more and no less secure than
1139 operation of the PPP authentication protocols [3]. The reader is
1140 directed there for further discussion.
1144 [1] Leifer, D., Sheldon, S., and B. Gorsline, "A Subnetwork Control
1145 Protocol for ISDN Circuit-Switching", University of Michigan
1146 (unpublished), March 1991.
1148 [2] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD 51,
1149 RFC 1661, Daydreamer, July 1994.
1151 [3] Lloyd, B., and W. Simpson, "PPP Authentication Protocols", RFC
1152 1334, Lloyd Internetworking, Daydreamer, October 1992.
1154 [4] International Organisation for Standardization, "HDLC -
1155 Description of the X.25 LAPB-Compatible DTE Data Link
1156 Procedures", International Standard 7776, 1988
1158 [5] Rand, D., "The PPP Compression Control Protocol (CCP)", PPP
1159 Extensions Working Group, RFC 1962, June 1996.
1161 [6] Rand, D., "PPP Reliable Transmission", RFC 1663, Novell, July
1164 [7] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700,
1165 USC/Information Sciences Institute, October 1994.
1167 [8] Postel, J., Editor, "Internet Protocol - DARPA Internet Program
1168 Protocol Specification", STD 5, RFC 791, USC/Information Sciences
1169 Institute, September 1981.
1171 [9] Institute of Electrical and Electronics Engineers, Inc., "IEEE
1172 Local and Metropolitan Area Networks: Overview and Architecture",
1173 IEEE Std. 802-1990, 1990.
1178 Sklower, et. al. Standards Track [Page 21]
1180 RFC 1990 PPP Multilink August 1996
1183 [10] The International Telegraph and Telephone Consultative Committee
1184 (CCITT), "Numbering Plan for the ISDN Area", Recommendation I.331
1187 [11] Simpson, W., Editor, "PPP LCP Extensions", RFC 1570, Daydreamer,
1190 11. Differences from RFC 1717
1192 This section documents differences from RFC 1717. There are
1193 restrictions placed on implementations that were absent in RFC 1717;
1194 systems obeying these restrictions are fully interoperable with RFC
1195 1717 - compliant systems.
1197 11.1. Negotiating Multilink, per se
1199 RFC 1717 permitted either the use of the Short Sequence Number Header
1200 Format (SSNHF) or the Maximum Reconstructed Receive Unit (MRRU)
1201 options by themselves to indicate the intent to negotiate multilink.
1202 This specification forbids the use of the SSNHF option by itself; but
1203 does permit the specific of both options together. Any
1204 implementation which otherwise conforms to rfc1717 and also obeys
1205 this restriction will interoperate with any RFC 1717 implementation.
1207 11.2. Initial Sequence Number defined
1209 This specification requires that the first sequence number
1210 transmitted after the virtual link has reached to open state be 0.
1212 11.3. Default Value of the MRRU
1214 This specfication removes the default value for the MRRU, (since it
1215 must always be negotiated with some value), and specifies that an
1216 implementation must be support an MRRU with same value as the default
1219 11.4. Config-Nak of EID prohibited
1221 This specification forbids the config-Naking of an EID for any
1224 11.5. Uniformity of Sequence Space
1226 This specification requires that the same sequence format be employed
1227 on all links in a bundle.
1234 Sklower, et. al. Standards Track [Page 22]
1236 RFC 1990 PPP Multilink August 1996
1239 11.6. Commencing and Abating use of Multilink Headers
1241 This memo specifies how one should start the use of Multilink Headers
1242 when a link is added, and under what circumstances it is safe to
1243 discontinue their use.
1245 11.7. Manual Configuration and Bundle Assignment
1247 The document explicitly permits multiple bundles to be manually
1248 configured in the absence of both the Endpoint Descriminator and any
1249 form of authentication.
1290 Sklower, et. al. Standards Track [Page 23]
1292 RFC 1990 PPP Multilink August 1996
1295 13. Authors' Addresses
1298 Computer Science Department
1299 384 Soda Hall, Mail Stop 1776
1300 University of California
1301 Berkeley, CA 94720-1776
1303 Phone: (510) 642-9587
1304 EMail: sklower@CS.Berkeley.EDU
1308 Lloyd Internetworking
1310 Cameron Park, CA 95682
1312 Phone: (916) 676-1147
1313 EMail: brian@lloyd.com
1317 Lloyd Internetworking
1319 Cameron Park, CA 95682
1321 Phone: (916) 676-1147
1322 EMail: glenn@lloyd.com
1326 Newbridge Networks Corporation
1332 Phone: (613) 591-3600
1333 EMail: dcarr@Newbridge.COM
1341 Phone: (612) 490 7856
1342 EMail: 70761.1664@compuserve.com
1346 Sklower, et. al. Standards Track [Page 24]