|
|
1.1 root 1: function ip_stats() {
2: didone = 0;
3: for (i in ipForwarding) {
4: didone = 1;
5:
6: printf "ip (acting as %s):\n",
7: ipForwarding == 1 ? "gateway" : "host";
8: printf "%9s packets received\n", ipInReceives;
9: printf "%9s packets with header errors\n", ipInHdrErrors;
10: printf "%9s packets discarded due to congestion\n",
11: ipInDiscards;
12: printf "%9s datagrams for unknown ULP\n", ipInUnknownProtos;
13: printf "%9s datagrams delivered to ULPs\n", ipInDelivers;
14: printf "\n";
15: printf "%9s of %s datagrams reassembled\n",
16: ipReasmOKs, ipReasmReqds;
17: printf "%9s of %s+%s datagrams fragmented\n",
18: ipFragOKs, ipFragCreates, ipFragFails;
19: printf "\n";
20: printf "%9s datagrams forwarded\n", ipForwDatagrams;
21: printf "%9s datagrams sent by ULPs\n", ipOutRequests;
22: printf "%9s packets discarded due to congestion\n",
23: ipOutDiscards;
24: printf "%9s packets discarded due to no route\n",
25: ipOutNoRoutes;
26: printf "\n";
27: }
28: if (!didone && DIAGNOSTIC)
29: printf "ip statistics: %s\n\n", DIAGNOSTIC;
30: }
31:
32: function icmp_stats() {
33: didone = 0;
34: for (i in icmpInMsgs) {
35: didone = 1;
36:
37: printf "icmp:\n";
38: printf "%9s datagrams received\n", icmpInMsgs;
39: printf "%9s datagrams received in error\n", icmpInErrors;
40: printf "\tInput histogram:\n"
41: if (i = icmpInDestUnreachs)
42: printf "\t\tdestination unreachable: %d\n", i;
43: if (i = icmpInTimeExcds)
44: printf "\t\ttime exceeded: %d\n", i;
45: if (i = icmpInParmProbs)
46: printf "\t\tparameter problem: %d\n", i;
47: if (i = icmpInSrcQuenchs)
48: printf "\t\tsource quench: %d\n", i;
49: if (i = icmpInRedirects)
50: printf "\t\tredirect: %d\n", i;
51: if (i = icmpInEchos)
52: printf "\t\techo request: %d\n", i;
53: if (i = icmpInEchoReps)
54: printf "\t\techo reply: %d\n", i;
55: if (i = icmpInTimestamps)
56: printf "\t\ttimestamp request: %d\n", i;
57: if (i = icmpInTimestampReps)
58: printf "\t\ttimestamp reply: %d\n", i;
59: if (i = icmpInAddrMasks)
60: printf "\t\taddress mask request: %d\n", i;
61: if (i = icmpInAddrMaskReps)
62: printf "\t\taddress mask reply: %d\n", i;
63: printf "\n";
64: printf "%9s datagrams sent\n", icmpOutMsgs;
65: printf "%9s datagrams discarded due to error\n", icmpOutErrors;
66: printf "\tOutput histogram:\n"
67: if (i = icmpOutDestUnreachs)
68: printf "\t\tdestination unreachable: %d\n", i;
69: if (i = icmpOutTimeExcds)
70: printf "\t\ttime exceeded: %d\n", i;
71: if (i = icmpOutParmProbs)
72: printf "\t\tparameter problem: %d\n", i;
73: if (i = icmpOutSrcQuenchs)
74: printf "\t\tsource quench: %d\n", i;
75: if (i = icmpOutRedirects)
76: printf "\t\tredirect: %d\n", i;
77: if (i = icmpOutEchos)
78: printf "\t\techo request: %d\n", i;
79: if (i = icmpOutEchoReps)
80: printf "\t\techo reply: %d\n", i;
81: if (i = icmpOutTimestamps)
82: printf "\t\ttimestamp request: %d\n", i;
83: if (i = icmpOutTimestampReps)
84: printf "\t\ttimestamp reply: %d\n", i;
85: if (i = icmpOutAddrMasks)
86: printf "\t\taddress mask request: %d\n", i;
87: if (i = icmpOutAddrMaskReps)
88: printf "\t\taddress mask reply: %d\n", i;
89: printf "\n";
90: }
91: if (!didone && DIAGNOSTIC)
92: printf "icmp statistics: %s\n\n", DIAGNOSTIC;
93: }
94:
95: function rtoa(r) {
96: if (r in to)
97: return to[r];
98:
99: return (r ? r : "unknown");
100: }
101:
102: function tcp_stats() {
103: didone = 0;
104: for (i in tcpRtoAlgorithm) {
105: didone = 1;
106:
107: to[1] = "other"; to[2] = "constant" ; to[3] = "rsre"; to[4] = "vanj";
108: printf "tcp (using %s algorithm):\n", rtoa(tcpRtoAlgorithm);
109: printf "%9s segments received\n", tcpInSegs;
110: printf "%9s segments with header errors\n", tcpInErrs;
111: printf "\n";
112: printf "%9s connection attempts failed\n", tcpAttemptFails;
113: printf "%9s RSTs received on connections\n", tcpEstabResets;
114: printf "\n";
115: printf "%9s segments sent\n", tcpOutSegs;
116: printf "%9s segments retransmitted\n", tcpRetransSegs;
117: printf "%9s RSTs sent\n", tcpOutRsts;
118: printf "\n";
119: }
120: if (!didone && DIAGNOSTIC)
121: printf "tcp statistics: %s\n\n", DIAGNOSTIC;
122: }
123:
124: function udp_stats() {
125: didone = 0;
126: for (i in udpInDatagrams) {
127: didone = 1;
128:
129: printf "udp:\n";
130: printf "%9s datagrams received\n", udpInDatagrams;
131: printf "%9s datagrams for unknown port\n", udpNoPorts;
132: printf "%9s datagrams with header errors\n", udpInErrors;
133: printf "\n";
134: printf "%9s datagrams sent\n", udpOutDatagrams;
135: printf "\n";
136: }
137: if (!didone && DIAGNOSTIC)
138: printf "udp statistics: %s\n\n", DIAGNOSTIC;
139: }
140:
141: function clnp_stats() {
142: for (i in clnpForwarding) {
143: didone = 1;
144:
145: printf "clnp (acting as %s-system):\n",
146: clnpForwarding == 1 ? "intermediate" : "end";
147: printf "%9s packets received\n", clnpInReceives;
148: printf "%9s packets with header errors\n", clnpInHdrErrors;
149: printf "%9s packets discarded due to congestion\n", clnpInDiscards;
150: printf "%9s datagrams for unknown ULP\n", clnpInUnknownULPs;
151: printf "%9s datagrams delivered to ULPs\n", clnpInDelivers;
152: printf "\n";
153: printf "%9s of %s datagrams reassembled\n",
154: clnppReasmOKs, clnpReasmReqds;
155: printf "%9s of %s+%s datagrams segmented\n",
156: clnpSegOKs, clnpSegCreates, clnpSegFails;
157: printf "\n";
158: printf "%9s datagrams forwarded\n", clnpForwPDUs;
159: printf "%9s datagrams sent by ULPs\n", clnpOutRequests;
160: printf "%9s packets discarded due to congestion\n",
161: clnpOutDiscards;
162: printf "%9s packets discarded due to no route\n", clnpOutNoRoutes;
163: printf "\n";
164: }
165: if (!didone && DIAGNOSTIC)
166: printf "clnp statistics: %s\n\n", DIAGNOSTIC;
167: }
168:
169: function error_stats() {
170: didone = 0;
171: for (i in clnpInErrors) {
172: didone = 1;
173:
174: printf "clnp error:\n";
175: printf "%9s error PDUs received\n", clnpInErrors;
176: printf "\tInput histogram:\n";
177: if (i = clnpInErrUnspecs)
178: printf "\t\tclnpInErrUnspecs: %d\n", i;
179: if (i = clnpInErrProcs)
180: printf "\t\tclnpInErrProcs: %d\n", i;
181: if (i = clnpInErrCksums)
182: printf "\t\tclnpInErrCksums: %d\n", i;
183: if (i = clnpInErrCongests)
184: printf "\t\tclnpInErrCongests: %d\n", i;
185: if (i = clnpInErrHdrs)
186: printf "\t\tclnpInErrHdrs: %d\n", i;
187: if (i = clnpInErrSegs)
188: printf "\t\tclnpInErrSegs: %d\n", i;
189: if (i = clnpInErrIncomps)
190: printf "\t\tclnpInErrIncomps: %d\n", i;
191: if (i = clnpInErrDups)
192: printf "\t\tclnpInErrDups: %d\n", i;
193: if (i = clnpInErrUnreachDsts)
194: printf "\t\tclnpInErrUnreachDsts: %d\n", i;
195: if (i = clnpInErrUnknownDsts)
196: printf "\t\tclnpInErrUnknownDsts: %d\n", i;
197: if (i = clnpInErrSRUnspecs)
198: printf "\t\tclnpInErrSRUnspecs: %d\n", i;
199: if (i = clnpInErrSRSyntaxes)
200: printf "\t\tclnpInErrSRSyntaxes: %d\n", i;
201: if (i = clnpInErrSRUnkAddrs)
202: printf "\t\tclnpInErrSRUnkAddrs: %d\n", i;
203: if (i = clnpInErrSRBadPaths)
204: printf "\t\tclnpInErrSRBadPaths: %d\n", i;
205: if (i = clnpInErrHops)
206: printf "\t\tclnpInErrHops: %d\n", i;
207: if (i = clnpInErrHopReassms)
208: printf "\t\tclnpInErrHopReassms: %d\n", i;
209: if (i = clnpInErrUnsOptions)
210: printf "\t\tclnpInErrUnsOptions: %d\n", i;
211: if (i = clnpInErrUnsVersions)
212: printf "\t\tclnpInErrUnsVersions: %d\n", i;
213: if (i = clnpInErrUnsSecurities)
214: printf "\t\tclnpInErrUnsSecurities: %d\n", i;
215: if (i = clnpInErrUnsSRs)
216: printf "\t\tclnpInErrUnsSRs: %d\n", i;
217: if (i = clnpInErrUnsRRs)
218: printf "\t\tclnpInErrUnsRRs: %d\n", i;
219: if (i = clnpInErrInterferences)
220: printf "\t\tclnpInErrInterferences: %d\n", i;
221: printf "\n";
222: printf "%9s error PDUs sent\n", clnpOutErrors;
223: printf "\tOutput histogram:\n";
224: if (i = clnpOutErrUnspecs)
225: printf "\t\tclnpOutErrUnspecs: %d\n", i;
226: if (i = clnpOutErrProcs)
227: printf "\t\tclnpOutErrProcs: %d\n", i;
228: if (i = clnpOutErrCksums)
229: printf "\t\tclnpOutErrCksums: %d\n", i;
230: if (i = clnpOutErrCongests)
231: printf "\t\tclnpOutErrCongests: %d\n", i;
232: if (i = clnpOutErrHdrs)
233: printf "\t\tclnpOutErrHdrs: %d\n", i;
234: if (i = clnpOutErrSegs)
235: printf "\t\tclnpOutErrSegs: %d\n", i;
236: if (i = clnpOutErrIncomps)
237: printf "\t\tclnpOutErrIncomps: %d\n", i;
238: if (i = clnpOutErrDups)
239: printf "\t\tclnpOutErrDups: %d\n", i;
240: if (i = clnpOutErrUnreachDsts)
241: printf "\t\tclnpOutErrUnreachDsts: %d\n", i;
242: if (i = clnpOutErrUnknownDsts)
243: printf "\t\tclnpOutErrUnknownDsts: %d\n", i;
244: if (i = clnpOutErrSRUnspecs)
245: printf "\t\tclnpOutErrSRUnspecs: %d\n", i;
246: if (i = clnpOutErrSRSyntaxes)
247: printf "\t\tclnpOutErrSRSyntaxes: %d\n", i;
248: if (i = clnpOutErrSRUnkAddrs)
249: printf "\t\tclnpOutErrSRUnkAddrs: %d\n", i;
250: if (i = clnpOutErrSRBadPaths)
251: printf "\t\tclnpOutErrSRBadPaths: %d\n", i;
252: if (i = clnpOutErrHops)
253: printf "\t\tclnpOutErrHops: %d\n", i;
254: if (i = clnpOutErrHopReassms)
255: printf "\t\tclnpOutErrHopReassms: %d\n", i;
256: if (i = clnpOutErrUnsOptions)
257: printf "\t\tclnpOutErrUnsOptions: %d\n", i;
258: if (i = clnpOutErrUnsVersions)
259: printf "\t\tclnpOutErrUnsVersions: %d\n", i;
260: if (i = clnpOutErrUnsSecurities)
261: printf "\t\tclnpOutErrUnsSecurities: %d\n", i;
262: if (i = clnpOutErrUnsSRs)
263: printf "\t\tclnpOutErrUnsSRs: %d\n", i;
264: if (i = clnpOutErrUnsRRs)
265: printf "\t\tclnpOutErrUnsRRs: %d\n", i;
266: if (i = clnpOutErrInterferences)
267: printf "\t\tclnpOutErrInterferences: %d\n", i;
268: printf "\n";
269: }
270: if (!didone && DIAGNOSTIC)
271: printf "clnp error statistics: %s\n\n", DIAGNOSTIC;
272: }
273:
274: function esis_stats() {
275: didone = 0;
276: for (i in esisESHins) {
277: didone = 1;
278:
279: printf "es-is:\n";
280: printf "%9s ESHs received\n", esisESHins;
281: printf "%9s ISHs received\n", esisISHins;
282: printf "%9s RDUs received\n", esisRDUins;
283: printf "\n";
284: printf "%9s ESHs sent\n", esisESHouts;
285: printf "%9s ISHs sent\n", esisISHouts;
286: printf "%9s RDUs sent\n", esisRDUouts;
287: printf "\n";
288: }
289: if (!didone && DIAGNOSTIC)
290: printf "es-is statistics: %s\n\n", DIAGNOSTIC;
291: }
292:
293: BEGIN {
294: ip_stats();
295: icmp_stats();
296: tcp_stats();
297: udp_stats();
298: if (!oflag)
299: exit(0);
300:
301: clnp_stats();
302: error_stats();
303: esis_stats();
304: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.