RFC 3115

Mobile IP Vendor/Organization-Specific Extensions

๐Ÿ“… published April 2001, from ietf

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 (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 ๐Ÿซถ:

  1. 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 ๐Ÿงš.
  2. 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

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