The Point-to-Point Protocol Configuration Options: Negotiation of 32-bit FCS INTERNET-DRAFT Abstract The Point-to-Point Protocol (PPP) provides a method for transmitting datagrams over serial point-to-point links. PPP is composed of three parts: 1. A method for encapsulating datagrams over serial links. 2. An extensible Link Control Protocol (LCP). 3. A family of Network Control Protocols (NCP) for establishing and configuring different network layer protocols. The PPP encapsulating scheme, the basic LCP, and an NCP for controlling and establishing the Internet Protocol (IP) (called the IP Control Protocol, IPCP) are defined in The Point-to-Point Protocol (PPP) [1]. This document defines a method to negotiate a 32-bit FCS Configuration Option for PPP. Status of this memo This draft document is for review by the IETF. Distribution of this memo is unlimited. Please send comments to the author. 1 Introduction As described in [1], Link Control Protocol (LCP) Configuration Options allow modifications to the standard characteristics of a point-to-- point link to be negotiated. Reference [2] describes the initial configuration options for PPP. INTERNET-DRAFT 32-bit FCS Option for PPP Page 2 Introduction 19 December 1990 This document describes a method for negotiating a 32-bit FCS Configuration Option to improve the error detection guarantees provided by PPP. 2 Description The default frame check for PPP is defined to be a 16-bit FCS. The use of a 32-bit FCS will improve the error detection guarantees provided by PPP, but, both PPP entities must agree on the FCS size. Frames transmitted under one FCS type will result in an FCS failure if received under the other FCS. In principle, the LCP can be used to negotiate the FCS size. The LCP frames, however, carry an FCS and cannot be received unless the frames pass the frame check at the receiver. Normally, this requires that the receiving station is operating the same FCS as the transmitter. Fortunately, it is possible to generate a frame which will pass the frame check for both the 16-bit FCS and the 32-bit FCS. 2.1 Generating and Checking the FCS This section describes the generation and checking of an "n"-bit FCS. A sequence of bits is described in terms of a polynomial where the coefficient of "x^i" indicates the value of bit "i". Thus, the bit pattern 101001 is represented by the polynomial x^5 + x^3 + 1 The notation "x^n ...1" represents the polynomial for which all coefficients from "x^n" down to "x^0" are 1. This corresponds to a bit pattern of "n+1" consecutive one bits. The following polynomials are defined for an "n"-bit FCS. 1. The initializing polynomial, In. 2. The generating polynomial, Gn. 3. The complementing polynomial, Cn. 4. The result polynomial, Rn. This has the value (Cn * x^n) mod Gn. The "n"-bit FCS, Fn, for the message portion of a frame (represented by the polynomial Mk of length "k" bits) is the sum (modulo 2) of 1. the remainder of x^k * In divided (modulo 2) by Gn, INTERNET-DRAFT 32-bit FCS Option for PPP Page 3 Description 19 December 1990 2. the remainder of x^n * Mk divided (modulo 2) by Gn, 3. and Cn. The frame transmitted, Tj (where j=k+n), is then represented as follows Tj = Mk * x^n + Fn The received frame, Tj, is checked to detect transmission errors by forming the sum (modulo 2) of 1. the remainder of x^j * In divided (modulo 2) by Gn, 2. the remainder of x^n * Tj divided (modulo 2) by Gn. The frame is valid if the above sum is equal to Rn. 2.2 The 16-bit FCS polynomials I16 = x^15 ...1 G16 = x^15 + x^12 + x^5 + 1 C16 = x^15 ...1 R16 = x^12 + x^11 + x^10 + x^8 + x^3 + x^2 + x + 1 2.3 The 32-bit FCS polynomials I32 = x^31 ...1 G32 = x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1 C32 = x^31 ...1 R32 = x^31 + x^30 + x^26 + x^25 + x^24 + x^18 + x^15 + x^14 + x^12 + x^11 + x^10 + x^8 + x^6 + x^5 + x^4 + x^3 + x^2 + x + 1 INTERNET-DRAFT 32-bit FCS Option for PPP Page 4 Description 19 December 1990 2.4 The 48-bit FCS polynomials To generate a frame with a 48-bit FCS which is valid when checked using either 16-bit or 32-bit polynomials, the operations described previously for generating an "n"-bit FCS are performed using the following polynomials. I48 = x^47 + x^46 + x^43 + x^42 + x^39 + x^37 + x^34 + x^32 + x^31 + x^30 + x^29 + x^27 + x^25 + x^23 + x^22 + x^21 + x^20 + x^19 + x^17 + x^16 + x^15 + x^11 + x^10 + x^9 + x^8 + x^5 + x^4 + x^2 + x + 1 G48 = x^48 + x^44 + x^42 + x^39 + x^37 + x^35 + x^34 + x^31 + x^28 + x^23 + x^19 + x^18 + x^17 + x^15 + x^14 + x^12 + x^11 + x^9 + x^8 + x^6 + x^4 + x^2 + x + 1 C48 = x^45 + x^44 + x^41 + x^40 + x^38 + x^36 + x^35 + x^33 + x^31 + x^30 + x^29 + x^27 + x^25 + x^23 + x^22 + x^21 + x^20 + x^19 + x^17 + x^16 + x^14 + x^13 + x^12 + x^7 + x^6 + x^3 2.5 Derivation of the 48-bit polynomials The generator polynomial G48 is the product (modulo 2) of the 16-bit and 32-bit generator polynomials. G48 = G16 * G32 The initializing and complementing polynomials are chosen so that they solve the following equations. C48 mod G16 = C16 C48 mod G32 = C32 I48 mod G16 = I16 * x^32 I48 mod G32 = I32 * x^16 2.6 Implementation and Operation The 48-bit FCS can be computed in exactly the same way as the 16-bit and 32-bit FCSs using suitable hardware or software. The polynomials I48, G48 and C48 are used, and the generated 48-bit FCS may be appended to the message for transmission. However, most hardware is designed to operate with only a 16-bit or 32-bit register and will not be capable of performing the 48-bit operations. In this case, it is necessary to perform the FCS computation by software. Fortunately, it is not necessary to bypass the hardware FCS generation and transmit the 48-bit FCS frame directly. If the transmission hardware is INTERNET-DRAFT 32-bit FCS Option for PPP Page 5 Description 19 December 1990 operating in 16-bit FCS generation mode, then the leading 32 bits of the 48-bit FCS can be appended to the original message of length "k" and the new message of length (k + 32) passed through the 16-bit FCS generation hardware. The resultant (k + 48)-bit message will be the same as that produced by appending the 48-bit FCS to the original message. Similarly, if the transmission hardware is operating in 32-bit FCS generation mode, then the leading 16 bits of the 48-bit FCS can be appended to the original message of length "k" and the new message of length (k + 16) passed through the 32-bit FCS generation hardware. The resultant (k + 48)-bit message will again be the same as that produced by appending the 48-bit FCS to the original message. A PPP station attempting to negotiate the 32-bit FCS must append the 48-bit FCS to all frames until the LCP handshake completes and the link enters the Open state. Frames sent when the link is in the Open state may contain either the negotiated FCS or the 48-bit FCS. Note that the receiver must treat as padding the part of the 48-bit FCS that precedes the expected 16-bit or 32-bit FCS field. Thus, a receiver operating the 16-bit FCS will handle the initial 32 bits of the 48-bit FCS as padding. Similarly, a receiver operating the 32-bit FCS will handle the initial 16 bits of the 48-bit FCS as padding. 3 Format A summary of the 32-bit FCS Configuration Option format is shown below. The fields are transmitted from left to right. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type Length 2 Default 16-bit FCS. INTERNET-DRAFT 32-bit FCS Option for PPP Page 6 Format 19 December 1990 References | [1] Perkins, D., "The Point-to-Point Protocol for the Transmission of | Multi-Protocol Datagrams Over Point-to-Point Links", RFC 1171. | [2] Perkins, D., "The Point-to-Point Protocol (PPP) Initial | Configuration Options", RFC 1172. Chairman's Address This proposal is within the purview of the Point-to-Point Protocol Working Group of the Internet Engineering Task Force (IETF). The working group can be contacted via the chair: Stev Knowles FTP Software 26 Princess Street Wakefield, MA 01880-3004 Phone: (617) 246-0900 x290 EMail: Stev@FTP.com Author's Address Questions about this memo can also be directed to the author: Arthur Harvey Digital Equipment Corporation 550 King Street, LKG1-2/A19 Littleton, MA 01460-1289 Phone: (508) 486-7647 EMail: Harvey@gah.enet.dec.com