Network Working Group Simpson Internet Draft Daydreamer expires in six months October 1992 The PPP Internetwork Packet Exchange Control Protocol (IPXCP) Status of this Memo This memo is the product of the Point-to-Point Protocol Working Group of the Internet Engineering Task Force (IETF). Comments on this memo should be submitted to the ietf-ppp@ucdavis.edu mailing list. Distribution of this memo is unlimited. This document is an Internet Draft. Internet Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet Drafts. Internet Drafts are draft documents valid for a maximum of six months. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a ``working draft'' or ``work in progress.'' Please check the 1id-abstracts.txt listing contained in the internet-drafts Shadow Directories on nic.ddn.mil, nnsc.nsf.net, nic.nordu.net, ftp.nisc.sri.com, or munnari.oz.au to learn the current status of any Internet Draft. Abstract The Point-to-Point Protocol (PPP) [1] provides a standard method of encapsulating Network Layer protocol information over point-to-point links. PPP also defines an extensible Link Control Protocol, and proposes a family of Network Control Protocols (NCPs) for establishing and configuring different network-layer protocols. The IPX protocol was originally used in Novell's NetWare products [3], and is now supported by numerous other vendors. This document defines the NCP for establishing and configuring the IPX protocol over PPP. Simpson expires in six months [Page i] DRAFT PPP IPXCP October 1992 1. Introduction PPP has three main components: 1. A method for encapsulating datagrams over serial links. 2. A Link Control Protocol (LCP) for establishing, configuring, and testing the data-link connection. 3. A family of Network Control Protocols (NCPs) for establishing and configuring different network-layer protocols. In order to establish communications over a point-to-point link, each end of the PPP link must first send LCP packets to configure and test the data link. After the link has been established and optional facilities have been negotiated as needed by the LCP, PPP must send NCP packets to choose and configure one or more network-layer protocols. Once each of the chosen network-layer protocols has been configured, datagrams from each network-layer protocol can be sent over the link. The link will remain configured for communications until explicit LCP or NCP packets close the link down, or until some external event occurs (an inactivity timer expires or network administrator intervention). Simpson expires in six months [Page 1] DRAFT PPP IPXCP October 1992 2. A PPP Network Control Protocol (NCP) for IPX The IPX Control Protocol (IPXCP) is responsible for configuring, enabling, and disabling the IPX protocol modules on both ends of the point-to-point link. IPXCP uses the same packet exchange machanism as the Link Control Protocol (LCP). IPXCP packets may not be exchanged until PPP has reached the Network-Layer Protocol phase. IPXCP packets received before this phase is reached should be silently discarded. The IPX Control Protocol is exactly the same as the Link Control Protocol [1] with the following 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 IPXCP packet is encapsulated in the Information field of a PPP Data Link Layer frame where the Protocol field indicates type hex 802B (IPX Control Protocol). Code field Only Codes 1 through 7 (Configure-Request, Configure-Ack, Configure-Nak, Configure-Reject, Terminate-Request, Terminate-Ack and Code-Reject) are used. Other Codes should be treated as unrecognized and should result in Code-Rejects. Timeouts IPXCP 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 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. Configuration Option Types IPXCP has a distinct set of Configuration Options, which are defined below. Simpson expires in six months [Page 2] DRAFT PPP IPXCP October 1992 2.1. Sending IPX Datagrams Before any IPX packets may be communicated, PPP must reach the Network-Layer Protocol phase, and the IPX Control Protocol must reach the Opened state. Exactly one IPX packet is encapsulated in the Information field of a PPP Data Link Layer frame where the Protocol field indicates type hex 002B (IPX). The maximum length of an IPX datagram transmitted over a PPP link is the same as the maximum length of the Information field of a PPP data link layer frame. Since there is no standard method for fragmenting and reassembling IPX datagrams, PPP links supporting IPX MUST allow at least 576 octets in the information field of a data link layer frame. 2.2. IPX-WAN protocol Novell has recently announced a new specification called IPX-WAN [4], which is intended to provide mechanisms similar to IPXCP negotiation over all types of wide area links. As viewed by PPP, IPX-WAN is a part of IPX, and IPX-WAN packets are indistinguishable from other IPX packets. 2.3. Co-existance with IPX-WAN Previous drafts of this specification have introduced a NCP with several configuration options, and another NCP having no configuration options, with some NCP functions moved to the IPX-WAN protocol. This version proposes the union of the previous proposals, with instructions for interoperating between the two environments. As time has progressed, Novell has improved IPX-WAN by adding the functional equivalent of every feature proposed in earlier drafts of this document. Currently, Novell has implemented IPXCP without any Configuration Options, and requires successful IPX-WAN negotiation, even when all required parameters have been hand configured. This makes it impossible for the Novell products to interoperate with implementations which do not already include support for IPX-WAN. Therefore, it is the intent of this document to accomodate versions of IPX and IPXCP which are implemented by other vendors, and to provide features and functionality for those implementations which are not directly connected to a NetWare network. It is hoped that Simpson expires in six months [Page 3] DRAFT PPP IPXCP October 1992 future Novell releases will support the complete IPXCP specification. If unable to negotiate some required parameter, all non-IPX-WAN- capable implementations MUST NOT reach Opened state. Conversely, an IPX-WAN-capable implementation SHOULD reach Opened state, even when no Configuration Options are successfully negotiated. IPX-WAN uses a "Timer Request" packet to set up the link. These MUST NOT be sent until IPXCP has Opened the link. An implementation which provides both IPX-WAN and IPXCP Configuration Options capability SHOULD only send a Timer Request packet when a Timer Request packet is received, or upon failure to successfully negotiate a required parameter. If unable to complete IPX-WAN setup when a required parameter is unknown, by default IPXCP SHOULD terminate the link. However, some implementations (such as half routers) might be capable of operating without all indicated required parameters, in which case the termination MUST be configurable. 2.4. Required Configuration Parameters Where applicable, each Configuration Option indicates the environment where the parameter which is negotiated MAY be required by the implementation for proper operation. This determination is highly implementation dependent. Simpson expires in six months [Page 4] DRAFT PPP IPXCP October 1992 3. IPXCP Configuration Options IPXCP Configuration Options allow negotiation of desirable IPX parameters. IPXCP uses the same Configuration Option format defined for LCP [1], with a separate set of Options. The most up-to-date values of the IPXCP Option Type field are specified in the most recent "Assigned Numbers" RFC [2]. Current values are assigned as follows: 1 IPX-Network-Number 2 IPX-Node-Number 3 IPX-Compression-Protocol 4 IPX-Routing-Protocol 5 IPX-Router-Name 6 IPX-Configuration-Complete Simpson expires in six months [Page 5] DRAFT PPP IPXCP October 1992 3.1. IPX-Network-Number Description This Configuration Option provides a way to negotiate the IPX network number to be used on the local end of the link. It allows the sender of the Configure-Request to state which network number is desired, or to request that the peer provide the information. The peer can provide this information by NAKing the option, and returning a valid IPX-Network-Number. If negotiation about the remote network number is required, and the peer did not provide the option in its Configure-Request, the option SHOULD be appended to a Configure-Nak. The value of the IPX-Network-Number given must be acceptable as the remote IPX- Network-Number, or indicate a request that the peer provide the information. By default, no IPX-Network-Number is assigned to either end. A network specified as zero in a Configure-Request shall be interpreted as requesting the remote end to specify a value via a Configure-Nak. A network specified as zero in a Configure-Ack shall be interpreted as agreement that no value exists. This is a required parameter when the implementation is operating as a router, but not as a half-router or end-system. By default, this parameter SHOULD NOT be negotiated when statically configured, unless requested by the peer. Any IPX-WAN packets received MUST supercede information negotiated in this option. A summary of the IPX-Network-Number Configuration Option 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | IPX-Network-Number +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPX-Network-Number (cont.) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 1 Simpson expires in six months [Page 6] DRAFT PPP IPXCP October 1992 Length 6 IPX-Network-Number The four octet IPX-Network-Number is the desired local IPX network number of the sender of the Configure-Request. This number may be zero, which is interpreted as being a local network of unknown number that requires no routing. Both ends of the link MUST have the same network number. In the event of conflict, the end having the highest node number wins. Simpson expires in six months [Page 7] DRAFT PPP IPXCP October 1992 3.2. IPX-Node-Number Description This Configuration Option provides a way to negotiate the IPX node number to be used on the local end of the link. It allows the sender of the Configure-Request to state which node number is desired, or to request that the peer provide the information. The peer can provide this information by NAKing the option, and returning a valid IPX-Node-Number. If negotiation about the remote node number is required, and the peer did not provide the option in its Configure-Request, the option SHOULD be appended to a Configure-Nak. The value of the IPX-Node-Number given must be acceptable as the remote IPX-Node- Number, or indicate a request that the peer provide the information. By default, no IPX-Node-Number is assigned to either end. A node number specified as zero in a Configure-Request shall be interpreted as requesting the remote end to specify a value via a Configure-Nak. A node number specified as zero in a Configure-Ack shall be interpreted as agreement that no value exists. This is a required parameter when the implementation is originating traffic as an end-system, but not when operating as a router or half-router. By default, this parameter SHOULD NOT be negotiated when statically configured, unless requested by the peer. Any IPX-WAN packets received MUST supercede information negotiated in this option. A summary of the IPX-Node-Number Configuration Option 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | IPX-Node-Number +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPX-Node-Number (cont.) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 2 Simpson expires in six months [Page 8] DRAFT PPP IPXCP October 1992 Length 8 IPX-Node-Number The six octet IPX-Node-Number is the desired local IPX node number of the sender of the Configure-Request. The node number MUST be unique within the same network number. Simpson expires in six months [Page 9] DRAFT PPP IPXCP October 1992 3.3. IPX-Compression-Protocol Description This Configuration Option provides a way to negotiate the use of a specific compression protocol. By default, compression is not enabled. The sender of this Configuration Option indicates that it can receive packets with the specified compression technique. A Configure-Ack MAY obligate the peer to send such packets, depending on the protocol negotiated. Information negotiated in this option MUST supercede any IPX-WAN packets received, since IPX-WAN packets could be affected by the compression technique. A summary of the IPX-Compression-Protocol Configuration Option 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | IPX-Compression-Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+-+-+ Type 3 Length >= 4 IPX-Compression-Protocol The IPX-Compression-Protocol field is two octets and indicates the compression protocol desired. Odd values for this field are always the same as the PPP Data Link Layer Protocol field values for that same compression protocol. Even values are used when the compression protocol is interleaved with IPX packets. The most up-to-date values of the IPX-Compression-Protocol field are specified in the most recent "Assigned Numbers" RFC [2]. Current values are assigned as follows: Simpson expires in six months [Page 10] DRAFT PPP IPXCP October 1992 Value (in hex) Protocol 0002 Telebit Compressed IPX 0235 Shiva Compressed NCP/IPX Data The Data field is zero or more octets and contains additional data as determined by the particular compression protocol. Simpson expires in six months [Page 11] DRAFT PPP IPXCP October 1992 3.4. IPX-Routing-Protocol Description This Configuration Option provides a way to negotiate the use of a specific routing protocol (or no routing protocol, if desired). The sender of this option is specifying that it wishes to receive information of the specified routing protocol. Multiple protocols MAY be requested by sending multiple IPX-Routing-Protocol Configuration Options. By default, Novell's combination of Routing Information Protocol (RIP) and Server Advertising Protocol (SAP) is expected. This is a required parameter when the implementation is operating as an end-system, and in that case SHOULD be negotiated even when statically configured. Any IPX-WAN packets received MAY add to information negotiated in this option. A summary of the Routing-Protocol Configuration Option 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Routing-Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+-+-+ Type 4 Length >= 4 Routing-Protocol The Routing-Protocol field is two octets and indicates the type of Routing-Protocol desired. This two octet quantity is sent most significant octet first. Initial values are assigned as follows: Simpson expires in six months [Page 12] DRAFT PPP IPXCP October 1992 Value Protocol 0 No routing protocol required 1 RESERVED 2 Novell RIP/SAP required Data The Data field is zero or more octets and contains additional data as determined by the routing protocol indicated in the Routing- Protocol field. Simpson expires in six months [Page 13] DRAFT PPP IPXCP October 1992 3.5. IPX-Router-Name Description This Configuration Option provides a way to convey information about the IPX server name. The nature of this option is advisory only. It is provided as a means of improving the end system's ability to provide a simple user interface. This option MUST NOT be included in a Configure- Nak. A summary of the IPX-Router-Name Option 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Name... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 5 Length >= 3 Name This field contains the name of the IPX entity on this end of the link. The symbolic name should be between 1 and 47 ASCII characters in length, containing the characters 'A' through 'Z', underscore (_), hyphen (-) and "at" sign (@). The length of the name is bounded by the option length. On reception, the name SHOULD be padded to 48 characters using the NUL character. Those readers familiar with NetWare 3.x servers will realize that this is equivalent to the file server name. Simpson expires in six months [Page 14] DRAFT PPP IPXCP October 1992 3.6. IPX-Configuration-Complete Description This Configuration Option provides a way to indicate that all implementation dependent required configuration parameters are satisfied. It is provided as a means of detecting when convergence will occur in a heterogeneous environment. This option MUST be included in a Configure-Request when the combination of statically configured parameters and offered Configuration Options will result in successful configuration. The nature of this option is advisory only. This option MUST NOT be included in a Configure-Nak. Implementation Note: An implementation which does not support IPX-WAN can immediately detect that link setup will not be successful if this option is not present in the peer's Configure-Request, or this option is Rejected. This avoids timeout delays. An implementation which supports IPX-WAN may improve link setup time by skipping IPX-WAN when this option has been Ack'd in both directions. A summary of the IPX-Configuration-Complete 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 6 Length 2 Simpson expires in six months [Page 15] DRAFT PPP IPXCP October 1992 4. Telebit IPX header compression Telebit IPX header compression [5] reduces the size of the IPX headers to as few as five bytes. This can be a significant improvement on slow serial lines, particularly for interactive traffic. The IPX-Compression-Protocol Configuration Option is used to indicate the ability to receive compressed packets. Each end of the link must separately request this option if bi-directional compression is desired. The PPP Protocol field is set to the same value as the usual IPX packets, and all IPX packets sent over the link MUST conform to the compressed format. 4.1. Configuration Option Format A summary of the IPX-Compression-Protocol Configuration Option format to negotiate Telebit IPX header compression 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | IPX-Compression-Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max-Slot-Id | Options | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 3 Length 6 IPX-Compression-Protocol 0002 (hex) for Telebit Compressed IPX headers. Max-Slot-Id The Max-Slot-Id field is one octet and indicates the maximum slot identifier. This is one less than the actual number of slots; the slot identifier has values from zero to Max-Slot-Id. Simpson expires in six months [Page 16] DRAFT PPP IPXCP October 1992 Options The Options field is one octet, and is comprised of the "logical or" of the following values: 0 No options. 1 The slot identifer may be compressed. The slot identifier must not be compressed if there is no ability for the PPP link level to indicate an error in reception to the decompression module. Synchronization after errors depends on receiving a packet with the slot identifier. 2 A length field must be included. The length field MUST be included if there is no ability for the PPP link level to determine the amount of padding. It SHOULD NOT be included when there is no padding on the link, or the Self-Describing-Pad Configuration Option has been negotiated. Simpson expires in six months [Page 17] DRAFT PPP IPXCP October 1992 Security Considerations Security issues are not discussed in this memo. References [1] Simpson, W. A., "The Point-to-Point Protocol (PPP)", RFC 1331, May 1992. [2] Reynolds, J.K., Postel, J.B., "Assigned Numbers", RFC 1340, July 1992. [3] Novell Inc., "NetWare System Interface Technical Overview", Novell Part Number 883-001143-001 [4] Allen, M., "Novell IPX Over Various WAN Media", Novell Inc., June 1992. [5] Mathu, Saroop, Lewis, Mark, "Compressing IPX Headers Over WAN Media (CIPX)", September 1992. Acknowledgments Some of the text in this document is taken from previous documents produced by the Point-to-Point Protocol Working Group of the Internet Engineering Task Force (IETF). This document is derivative of drafts written by the following people. Many thanks for their work, and for taking an initial stab at the protocol: Michael Allen (mallen@novell.com) Dave McCool (dave@shiva.com) Robert D Vincent (bert@shiva.com) Marty Del Vecchio (marty@shiva.com) Chair's Address The working group can be contacted via the current chair: Brian Lloyd Lloyd & Associates 3420 Sudbury Road Cameron Park, California 95682 Simpson expires in six months [Page 18] DRAFT PPP IPXCP October 1992 Phone: (916) 676-1147 EMail: brian@lloyd.com Author's Address Questions about this memo can also be directed to: William Allen Simpson Daydreamer Computer Systems Consulting Services P O Box 6205 East Lansing, MI 48826-6205 EMail: Bill.Simpson@um.cc.umich.edu Simpson expires in six months [Page 19] DRAFT PPP IPXCP October 1992 Table of Contents 1. Introduction .......................................... 1 2. A PPP Network Control Protocol (NCP) for IPX .......... 2 2.1 Sending IPX Datagrams ........................... 3 2.2 IPX-WAN protocol ................................ 3 2.3 Co-existance with IPX-WAN ....................... 3 2.4 Required Configuration Parameters ............... 4 3. IPXCP Configuration Options ........................... 5 3.1 IPX-Network-Number .............................. 6 3.2 IPX-Node-Number ................................. 8 3.3 IPX-Compression-Protocol ........................ 10 3.4 IPX-Routing-Protocol ............................ 12 3.5 IPX-Router-Name ................................. 14 3.6 IPX-Configuration-Complete ...................... 15 4. Telebit IPX header compression ........................ 16 4.1 Configuration Option Format ..................... 16 SECURITY CONSIDERATIONS ................................... 18 REFERENCES ................................................... 18 ACKNOWLEDGEMENTS ............................................. 18 CHAIR'S ADDRESS .............................................. 18 AUTHOR'S ADDRESS ............................................. 19