Network Working Group P. Tsuchiya INTERNET-DRAFT Bellcore November 1992 Pip Identifiers Status of this Memo This document is an Internet Draft. Internet Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet Drafts). Internet Drafts are draft documents valid for a maximum of six months. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a "working draft" or "work in progress." Please check the I-D abstract listing contained in each Internet Draft directory to learn the current status of this or any other Internet Draft. Abstract Pip is an internet protocol intended as the replacement for IP version 4. The Pip header defines source and destination ID fields whose function it is to only identify the source and destination of a Pip packet--they have no routing significance. While Pip systems treat the IDs as flat for the purpose of identification, it is useful to have hierarchical structure in the ID for other purposes, such as for doing a reverse DNS lookup on the ID. This internet-draft defines the structure of Pip IDs. Acknowledgements I want to thank John Curren and Bob Smart for their observations on the need for administrative structure in Pip IDs that led to this draft. Pip WG, Expires May 1, 1993 [Page 1] INTERNET-DRAFT Pip Identifiers November 1992 1. Introduction Pip is an internet protocol intended as the replacement for IP ver- sion 4. The Pip header defines source and destination ID fields whose function, in the context of processing Pip headers, is to only identify the source and destination of a Pip packet--they have no routing significance. While Pip systems treat the IDs as flat for the purpose of identification, it is useful to have hierarchical structure in the ID for other purposes, such as for doing a reverse DNS lookup on the ID. This internet-draft defines the structure of Pip IDs. Pip IDs have the following characteristics: 1. They are globally unique binary strings 8 octets in length. 2. They are hierarchically structured. 3. Each component of the hierarchy is contiguous, and each hierarchical component is adjacent to its parent and child com- ponents. 4. The hierarchical structure is self-describing. That is, the hierarchical structure can be determined by examination of the ID alone. 5. Pip IDs may be used for group identification, but such a Pip ID is not self-describing as being a group Pip ID. 6. Certain Pip IDs are well-known and have local meaning, such as "all routers on the subnet" and "this host". Pip IDs are formed by a hierarchy of number authorities, each of which is responsible for assigning the next lower level of the hierarchy. While it is the intent that the hierarchical structure of Pip IDs follow administrative hierarchy (versus, for instance, topo- logical hierarchy), it is up to each number authority to determine how the next level is assigned. The top-level number authority for Pip IDs is the Internet Assigned Number Authority (IANA). Pip WG, Expires May 1, 1993 [Page 2] INTERNET-DRAFT Pip Identifiers November 1992 2. Pip ID structure Semantically, the Pip ID is a series of integers, with each integer being hierarchically above the following one. For instance, the Pip ID 12.96.4993.5 has four levels of hierarchy. The IANA assigned the top-level (12). The number authority represented by the top-level number 12 assigned the following level (96), and so on. The encoding of a Pip ID is similar to (but not the same as) that of the Object Identifier encoding in ASN.1. That is, it is encoded as a series of (eight) octets, with the first bit of each octet indicating whether the next octet is part of the same integer or a new integer. If the first bit of the octet is 0, then it is the last octet of the integer. If the first bit of the octet is 1, then the following octet is part of the same integer. For instance, the integer 127 is encoded as 01111111. The integer 128, however, is encoded as 10000001 00000000. The leading 1 in the first octet indicates that the next octet is part of the same integer. The leading 0 is the second octet indicates that it is the final octet of the integer. The value 128 comes from concatinating the seven least significant bits from each of the two octets. In encoded form, all Pip IDs are padded out to the full 8 octets. The pad octets consist of the value 10000000. This is how the Pip ID encoding differs from the ASN.1 Object Identifier encoding. In the ASN.1 encoding, an octet of 1000 0000 is illegal, because it represents a "wasted" octet in the case where the string of octets is variable length. As another example, consider the Pip ID 12.96.4993.5. It is encoded as: 12 00001100 96 01100000 4993 10100111 00000001 5 00000101 pad 10000000 10000000 10000000 The 12 and 96 take up one octet each. The 4993 is greater than 127 (largest 7-bit integer), but smaller than 16383 (largest 14-bit integer), so it requires 2 octets. The 5 is the final digit. The remaining 3 octets are padded with 10000000. Pip WG, Expires May 1, 1993 [Page 3] INTERNET-DRAFT Pip Identifiers November 1992 3. Pip ID Assignments The following Pip ID assignments exist: 3.1. IP Address An IP address can be used to create a Pip ID. Thus, anybody with an IP address can use it to form a globally unique Pip ID. The two for- mats for a Pip ID formed from an IP address are: 1.net.subnetHost.x 1.netSubnetHost.x where the lowest level (x) is optional. All two formats have a top- level (IANA-assigned) integer of value 1. This is followed by the two ways shown above to transform the IP address into the Pip ID. After this comes any additional levels of hierarchy that the number authority represented by the IP address wishes to append. The first format has at least 3 hierarchy levels. The network number is the second, and the subnet and host field combined (what was ori- ginally called the Host field, before subnetting was invented) is the last level. The second format has at least 2 hierarchy levels. The second level is a single integer formed from the 32-bit IP address. Thus, the IP address 129.47.233.181, with subnet mask 255.255.255.192 can form at least the following two Pip IDs: Decimal dot notation Pip ID encoding (hex) -------------------- --------------- 1.33071.59829 01 82 82 2f 83 d3 35 80 1.2167400885 01 88 89 bf d3 b5 80 80 Each of these IP-generated Pip IDs represents a different Pip ID. The first Pip ID (1.33071.59829) has one octet of "padding" (the second to the last octet, x80). Thus, the owner of this IP address could append one additional level of hierarchy to form up to 127 additional Pip IDs (1.33071.59829.0 through 1.33071.59829.127). Note that the Pip ID 1.33071.59829.0 is different from the Pip ID 1.33071.59829. The former has encoding 01 82 82 2f 87 26 35 80 while the latter has encoding 01 82 82 2f 87 26 35 00. Note: This form of ID is ugly in that the IP address is not Pip WG, Expires May 1, 1993 [Page 4] INTERNET-DRAFT Pip Identifiers November 1992 easily extracted from the ID. Another possible form is to pick a unique value for the first 4 octets, and simply encode the full 32 bits of IP address in the last four octets of the ID. The disad- vantage of this form is that it breaks the rules of the ASN.1-like notation of the ID. 3.2. IEEE 802 Address An IEEE 802 address can be used to create a Pip ID. Thus, anybody with an IEEE 802 address can use it to form a globally unique Pip ID. The format for an IEEE 802 Pip ID is: 2.IEEE802address The top-level integer is value "2". The remainder of the Pip ID is a single IEEE 802 address. Since the IEEE 802 address is 48 bits in length, and since the remaining 7 octets only encode 49 bits, there is no room for a third level of hierarchy. 3.3. Flat Well-Known IDs There are any number of uses for identifying systems of a certain type, rather than specific systems. For instance, an ID for "all routers on the LAN" is useful for router discovery. This specifica- tion defines the following well-known Pip IDs. These well-known Pip IDs consist of a single hierarchy level (the top-level), but are so large that only one level of hierarchy is possible. Any Router Decimal dot notation = 2^56-1 Pip ID encoding = ff ff ff ff ff ff ff fe Any Host Decimal dot notation = 2^56-2 Pip ID encoding = ff ff ff ff ff ff ff fd Any System Decimal dot notation = 2^56-3 Pip WG, Expires May 1, 1993 [Page 5] INTERNET-DRAFT Pip Identifiers November 1992 Pip ID encoding = ff ff ff ff ff ff ff fc The above three well-known Pip IDs serve for functions such as "all routers on a subnet", for instance in configuration algorithms such as router discovery. Other well-known Pip IDs are expected to be defined in the future. 3.4. Country Codes While it is probably adequate to assign top-level Pip ID numbers directly to organizations, there may be good reasons to assign them to countries. One reason is that it reduces the administrative bur- den on IANA for assigning top-level numbers to every possible organi- zation. Another reason is that the number of organizations in the world may be large enough that a layer of hierarchy above the organi- zation is needed for such purposes as ID-to-name directory service lookups. Therefore, this specification has reserved a block of numbers for country codes. The actual number values have not yet been assigned. A consideration in assigning these numbers is whether the number takes up one octet or two octets. A one octet number leaves more room for further assignment, and is therefore more desirable. How- ever, there are enough countries that not all of them can have a one-octet top-level number (ISO 3166 lists 235 countries). A reasonable approach to assigning these numbers, however, would be to assign one-octet values to those countries with the largest Gross National Produce (GNP) or population. CCITT assigns 1 or 2-digit E.164 country codes to 47 countries (and 3-digit country codes to the remaining countries), so it is probably reasonable to give the 47 or so countries with the highest GNPs one-octet country codes, and assign 2-octet codes to the remaining countries. (The 8 most popu- lous nations are among the 40 nations with highest GNP.) Therefore, this standard tentatively reserves top-level numbers 80 - 127 for those countries with the highest GNPs, and 128 - 316 for the remaining countries. Pip WG, Expires May 1, 1993 [Page 6] INTERNET-DRAFT Pip Identifiers November 1992 3.5. CCITT and ISO assignments The following top-level numbers are assigned to CCITT and ISO: CCITT 10 ISO 11 Joint CCITT/ISO 12 4. Summary of Top-Level Pip ID Numbers 0 Reserved 1 IP 2 IEEE 802 3 to 9 Reserved 10 CCITT 11 ISO 12 Joint CCITT/ISO 13 to 79 Reserved 80 to 316 Country Codes 317 to 2^56-4 Reserved 2^56-3 to 2^56-1 Well-known IDs Pip WG, Expires May 1, 1993 [Page 7]