DIRECTORY IPDefs USING [Byte, Datagram, DByte, Address, InternetHeader]; ICMP: CEDAR DEFINITIONS = BEGIN minLength: INT = 8; maxLength: INT = minLength+512; DataBuffer: TYPE = PACKED ARRAY INT [minLength..maxLength) OF IPDefs.Byte; EchoReply: IPDefs.Byte = 0; DestinationUnreachable: IPDefs.Byte = 3; SourceQuench: IPDefs.Byte = 4; Redirect: IPDefs.Byte = 5; Echo: IPDefs.Byte = 8; TimeExceeded: IPDefs.Byte = 11; ParameterProblem: IPDefs.Byte = 12; Timestamp: IPDefs.Byte = 13; TimestampReply: IPDefs.Byte = 14; InformationRequest: IPDefs.Byte = 15; InformationReply: IPDefs.Byte = 16; redirectForNet: INT = 0; redirectForHost: INT = 1; redirectForServiceAndNet: INT = 2; redirectForServiceAndHost: INT = 3; ID: TYPE = IPDefs.DByte; -- Beware, only contained in some types of messages default: ID = LAST[ID]; BodyRec: TYPE = MACHINE DEPENDENT RECORD[ -- body of ICMP messages that have an ID type (0: 0..7): IPDefs.Byte, code (0: 8..15): IPDefs.Byte, checksum (1): IPDefs.DByte, id (2): ID, sequenceNo (3): IPDefs.DByte, data (4): DataBuffer ]; RedirectBody: TYPE = MACHINE DEPENDENT RECORD[ -- body of ICMP Redirect message type (0: 0..7): IPDefs.Byte, code (0: 8..15): IPDefs.Byte, checksum (1): IPDefs.DByte, gateway (2): IPDefs.Address, header (4): IPDefs.InternetHeader]; Handle: TYPE = REF HandleRec; HandleRec: TYPE = RECORD [ local: ID, him: IPDefs.Address ]; Create: PROC [him: IPDefs.Address, local: ID _ default] RETURNS [Handle]; Destroy: PROC [Handle]; Receive: PROC [handle: Handle, timeout: INT] RETURNS [data: IPDefs.Datagram]; Send: PROC [handle: Handle, data: IPDefs.Datagram, length: INT]; SendReply: PROC [data: IPDefs.Datagram]; END. LCopyright (C) 1983, 1985 by Xerox Corporation. All rights reserved. The following program was created in 1983 but has not been published within the meaning of the copyright law, is furnished under license, and may not be used, copied and/or disclosed except in accordance with the terms of said license. ICMP.mesa Last Edited by: Nichols, August 15, 1983 7:16 pm Last Edited by: Taft, January 5, 1984 5:48 pm Hal Murray June 27, 1985 1:45:53 am PDT John Larson, April 14, 1986 9:25:39 pm PST ICMP message type codes ICMP Redirect message subcodes NIL if timeout (ms), 0 => Forever Κ‹– "cedar" style˜Icode2šœ―™―head™ Icode™0J™-M™'M™*šΟk ˜ Kšœœ2˜>——šœœ œ˜Kš˜Kšœ œ˜Kšœ œ˜Kš œ œœœœœ˜K™KšΟn œ˜Kšžœ˜(Kšž œ˜Kšžœ˜Kšžœ˜Kšž œ˜Kšžœ˜#Kšž œ˜Kšžœ˜!Kšžœ˜%Kšžœ˜#—™Kšœœ˜Kšœœ˜Kšœœ˜"Kšœœ˜#—šœœΟc3˜LKšœ œœœ˜—š œ œœ œœŸ(˜RKšœ˜Kšœ˜Kšœ˜Kšœœ˜ Kšœ˜Kšœ˜—š œœœ œœŸ ˜OKšœ˜Kšœ˜Kšœ˜Kšœ˜Kšœ#˜#—šœœœ ˜šœ œœ˜Kšœœ˜ Kšœ˜——Kšžœœœ œ ˜IKšžœœ ˜šžœœœœ˜MKšœ™!—Kšžœœ1œ˜@Kšž œœ˜(Kšœ˜——…—z Q