diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc5578.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc5578.txt')
-rw-r--r-- | doc/rfc/rfc5578.txt | 1347 |
1 files changed, 1347 insertions, 0 deletions
diff --git a/doc/rfc/rfc5578.txt b/doc/rfc/rfc5578.txt new file mode 100644 index 0000000..eb7b873 --- /dev/null +++ b/doc/rfc/rfc5578.txt @@ -0,0 +1,1347 @@ + + + + + + +Independent Submission B. Berry, Ed. +Request for Comments: 5578 S. Ratliff +Obsoletes: 4938 E. Paradise +Category: Informational Cisco +ISSN: 2070-1721 T. Kaiser + Harris Corporation + M. Adams + L3 Communications + February 2010 + + + PPP over Ethernet (PPPoE) Extensions for Credit Flow and Link Metrics + +Abstract + + This document extends the Point-to-Point Protocol over Ethernet + (PPPoE) with an optional credit-based flow control mechanism and an + optional Link Quality Metric report. These optional extensions + improve the performance of PPPoE over media with variable bandwidth + and limited buffering, such as mobile point-to-point radio links. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for informational purposes. + + This is a contribution to the RFC Series, independently of any other + RFC stream. The RFC Editor has chosen to publish this document at + its discretion and makes no statement about its value for + implementation or deployment. Documents approved for publication by + the RFC Editor are not a candidate for any level of Internet + Standard; see Section 2 of RFC 5741. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + http://www.rfc-editor.org/info/rfc5578. + +IESG Note + + The PPP Extensions Working Group (PPPEXT) has reservations about the + desirability of the feature described in this document. In + particular, it solves a general problem at an inappropriate layer and + it may have unpredictable interactions with higher and lower level + protocols. The techniques described in this document are intended + for use with a particular deployment technique that uses a PPP + termination separated from a radio termination by an Ethernet, and + that has radio-side flow control for a slower PPP-only link to remote + + + + +Berry, et al. Informational [Page 1] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + nodes. Implementors are better advised to avoid split termination + with inter-media protocol translation, and use standard Internet + Protocol routing instead. + +Copyright Notice + + Copyright (c) 2010 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (http:trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. + +Table of Contents + + 1. Introduction ....................................................3 + 2. Terminology .....................................................4 + 3. Overview of Protocol Extensions .................................5 + 3.1. TLVs .......................................................5 + 3.1.1. Credits TLV .........................................5 + 3.1.2. Metrics TLV .........................................6 + 3.1.3. Sequence Number TLV .................................7 + 3.1.4. Credit Scale Factor TLV .............................8 + 3.2. Discovery Stage Extensions .................................8 + 3.2.1. PPPoE Active Discovery Request (PADR) ...............9 + 3.2.2. PPPoE Active Discovery Session-Confirmation + (PADS) .............................................11 + 3.2.3. PPPoE Active Discovery Session-Grant (PADG) ........13 + 3.2.4. PPPoE Active Discovery Session-Credit + Response (PADC) ....................................15 + 3.2.5. PPPoE Active Discovery Quality (PADQ) ..............16 + 3.3. PPP Session Stage Extensions ..............................18 + 4. Credit Flow Considerations .....................................19 + 5. PADG and PADC Retransmission ...................................20 + 6. Other Considerations ...........................................20 + 7. IANA Considerations ............................................21 + 8. Security Considerations ........................................21 + 9. References .....................................................21 + 9.1. Normative References ......................................21 + 9.2. Informative References ....................................21 + Appendix A. Examples of Session Credit Flows ......................22 + + + + + + + +Berry, et al. Informational [Page 2] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + +1. Introduction + + PPP over Ethernet (PPPoE) [2] is a protocol for establishing and + encapsulating sessions between Hosts (Clients) and traffic-access + aggregators (Servers) for PPP [1] transport over real or emulated + Ethernet. PPPoE works well when both session endpoints have similar + bandwidth, forwarding, and buffering capabilities that do not vary + over time. However, improvements can be made for applications with + variable bandwidth and limited buffering. This document addresses + these improvements with optional extensions to PPPoE that support + credit-based session flow control and session-based link metric + quality reports. + + These extensions are designed to support radio systems that exhibit + point-to-point waveforms. The diagram below is used to illustrate + the improvement that these extensions address. When the local Client + (Radio) detects the presence of a remote Radio neighbor, it initiates + a PPPoE session with its local Server (router). The Radio also + establishes a radio link connection with the remote Radio over the + point-to-point RF (radio frequency) link (which is beyond the scope + of this document). The remote Radio is also establishing a PPPoE + session with its local Server (router). The Radios associate the two + PPPoE sessions and the point-to-point radio link protocol (RLP), + creating a complete data path. Now a PPP session is established via + the PPP IP Control Protocol (IPCP) as described in RFC 1661. + Included in this IPCP exchange is the router IP address. With the + exchange of the IPCP IP addresses, each router inserts the remote IP + address into its local routing tables. Note that the radio IP + information is not inserted into the routing tables. + + |-----Local Neighbor-----| |-----Remote Neighbor----| + + +--------+ +-------+ +-------+ +--------+ + | Router |=======| Radio |{~~~~~~~~}| Radio |=======| Router | + | Server | | Client| | Client| | Server | + +--------+ +-------+ +-------+ +--------+ + + | | | | | | + |-PPPoE-| |----RLP---| |-PPPoE-| + | | + |-----------PPP IPCP (IP Address)---------| + | | + |-------------PPP Data Session-------------| + + Figure 1: PPPoE Network + + + + + + +Berry, et al. Informational [Page 3] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + The capabilities of the RF links between RLP neighbors will vary over + time due to mobility and environmental conditions as well as changes + in the RF waveforms and encoding. To reflect these dynamic changes, + the Radio may periodically generate Link Quality Metrics to the + router. The router uses the link metric to update route costs and + influence route selection. The influence upon the routing protocols + is beyond the scope of this document. + + A PPPoE Client implementation can be found at [3]. It is open source + (GNU GPLv2 -- General Public License). + +2. Terminology + + Access Concentrator + The RFC 2516 term used to describe the Server. This + document uses the terms Router or Server instead. + + BCN Backward Credit Notification. The BCN represents the number + of remaining credits at the local node that were granted by + peer node. The local node uses these credits to transmit + payload back to the peer node. BCN ranges from 0-65535. + + CDR The Current Datarate. + + FCN Forward Credit Notification. The FCN represents the credits + that the local node is granting to the peer node. The peer + node uses these granted credits to transmit payload back to + the local node. FCN ranges from 0-65535. + + Gbit/s gigabits (1,000,000,000) per second. + + Host The RFC 2516 term used to describe the Server. This + document uses the terms Radio or Client. + + kbit/s kilobits (1,000) per second. + + LCP PPP Link Control Protocol, RFC 1661. + + Mbit/s megabits (1,000,000) per second. + + MDR The Maximum Datarate. + + NCP PPP Network Control Protocol, RFC 1661. + + RLP Radio Link Protocol. + + TAG The RFC 2516 PPPoE synonym for TLV. This document uses TLV. + + + + +Berry, et al. Informational [Page 4] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + Tbit/s terabits (1,000,000,000,000) per second. + + TLV Type-Length-Value. + +3. Overview of Protocol Extensions + + The extensions consist of optional TLVs as well as enhanced and newly + defined Discovery packets. The enhancements are applied to the + Discovery Stage and the PPP Session Stage. + +3.1. TLVs + + The new TLVs are listed in the table below: + + TLV TLV + Value Description + ========================================= + 0x0106 Credits TLV + 0x0107 Metrics TLV + 0x0108 Sequence Number TLV + 0x0109 Credit Scale Factor TLV + +3.1.1. Credits TLV + + This TLV contains the Forward Credit Notification (FCN) and the + Backward Credit Notification (BCN). The Credits TLV is optional with + the PADR (PPPoE Active Discovery Request) and PADS (PPPoE Active + Discovery Session-Confirmation) and required in the PADG (PPPoE + Active Discovery Session Grant) and PADC (PPPoE Active Discovery + Session-Credit) Discovery packets (ETHER_TYPE=8863). + + The Credits TLV is optionally carried in the PPPoE data payload + packet of the PPP Stage (ETHER_TYPE=8864). + + The FCN represents the number of credits being granted by the local + node to the peer node. The BCN represents the number of credits + remaining at the local node that were granted by the peer node. + + The Credits TLV is shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Credits TLV = 0x0106 | TLV Length = 0x04 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | FCN | BCN | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + + +Berry, et al. Informational [Page 5] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + These fields are transmitted in network byte order. The same byte + order is used throughout the document in other structures as well. + +3.1.2. Metrics TLV + + The Metrics TLV is used to report the link-quality parameters. The + Metrics TLV is required with the PADQ (PPPoE Discovery Quality) + Discovery packet. + + The Metrics TLV contains the following fields: + + Resources - a percentage, 0-100, representing the amount of + remaining or available resources, such as battery power. If + resources cannot be calculated, a value of 100 should be reported. + + Relative Link Quality (RLQ) - a non-dimensional number, 0-100, + representing the relative link quality. A value of 100 represents + a link of the highest quality. If the RLQ cannot be calculated, a + value of 100 should be reported. + + Receive only - a bit that indicates whether the link is bi- + directional or receive-only. A value of "1" indicates that the + link is receive-only. + + Reserved - reserved fields are zeroed unless otherwise specified. + + CD - two bits that designate the units of the Current Datarate. + + CD Scale: 00 == kbit/s (default) + 01 == Mbit/s + 10 == Gbit/s + 11 == Tbit/s + + MD - two bits that designate the units of the Maximum Datarate. + + MD Scale: 00 == kbit/s (default) + 01 == Mbit/s + 10 == Gbit/s + 11 == Tbit/s + + Current Datarate - the Current Datarate, in un-scaled units per + second, achieved on the RLP link. If the Radio makes no + distinction between Maximum Datarate and Current Datarate, Current + Datarate should equal the Maximum Datarate. When metrics are + reported, the Current Datarate must be reported. The Current + Datarate must be less than or equal to the Maximum Datarate. + + + + + +Berry, et al. Informational [Page 6] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + Latency - the transmission delay that a packet encounters as it is + transmitted over the link. This is reported in absolute delay, + milliseconds. If latency cannot be calculated, a value of 0 + should be reported. The calculation of latency is Radio + dependent. For example, the latency may be a running average + calculated from the internal queuing. + + Maximum Datarate - the maximum theoretical data rate, in un-scaled + units per second, that the RLP link is capable of providing. When + metrics are reported, the Maximum Datarate must be reported. + + The Metrics TLV is shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Metrics TLV = 0x0107 | TLV Length = 0x0A | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Reserved | MD| CD|R| RLQ | Resources | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Latency (MS) | Current Datarate | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Maximum Datarate | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +3.1.3. Sequence Number TLV + + This TLV is used to carry a unique 16-bit sequence number in order to + identify a specific request and the associated response. The + sequence number should be initialized to zero and incremented by one + for each new request. For retransmitted packets, the same sequence + number that was used in the previous packet transmission is repeated. + The PADG and PADC packets require the Sequence Number Tag. + + The Sequence Number TLV is shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence Number TLV = 0x0108 | TLV Length = 0x02 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence Number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + + + + + + +Berry, et al. Informational [Page 7] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + +3.1.4. Credit Scale Factor TLV + + This TLV contains the scale factor value that is to be applied to the + session credit calculations. The Credit Scale Factor TLV is optional + with the PADR and PADS packets. Once the session is established with + specified scale factors, the scale factors are set for the entire + session. The scale factor value represents the units that the local + node grants to the remote node. The remote node is responsible for + maintaining the credit accounting relative to the data flow back to + the local node. + + The Credit Scale Factor TLV can be used to change from the default + 64-byte credit unit during the PADR-PADS exchange. The credit scale + factor value can range from 1 byte to 65535 bytes. A zero value is + ignored and the default 64-byte unit remains set. The scale factor + is set per each payload flow: peer-to-local and local-to-peer. + + The Credit Scale Factor TLV is shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Credit Scale Factor = 0x0109 | TLV Length = 0x02 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Scale Factor Value | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +3.2. Discovery Stage Extensions + + The specifications of the PPPoE Active Discovery Request (PADR) and + the PPPoE Active Discovery Session-confirmation (PADS) packets are + extended to include the optional Credits TLV and the Credit Scale + Factor TLV. The PPPoE Active Discovery Session-Grant (PADG) packet, + the PPPoE Active Discovery Session-Credit Response (PADC), and the + Quality packets are newly defined Discovery Stage packets. + + + + + + + + + + + + + + + + +Berry, et al. Informational [Page 8] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + Discovery + Packet Status + ======================================================= + PADR Enhanced Optionally includes the Credits + TLV and the Credit Scale Factor + TLV + + PADS Enhanced Optionally includes the Credits + TLV and the Credit Scale Factor + TLV + + PADG New Includes the Credits TLV and the + Sequence Number TLV + + PADC New Includes the Credits TLV and the + Sequence Number TLV + + PADQ New Includes the Metrics TLV + +3.2.1. PPPoE Active Discovery Request (PADR) + + The PADR packet is extended to optionally contain a single Credits + TLV, indicating that the Client requests credit flow control for this + session. The Credits TLV contains the Forward Credit Notification + (FCN) and the Backward Credit Notification (BCN) to be applied to the + PPP Session Stage. The FCN provides the initial credits granted to + the Server by the Client. The BCN value is set to 0, as the Client + has not yet been granted credits from the Server. + + The PADR packet is enhanced to optionally contain a single Credit + Scale Factor TLV. The Credit Scale Factor TLV defines the credit + scale factor value. If the Credit Scale Factor TLV is omitted, the + default 64-byte value is used for the session. When the Client + includes the optional Credit Scale Factor TLV in the PADR, this + credit scale factor value is applied to all credit grants associated + with the Client credits that are granted to the Server. + + The Server must echo the Credit Scale Factor TLV in the PADS response + to confirm the credit scaling session and to designate the Server + credit scaling factor. This PADS Credit Scaling Factor TLV + represents the scale factor value that is applied to all credits + granted from the Server to the Client. + + Once the session is established during the PADR-PADS exchange, the + credit scale factor value cannot be changed. + + + + + + +Berry, et al. Informational [Page 9] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + A Discovery PADR packet with the optional Credits TLV is shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Access_Concentrator_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Access_Concentrator_mac_addr(c)| Host_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Host_mac_addr (cont) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x19 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SESSION_ID = 0x1234 | LENGTH = 0x0C | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | TLV Type = 0x0101 | Metrics TLV Length = 0x00 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Credits TLV = 0x0106 | TLV Length = 0x04 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | FCN | BCN = 0 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The credit units are expressed in the default 64-byte units. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Berry, et al. Informational [Page 10] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + A Discovery PADR packet with the optional Credits TLV and the + optional Credit Scale Factor TLV is shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Access_Concentrator_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Access_Concentrator_mac_addr(c)| Host_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Host_mac_addr (cont) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x19 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SESSION_ID = 0x1234 | LENGTH = 0x12 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | TLV Type = 0x0101 | TLV Length = 0x00 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Credits TLV = 0x0106 | TLV Length = 0x04 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | FCN | BCN = 0 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Credit Scale Factor = 0x0109 | TLV Length = 0x02 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | scale factor value | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The Credits TLV FCN value is expressed in units of the session's + credit scale factor value. + +3.2.2. PPPoE Active Discovery Session-Confirmation (PADS) + + The Server PADS is extended to optionally contain a single Credits + TLV, indicating the Forward Credit Notification (FCN) and the + Backward Credit Notification (BCN) of the PPP Session Stage. + + If the Client PADR contained a Credits TLV, then the Server PADS must + indicate support for credit flow control by including a Credits TLV. + The PADS Credits TLV FCN represents the number of credits initially + granted to the Client. The Credits TLV BCN is an echo of the number + of credits that the Client had granted to the Server in the + originating PADR packet. + + Exchange of the Credits TLV in the PADR and PADS indicates that + credit flow control is supported by both the Server and the Client + for the designated PPP Session Stage. This is binding and must be + + + + + +Berry, et al. Informational [Page 11] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + followed for the entire duration of the PPP Session Stage. A + session's credit binding must be established prior to any other + credit indications being exchanged. + + The Server PADS should only include the Credits TLV in response to a + Client PADR that included the Credits TLV. If the Server does not + support credit flow, it should not include the Credits TLV in its + PADS response. The Client must terminate a credit-based session that + cannot be supported by the Server. A Credits TLV transmitted outside + an established credit-based session must be ignored. + + The Server PADS is enhanced to optionally contain a single Credit + Scale Factor TLV. The Credit Scale Factor TLV defines the credit + scale unit value. The Credit Scale Factor TLV must be included if it + was included in the Client PADR. If the Credits TLV was not included + in the originating PADR, it must be omitted, indicating that the + 64-byte default is used for the directional flow. This credit scale + factor is applied to Server grants to the Client. + + A Discovery PADS packet with the optional Credits TLV is shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Access_Concentrator_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Access_Concentrator_mac_addr(c)| Host_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Host_mac_addr (cont) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x65 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SESSION_ID = 0x1234 | LENGTH = 0x0C | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | TLV Type = 0x0101 | TLV Length = 0x00 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Credits TLV = 0x0106 | TLV Length = 0x04 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | FCN | BCN | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The BCN is expressed in the default 64-byte units. + + + + + + + + + +Berry, et al. Informational [Page 12] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + A Discovery PADS packet with the optional Credits TLV and the + optional Credit Scale Factor TLV is shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Access_Concentrator_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Access_Concentrator_mac_addr(c)| Host_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Host_mac_addr (cont) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x65 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SESSION_ID = 0x1234 | LENGTH = 0x12 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | TLV Type = 0x0101 | TLV Length = 0x00 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Credits TLV = 0x0106 | TLV Length = 0x04 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | FCN | BCN | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Credit Scale Factor = 0x0109 | TLV Length = 0x02 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | scale factor value | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The Credits TLV BCN value is expressed in units of the session scale + factor value received in the PADR. + +3.2.3. PPPoE Active Discovery Session-Grant (PADG) + + The PPPoE Active Discovery Session-Grant (PADG) is a new packet + defined in this specification. The local node (Server or Client) may + send a PADG at any time after the PADR/PADS exchange to grant + incremental flow control credits to a peer. The CODE field is set to + 0x0A and the SESSION_ID must be set to the unique value generated for + this PPPoE Session. + + Each flow control credit corresponds to the amount of PPP payload + bytes that can be sent or received. For example, if the default + credit scale factor of 64 bytes is used, and 128 bytes of PPP payload + data are sent, then 2 credits would be consumed. When calculating + credits to consume, all credit calculations must be rounded up. If, + in the previous example, 130 bytes of PPP payload data were sent, 3 + credits would have been consumed. + + + + + +Berry, et al. Informational [Page 13] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + When the peer receives a PADG packet, it adds the incremental credits + to its working credit count and responds with a PPPoE Active + Discovery Session-Credit Response (PADC) packet, indicating the + accumulation of the credits. The FCN and BCN values must be scaled + by the value established during session establishment in the Credit + Scale Factor TLV or by the default 64-byte value prior to processing. + + The PADG packet must contain a single Credits TLV, indicating the + Forward Credit Notification (FCN) and the Backward Credit + Notification (BCN) of the PPPoE Session. + + The Credits TLV FCN indicates the number of incremental credits being + granted to the peer by the node. A value between 1 and 0xffff + represents an incremental credit grant. The peer must multiply the + credit units by the credit scale factor and add these credits to its + accumulated transmit credit count. A value of 0x0000 represents a + NULL grant, meaning that there are no additional credits being + granted. + + The Credits TLV BCN indicates the remaining absolute credits that + have been granted by the peer to the local node. When the local node + exhausts the BCN, it must stop transmitting payload packets. + + Once a credit has been granted, it must be honored. The largest + number of incremental credits at any time is 0xffff. + + The PADG packet must contain a single Sequence Number TLV. This TLV + is used to carry a unique 16-bit sequence number to uniquely identify + each request. The sequence number should be initialized at zero and + incremented by one for each new PADG. For retransmitted PADGs, the + same sequence number that was used in the previous packet + transmission is repeated. + + + + + + + + + + + + + + + + + + + +Berry, et al. Informational [Page 14] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + A Discovery PADG packet with the Sequence Number and Credits TLVs is + shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Destination_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Destination_mac_addr(c) | Source_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source mac_addr (cont) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x0A | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SESSION_ID = 0x1234 | LENGTH = 0x0E | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence Number TLV = 0x0108 | TLV Length = 0x02 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence Number | Credits TLV = 0x0106 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | TLV Length = 0x04 | FCN | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | BCN | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +3.2.4. PPPoE Active Discovery Session-Credit Response (PADC) + + The PPPoE Active Discovery Session-Credit Response (PADC) is a new + packet defined in this specification. A Server or Client must send a + PADC in response to a PADG. The CODE field is set to 0x0B, and the + SESSION_ID must be set to the unique value generated for this PPPoE + session. + + The PADC packet must contain a single Credits TLV, indicating the + Forward Credit Notification (FCN) and the Backward Credit + Notification (BCN) of the PPPoE session. + + The Credits TLV FCN represents the absolute credits remaining that + have been granted to the peer by the node. The Credits TLV BCN + represents the remaining absolute credits that have been granted to + the local node from the peer. The FCN and BCN values must be scaled + by the value established during session establishment in the Credit + Scale Factor TLV or by the default 64-byte value prior to processing. + + The PADC packet must contain a single Sequence Number TLV. The + sequence number must be the sequence number associated with the PADG. + + + + + +Berry, et al. Informational [Page 15] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + A Discovery PADC packet with the Sequence Number and Credits TLV is + shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Destination_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Destination_mac_addr(c) | Source_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source mac_addr (cont) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x0B | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SESSION_ID = 0x1234 | LENGTH = 0x0E | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence Number TLV = 0x0108 | TLV Length = 0x02 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence Number | Credits TLV = 0x0106 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | TLV Length = 0x04 | FCN | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | BCN | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The FCN and BCN values are expressed in the respective units defined + by the Credit Scale Factor TLV or the 64-byte default. + +3.2.5. PPPoE Active Discovery Quality (PADQ) + + The PPPoE Active Discovery Quality (PADQ) is a new packet defined in + this specification. An Server or Client may send an optional PADQ at + any time to query or report link-quality metrics. + + When transmitting PPP [1] streams over wireless links through radio + modems, the quality of the RF link directly affects the throughput. + The PPPoE Active Discovery Quality (PADQ) packet can be used by the + radio modem to report RF link metrics. The CODE field is set to + 0x0C, and the SESSION_ID must be set to the unique value generated + for this PPPoE session. + + The PPPoE Active Discovery Quality (PADQ) packet can be used to query + link metrics by setting the PADQ Metrics TLV Length to zero. + + The PADQ must carry a single Metrics TLV. When processing the data + rates, the values must be converted using the indicated data rate + units. This document enhances the Metrics TLV as described below. + + + + +Berry, et al. Informational [Page 16] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + A Discovery PADQ packet with the required Metrics TLV is shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Access_Concentrator_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Access_Concentrator_mac_addr(c)| Host_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Host_mac_addr (cont) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x0C | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SESSION_ID = 0x1234 | LENGTH = 0x12 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | TLV Type = 0x0101 | TLV Length = 0x00 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Metrics TLV = 0x0107 | TLV Length = 0x0A | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Reserved | MD| CD|R| RLQ | Resources | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Latency (MS) | Current Datarate | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Maximum Datarate | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The Maximum Datarate and the Current Datarate are expressed in units + determined by the MD and CD bits, respectively. + + + + + + + + + + + + + + + + + + + + + + + +Berry, et al. Informational [Page 17] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + A Discovery PADQ packet with a Metrics TLV Length=0 to query is shown + below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Access_Concentrator_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Access_Concentrator_mac_addr(c)| Host_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Host_mac_addr (cont) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x0C | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SESSION_ID = 0x1234 | LENGTH = 0x08 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | TLV Type = 0x0101 | TLV Length = 0x00 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Metrics TLV = 0x0107 | TLV Length = 0x00 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +3.3. PPP Session Stage Extensions + + The PPP Session Stage Extensions define the optional use of Credits + TLV. Use of the Credits TLV in the PPP Session Stage is referred to + as an in-band credit grant. + + The first field following the PPP Session Stage LENGTH must be + checked. If the value is equal to the PPP Protocol identifier + (0xc021), then normal packet (payload) processing occurs. When the + field following the PPP Session Stage LENGTH is not the PPP Protocol + identifier (0xc021), a TLV is assumed. In this case, the TLV length + is subtracted from the overall payload length. + + + + + + + + + + + + + + + + + + +Berry, et al. Informational [Page 18] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + A PPP LCP packet with optional Credits TLV is shown below: + + 0 1 2 3 + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Access_Concentrator_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Access_Concentrator_mac_addr(c)| Host_mac_addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Host_mac_addr (cont) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ETHER_TYPE = 0x8864 | v = 1 | t = 1 | CODE = 0x00 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SESSION_ID = 0x1234 | LENGTH = (payload) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Credits TLV = 0x0106 | TLV Length = 0x04 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | FCN | BCN | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | PPP PROTOCOL = 0xc021 | PPP payload ~ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +4. Credit Flow Considerations + + For a given session, credit grants exchanged in the Discovery Stage, + PADG-PADC, are referred to as out-of-band. Credit grants exchanged + in the PPP Session Stage are referred to as in-band. Credit + accounting is only applied to the packets transmitted in the PPP + Session Stage. + + Out-of-band credit management is handled by periodic exchange of the + PPPoE Active Discovery Session-Grant (PADG) and PPPoE Active + Discovery Credit Response (PADC) packets. + + In-band credit management allows credits to be incrementally granted + with each PPP Session Stage packet. These in-band incremental credit + grants are not explicitly acknowledged. However, they are reflected + in the in-band credit flow from the peer node. This offers the + greatest credit-granting efficiency when traffic rates are high. + + Once agreed upon during the Discovery Stage, credit grants are + required to transmit packets in the PPP Session Stage. A node must + grant credits to its peer before the peer can transmit packets to the + granting node. + + Credits are granted incrementally in the forward direction. Locally, + a node manages the credits that it has granted to a peer, as well as + the credits that a peer has granted to it. + + + +Berry, et al. Informational [Page 19] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + Grants received from a peer are added to a local running credit + counter. The accumulated credits are decremented with each packet + the node transmits to the peer. When the running counter reaches + zero, the node must stop transmitting packets to the peer. + + To manage the credits that a node has granted, the node maintains a + running counter. With each PPP Session Stage packet received from + the peer, the running counter is decremented. When the running + counter reaches zero, no additional packets are expected. The node + incrementally grants more credits to the peer to maintain packet + flow. Packets received when granted credits have been exhausted are + discarded. + +5. PADG and PADC Retransmission + + When a node does not receive a PADC packet in response to a PADG + within a specified amount of time, it should transmit a new PADG + packet with zero credits, using the same sequence number and doubling + the waiting period. A PADC response with the associated sequence + number will indicate whether or not the previously granted credits + were accumulated. If they were not, a PADG with credits and an + incremented sequence number should be transmitted. This process + should be repeated until granted credits are properly acknowledged or + as many times as desired. + + When a node does not receive a PADQ metric packet in response to a + query within a specified amount of time, it should resend the PADQ + query packet and double the waiting period. This can be repeated as + many times as desired. + +6. Other Considerations + + A node may autonomously generate PADQ metric packets. The rate of + autonomously generated PADQ metric packets may need to be throttled + so as not to overrun the peer. + + The sending and receiving of PPPoE Discovery packets are independent + of credit counts. For example, a node must always be able to receive + a PADG and send a PADC. + + During normal operation, nodes may disagree about the number of + credits. Operational credit mismatches would occur due to packets in + transit on the wire. Much larger credit mismatches can occur if + there are transmission errors. To correct these larger errors, the + BCN fields of the PADG and PADC packets and in-band credit grants + from a peer can be used by the receiving node to reset the credit + values of its peer. + + + + +Berry, et al. Informational [Page 20] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + +7. IANA Considerations + + IANA has assigned the following PPPoE TLV Values for which this RFC + serves as the reference: + + TLV Value TLV Name Description Reference + ----------- ------------------- ----------------- --------- + 262 0x0106 Credits See the reference [RFC5578] + 263 0x0107 Metrics See the reference [RFC5578] + 264 0x0108 Sequence Number See the reference [RFC5578] + 265 0x0109 Credit Scale Factor See the reference [RFC5578] + + IANA has assigned the following PPPoE Code fields for which this RFC + serves as the reference: + + Code PPPoE Packet Name Description Reference + -------- ---------------------- ----------------- --------- + 10 0x0a PADG, Session-Grant See the reference [RFC5578] + 11 0x0b PADC, Session-Credit See the reference [RFC5578] + Response + 12 0x0c PADQ, Quality See the reference [RFC5578] + +8. Security Considerations + + This memo defines a mechanism for adding flow control to the existing + PPP over Ethernet (PPPoE) sessions. These extensions are subsequent + to the existing PPPoE security mechanisms as described in RFC 2516 + [2]. It is required that the Service TLV and Session ID always be + validated prior to processing credits. + +9. References + +9.1. Normative References + + [1] Simpson, W., Ed., "The Point-to-Point Protocol (PPP)", STD 51, + RFC 1661, July 1994. + + [2] Mamakos, L., Lidl, K., Evarts, J., Carrel, D., Simone, D., and R. + Wheeler, "A Method for Transmitting PPP Over Ethernet (PPPoE)", + RFC 2516, February 1999. + +9.2. Informative References + + [3] An open source (GPLv2) PPPoE Client implementation of RFC 5578, + PPP Over Ethernet (PPPoE) Extensions for Credit Flow and Link + Metrics, http://rfc4938.sourceforge.net/. + + + + + +Berry, et al. Informational [Page 21] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + +Appendix A. Examples of Session Credit Flows + + Session Credit Flow with the default 64-byte credit unit. + + Server Client + ==================================================================== + <------------PADI-------------- Initiate + ------------PADO--------------> Offer + + <------------PADR-------------- Credits TLV: + FCN represents the initial + Client credit grant to the + Server in 64-byte units. + BCN is set to 0. + + ------------PADS--------------> Credits TLV: + FCN represents the initial + Server credit grant to the + Client in 64-byte units. + BCN represents an echo of + initial Client credits. + + <==============================> Data w/ optional in-band + Credits TLV + + <------------PADG-------------- Credits TLV: (out-of-band) + FCN represents an incremental + Client credit grant to the + Server, in 64-byte units. + BCN represents the remaining + Server credits that were granted + to the Client, in 64-byte units. + + ------------PADC--------------> Credits TLV: (out-of-band) + FCN represents an incremental + Server credit grant to the + Client, in 64-byte units. + BCN represents the remaining + Client credits that were granted + to the Server, in 64-byte units. + + <==============================> Data w/ optional in-band Credits + TLV + + <------------PADT--------------> Terminate + + Session Credit Flow with specific credit scale factor units for the + Server and the Client. + + + +Berry, et al. Informational [Page 22] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + + Server Client + ==================================================================== + <------------PADI-------------- Initiate + ------------PADO--------------> Offer + + <------------PADR-------------- Credits TLV: + FCN represents the initial + Client credit grant to the + Server, in Credit Scale Factor + TLV units. + BCN is set to 0. + + ------------PADS--------------> Credits TLV: + FCN represents the initial + Server credit grant to the + Client, in Credit Scale Factor + TLV units. + BCN represents an echo of the + initial Client credits, in + Credit Scale Factor TLV units. + + <==============================> Data w/ optional in-band Credits + TLV + + <------------PADG-------------- Credits TLV: (out-of-band) + FCN represents an incremental + Client credit grant to the Server, + in Credit Scale Factor TLV units. + BCN represents the remaining + Server credits that were granted + to the Client, in Credit Scale + Factor TLV units. + + ------------PADC--------------> Credits TLV: (out-of-band) + FCN represents an incremental + Server credit grant to the Client, + in Credit Scale Factor TLV units. + BCN represents the remaining + Client credits that were granted + to the Server, in Credit Scale + Factor TLV units. + + <==============================> Data w/ optional inband Credits + TLV + + <------------PADT--------------> Terminate + + + + + +Berry, et al. Informational [Page 23] + +RFC 5578 PPPoE with Credit Flow and Metrics February 2010 + + +Authors' Addresses + + Bo Berry, Editor + Cisco + 170 West Tasman Drive + San Jose, CA 95134 + EMail: bberry@cisco.com + + Stan Ratliff + Cisco + 170 West Tasman Drive + San Jose, CA 95134 + EMail: sratliff@cisco.com + + Ed Paradise + Cisco + 170 West Tasman Drive + San Jose, CA 95134 + EMail: pdice@cisco.com + + Tim Kaiser + Harris Corporation + Government Communications System Division + Mail Stop 25-11F + P.O. Box 37 + Melbourne, FL 32902-0037 + EMail: timothy.kaiser@harris.com + + Michael D Adams + 640 N 2200 W MS F1J12 + Salt Lake City, Utah 84116 + EMail: Michael.D.Adams@L-3com.com + + + + + + + + + + + + + + + + + + + +Berry, et al. Informational [Page 24] + |