RFC 3115
Mobile IP Vendor/Organization-Specific Extensions
Mobile IP Vendor/Organization-Specific Extensions ๐
Okay bestie, this is RFC 3115! ๐ It was written by G. Dommety and K. Leung, both from cisco Systems, and it's a Standards Track doc dated April 2001 โจ. It obsoletes RFC 3025 ๐ , and the RFC Editor Note explains why: the current implementations already follow the IANA assignments, so this one fixes the number mismatches. The title block doesn't list any updates, so I'm not making any up ๐.
Status of this Memo ๐
This document specifies an Internet standards track protocol for the Internet community, and it asks for discussion and suggestions for improvements ๐ซถ. Check the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited ๐ธ.
Copyright Notice ยฉ๏ธ
Copyright (C) The Internet Society (2001). All Rights Reserved. ๐
RFC Editor Note: ๐
Okay, the RFC Editor added this note to fix a mismatch ๐. RFC 3025 and IANA's repository didn't agree on the values for CVSE-TYPE-NUMBER and NVSE-TYPE-NUMBER:
CVSE-TYPE-NUMBER = 37 in RFC 3025
CVSE-TYPE-NUMBER = 38 in IANA (Under Mobile IP numbers)
NVSE-TYPE-NUMBER = 133 in RFC 3025
NVSE-TYPE-NUMBER = 134 in IANA (Under Mobile IP numbers)
This memo obsoletes RFC 3025, since the current implementations follow the IANA assignments ๐ฆ.
Abstract โจ
This document defines two new extensions to Mobile IP ๐. The goal is to help equipment vendors and organizations use them however they like, for research or deployment ๐ .
1. Introduction ๐ธ
Okay so the current Mobile IP spec [1] doesn't let organizations and vendors put their own organization or vendor-specific info into Mobile IP messages ๐ญ. Mobile IP is about to get deployed everywhere, so having Vendor or Organization-Specific Extensions to support this is kind of a must ๐. This document defines two extensions that vendors and organizations can use for their own purposes ๐ง.
1.1. Specification Language ๐
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [3]. Bestie, these are the official requirement words, so treat them seriously ๐ฅ.
Here are a few more words the spec uses to signal requirements ๐.
- silently discard: The implementation discards the datagram without further processing, and without indicating an error to the sender. The implementation SHOULD provide the capability of logging the error, including the contents of the discarded datagram, and SHOULD record the event in a statistics counter. โจ
2. Vendor/Organization Specific Extensions ๐ฆ
There are two of these: the Critical one (CVSE) and the Normal one (NVSE) ๐ . The big difference is what happens when they aren't recognized ๐ญ. If a Critical extension shows up and you don't recognize it, the message containing it MUST be silently discarded ๐ โโ๏ธ. If a Normal extension shows up and you don't recognize it, the extension SHOULD be ignored, but the rest of the extensions and message data MUST still be processed ๐ซถ. The other difference is the length field: the CVSE has a two-octet length field, and the NVSE has only one octet ๐.
2.1. Critical Vendor/Organization Specific Extension (CVSE) ๐
Here's what it looks like ๐ง:
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 | Reserved | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor/Org-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor-CVSE-Type | Vendor-CVSE-Value ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Critical Vendor/Organization Specific Extension
Here's what each field means ๐ :
- Type:
CVSE-TYPE-NUMBER 38๐ - Reserved: Reserved for future use. It MUST be set to 0 on sending, and it MUST be ignored on reception. ๐
- Length: The length in bytes of this extension, not including the Type and Length bytes. ๐
- Vendor/Org-ID: The high-order octet is 0, and the low-order 3 octets are the SMI Network Management Private Enterprise Code of the Vendor, in network byte order, as defined in the Assigned Numbers RFC [2]. ๐ท๏ธ
- Vendor-CVSE-Type: Tells you the particular type of Vendor-CVSE-Extension. The Vendor handles the administration of the Vendor-CVSE-Types ๐.
- Vendor-CVSE-Value: The vendor or organization's own data for this Vendor-CVSE-Extension. These data fields may be published in future RFCs ๐. The Vendor-CVSE-Value is zero or more octets, and you can work out its length from the Length field value ๐งฎ.
If an implementation doesn't recognize the CVSE, according to RFC 2002 [1], the entire packet is to be silently dropped ๐.
2.2. Normal Vendor/Organization Specific Extension (NVSE) ๐ธ
Here's the layout for this one ๐ง:
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 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor/Org-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor-NVSE-Type | Vendor-NVSE-Value ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Normal Vendor/Organization Specific Extension
And the fields ๐:
- Type:
NVSE-TYPE-NUMBER 134๐ - Length: The length in bytes of this extension, not including the Type and Length bytes. ๐
- Reserved: Reserved for future use. It's to be set to 0. ๐
- Vendor/Org-ID: The high-order octet is 0, and the low-order 3 octets are the SMI Network Management Private Enterprise Code of the Vendor, in network byte order, as defined in the Assigned Numbers RFC [2]. ๐ท๏ธ
- Vendor-NVSE-Type: Tells you the particular type of Vendor-NVSE-Extension. The Vendor handles the administration of the Vendor-NVSE-Types ๐.
- Vendor-NVSE-Value: The vendor or organization's own data for this Vendor-NVSE-Extension. These data fields may be published in future RFCs ๐. The Vendor-NVSE-Value is zero or more octets, and you can work out its length from the Length Field value ๐งฎ.
2.3 Vendor/Organization Specific Extensions Processing Considerations ๐ง
This part is about what to do when things go sideways ๐ญ.
If a Mobile IP entity gets a registration request message (or any other request or update message) with a CVSE-TYPE-NUMBER extension that it recognizes, but the extension has an unknown or unsupported vendor ID or Vendor-CVSE-Type, a registration reject (or the appropriate deny message) MUST be sent, with the error code showing that the registration was rejected because of an unknown CVSE ๐ โโ๏ธ.
If a Mobile IP entity gets a registration reply (or any other Mobile IP reply or acknowledgement message) with a CVSE-TYPE-NUMBER extension that it recognizes, but the extension has an unknown or unsupported vendor ID or Vendor-CVSE-Type, it's handled like this ๐ซถ:
- If the Mobile IP entity is a transit node for the reply (meaning this entity processes the registration reply and sends it on to another entity), a registration reject (or the appropriate deny message) MUST be sent, with the error code showing that the registration was rejected because of an unknown CVSE. For example, an FA that gets an unknown CVSE in a registration reply from the HA should send a registration reject to the MN ๐ง.
- If the Mobile IP entity is not a transit node for the reply, the reply is treated as a reject (or the appropriate deny message) because of the unknown CVSE ๐ .
If you're designing enhancements where a CVSE goes in a reply message, it's worth knowing that the reply could be discarded by whichever Mobile IP entity processes it ๐. Enhancements that include a CVSE should take that into account during design ๐.
If a Mobile IP entity gets a Mobile IP related message (registration request or reply, advertisement or solicitation, and so on) with an NVSE-TYPE-NUMBER extension that it recognizes, but the extension has an unknown or unsupported vendor ID or Vendor-NVSE-Type, the entire extension is skipped โจ.
NOTE that according to RFC 2002 [1], when an extension numbered within the range 0 through 127 is encountered in a registration message but not recognized, the message containing that extension MUST be silently discarded. This document is compliant with the above specification and specifies the action if the extension of type CVSE-TYPE-NUMBER is encountered and recognized, but does not support the vendor ID or the vendor type extension within. ๐จ
2.4 Error Codes ๐จ
These error codes are defined ๐งพ:
Registration denied by the Foreign agent:
ERROR-FA-1 100: Unsupported Vendor-ID or
unable to interpret Vendor-CVSE-Type in the CVSE sent by the
Mobile Node to the Foreign Agent.
ERROR-FA-2 101: Unsupported Vendor-ID or
unable to interpret Vendor-CVSE-Type in the CVSE sent by the
Home Agent to the Foreign Agent.
Registration denied by the Home agent:
ERROR-HA-1 140: Unsupported Vendor-ID or
unable to interpret Vendor-CVSE-Type in the CVSE sent by the
Mobile Node to the Home Agent.
ERROR-HA-2 141: Unsupported Vendor-ID or
unable to interpret Vendor-CVSE-Type in the CVSE sent by the
Foreign Agent to the Home Agent.
3. Restrictions ๐ง
You can put multiple TLVs with the types CVSE-TYPE-NUMBER and NVSE-TYPE-NUMBER in one message ๐. These TLVs can go anywhere after the fixed portion of the Mobile IP message ๐ฆ. They're expected to be protected by the corresponding authenticator as necessary ๐. Ordering of these TLVs should not be changed by intermediate nodes ๐ซถ.
4. IANA Considerations โจ
okay so bestie, this part is about the paperwork with IANA (the folks who keep the official lists of numbers for the internet) ๐๐ the CVSE and NVSE extensions from Section 2.1 and Section 2.2 are proposed new extensions to the Mobile IP protocol, which is defined in RFC 2002 [1] and extended in RFC 2356 [5] ๐ฆ
IANA has assigned a Type value of CVSE-TYPE-NUMBER for the Critical Vendor/Organization Specific Extension (CVSE), and a Type value of NVSE-TYPE-NUMBER for the Normal Vendor/Organization Specific Extension (NVSE) ๐ both numbers are taken from the numbering space defined for Mobile IP registration extensions [1] โจ
CVSE-TYPE-NUMBER (CVSE Type value, assigned by IANA)
NVSE-TYPE-NUMBER (NVSE Type value, assigned by IANA)
IANA has also assigned new Foreign Agent Error Codes, ERROR-FA-1 and ERROR-FA-2, taken from the numbering space defined for Mobile IP Foreign Agent error codes [1] ๐ธ and new Home Agent Error Codes, ERROR-HA-1 and ERROR-HA-2, taken from the numbering space defined for Mobile IP Home Agent error codes [1] ๐
ERROR-FA-1 (Foreign Agent error code)
ERROR-FA-2 (Foreign Agent error code)
ERROR-HA-1 (Home Agent error code)
ERROR-HA-2 (Home Agent error code)
5. Security Considerations ๐ฅ
okay, this one is super important bestie ๐ญ the document assumes that the Mobile IP messages are authenticated using a method defined by the Mobile IP protocol ๐ this document does not impose any additional requirements on Mobile IP messages from a security point of view ๐ so this is not expected to be a security issue ๐
6. Acknowledgments ๐ซถ
the authors would like to thank the TR45.4 WG, the TR45.6 WG, Basavaraj Patil, Phil Roberts, Jouni Malinen, and Patrice Calhoun for their useful discussions ๐ so iconic of them ๐ง
7. References ๐
[1] Perkins, C., "IP Mobility Support", RFC 2002, October 1996. ๐ฆ
[2] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC 1700, October 1994. ๐
[3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. ๐
[4] Montenegro, G., "Reverse Tunneling for Mobile IP", RFC 2344, May 1998. โจ
[5] Montenegro, G. and V. Gupta, "Sun's SKIP Firewall Traversal for Mobile IP", RFC 2356, June 1998. ๐
8. Authors' Addresses ๐
Gopal Dommety
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134
EMail: gdommety@cisco.com
Kent Leung
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134
EMail: kleung@cisco.com
9. Full Copyright Statement โ๏ธ
Copyright (C) The Internet Society (2001). All Rights Reserved. ๐ธ
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. ๐
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. ๐ฆ
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ๐
Acknowledgement ๐
Funding for the RFC Editor function is currently provided by the Internet Society. ๐ซถ
๐ฆ where this page comes from
- ietf: rfc3115 2001-04
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms