// GateConSLAStats.bcpl // Last modified April 28, 1982 10:32 AM by Taft get "Pup0.decl" get "PupAlComProc.decl" external [ // outgoing procedure PrintSLAStats // incoming procedures Ws; PutTemplate; Puts; Error // incoming statics dsp ] //---------------------------------------------------------------------------- let PrintSLAStats(pbi) be //---------------------------------------------------------------------------- [ let stats = lv pbi>>PBI.pup.words if stats>>SLAStats.statsVersion ne slaStatsVersion then [ Error("Incompatible format"); return ] Ws("*NSLA Statistics:*N") Ws(" ----Packets--- -----Bytes----- ------Errors------*n") Ws("Line Sent Received Sent Received CRC Sync Control State*n") let maxSLAHost = stats>>SLAStats.maxHost let rt = lv stats>>SLAStats.rt let maxSLALine = rt!(maxSLAHost*lenRTE) let lineStats = rt + (maxSLAHost*lenRTE) +1 for line = 0 to maxSLALine do [ let l = lineStats + line*lenLineStats if l>>LineStats.state eq slaLineMissing loop PutTemplate(dsp, "$3O$9UED$9UED$10UED$10UED $6UD$6UD$6UD $S*n", line, lv l>>LineStats.transmitPackets, lv l>>LineStats.receivePackets, lv l>>LineStats.transmitBytes, lv l>>LineStats.receiveBytes, l>>LineStats.badCRC, l>>LineStats.inputOverrun, l>>LineStats.lineControlError, selecton l>>LineStats.state into [ case slaLineDown: "Down" case slaLineUp: "Up" case slaLineLoopedBack: "Looped" default: "?" ]) ] Ws("*nRouting table:*n") for i = 1 to 4 do Ws("Host Line Hops ") let count = 0 for host = 1 to maxSLAHost do [ let rte = rt + host-1 if rte>>RTE.hopCnt ne 377b then [ PutTemplate(dsp, "$S$3O $3O $3D", (count rem 4 eq 0? "*n", " "), host, rte>>RTE.line, rte>>RTE.hopCnt) count = count +1 ] ] Puts(dsp, $*n) ]