-- File: AltoPRStats.mesa, Last Edit: HGM October 21, 1980 5:56 AM DIRECTORY AltoPRDefs, StatsDefs USING [StatGetCounter], DriverDefs USING [Network], PupDefs USING [PupBuffer]; AltoPRStats: PROGRAM IMPORTS StatsDefs, AltoPRDefs EXPORTS DriverDefs = BEGIN OPEN AltoPRDefs, StatsDefs; PacketRadioStats: PUBLIC PROCEDURE [ b: PupDefs.PupBuffer, network: DriverDefs.Network] RETURNS [BOOLEAN] = BEGIN myVars: LONG POINTER TO PRDriverVars ← network.stats; prse: LONG POINTER TO PRStatsEntry ← LOOPHOLE[@b.pupWords[1]]; pia: LONG POINTER TO PRAliveTable ← LOOPHOLE[@prse.hostsUp]; b.pupWords[0] ← prStatsReply; prse↑ ← [version: prVersion, packetsReceived: StatsDefs.StatGetCounter[statPRPacketsReceived], imAliveReceived: StatsDefs.StatGetCounter[statPRImAliveReceived], oneFragPupRcvd: StatsDefs.StatGetCounter[statPROneFragRcvd], twoFragPupRcvd: StatsDefs.StatGetCounter[statPRTwoFragsRcvd], threeFragPupRcvd: StatsDefs.StatGetCounter[statPRThreeFragsRcvd], wordsReceived: StatsDefs.StatGetCounter[statPRWordsReceived], packetsSent: StatsDefs.StatGetCounter[statPRPacketsSent], imAliveSent: StatsDefs.StatGetCounter[statPRImAliveSent], oneFragPupSent: StatsDefs.StatGetCounter[statPROneFragSent], twoFragPupSent: StatsDefs.StatGetCounter[statPRTwoFragsSent], threeFragPupSent: StatsDefs.StatGetCounter[statPRThreeFragsSent], wordsSent: StatsDefs.StatGetCounter[statPRWordsSent], topsSent: StatsDefs.StatGetCounter[statPRTOPsSent], assemblyTimeout: StatsDefs.StatGetCounter[statPRAssemblyTimeout], assemblyOverflow: StatsDefs.StatGetCounter[statPRAssemblyQOvf], destinationDown: StatsDefs.StatGetCounter[statPRDestinationDown], inputFilter: StatsDefs.StatGetCounter[statPRInputBufferOvf] + StatsDefs.StatGetCounter[ statPRBadMagic] + StatsDefs.StatGetCounter[statPRNotForMe] + StatsDefs.StatGetCounter[statPRTooManyFragments] + StatsDefs.StatGetCounter[statPRTotalTooBig], oldPackets: StatsDefs.StatGetCounter[statPROldPackets], skippedPackets: StatsDefs.StatGetCounter[statPRPacketsSkipped], sequencerResets: StatsDefs.StatGetCounter[statPRSequenceReset], outputPacketsDiscarded: StatsDefs.StatGetCounter[statPRLengthOvf] + StatsDefs.StatGetCounter[ statPRInvalidAddress] + StatsDefs.StatGetCounter[statPRDestinationDown] + StatsDefs.StatGetCounter[statPROutputQOvf] + StatsDefs.StatGetCounter[ statPRConnectionLimit] + StatsDefs.StatGetCounter[ statPROutPacketsDiscarded], transferTimeout: StatsDefs.StatGetCounter[statPRTransferTimeout], maxHosts: maxPRPupAddress, hostsUp:]; pia↑ ← myVars.youAreOK; b.pupLength ← 22 + 2*(1 + SIZE[PRStatsEntry] + maxPRPupAddress); RETURN[TRUE]; END; -- initialization END. -- AltoPRStats