RFC 1362
Novell IPX over Various WAN Media (IPXWAN)
RFC 1362: Novell IPX Over Various WAN Media (IPXWAN) π
okay bestie, this is RFC 1362 and the title is "Novell IPX Over Various WAN Media (IPXWAN)" π M. Allen wrote it at Novell, Inc. in September 1992. The status is informational, which you'll see in the next part π¦ The title block doesn't list anything it obsoletes or updates β¨
Status of This Memo π
okay so this memo provides information for the Internet community π«Ά It does not specify an Internet standard, so it's useful info, not an official standard. Distribution of this memo is unlimited, so share it with everyone π
Abstract π¦
so basically this doc explains how Novell IPX runs over all kinds of WAN media π The main star is the common "IPX WAN" protocol. Novell routers use it to swap the router-to-router info they need before they start trading regular IPX routing info and traffic over WAN datalinks β¨
Table of Contents π
1. Introduction ................................................. 1
1.1. Operation Over PPP .......................................... 2
1.2. Operation Over X.25 Switched Virtual Circuits ............... 2
1.3. Operation Over X.25 Permanent Virtual Circuits .............. 2
1.4. Operation Over Frame Relay .................................. 3
1.5. Operation Over Other WAN Media .............................. 3
2. Glossary Of Terms ............................................ 3
3. IPX WAN Protocol Description ................................. 4
4. Information Exchange Packet Formats .......................... 5
4.1. Timer Request Packet ........................................ 6
4.2. Timer Response Packet ....................................... 8
4.3. Information Request Packet .................................. 10
4.4. Information Response Packet ................................. 12
5. References ................................................... 12
6. Security Considerations ...................................... 13
7. Author's Address.............................................. 13
1. Introduction β¨
okay so this doc is all about how Novell IPX works over different WAN media πΈ The big goal is that IPX treats ALL wide area links the same way, which is giving consistency π Sections 3 and 4 are where the common "IPX WAN" protocol lives.
IPX WAN protocol operation kicks off right after link establishment β IPX is a connectionless datagram protocol, but WANs are often connection-oriented, so they don't play by the same rules π Different WANs also have different ways of setting up a link. The subsections of section 1 explain what link establishment means to IPX for each medium. They also cover other media-specific stuff like protocol identification, frame encapsulation, and link tear down π§
1.1 Operation Over PPP π
IPX uses PPP [1] when it's running over point-to-point synchronous and asynchronous networks π
With PPP, link establishment means the IPX NCP [4] reaches the Open state β¨ NetWare IPX rejects all NCP options and uses normal frame encapsulation as defined by PPP π«Ά The IPXWAN protocol MUST NOT occur until the IPX NCP reaches the Open state, so don't skip that step π
PPP lets either side of a connection stop forwarding IPX if one end sends an IPXCP or an LCP Terminate-Request π When a router detects this, it immediately reflects the lost connectivity in its routing information database instead of waiting to naturally age it out π
1.2 Operation over X.25 Switched Virtual Circuits π¦
with X.25, link establishment means successfully opening an X.25 virtual circuit π As specified in RFC-1356, "Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode" [2], the protocol identifier 0x800000008137 goes in the X.25 Call User Data field of the Call Request frame. That's how the virtual circuit says it's devoted to IPX π
Also, each IPX packet is encapsulated directly in X.25 data frame sequences with no extra framing π
Either side of the virtual circuit can close it, which tears down the IPX link π When a router detects this, it immediately reflects the lost connectivity in its routing information database instead of naturally aging it out π
1.3 Operation over X.25 Permanent Virtual Circuits π·
the thing about X.25 PVCs is that no call request is made π§ When the router is informed that X.25 Layer 2 is up, the router should assume that link establishment is complete.
Each IPX packet is encapsulated in an X.25 data frame sequence with no additional framing. Novell IPX assumes a particular X.25 permanent circuit is devoted to the use of IPX π«Ά
If a router receives a layer 2 error condition (e.g., X.25 Restart), it should reflect lost connectivity for the permanent circuits in its routing information database. Then it should re-perform the necessary steps to get a full IPX connection back π₯
1.4 Operation over Frame Relay π
Novell conforms to RFC-1294, "Multiprotocol Interconnect over Frame Relay" [3], for frame relay service and packet encapsulation π Right now though, Novell hasn't stabilized how it treats frame relay connections. It's unclear whether they're treated as LANs or WANs π€·ββοΈ
1.5 Operation over other WAN media π
more WAN media will get added here as specifications are developed π
2. Glossary Of Terms π
Primary Network Number:
Every IPX WAN router has a "primary network number" π This is an IPX network number that's unique to the entire internet. It's a permanently assigned network number for the router π If you're familiar with NetWare 3.x servers, this is the "Internal" network number π§
Router Name:
Every IPX WAN router must have a "Router Name" π It's a symbolic name given to the router, and its purpose is to let routers know who they're connected to after link establishment, especially for network management π¦ A symbolic name tells an operator way more than a set of numbers does β¨ The symbolic name should be between 1 and 47 characters long and contain the characters 'A' through 'Z', underscore (_), hyphen (-) and "at" sign (@). The string should be followed by a null character (a byte of zero) and then padded to 48 characters using that null character π If you're familiar with NetWare 3.x servers, the file server name is the Router Name π
4.1 Timer Request Packet β¨
+---------------------------------------------------------------+
| Checksum | FF FF | Always FFFF |
| Packet Length | 02 40 | Max IPX size (576 bytes|
| | | Hi Lo order) |
| Trans Control | 00 | Hops traversed |
| Packet Type | 04 | Packet Exchange Packet |
| Dest Net # | 00 00 00 00 | Local Network |
| Dest Node # | FF FF FF FF FF FF | Broadcast |
| Dest Socket # | 90 04 | Reserved WAN socket |
| Source Net # | 00 00 00 00 | Local Network |
| Source Node # | 00 00 00 00 00 00 | Set to zero |
| Source Socket # | 90 04 | Reserved WAN socket |
|------------------+-------------------+------------------------|
| WIdentifier | 57 41 53 4D | Confidence identifier |
| WPacket Type | 00 | Timer Request |
| WNode ID | xx xx xx xx | Primary Net # of |
| | | sending router |
| | | (Hi Lo order) |
| WSequence # | xx | Sequence start at 0 |
| WNum Options | 02 | 2 Options follow |
| WOption Number | 00 | Define Routing Type |
| WAccept Option | 01 | 0=No,1=Yes,3=Not Applic|
| WOption Data Len | 00 01 | Option length (Hi Lo) |
| WOption Data | 00 | IPX RIP/SAP Routing |
| WOption Number | FF | Pad option |
| WAccept Option | 01 | 0=No,1=Yes,3=Not Applic|
| WOption Data Len | 02 0E | Pad data length (Hi Lo)|
| WOption Data | 00->FF's | Repeated sequence of 00|
| | | through FF's. |
+---------------------------------------------------------------+
Okay bestie, the note π«Ά: Timer Request packets will always be 576 bytes π¦, but there should be no assumption made about the number of options specified in this packet π.
After link establishment, both sides of the link send Timer Request packets π. Each end starts their sequence number at zero π’, and subsequent retries (every 20 seconds) bump that sequence number up. Only a Timer Response packet with a sequence number matching the last one you sent gets acted upon π―, so no mixing things up!
When you receive this packet, compare the WNode ID to your Primary Network #. If the WNode ID is larger than yours, a Timer Response packet should be sent and you become the link "Slave" π (main character energy, iykyk).
Packets received on the reserved socket number that don't have the WIdentifier set to the hexadecimal values noted above should be discarded ποΈ. Not me throwing away anything that doesn't match π.
Routing Type Option β¨
A routing type of zero (0) is the minimum interoperability requirement, as defined by this document π§. A router ready to send a Timer Response (and receiving a routing type of zero) MUST respond with a routing type of zero. A router ready to send a Timer Response (and receiving routing types not matching a supported value) SHOULD respond with a Routing Type of zero, indicating support for the minimum common protocol π.
Note that multiple Routing Type Options can be included in the Timer Request packet if the router supports multiple routing methods for IPX π. The included Router Types MUST include and support this type zero option.
Accept Option (for Routing Type and PAD options) π
This field MUST be set to YES if the option is supported, and NO if it isn't. A Timer Response MUST respond with ONLY one Router Type set to YES π, so only one winner!
PAD Option π
This option will normally be the last entry in the packet π. Its sole purpose is to fill the IPX packet to be 576 bytes π¦. The pad option data will contain a repeating sequence of zero's through 0xFF's πΈ. This should stop compression modems from collapsing the packet and destroying the link delay calculation π.
Currently Assigned WOption Numbers (Timer Request Packet):
Routing Type Option = 0x00; Option Length = 0001
Current option data values:
0 Novell RIP/SAP routing with network
number assigned to the link.
PAD Type Option = 0xFF; Option Length = Variable
Compression Option = 0x80; Option Length = Variable
(length dependent on compression type)
Current option data values:
Byte 1 Compression type
0 = Telebit compression (length=3) [6]
Telebit Byte 2 - Compression options
Telebit Byte 3 - Number compression slots
4.2. Timer Response Packet π¦
+---------------------------------------------------------------+
| Checksum | FF FF | Always FFFF |
| Packet Length | 02 40 | Max IPX size (576 bytes|
| | | Hi Lo order) |
| Trans Control | 00 | Hops traversed |
| Packet Type | 04 | Packet Exchange Packet |
| Dest Net # | 00 00 00 00 | Local Network |
| Dest Node # | FF FF FF FF FF FF | Broadcast |
| Dest Socket # | 90 04 | Reserved WAN socket |
| Source Net # | 00 00 00 00 | Local Network |
| Source Node # | 00 00 00 00 00 00 | Set to zero |
| Source Socket # | 90 04 | Reserved WAN socket |
|------------------+-------------------+------------------------|
| WIdentifier | 57 41 53 4D | Confidence identifier |
| WPacket Type | 01 | Timer Response |
| WNode ID | xx xx xx xx | Primary Net # of |
| | | sending router |
| | | (Hi Lo order) |
| WSequence # | xx | Same as Timer Request |
| | | received |
| WNum Options | 02 | 2 Options follow |
| WOption Number | 00 | Define Routing Type |
| WAccept Option | 01 | 0=No,1=Yes,3=Not Applic|
| WOption Data Len | 00 01 | Option length (Hi Lo) |
| WOption Data | 00 | IPX RIP/SAP Routing |
| | | (Minimum interoperating|
| | | requirement). Others |
| | | may be defined by at a |
| | | later date by Novell |
| WOption Number | FF | Pad option |
| WAccept Option | 01 | 0=No,1=Yes,3=Not Applic|
| WOption Data Len | 02 0E | Pad data length (Hi Lo)|
| WOption Data | 00->FF's | Repeated sequence of 00|
| | | through FF's to stop |
| | | compression modems |
| | | doing any compression |
| | | for link delay calc. |
+---------------------------------------------------------------+
The responses in this packet are the same as the ones described in section 4.1 π. Any unknown options or not supported options from the Timer Request should have the WAccept Option set to NO π ββοΈ.
If the Timer Request packet contained more than one Router Type option and the "Slave" supports all the options, the "Slave" should set the WAccept Option to NO on all Router Types except the Routing Type that's getting adopted π. The "Master" of the link will then adopt the routing option marked YES and finish the information exchanges using that routing standard π«Ά.
This packet should contain the same sequence number as the received Timer Request π. This packet should ONLY be sent by the router that determined itself to be the "Slave" of the link π .
Currently Assigned WOption Numbers (Timer Response Packet):
Routing Type Option = 0x00; Option Length = 0001
Current option data values:
0 Novell RIP/SAP routing with network
number assigned to the link.
PAD Type Option = 0xFF; Option Length = Variable
Compression Option = 0x80; Option Length = Variable
(length dependant on compression type)
Current option data values:
Byte 1 Compression type
0 = Telebit compression (length=3) [6]
Telebit Byte 2 - Compression options
Telebit Byte 3 - Number compression slots
4.3. RIP/SAP Information Request Packet (Router Type=0 Only) π§
+---------------------------------------------------------------+
| Checksum | FF FF | Always FFFF |
| Packet Length | 00 63 | Size of header+data |
| | | (Hi Lo order) |
| Trans Control | 00 | Hops traversed |
| Packet Type | 04 | Packet Exchange Packet |
| Dest Net # | 00 00 00 00 | Local Network |
| Dest Node # | FF FF FF FF FF FF | Broadcast |
| Dest Socket # | 90 04 | Reserved WAN socket |
| Source Net # | 00 00 00 00 | Local Network |
| Source Node # | 00 00 00 00 00 00 | Set to zero |
| Source Socket # | 90 04 | Reserved WAN socket |
|------------------+-------------------+------------------------|
| WIdentifier | 57 41 53 4D | Confidence identifier |
| WPacket Type | 02 | Information Request |
| WNode ID | xx xx xx xx | Primary Net # of |
| | | sending router |
| | | (Hi Lo order) |
| WSequence # | 00 | Sequence start at 0 |
| WNum Options | 01 | 1 Option to follow |
| WOption Number | 01 | Define IPX RIP/SAP |
| | | info exchange |
| WAccept Option | 01 | 0=No,1=Yes,3=Not Applic|
| WOption Data Len | 00 36 | Option length (Hi Lo) |
| WOption Data | | |
| Link Delay | xx xx | Hi Lo link delay in |
| | | milli seconds (see |
| | | below for calculation) |
| Common Net # | xx xx xx xx | Hi Lo Common Network # |
| Router Name | xx (x 48 decimal) | Router name - as defned|
| | | in section 2. |
+---------------------------------------------------------------+
Okay so link delay is basically the timing trick that keeps everyone's sessions from timing out on a slow line π’π Here's how it gets worked out:
// Start_time is a time stamp when Timer Request sent out
// End_time is a time stamp when a Timer Response is
// received.
link_delay = end_time - start_time; // 1/18th second
// We are on a slow net, so add some biasing to help stop
// multiple workstation sessions timing out on the link
if (link_delay < 1)
{
link_delay = 1;
}/*IF*/
link_delay *= 6; // Add the biasing
link_delay *= 55; // Convert link delay to milliseconds
So the "Link Delay" β¨ is what goes into the network transport time field of the IPX RIP packet tuple for the Common Net # entry π. For a consistent network, a common link delay is required at both ends of the link, and the link Master is the one who calculates it π.
The Common Net # also comes from the link Master πΈ. This number must be unique across the connected internetwork, and every WAN call needs its own number, so no sharing allowed bestie π ββοΈ
Right now only one option is defined for the "Information Request" packet when Routing Type=0 π§
4.4. RIP/SAP Information Response Packet (Router Type=0 Only) π
Here's the response packet layout, and yes it's a whole vibe π
+---------------------------------------------------------------+
| Checksum | FF FF | Always FFFF |
| Packet Length | 00 63 | Size of header+data |
| | | (Hi Lo Order) |
| Trans Control | 00 | Hops traversed |
| Packet Type | 04 | Packet Exchange Packet |
| Dest Net # | 00 00 00 00 | Local Network |
| Dest Node # | FF FF FF FF FF FF | Broadcast |
| Dest Socket # | 90 04 | Reserved WAN socket |
| Source Net # | 00 00 00 00 | Local Network |
| Source Node # | 00 00 00 00 00 00 | Set to zero |
| Source Socket # | 90 04 | Reserved WAN socket |
|------------------+-------------------+------------------------|
| WIdentifier | 57 41 53 4D | Confidence identifier |
| WPacket Type | 03 | Information Response |
| WNode ID | xx xx xx xx | Primary Net # of |
| | | sending router |
| | | (Hi Lo order) |
| WSequence # | 00 | Sequence start at 0 |
| WNum Options | 01 | 1 Option to follow |
| WOption Number | 01 | Define IPX RIP/SAP |
| | | info exchange |
| WAccept Option | 01 | 0=No,1=Yes,3=Not Applic|
| WOption Data Len | 00 36 | Option length (Hi Lo) |
| WOption Data | | |
| Link Delay | xx xx | Hi Lo link delay (as |
| | | received in Info Requ) |
| Common Net # | xx xx xx xx | Hi Lo Common Network # |
| | | (as received in Info |
| | | request) |
| Router Name | xx (x 48 decimal) | Router name - as defned|
| | | in section 2. |
+---------------------------------------------------------------+
The responses inside this packet work the same way as in section 4.3 π¦
5. References π
- [1] Simpson, W., "The Point-to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point-to-Point Links", RFC 1331, May 1992.
- [2] Malis, A., Robinson, D., and R. Ullman, "Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode", RFC 1356, August 1992.
- [3] Bradley, T., Brown, C., and A. Malis, "Multiprotocol Interconnect over Frame Relay", RFC 1294, January 1992.
- [4] Simpson, W., "The PPP Internetwork Packet Exchange Control Protocol (IPXCP) Compromise Version", Work in Progress.
- [5] Novell IPX Router Specification. Novell Part Number 107-000029-001. (Note: Currently, this document is only available as part of a Novell developers program as part of an SDK. Novell Labs, Provo (UT) should be able to provide more information on this document.)
- [6] Lewis, M., Telebit Corp. "IPX Header Compression based on Van Jacobson Header Compression for TCP/IP", Work in Progress, contact: (mlewis@telebit.com).
6. Security Considerations π
Security issues are not discussed in this memo π
7. Author's Address ποΈ
Michael Allen
Novell, Inc.
2180 Fortune Drive
San Jose, CA 95131
EMail: MALLEN@NOVELL.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
EMail: brian@ray.lloyd.com
Phone: (916) 676-1147
That's the whole spec, bestie ππ You made it!
π¦ where this page comes from
- ietf: rfc1362 1992-09
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms