HostNumbers.mesa
Copyright Ó 1980, 1981, 1986, 1991 by Xerox Corporation. All rights reserved.
(last edited by: DXG on: 26-Sep-84 2:28:43)
Bill Jackson (bj) October 14, 1986 6:04:10 pm PDT
Doug Wyatt, December 10, 1986 9:31:13 pm PST
HostNumbers: CEDAR DEFINITIONS = BEGIN
Host numbers are unique numbers used for several different purposes. One is for Ethernet addresses; these must conform to the size and allocation policy layed down in the Ethernet specification. Another is to construct universal object identifiers within Pilot-based OIS and other compatible systems. While many Ethernet stations will not care to generate Pilot-compatible universal ids and not all Pilot-based systems will be Ethernet stations, it is nevertheless convenient to a single implementation of such a "serial number".
The Ethernet specification divides the space of station addresses into two categories:
physical addresses, in one-to-one correspondence with actual stations
multicast addresses, each corresponding to a logical group of stations.
A processor may use its own physical host number concatenated with a sequence number or timestamp to construct a universal object identifier.
Programs should not make any assumptions about the structure of host numbers other than the IsProcessorID/IsMulticastID distinction defined below (such as attempting to correlate processor types with groups of host numbers).
Host numbers
HostNumber: TYPE = MACHINE DEPENDENT RECORD [a, b, c, d, e, f: BYTE];
nullHostNumber: HostNumber = [0, 0, 0, 0, 0, 0];
Not assigned as either a physical or multicast address.
Processor identifiers (physical addresses)
ProcessorID:
TYPE =
RECORD [HostNumber];
A processor identifier p MUST have p.a even:
IsProcessorID:
PROC [hn:
LONG
POINTER
TO HostNumber]
RETURNS [
BOOL]
= TRUSTED INLINE {RETURN[hn.a MOD 2=0]};
nullProcessorID: ProcessorID = [nullHostNumber];
Multicast identifiers (multicast group addresses)
MulticastID:
TYPE =
RECORD [HostNumber];
A multicast identifier m must have m.a odd:
IsMulticastID:
PROC [hn:
LONG
POINTER
TO HostNumber]
RETURNS[
BOOL] =
TRUSTED INLINE {RETURN[hn.a MOD 2#0]};
broadcastHostNumber: HostNumber = [255, 255, 255, 255, 255, 255];
A special multicast address used for broadcasting messages.
END.
LOG
December 1, 1980 6:18 PM PXM
Created file
4-Nov-81 8:33:37 AWL
Formatting changes.
Time: 26-Sep-84 2:28:39 By: DXG
Action: Added copyright notice and rebuild for 11.1 release.