RFC 1963
PPP Serial Data Transport Protocol (SDTP)
Network Working Group Request for Comments 1963 โจ PPP Serial Data Transport Protocol (SDTP) ๐
Okay bestie, let's get into this one! ๐ RFC 1963 is an Informational doc (so it's not a standard, just a "hey, here's how it works" moment ๐ ), written by K. Schneider and S. Venters from ADTRAN, Inc., and it dropped in August 1996. It doesn't obsolete or update anything, so no drama there ๐ธ. Full title: PPP Serial Data Transport Protocol (SDTP) ๐ฆ
This is part 1 of 4, so grab a snack, we're just getting started! ๐
Status of This Memo ๐ง
Quick legal-ish vibe check: this memo is here to provide information for the Internet community. It is not an Internet standard of any kind ๐. And distribution is unlimited, so share it with your whole group chat ๐
Abstract ๐
So, PPP ([1]) is the classic way to shove multi-protocol datagrams over point-to-point links. It has an extensible Link Control Protocol and a whole family of Network Control Protocols for setting up different network-layer protocols ๐ฅ
This doc describes a brand new Network-level protocol (from PPP's point of view), the PPP Serial Data Transport Protocol. It gives you encapsulation plus a control protocol for moving serial data streams over a PPP link โจ The whole point is to use PPP's features to get a standard way of doing synchronous data compression ๐ And the encapsulation is built on a header structure borrowed from ITU-T Recommendation V.120 [2] ๐ซถ
Table of Contents ๐
1. Introduction .......................................... 2
2. SDTP Packets .......................................... 3
2.1 Padding ......................................... 4
2.2 Packet Formats .................................. 4
3. Serial Data Control Protocol .......................... 11
4. SDCP Configuration Option Format ...................... 12
4.1 Packet-Format ................................... 13
4.2 Header-Type ..................................... 13
4.3 Length-Field-Present ............................ 14
4.4 Multi-Port ...................................... 14
4.5 Transport-Mode .................................. 15
4.6 Maximum-Frame-Size .............................. 16
4.7 Allow-Odd-Frames ................................ 16
4.8 FCS-Type ........................................ 17
4.9 Flow-Expiration-Time ............................ 18
SECURITY CONSIDERATIONS ...................................... 19
REFERENCES ................................................... 19
CHAIR'S ADDRESS .............................................. 20
AUTHORS' ADDRESSES ........................................... 20
1. Introduction ๐ฆ
This doc is a product of the TR30.1 ad hoc committee on compression of synchronous data ๐ It's one piece of a bigger proposal to use PPP for compressing synchronous data in DSU/CSUs.
Besides multi-protocol datagram support, PPP ([1]) has a really effective and robust negotiation mechanism for point-to-point links ๐ Pair it with the PPP Compression Control Protocol [3] and one of the PPP Compression Protocols [4-10], and you get an interoperable way to do data compression on a point-to-point link. Iconic ๐ฅ
This document gives you a PPP encapsulation for serial data. It specifies a transport protocol, PPP-SDTP, and an associated control protocol, PPP-SDCP. Add those to the PPP protocols we just mentioned and PPP can compress serial data on a point-to-point link โจ
This first edition of PPP-SDTP/SDCP covers HDLC-like synchronous serial data and asynchronous serial data ๐ธ It does that with a terminal adaption header based on V.120 [2]. More synchronous protocols may come later, as the marketplace demands ๐
The V.120 terminal adaption header lets transported data frames get split across several packets. It also carries DTE port idle and error information, and optionally DTE control state information ๐ง
Beyond the V.120 Header, fields can be added through negotiation for features V.120 doesn't have. The extras are a Length Field (used to tell packets apart inside compound frames) and a Port field (for multi-port multiplexing) ๐ The protocol can also use the reserved bits in the V.120 header to carry non-octet-aligned frames and provide a flow control mechanism ๐ซถ
So PPP-SDTP lets you pick one frame format out of several using PPP-SDCP negotiation ๐ The terminal adaption header can be fixed length or variable length, depending on whether you want simplicity or flexibility ๐
The default frame format puts the terminal adaption header at the end of the packet. This gives optimal transmitter timelines when user frames are segmented and compression is also in use ๐
2. SDTP Packets ๐
Before any SDTP packets may be communicated, PPP must reach the Network-Layer Protocol phase, and the SDTP Control Protocol must reach the Opened state โจ No skipping ahead, bestie ๐
By default, exactly one SDTP packet is encapsulated in the PPP Information field, where the PPP Protocol field indicates type hex 0049 (PPP-SDTP) ๐ฆ If the Length-Field-Present Configuration Option and the LCP Compound-Frames Configuration Option are successfully negotiated, multiple SDTP packets may be placed in the PPP Information field. They're told apart by the presence of Length fields in each packet ๐ฅ
The maximum length of the SDTP datagram sent over a PPP link is limited only by the negotiated Maximum-Frame-Size and the maximum length of the Information field of a PPP encapsulated packet ๐ธ Heads up: if compression is used on the PPP link, the maximum length of the SDTP datagram may be larger or smaller than the maximum length of the Information field of a PPP encapsulated packet, depending on the particular compression algorithm and protocol used ๐
V.120 ([2]) defines an adaption header used with its asynchronous and synchronous modes of operation. SDTP packets include this header as a Header field to provide the protocol adaption function ๐ง Through negotiation, extra fields can be added to give sequencing and multiplexing capability within SDTP. SDTP also has an option to use the reserved bits of the header for flow control and for transporting non-octet-aligned data frames ๐
The default SDTP packet format is designed for efficient use of the protocol's segmentation feature when combined with a PPP Compression Protocol [4-10] โจ It's a little different from other PPP NCPs, because data is read from both ends of the packet ๐คฏ The Header field sits at the end of the SDTP packet, with its octets in reversed order. This somewhat unique format was picked for optimal transmitter timelines when compression is used and transported data frames are split into multiple SDTP packets ๐
Here's the logic, babe: the Header field says whether the data is split across multiple packets or not. So if it's at the end, the transmitter can decide after seeing the compressed size of the packet, and then just run the Header field through the compressor once that's decided ๐
When the Header field goes before the data, as in the optional packet format, the transmitter has to decide whether to split a frame over multiple packets without knowing how compressible the frame is ๐ญ So the optional format is meant for frames that aren't split into multiple SDTP packets, or for setups where SDTP isn't coupled with compression. It's believed this format may be useful for some hardware implementations ๐
2.1. Padding ๐ธ
If padding is used, SDTP packets require the use of the Length Field, or the previous negotiation of the LCP Self-Describing-Padding Configuration Option [11] ๐ซถ
2.2. Packet Formats ๐ฆ
The default SDTP packet format is shown below. The fields are transmitted from left to right ๐
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP Protocol ID | Transported Data ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Header - H |
+-+-+-+-+-+-+-+-+
The two complete frame formats are shown below: Header-Last and Header-First ๐ Header-Last is the default packet format. The additional fields support Control State Information (CS), multiple packets, and multi-port multiplexing โจ Again, the fields are transmitted from left to right, and the field descriptions follow the packet formats ๐ง
Header-Last ๐
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP Protocol ID | (Length) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Port) | Transported Data / (Odd-Pad) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Header - (CS) : H |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header-First ๐
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP Protocol ID | (Length) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Port) | Header - H : (CS) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transported Data / (Odd-Pad) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
PPP Protocol ID ๐
The PPP Protocol ID field is described in the Point-to-Point Protocol Encapsulation [1] ๐ฆ
When SDTP is successfully negotiated by SDCP, the value is 0049 hex. This value may be compressed to one octet when Protocol-Field-Compression is negotiated, or if one of the PPP compression protocols [4-10] is used ๐ซถ
Length ๐
The optional Length field is present in every SDTP packet once the Length-Field-Present Configuration Option is successfully negotiated ๐ธ
The value of the Length field is the combined lengths of the Length, Port (if present), Header, Transmitted Data, and Odd-Pad (if present) fields, in octets ๐ง
The Length field defaults to one octet. Valid lengths are from 2 to 255 octets, since each packet must include at least a one octet Header field ๐
If you want, the Length field can be negotiated to be two octets instead. In that case, valid lengths are from 2 to 65535 octets, and the field is transmitted most significant octet first โจ
Either way, a length of 0 means the combined length is the same as the length of the remainder of the PPP Information Field ๐
Port ๐ฆ
(Continued in Part 2!) ๐
The Port field is there in every SDTP packet once the Multi-Port Option has been successfully negotiated. ๐ก
It's one octet long, so valid Port numbers run from 0 to 254. Port 255 is reserved for control purposes, which you'll see more about in the flow control section. ๐
Header
Okay, the Header field is the terminal adaption header from ITU-T Recommendation V.120, and it's giving structure. โจ Depending on the settings, it's either one or two octets. The first is the terminal adaption header octet (H), and the second is an optional header extension for control state information (CS).
SDTP only supports the protocol sensitive operation of V.120. Bit transparent operation is a no from us ๐ โโ๏ธ. The bit descriptions below come from V.120 itself. SDTP also adds something extra: it lets some of V.120's reserved bits do flow control and help with frames that aren't octet aligned. ๐
The length of the Header is decided by the E bit in the first octet, so it's one or two octets depending on that. By default, the E bit must be set in the H octet and the CS octet isn't there at all. A Configuration Option can be negotiated to allow the CS octet, or even to make it required in every packet. ๐ง
H (V.120 Terminal Adaption Header)
Here's how the first Header octet is laid out:
0 1 2 3 4 5 6 7
+-----+-----+-----+-----+-----+-----+-----+-----+
| E | BR | Res | FC | C2 | C1 | B | F |
+-----+-----+-----+-----+-----+-----+-----+-----+
E - Extension Bit
The E bit is the extension bit. If it's 0, that means the Control-2 field is present. ๐ธ
BR - Break / HDLC Idle Bit
In asynchronous mode, BR tells you the DTE has invoked the BREAK function. A value of 1 means BREAK. ๐
In synchronous HDLC mode, BR shows that the DTE port is receiving the HDLC idle condition, and 1 means that idle condition is happening.
Res - Reserved
This bit is reserved and MUST be set to 0. (It's reserved in V.120 too, so nothing new there.) ๐
FC - Flow Control
This bit is for flow control of SDTP traffic on the network, for applications that need it. It's especially useful when data compression is in play, since the DTE port might be using an X.21 interface, which doesn't have independent control of DTE transmit and receive clocks. It could also just be that the underlying link layer, like PPP in HDLC-like Framing, doesn't have a network flow control mechanism, so something else has to step in. ๐ฆ
A value of 0 means the receiver is ready for data. That's Flow-On. A value of 1 means the receiver doesn't want any data right now, so the sender should stop, and that's Flow-Off. Flow control works per port. Flow control messages sent on Port 255 affect all ports. ๐
Here's the safety net: a Flow-Off expires after T1 seconds, so a missed Flow-On can't leave everyone stuck in a hangup. If a unit wants its peer to stay in the Flow-Off state for longer than T1 seconds, it MUST send another Flow-Off message every T1 seconds. A unit that receives a Flow-Off can start transmitting again T1 seconds after the last Flow-Off it received. T1 is set by the Flow-Expiration-Time Configuration Option, and the default is 10 seconds. Every port uses the same T1 value, so there's no separate one per port. โฑ๏ธ
(This bit is reserved in V.120, which says it has to be zero. The flow control definition above stays compatible with that whenever flow control isn't being used.)
C1, C2 - Error Control Bits
C1 and C2 handle DTE port error detection and transmission. Here's what they mean:
+----+----+--------------+--------------+
| | Meaning |
+----+----+--------------+--------------+
| C1 | C2 | Synchronous | Asynchronous |
+----+----+--------------+--------------+
| 0 | 0 | No Error | No Error |
| | | Detected | Detected |
+----+----+--------------+--------------+
| 0 | 1 | FCS Error | Stop-bit |
| | | (DTE) | Error |
+----+----+--------------+--------------+
| 1 | 0 | Abort | Parity Error |
| | | | on the Last |
| | | | Character in |
| | | | Frame |
+----+----+--------------+--------------+
| 1 | 1 | DTE Overrun* | Stop-bit and |
| | | | Parity Error |
+----+----+--------------+--------------+
The right responses to these bits are covered in Sections 2.2.1 and 2.2.2 of the V.120 standard. There, the R reference point is read as the DTE port. ๐
B, F - Segmentation Bits
B and F are how you segment and reassemble transported frames in synchronous HDLC mode. B set to 1 means the packet has the beginning of a transported frame, a Begin Frame. F set to 1 means the packet has the final portion of a transported frame, a Final Frame. A packet with neither the start nor the end is a Middle Frame. ๐งฉ
For asynchronous mode and bit transparent mode, both bits MUST be set to 1. Here's the summary table:
+---+---+--------------+----------------+
| | Application |
+---+---+--------------+----------------+
| B | F | Synchronous | Asynchronous |
+---+---+--------------+----------------+
| 1 | 0 | Begin Frame | Not Applicable |
+---+---+--------------+----------------+
| 0 | 0 | Middle Frame | Not Applicable |
+---+---+--------------+----------------+
| 1 | 0 | Final Frame | Not Applicable |
+---+---+--------------+----------------+
| 1 | 1 | Single Frame | Required |
+---+---+--------------+----------------+
CS (V.120 optional Header Extension for Control State Information)
This is the second Header octet, the optional one. Here's its layout:
0 1 2 3 4 5 6 7
+-----+-----+-----+-----+-----+-----+-----+-----+
| E | DR | SR | RR | Res |(Odd-Pad Length) |
+-----+-----+-----+-----+-----+-----+-----+-----+
E - Extension Bit
The E bit lets the Header field be extended further. It's set to 1 to show there's no further extension of the Header field. โจ
DR - Data Ready
DR set to 1 means the DTE port is activated. ๐
SR - Send Ready
SR set to 1 means the DTE is ready to send data. ๐
RR - Receive Ready
RR set to 1 means the DTE is ready to receive data. It can be used for DTE flow control in half-duplex transmissions. ๐ซถ
Res - Reserved
This bit is reserved and set to 0. (It's a reserved bit in V.120 as well.) ๐
Odd-Pad Length (Optional)
The Odd-Pad Length field is for when non-octet aligned HDLC frames are allowed. It's a 3-bit field that can hold 0 through 7, and its value is how many bits long the Odd-Pad field is. That number is whatever it takes to make the Transported Data Field plus the Odd-Pad Field line up on an octet boundary. ๐งฎ
If non-octet aligned frames aren't allowed, this field goes unused and all of its bits are set to 0. (In V.120, these bits are reserved.)
Transported Data
The transported data field holds the serial data being carried. ๐ฆ
When the serial data type is negotiated as HDLC-like synchronous, this field holds all or part of a transported HDLC-like frame. Here's a sample transported HDLC frame. The figure doesn't show the bits inserted for transparency. ๐
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flag:01111110 | (Address, Control and Information Fields) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (FCS) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - - - - - - - - -+
| Flag:01111110 |
+-+-+-+-+-+-+-+-+
Only the data between the flags gets transported. The flags themselves don't. The FCS is transported unless the FCS-Mode Configuration Option has been successfully negotiated to do something else. ๐
Odd-Pad
The optional Odd-Pad (Odd Frame Pad) field shows up when the transported data frame isn't octet aligned and the Allow-Odd-Frames Option has been successfully negotiated. Its job is to pad the Transported Data field out to an octet boundary. The Odd-Pad goes in the high order bits of the last octet of the Transported Data field, and every bit in it is zero. ๐
3. Serial Data Control Protocol โจ
okay so SDCP is the protocol that sets up, switches on, and switches off the SDTP modules on both ends of a point-to-point link ๐ it's giving config manager energy ๐ It uses the same packet exchange mechanism and state machine as the Link Control Protocol, so if you already know LCP, you're basically already there ๐ซถ SDCP packets can't be exchanged until PPP has reached the Network-Layer Protocol phase, and any SDCP packets that show up before that phase SHOULD be silently discarded ๐
SDCP is exactly the same as the Link Control Protocol [1], with a few exceptions:
Frame Modifications
The packet may utilize any modifications to the basic frame format which have been negotiated during the Link Establishment phase. ๐
Data Link Layer Protocol Field
Exactly one SDCP packet gets wrapped in the PPP Information field, and the PPP Protocol field says hex 8049 (PPP-SDCP) ๐ฆ
Code Field
Only Codes 1 through 7 are used: Configure-Request, Configure-Ack, Configure-Nak, Configure-Reject, Terminate-Request, Terminate-Ack, and Code-Reject ๐ other Codes SHOULD be treated as unrecognized and SHOULD result in Code-Rejects. bestie, that's a whole vibe check ๐
Timeouts
SDCP packets may not be exchanged until PPP has reached the Network-Layer Protocol phase. An implementation SHOULD be prepared to wait for Authentication and Link Quality Determination to finish before timing out while waiting for a Configure-Ack or other response. It is suggested that an implementation give up only after user intervention or a configurable amount of time. patience is a virtue, iykyk ๐ธ
Configuration Option Types
SDCP has its own distinct set of Configuration Options, which are defined in this document. ๐
4. SDCP Configuration Option Format
okay this part is my favourite ๐ญ SDCP Configuration Options let you negotiate changes to the default SDCP characteristics. If a Configuration Option is not included in a Configure-Request packet, the default value for that Configuration Option is assumed. โจ
SDCP uses the same Configuration Option format defined in LCP [1], just with its own separate set of Options ๐ง
The Option Types are:
1 Packet-Format
2 Header-Type
3 Length-Field-Present
4 Multi-Port
5 Transport-Mode
6 Maximum-Frame-Size
7 Allow-Odd-Frames
8 FCS-Type
9 Flow-Expiration-Time
Note that Option Types 5-8 are specific to a single port and require port numbers in their format. Option Types 6-8 are specific to the HDLC-Synchronous Transport-Mode. ๐
4.1. Packet-Format
This option decides whether the Header field goes before or after the data field. When the Header field follows the data field, the order of its octets are reversed. ๐
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Format |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Type:
1 - Length:
3 - Format: the values are
0 Header-Last (default)
1 Header-First
4.2. Header-Type
This option picks the type of the Header field. A Header-Type of H-and-CS means the CS octet will be present if the E-bit in the H-octet says so. A Header-Type of H-and-CS-Always means both the H and CS octets show up in every single packet ๐ซฃ
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Header-Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Type:
2 - Length:
3 - Header-Type: the values are
0 H-Only (default)
1 H-and-CS
2 H-and-CS-Always
4.3. Length-Field-Present
By default, a PPP Information Field holds only a single SDTP packet, and an SDTP Packet has no length field. Successfully negotiating this option makes every SDTP packet contain the length field, and lets SDTP packets be packed into compound frames (see LCP Compound-Frames Configuration Option [11]) ๐ฆ
This option is required if the LCP Length-Field-Present Configuration option has been negotiated. ๐ซถ
The size of the Length field is negotiated through the Length-Size parameter.
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Length-Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Type:
3 - Length:
3 - Length-Size: the values are
0 No Length Field (default)
1 Length field of 1 octet
2 Length field of 2 octets
4.4. Multi-Port
By default, packets don't carry a port number, and every packet goes to the default port, Port 0 ๐ช Successfully negotiating the Multi-Port configuration option means every packet will carry a port number. The maximum port number, and so the number of ports, is negotiated using the Max-Port-Num field. A value of 0 means a single port is used and no port field will be present in an SDTP packet. (This is the same as not negotiating or rejecting this option.) Port numbers start at 0 and go up to 254. Port number 255 is reserved for control purposes (see section on flow control) ๐
Protocol Specific negotiations that happen on a per port basis require the port number to be specified as part of the configuration negotiation. ๐ฅ
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Max-Port-Num |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Type:
4 - Length:
3 - Max-Port-Num: the maximum port number that can be used. The number of ports present is
Max-Port-Num + 1. The value can range from 0 to 254.
4.5. Transport-Mode
This parameter picks the transport mode for the specified port. ๐
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Port | Mode |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Type:
5 - Length:
4 - Port: the port this option applies to.
- Mode: the transport mode used for this port. The values are
0 HDLC Synchronous (default)
1 Asynchronous
4.6. Maximum-Frame-Size
This parameter sets the maximum number of octets allowed in a transported data frame ๐
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Maximum-Frame-Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Type:
6 - Length:
7 - Port: the port this option applies to.
- Maximum-Frame-Size: the maximum allowed length of a transported data frame, in octets. The default is
10,000. The negotiable range is1to2**31 - 1. The value0is reserved to mean no limit. This field is transmitted most significant octet first. ๐
4.7. Allow-Odd-Frames
By default, only octet-aligned data frames are allowed for transport ๐ โโ๏ธ Successfully negotiating this option lets non-octet aligned frames be transported. The size of the padding needed to align the frames is carried in the CS Header octet.
Use of Header-Type H-Only is not permitted in conjunction with this option. โ ๏ธ
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Type:
7 - Length:
3 - Port: the port this option applies to.
4.8. FCS-Type
By default, the FCS of the transported data frame is transported ๐ This option lets the FCS be removed by the transmitter and regenerated by the receiver.
It is important that implementations not use regeneration unless they are using PPP Reliable Transmission [12] or operating over some other layer that will provide reliable notification of a dropped packet. Implementations are not permitted to send a incomplete or bad frame to the user with a good (regenerated) FCS. ๐ฑ
This option also selects the type of user FCS that will be regenerated. ๐ฆ
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Port | FCS-Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Type:
8 - Length:
4 - Port: the port this option applies to.
- FCS-Type: the values are
0 Transparent-Transport (Default)
1 16-bit ITU-T CRC
2 32-bit ITU-T CRC
4.9. Flow-Expiration-Time
As described in section 2.2, Flow-Off messages expire after T1 seconds. By default, T1 is 10 seconds. This configuration option lets you change the value of T1 โฑ๏ธ
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flow-Expiration-Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Type:
9 - Length:
5 - Flow-Expiration-Time: this field holds a 16 bit unsigned integer that sets the value of T1 as follows: T1 = Flow-Expiration-Time / 10 seconds. So the value is in units of 1/10 of a second, with allowable values from 1 to
2^16-1(0.1 to 6553.5 seconds). It is transmitted most significant octet first. The default value is 100 (10 seconds), which all must support. main character timer energy ๐
Security Considerations ๐
Security issues are not discussed in this memo. ๐
References
- [1] Simpson, W., ed., "The Point-to-Point Protocol (PPP)", STD 51, RFC 1661, July 1994.
- [2] CCITT Recommendation V.120 (09/92), "Support by an ISDN of Data Terminal Equipment with V-Series Type Interfaces with Provision for Statistical Multiplexing", 1993.
- [3] Rand, D., "The PPP Compression Control Protocol (CCP)", RFC 1962, June 1996.
- [4] Friend, R., and W. Simpson, "PPP Stac LZS Compression Protocol", RFC 1974, August 1996.
- [5] Rand, D., "PPP Predictor Compression Protocol", RFC 1978, August 1996.
- [6] Petty, J., "PPP Hewlett-Packard Packet-by-Packet Compression (HP PPC) Protocol", Work in Progress.
- [7] Carr, D., "PPP Gandalf FZA Compression Protocol", Work in Progress.
- [8] Schryver, V., "PPP BSD Compression Protocol", RFC 1977, August 1996.
- [9] Schremp, et. al., "PPP Magnalink Variable Resource Compression", RFC 1975, August 1996.
- [10] Schneider, K., "PPP Stacker LZS Compression Protocol using a DCP Header (LZS-DCP)", RFC 1967, August 1996.
- [11] Simpson, W.A., "PPP LCP Extensions", RFC 1570, January 1994.
- [12] Rand, D., "PPP Reliable Transmission", RFC 1663, July 1994.
Chair's Address ๐
Okay so if you want to reach the working group, the way to do it is through the current chair! ๐ Here's where to find them:
Karl Fox
Ascend Communications
3518 Riverside Drive, Suite 101
Columbus, Ohio 43221
EMail: karl@ascend.com
Authors' Addresses ๐ฆ
Bestie, if you have questions about this memo, these are the people to ask! ๐ซถ Kevin Schneider is first up:
Kevin Schneider
Adtran, Inc.
901 Explorer Blvd.
Huntsville, AL 35806-2807
Phone: (205) 971-8000
EMail: kevin@adtran.com
And then there's Stuart Venters, who is also at Adtran, Inc. and is just as ready to help! ๐ธ
Stuart Venters
Adtran, Inc.
901 Explorer Blvd.
Huntsville, AL 35806-2807
Phone: (205) 971-8000
EMail: sventers@adtran.com
๐ฆ where this page comes from
- ietf: rfc1963 1996-08
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms