📄 rfc1570.txt
字号:
specific information to make use of the Callback. The codification of the range of allowed usage of this field is outside the scope of this specification.2.4. Compound-Frames Description This Configuration Option provides a method for an implementation to send multiple PPP encapsulated packets within the same frame. This option might be used for many diverse purposes, such as savings on toll charges.Simpson [Page 12]RFC 1570 PPP LCP extensions January 1994 Only those PPP Protocols which have determinate lengths or integral length fields may be aggregated into a compound frame. When Compound-Frames is successfully negotiated, the sender MAY add additional packets to the same frame. Each packet is immediately followed by another Protocol field, with its attendant datagram. When padding is added to the end of the Information field, the procedure described in Self-Describing-Padding is used. Therefore, this option MUST be negotiated together with the Self- Describing-Padding option. If the FCS-Alternatives option has been negotiated, self describing padding MUST always be added. That is, the final packet MUST be followed by a series of octets, the first of which contains the value one (1). On receipt, the first Protocol field is examined, and the packet is processed as usual. For those datagrams which have a determinate length, the remainder of the frame is returned to the demultiplexor. Each succeeding Protocol field is processed as a separate packet. This processing is complete when a packet is processed which does not have a determinate length, when the remainder of the frame is empty, or when the Protocol field is determined to have a value of one (1). The PPP Protocol value of one (1) is reserved as the Padding Protocol. Any following octets are removed as padding. A summary of the Compound-Frames 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 15 Length 2Simpson [Page 13]RFC 1570 PPP LCP extensions January 19942.4.1. LCP considerations During initial negotiation, the Compound-Frames option can be used to minimize the negotiation latency, by reducing the number of frames exchanged. The first LCP Configure-Request packet is sent as usual in a single frame, including the Self-Describing-Padding and Compound-Frames options. The peer SHOULD respond with a Configure-Ack, followed in a compound frame by its LCP Configure-Request, and any NCP Configure-Requests desired. Upon receipt, the local implementation SHOULD process the Configure- Ack as usual. Since the peer has agreed to send compound frames, the implementation MUST examine the remainder of the frame for additional packets. If the peer also specified the Self-Describing-Padding and Compound-Frames options in its Configure-Request, the local implementation SHOULD retain its Configure-Ack, and further NCP configuration packets SHOULD be added to the return frame. Together with the peer's final return frame, the minimum number of frames to complete configuration is 4.Simpson [Page 14]RFC 1570 PPP LCP extensions January 1994A. Fast Frame Check Sequence (FCS) ImplementationA.1. 32-bit FCS Computation Method The following code provides a table lookup computation for calculating the 32-bit Frame Check Sequence as data arrives at the interface. /* * u32 represents an unsigned 32-bit number. Adjust the typedef for * your hardware. */ typedef unsigned long u32; static u32 fcstab_32[256] = { 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,Simpson [Page 15]RFC 1570 PPP LCP extensions January 1994 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d }; #define PPPINITFCS32 0xffffffff /* Initial FCS value */ #define PPPGOODFCS32 0xdebb20e3 /* Good final FCS value */ /* * Calculate a new FCS given the current FCS and the new data. */ u32 pppfcs32(fcs, cp, len) register u32 fcs; register unsigned char *cp; register int len; { ASSERT(sizeof (u32) == 4); ASSERT(((u32) -1) > 0); while (len--)Simpson [Page 16]RFC 1570 PPP LCP extensions January 1994 fcs = (((fcs) >> 8) ^ fcstab_32[((fcs) ^ (*cp++)) & 0xff]); return (fcs); } /* * How to use the fcs */ tryfcs32(cp, len) register unsigned char *cp; register int len; { u32 trialfcs; /* add on output */ trialfcs = pppfcs32( PPPINITFCS32, cp, len ); trialfcs ^= 0xffffffff; /* complement */ cp[len] = (trialfcs & 0x00ff); /* Least significant byte first */ cp[len+1] = ((trialfcs >>= 8) & 0x00ff); cp[len+2] = ((trialfcs >>= 8) & 0x00ff); cp[len+3] = ((trialfcs >> 8) & 0x00ff); /* check on input */ trialfcs = pppfcs32( PPPINITFCS32, cp, len + 4 ); if ( trialfcs == PPPGOODFCS32 ) printf("Good FCS\n"); }Security Considerations Security issues are briefly discussed in sections concerning the Callback Configuration Option.References [1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", RFC 1548, Daydreamer, December 1993. [2] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1340, USC/Information Sciences Institute, July 1992. [3] Simpson, W., Editor, "PPP in HDLC Framing", RFC 1549, Daydreamer, December 1993.Simpson [Page 17]RFC 1570 PPP LCP extensions January 1994Acknowledgments The Identification feature was suggested by Bob Sutterfield (Morning Star Technologies). The Time-Remaining feature was suggested by Brad Parker (FCR). Some of the original text for FCS-Alternatives was provided by Arthur Harvey (then of DEC). The Null FCS was requested by Peter Honeyman (UMich). The 32-bit FCS example code was provided by Karl Fox (Morning Star Technologies). Self-Describing-Padding was suggested and named by Fred Baker (ACC). Compound-Frames was suggested by Keith Sklower (Berkeley). Special thanks to Morning Star Technologies for providing computing resources and network access support for writing this specification.Chair's Address The working group can be contacted via the current chair: Fred Baker Advanced Computer Communications 315 Bollay Drive Santa Barbara, California 93117 EMail: fbaker@acc.comEditor's Address Questions about this memo can also be directed to: William Allen Simpson Daydreamer Computer Systems Consulting Services 1384 Fontaine Madison Heights, Michigan 48071 EMail: Bill.Simpson@um.cc.umich.edu bsimpson@MorningStar.comSimpson [Page 18]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -