-- File: PupTypes.Mesa, Last Edit: HGM December 6, 1980 3:52 PM
PupTypes: DEFINITIONS =
BEGIN
Byte: TYPE = [0..377B];
Pair: TYPE = MACHINE DEPENDENT RECORD [a, b: CARDINAL];
PupHostID: TYPE = RECORD [Byte];
PupNetID: TYPE = RECORD [Byte];
PupSocketID: TYPE = RECORD [a, b: WORD];
PupAddress: TYPE = MACHINE DEPENDENT RECORD [
net: PupNetID, host: PupHostID, socket: PupSocketID];
-- Addressing Constants
fillInNetID: PupNetID = [377B];
fillInHostID: PupHostID = [377B];
fillInSocketID: PupSocketID = [0, 0];
fillInPupAddress: PupAddress = [fillInNetID, fillInHostID, fillInSocketID];
allNets: PupNetID = [0]; -- host must be allHosts too
allHosts: PupHostID = [0]; -- can be directed to a specific network
-- Buffer size Constants
maxDataWordsPerGatewayPup: CARDINAL = 266;
maxDataBytesPerGatewayPup: CARDINAL = 2*maxDataWordsPerGatewayPup;
maxDataWordsPerRoutingPup: CARDINAL = 64;
maxDataBytesPerRoutingPup: CARDINAL = 2*maxDataWordsPerRoutingPup;
-- Well Known Sockets: See [MAXC]<System>Pup-Network.txt
telnetSoc: PupSocketID = [0, 1];
gatewaySoc: PupSocketID = [0, 2];
ftpSoc: PupSocketID = [0, 3];
miscSrvSoc: PupSocketID = [0, 4];
echoSoc: PupSocketID = [0, 5];
bspTestSoc: PupSocketID = [0, 6];
mailSoc: PupSocketID = [0, 7];
eftpReceiveSoc: PupSocketID = [0, 20B];
spruceStatusSoc: PupSocketID = [0, 21B];
statSoc: PupSocketID = [0, 22B];
oldCopyDiskSoc: PupSocketID = [0, 24B];
copyDiskSoc: PupSocketID = [0, 25B];
eventReportSoc: PupSocketID = [0, 30B];
printerReportSoc: PupSocketID = [0, 31B];
juniperpackConversionSoc: PupSocketID = [0, 34B];
juniperEventSoc: PupSocketID = [0, 35B];
rpcpSoc: PupSocketID = [0, 36B];
clearinghouseSoc: PupSocketID = [0, 37B];
librarianSoc: PupSocketID = [0, 41B];
pineSoc: PupSocketID = [0, 100B];
PupErrorCode: TYPE = MACHINE DEPENDENT{
-- Pup got to the destination machine, but wasn't processed
badChecksumPupErrorCode(1B), noProcessPupErrorCode(2B),
resourceLimitsPupErrorCode(3B),
-- Pup didn't get to the destination machine
inconsistentPupErrorCode(1001B), cantGetTherePupErrorCode(1002B),
hostDownPupErrorCode(1003B), eightHopsPupErrorCode(1004B),
tooBigPupErrorCode(1005B), iAmNotAGatewayPupErrorCode(518),
gatewayResourceLimitsPupErrorCode(519),
-- used by ForwardBuffer for various hacks
noErrorPupErrorCode(10000), connectionLimitPupErrorCode(10001),
filler(LAST[WORD])};
-- This is an attempt to get the TYPE checker to help us.
-- Unfortunately, the values are a bit sparce.
-- Be sure to have enough values to make it an 8 bit field.
PupType: TYPE = MACHINE DEPENDENT{
-- 000-077 OCTAL! Registered Pup Types
echoMe(1B), iAmEcho, badEcho, error(4B), rfc(10B), abort, end, endRep,
data(20B), aData, ack, mark, int, intRep, aMark, eData(30B), eAck, eEnd,
eAbort, rpp(40B),
-- 200+ Unregistered Pup Types
-- Socket 2 - Gateway info
gatewayRequest(200B), gatewayInfo(201B),
-- Socket 4 - Misc services
dateTenexRequest(202B), dateTenexIs, dateAltoRequest(206B), dateAltoIs,
mailCheck(210B), mailIsNew, mailNotNew, mailError, mailCheckLaurel,
nameLookup(220B), nameIs, nameError, addressLookup, addressIs,
whereIsUser(230B), userIs, userError, netDirVersion(240B), sendNetDir,
bootFileSend(244B), kissOfDeath(247B),
-- Pine (save a few spares too)
request(250B), result, unsolicited, custodian, sync, pineAck, noop,
bootDirReq(257B), bootDirReply(260B),
last(LAST[Byte])};
-- see <PUP>Servers.EARS (Taft)
-- Socket 4 Misc Services - these overlap with Gateway info
dateTextRequest: PupType = gatewayRequest;
dateTextIs: PupType = gatewayInfo;
-- Socket 4 Misc Services - these overlap with Pine
userAuthReq: PupType = request; -- 250
userAuthOk: PupType = result; -- 251
userAuthBad: PupType = unsolicited; -- 252
-- Socket 22 Statistics - more overlap
statisticsRequest: PupType = gatewayRequest;
statisticsAre: PupType = gatewayInfo;
-- Socket 30 Event Report - more overlap
eventReport: PupType = netDirVersion;
eventReportReply: PupType = sendNetDir;
END.