Internet Code Point (ICP) Assignments for NSAP Addresses
Extracted elements (20)
No previous RFC had ever formalized an IPv4 ICP assignment, possibly due to the lack of a defined IANA assignment policy for ICP values under AFI '35'. This document formalizes ICP '1' for IPv4, consistent with what ITU-T X.213 had assumed.
RFC 1888 was declared Historic partly because the ITU-T specification (X.213) that originally assigned AFI '35' to IANA was not freely publicized or incorporated into an RFC, leading to errors in section 6 of RFC 1888. This document corrects those errors and formally documents the ITU-T assignment rationale.
The alignment of IPv4 and IPv6 addresses within the NSAPA DSP is noted as an artifact of existing NSAPA usage rather than a deliberate design choice.
A possible use of IPv4/IPv6 encoding in NSAPA is to express IP addresses within the ATM Forum address format, or to allow CLNP packets encapsulating IP packets to be routed in a CLNP network using IP address prefixes.
This document partially replaces RFC 1888 section 6, correcting errors in the IPv6 ICP assignment. Other documents that referenced the IPv6 ICP assignment from RFC 1888 should use this document instead.
IANA SHOULD NOT assign an ICP value unless there is a corresponding defined and published format for the DSP at the time of the code point assignment.
If an NSAP address using IPv4 encoding is used for routing in an IPv4 routing architecture, only the 4-octet IPv4 address MAY be considered.
If an NSAP address using IPv6 encoding is used for routing in an IPv6 routing architecture, only the 16-octet IPv6 address MAY be considered.
If NSAP-addressed IPv4 contents are passed to a higher layer, the last 13 octets of the DSP SHOULD be presented to the higher layer as well.
If NSAP-addressed IPv6 contents are passed to a higher layer, the last (selector) octet SHOULD be presented to the higher layer as well.
Remaining ICP decimal values '2' through '9999' MUST be assigned on an IETF consensus basis per RFC 2434.
The two-octet IDI encodes an Internet Code Point (ICP) that MUST be in the decimal range from '0' to '9999', due to the BCD encoding of the IDI field under AFI '35'.
When embedding an IPv4 address in a 20-octet NSAP address, the format defined in section 3.1 MUST be used. The 13 trailing unspecified DSP octets MUST be present but have no intrinsic significance for IPv4.
When embedding an IPv6 address in a 20-octet NSAP address, the format defined in section 3.2 MUST be used. The final selector octet MUST be present but has no intrinsic significance for IPv6; its default value is zero.
An NSAP address (NSAPA) is a 20-octet structure consisting of an Initial Domain Part (IDP) and Domain Specific Part (DSP). The IDP contains a 1-octet AFI and a 2-octet IDI encoded in BCD format. Under AFI '35', the IDI holds the ICP value; the remaining 17 octets form the DSP.
The selector octet (last octet of the DSP in IPv6 NSAPA encoding) can be used to specify one of 255 possible port numbers or other application-specific values, with a default of zero.
IANA is the assignment authority for AFI '35' (binary encoding). ICP value '0' is assigned for IPv6 address encoding and ICP value '1' for IPv4 address encoding in NSAPAs. Remaining values '2' through '9999' are available for future assignment.
The NSAP encoding of IPv4 and IPv6 addresses is compatible with the corresponding security mechanisms of RFC 4301 (IPsec Security Architecture). This document introduces no new security exposure in the Internet.
IPv4 address encoding in a 20-octet NSAPA uses AFI=0x35, ICP=0001 (BCD) in the first 3 octets, followed by the 4-octet IPv4 address at octets 3-6 of the DSP, and 13 unspecified trailing octets (default zero) in the remainder of the DSP.
IPv6 address encoding in a 20-octet NSAPA uses AFI=0x35, ICP=0000 (BCD) in the first 3 octets, followed by the 16-octet IPv6 address in DSP octets 0-15, and a 1-octet selector in the final (20th) octet of the DSP.