RFC 2153
PPP Vendor Extensions
RFC 2153: PPP Vendor Extensions π
Okay bestie, let's start with the paperwork π This is RFC 2153, written by W. Simpson of DayDreamer in May 1997. It's Informational, so it's an FYI for the Internet community and not an official standard π«Ά It updates RFCs 1661 and 1962 β¨
Status of this Memo π
This document is for information only, so it's not specifying any kind of Internet standard πΈ Distribution of this memo is unlimited π¦
Abstract π
Okay, so the Point-to-Point Protocol (PPP) [1] is the standard way to shove multi-protocol datagrams across point-to-point links π It has an extensible Link Control Protocol (LCP) for setting up, configuring, and testing the data-link connection, plus a whole family of Network Control Protocols (NCPs) for setting up and configuring different network-layer protocols π
This document defines a general mechanism for proprietary vendor extensions π§ It's the vendor's own little secret menu, and it's giving main character energy π
Table of Contents
1. Control Packets ....................................... 1
1.1 Vendor Specific Packet .......................... 1
2. Configuration Options ................................. 3
2.1 Vendor-Specific Option .......................... 3
3. Organizationally Unique Identifiers ................... 4
SECURITY CONSIDERATIONS ...................................... 5
REFERENCES ................................................... 5
CONTACTS ..................................................... 6
1. Control Packets π¦
Okay so the Packet format and basic facilities are already defined for LCP [1] and the related NCPs π
The up-to-date values of the LCP Code field are in the latest "Assigned Numbers" [2] π This document is only about this one value:
0 Vendor Specific
1.1. Vendor Specific Packet π
Description
Some implementors might not need or want to publish their proprietary algorithms and attributes, and that's valid π This mechanism lets them specify all of that without making the IANA handle a pile of proprietary number requests π«Ά
Vendor Specific packets MAY be sent at any time, including before LCP has reached the Opened state β¨
Here's how the sender builds one: it transmits an LCP or NCP packet with the Code field set to 0 (Vendor Specific), the Identifier field set, the local Magic-Number (if any) inserted, the OUI and Kind fields set, and the Value(s) field filled with whatever data you want. Just don't go past the default MRU minus twelve π₯
When a Vendor Specific packet is received, that causes the RXR or RUC event. The response to a Vendor Specific packet is vendor specific π
If a Code-Reject comes back for the packet, that SHOULD generate the RXJ+ (permitted) event π
Rationale
This is defined as a general feature of all PPP Control Protocols, so vendors can't secretly self-assign Code numbers and cause future conflicts πΈ
Here's the summary of the Vendor Specific packet format. The fields go from left to right π
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Identifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Magic-Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OUI | Kind |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value(s) ...
+-+-+-+-+-+-+-+-+
Code
0 for Vendor Specific π§
Identifier
The Identifier field MUST be changed for every Vendor Specific packet you send π
Length
>= 12
When the Length is twelve, there's no Value(s) field π¦
Magic-Number
The Magic-Number field is four octets, and it helps detect links that are in the looped-back condition π Until the Magic-Number Configuration Option has been successfully negotiated, the Magic-Number MUST be transmitted as zero. See the Magic-Number Configuration Option for the full scoop π
OUI
Three octets: this is the vendor's Organizationally Unique Identifier π The bits within the octet are in canonical order, and the most significant octet is transmitted first π«
Kind
One octet. It indicates a sub-type for the OUI. There's no standardization for this field, so each OUI implements its own values π
The vendor is allowed to extend the Kind field to include zero or more octets of the Value(s) field β¨
Value(s)
Zero or more octets. The details are implementation specific π«Ά
2. Configuration Options βοΈ
Okay, so the Configuration Option format and basic options are already defined for LCP [1] πΈ
The up-to-date values of the LCP Option Type field are in the most recent "Assigned Numbers" [2] π This document is only about this one value:
0 Vendor-Specific
2.1. Vendor-Specific Option π¦
Description
Same energy as before: some implementors might not need or want to publish their proprietary algorithms and attributes, and this mechanism lets them specify those things without encumbering the IANA with proprietary number requests π
Before accepting this option, the implementation must verify that the Organizationally Unique Identifier and Kind specify a known mechanism, and that any vendor specific negotiation values are fully understood π
Rationale
This is defined as a general feature of all PPP Control Protocols, so vendors can't secretly self-assign Type numbers and cause future conflicts π
Here's the summary of the Vendor-Specific Configuration Option format. The fields go from left to right π
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | OUI
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
... | Kind | Value(s) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Type
0
Length
>= 6
When the Length is six, there's no Value(s) field π§
OUI
Three octets: this is the vendor's Organizationally Unique Identifier π The bits within the octet are in canonical order, and the most significant octet is transmitted first π«
Kind
One octet. It indicates a sub-type for the OUI. There's no standardization for this field, so each OUI implements its own values π
The vendor is allowed to extend the Kind field to include zero or more octets of the Value(s) field β¨
Value(s)
Zero or more octets. The details are implementation specific π«Ά
3. Organizationally Unique Identifiers πͺͺ
The three-octet Organizationally Unique Identifier (OUI) identifies the organization that administers the meaning of the message π This OUI is based on IEEE 802 vendor assignments πΈ
For IEEE contact details on getting an OUI, check [RFC-1700] π¬ Vendors that want to use their IEEE 802 OUI for PPP Vendor Extensions should also register the OUI with IANA π¦
Or, if a vendor doesn't otherwise need an IEEE-assigned OUI, they can request a PPP-specific OUI from IANA instead π That OUI shall be assigned from the 'CF0000' series. It has both the "locally-assigned" and "broadcast/multicast" bits set to 1. In other words, the least significant two bits of the most significant octet are both set to 1 π
Here's how it looks in memory, with bits transmitted right-to-left within octets and octets transmitted left-to-right π
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1 1 0 0 1 1 1 1|x x x x x x x x|x x x x x x x x|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Multicast
Local
Rationale
This is defined for vendors that can't use IEEE assignments, like software-only vendors π»
It's not clear how the IEEE assigns blocks. In some instances, the "locally-assigned" bit is known to have been used π€·ββοΈ
However, multicast has no meaning in PPP. Therefore, an IEEE-assigned OUI would have the multicast bit cleared to 0 π ββοΈ
The 'CF0000' series was arbitrarily chosen to match the PPP NLPID 'CF', as a matter of mnemonic convenience π§ β¨
Security Considerations π
Security issues are not discussed in this document π
References π
[1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD 51, RFC 1661, DayDreamer, July 1994.
[2] Reynolds, J.K., Postel, J.B., "Assigned Numbers", RFC-1700, July 1992.
Contacts π
Comments about this document should be discussed on the ietf-ppp@merit.edu mailing list π
This document was reviewed by the Point-to-Point Protocol Working Group of the Internet Engineering Task Force (IETF) π«Ά The working group can be contacted via the current chair:
- Karl Fox
- Ascend Communications
- 655 Metro Place South, Suite 379
- Dublin, Ohio 43017
karl@Ascend.com
Questions about this document can also be directed to:
- William Allen Simpson
- DayDreamer
- Computer Systems Consulting Services
- 1384 Fontaine
- Madison Heights, Michigan 48071
wsimpson@UMich.eduwsimpson@GreenDragon.com(preferred) π
π¦ where this page comes from
- ietf: rfc2153 1997-05
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms