Commit 0fe6a7f28455cd003b2668e77d5bd1e1cf15309e
Committed by
Anthony Liguori
1 parent
0d62c4cf
slirp: Drop statistic code
As agreed on the mailing list, there is no interest in keeping the usually disabled slirp statistics in the tree. So this patch removes them. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
21 changed files
with
6 additions
and
485 deletions
monitor.c
@@ -1733,8 +1733,6 @@ static const mon_cmd_t info_cmds[] = { | @@ -1733,8 +1733,6 @@ static const mon_cmd_t info_cmds[] = { | ||
1733 | "", "show CPU statistics", }, | 1733 | "", "show CPU statistics", }, |
1734 | #endif | 1734 | #endif |
1735 | #if defined(CONFIG_SLIRP) | 1735 | #if defined(CONFIG_SLIRP) |
1736 | - { "slirp", "", do_info_slirp, | ||
1737 | - "", "show SLIRP statistics", }, | ||
1738 | { "usernet", "", do_info_usernet, | 1736 | { "usernet", "", do_info_usernet, |
1739 | "", "show user network stack connection states", }, | 1737 | "", "show user network stack connection states", }, |
1740 | #endif | 1738 | #endif |
net.c
@@ -1112,11 +1112,6 @@ void net_slirp_smb(const char *exported_dir) | @@ -1112,11 +1112,6 @@ void net_slirp_smb(const char *exported_dir) | ||
1112 | 1112 | ||
1113 | #endif /* !defined(_WIN32) */ | 1113 | #endif /* !defined(_WIN32) */ |
1114 | 1114 | ||
1115 | -void do_info_slirp(Monitor *mon) | ||
1116 | -{ | ||
1117 | - slirp_stats(); | ||
1118 | -} | ||
1119 | - | ||
1120 | struct GuestFwd { | 1115 | struct GuestFwd { |
1121 | CharDriverState *hd; | 1116 | CharDriverState *hd; |
1122 | struct in_addr server; | 1117 | struct in_addr server; |
qemu-monitor.hx
@@ -85,8 +85,6 @@ show the current VM name | @@ -85,8 +85,6 @@ show the current VM name | ||
85 | show the current VM UUID | 85 | show the current VM UUID |
86 | @item info cpustats | 86 | @item info cpustats |
87 | show CPU statistics | 87 | show CPU statistics |
88 | -@item info slirp | ||
89 | -show SLIRP statistics (if available) | ||
90 | @item info usernet | 88 | @item info usernet |
91 | show user network stack connection states | 89 | show user network stack connection states |
92 | @item info migrate | 90 | @item info migrate |
slirp/debug.c
@@ -10,157 +10,3 @@ | @@ -10,157 +10,3 @@ | ||
10 | 10 | ||
11 | FILE *dfd = NULL; | 11 | FILE *dfd = NULL; |
12 | int slirp_debug = 0; | 12 | int slirp_debug = 0; |
13 | - | ||
14 | -#ifdef LOG_ENABLED | ||
15 | -static void | ||
16 | -ipstats(void) | ||
17 | -{ | ||
18 | - lprint(" \r\n"); | ||
19 | - | ||
20 | - lprint("IP stats:\r\n"); | ||
21 | - lprint(" %6d total packets received (%d were unaligned)\r\n", | ||
22 | - ipstat.ips_total, ipstat.ips_unaligned); | ||
23 | - lprint(" %6d with incorrect version\r\n", ipstat.ips_badvers); | ||
24 | - lprint(" %6d with bad header checksum\r\n", ipstat.ips_badsum); | ||
25 | - lprint(" %6d with length too short (len < sizeof(iphdr))\r\n", ipstat.ips_tooshort); | ||
26 | - lprint(" %6d with length too small (len < ip->len)\r\n", ipstat.ips_toosmall); | ||
27 | - lprint(" %6d with bad header length\r\n", ipstat.ips_badhlen); | ||
28 | - lprint(" %6d with bad packet length\r\n", ipstat.ips_badlen); | ||
29 | - lprint(" %6d fragments received\r\n", ipstat.ips_fragments); | ||
30 | - lprint(" %6d fragments dropped\r\n", ipstat.ips_fragdropped); | ||
31 | - lprint(" %6d fragments timed out\r\n", ipstat.ips_fragtimeout); | ||
32 | - lprint(" %6d packets reassembled ok\r\n", ipstat.ips_reassembled); | ||
33 | - lprint(" %6d outgoing packets fragmented\r\n", ipstat.ips_fragmented); | ||
34 | - lprint(" %6d total outgoing fragments\r\n", ipstat.ips_ofragments); | ||
35 | - lprint(" %6d with bad protocol field\r\n", ipstat.ips_noproto); | ||
36 | - lprint(" %6d total packets delivered\r\n", ipstat.ips_delivered); | ||
37 | -} | ||
38 | - | ||
39 | -static void | ||
40 | -tcpstats(void) | ||
41 | -{ | ||
42 | - lprint(" \r\n"); | ||
43 | - | ||
44 | - lprint("TCP stats:\r\n"); | ||
45 | - | ||
46 | - lprint(" %6d packets sent\r\n", tcpstat.tcps_sndtotal); | ||
47 | - lprint(" %6d data packets (%d bytes)\r\n", | ||
48 | - tcpstat.tcps_sndpack, tcpstat.tcps_sndbyte); | ||
49 | - lprint(" %6d data packets retransmitted (%d bytes)\r\n", | ||
50 | - tcpstat.tcps_sndrexmitpack, tcpstat.tcps_sndrexmitbyte); | ||
51 | - lprint(" %6d ack-only packets (%d delayed)\r\n", | ||
52 | - tcpstat.tcps_sndacks, tcpstat.tcps_delack); | ||
53 | - lprint(" %6d URG only packets\r\n", tcpstat.tcps_sndurg); | ||
54 | - lprint(" %6d window probe packets\r\n", tcpstat.tcps_sndprobe); | ||
55 | - lprint(" %6d window update packets\r\n", tcpstat.tcps_sndwinup); | ||
56 | - lprint(" %6d control (SYN/FIN/RST) packets\r\n", tcpstat.tcps_sndctrl); | ||
57 | - lprint(" %6d times tcp_output did nothing\r\n", tcpstat.tcps_didnuttin); | ||
58 | - | ||
59 | - lprint(" %6d packets received\r\n", tcpstat.tcps_rcvtotal); | ||
60 | - lprint(" %6d acks (for %d bytes)\r\n", | ||
61 | - tcpstat.tcps_rcvackpack, tcpstat.tcps_rcvackbyte); | ||
62 | - lprint(" %6d duplicate acks\r\n", tcpstat.tcps_rcvdupack); | ||
63 | - lprint(" %6d acks for unsent data\r\n", tcpstat.tcps_rcvacktoomuch); | ||
64 | - lprint(" %6d packets received in sequence (%d bytes)\r\n", | ||
65 | - tcpstat.tcps_rcvpack, tcpstat.tcps_rcvbyte); | ||
66 | - lprint(" %6d completely duplicate packets (%d bytes)\r\n", | ||
67 | - tcpstat.tcps_rcvduppack, tcpstat.tcps_rcvdupbyte); | ||
68 | - | ||
69 | - lprint(" %6d packets with some duplicate data (%d bytes duped)\r\n", | ||
70 | - tcpstat.tcps_rcvpartduppack, tcpstat.tcps_rcvpartdupbyte); | ||
71 | - lprint(" %6d out-of-order packets (%d bytes)\r\n", | ||
72 | - tcpstat.tcps_rcvoopack, tcpstat.tcps_rcvoobyte); | ||
73 | - lprint(" %6d packets of data after window (%d bytes)\r\n", | ||
74 | - tcpstat.tcps_rcvpackafterwin, tcpstat.tcps_rcvbyteafterwin); | ||
75 | - lprint(" %6d window probes\r\n", tcpstat.tcps_rcvwinprobe); | ||
76 | - lprint(" %6d window update packets\r\n", tcpstat.tcps_rcvwinupd); | ||
77 | - lprint(" %6d packets received after close\r\n", tcpstat.tcps_rcvafterclose); | ||
78 | - lprint(" %6d discarded for bad checksums\r\n", tcpstat.tcps_rcvbadsum); | ||
79 | - lprint(" %6d discarded for bad header offset fields\r\n", | ||
80 | - tcpstat.tcps_rcvbadoff); | ||
81 | - | ||
82 | - lprint(" %6d connection requests\r\n", tcpstat.tcps_connattempt); | ||
83 | - lprint(" %6d connection accepts\r\n", tcpstat.tcps_accepts); | ||
84 | - lprint(" %6d connections established (including accepts)\r\n", tcpstat.tcps_connects); | ||
85 | - lprint(" %6d connections closed (including %d drop)\r\n", | ||
86 | - tcpstat.tcps_closed, tcpstat.tcps_drops); | ||
87 | - lprint(" %6d embryonic connections dropped\r\n", tcpstat.tcps_conndrops); | ||
88 | - lprint(" %6d segments we tried to get rtt (%d succeeded)\r\n", | ||
89 | - tcpstat.tcps_segstimed, tcpstat.tcps_rttupdated); | ||
90 | - lprint(" %6d retransmit timeouts\r\n", tcpstat.tcps_rexmttimeo); | ||
91 | - lprint(" %6d connections dropped by rxmt timeout\r\n", | ||
92 | - tcpstat.tcps_timeoutdrop); | ||
93 | - lprint(" %6d persist timeouts\r\n", tcpstat.tcps_persisttimeo); | ||
94 | - lprint(" %6d keepalive timeouts\r\n", tcpstat.tcps_keeptimeo); | ||
95 | - lprint(" %6d keepalive probes sent\r\n", tcpstat.tcps_keepprobe); | ||
96 | - lprint(" %6d connections dropped by keepalive\r\n", tcpstat.tcps_keepdrops); | ||
97 | - lprint(" %6d correct ACK header predictions\r\n", tcpstat.tcps_predack); | ||
98 | - lprint(" %6d correct data packet header predictions\n", tcpstat.tcps_preddat); | ||
99 | - lprint(" %6d TCP cache misses\r\n", tcpstat.tcps_socachemiss); | ||
100 | -} | ||
101 | - | ||
102 | -static void | ||
103 | -udpstats(void) | ||
104 | -{ | ||
105 | - lprint(" \r\n"); | ||
106 | - | ||
107 | - lprint("UDP stats:\r\n"); | ||
108 | - lprint(" %6d datagrams received\r\n", udpstat.udps_ipackets); | ||
109 | - lprint(" %6d with packets shorter than header\r\n", udpstat.udps_hdrops); | ||
110 | - lprint(" %6d with bad checksums\r\n", udpstat.udps_badsum); | ||
111 | - lprint(" %6d with data length larger than packet\r\n", udpstat.udps_badlen); | ||
112 | - lprint(" %6d UDP socket cache misses\r\n", udpstat.udpps_pcbcachemiss); | ||
113 | - lprint(" %6d datagrams sent\r\n", udpstat.udps_opackets); | ||
114 | -} | ||
115 | - | ||
116 | -static void | ||
117 | -icmpstats(void) | ||
118 | -{ | ||
119 | - lprint(" \r\n"); | ||
120 | - lprint("ICMP stats:\r\n"); | ||
121 | - lprint(" %6d ICMP packets received\r\n", icmpstat.icps_received); | ||
122 | - lprint(" %6d were too short\r\n", icmpstat.icps_tooshort); | ||
123 | - lprint(" %6d with bad checksums\r\n", icmpstat.icps_checksum); | ||
124 | - lprint(" %6d with type not supported\r\n", icmpstat.icps_notsupp); | ||
125 | - lprint(" %6d with bad type feilds\r\n", icmpstat.icps_badtype); | ||
126 | - lprint(" %6d ICMP packets sent in reply\r\n", icmpstat.icps_reflect); | ||
127 | -} | ||
128 | - | ||
129 | -static void | ||
130 | -mbufstats(void) | ||
131 | -{ | ||
132 | - struct mbuf *m; | ||
133 | - int i; | ||
134 | - | ||
135 | - lprint(" \r\n"); | ||
136 | - | ||
137 | - lprint("Mbuf stats:\r\n"); | ||
138 | - | ||
139 | - lprint(" %6d mbufs allocated (%d max)\r\n", mbuf_alloced, mbuf_max); | ||
140 | - | ||
141 | - i = 0; | ||
142 | - for (m = m_freelist.m_next; m != &m_freelist; m = m->m_next) | ||
143 | - i++; | ||
144 | - lprint(" %6d mbufs on free list\r\n", i); | ||
145 | - | ||
146 | - i = 0; | ||
147 | - for (m = m_usedlist.m_next; m != &m_usedlist; m = m->m_next) | ||
148 | - i++; | ||
149 | - lprint(" %6d mbufs on used list\r\n", i); | ||
150 | - lprint(" %6d mbufs queued as packets\r\n\r\n", if_queued); | ||
151 | -} | ||
152 | -#endif | ||
153 | - | ||
154 | -void | ||
155 | -slirp_stats(void) | ||
156 | -{ | ||
157 | -#ifdef LOG_ENABLED | ||
158 | - ipstats(); | ||
159 | - tcpstats(); | ||
160 | - udpstats(); | ||
161 | - icmpstats(); | ||
162 | - mbufstats(); | ||
163 | -#else | ||
164 | - lprint("SLIRP statistics code not compiled.\n"); | ||
165 | -#endif | ||
166 | -} |
slirp/icmp_var.h
@@ -34,20 +34,6 @@ | @@ -34,20 +34,6 @@ | ||
34 | #define _NETINET_ICMP_VAR_H_ | 34 | #define _NETINET_ICMP_VAR_H_ |
35 | 35 | ||
36 | /* | 36 | /* |
37 | - * Variables related to this implementation | ||
38 | - * of the internet control message protocol. | ||
39 | - */ | ||
40 | -struct icmpstat { | ||
41 | -/* statistics related to input messages processed */ | ||
42 | - u_long icps_received; /* #ICMP packets received */ | ||
43 | - u_long icps_tooshort; /* packet < ICMP_MINLEN */ | ||
44 | - u_long icps_checksum; /* bad checksum */ | ||
45 | - u_long icps_notsupp; /* #ICMP packets not supported */ | ||
46 | - u_long icps_badtype; /* #with bad type feild */ | ||
47 | - u_long icps_reflect; /* number of responses */ | ||
48 | -}; | ||
49 | - | ||
50 | -/* | ||
51 | * Names for ICMP sysctl objects | 37 | * Names for ICMP sysctl objects |
52 | */ | 38 | */ |
53 | #define ICMPCTL_MASKREPL 1 /* allow replies to netmask requests */ | 39 | #define ICMPCTL_MASKREPL 1 /* allow replies to netmask requests */ |
@@ -60,8 +46,4 @@ struct icmpstat { | @@ -60,8 +46,4 @@ struct icmpstat { | ||
60 | { "stats", CTLTYPE_STRUCT }, \ | 46 | { "stats", CTLTYPE_STRUCT }, \ |
61 | } | 47 | } |
62 | 48 | ||
63 | -#ifdef LOG_ENABLED | ||
64 | -extern struct icmpstat icmpstat; | ||
65 | -#endif | ||
66 | - | ||
67 | #endif | 49 | #endif |
slirp/if.h
@@ -28,24 +28,4 @@ extern struct mbuf *next_m; | @@ -28,24 +28,4 @@ extern struct mbuf *next_m; | ||
28 | 28 | ||
29 | #define ifs_init(ifm) ((ifm)->ifs_next = (ifm)->ifs_prev = (ifm)) | 29 | #define ifs_init(ifm) ((ifm)->ifs_next = (ifm)->ifs_prev = (ifm)) |
30 | 30 | ||
31 | -#ifdef LOG_ENABLED | ||
32 | -/* Interface statistics */ | ||
33 | -struct slirp_ifstats { | ||
34 | - u_int out_pkts; /* Output packets */ | ||
35 | - u_int out_bytes; /* Output bytes */ | ||
36 | - u_int out_errpkts; /* Output Error Packets */ | ||
37 | - u_int out_errbytes; /* Output Error Bytes */ | ||
38 | - u_int in_pkts; /* Input packets */ | ||
39 | - u_int in_bytes; /* Input bytes */ | ||
40 | - u_int in_errpkts; /* Input Error Packets */ | ||
41 | - u_int in_errbytes; /* Input Error Bytes */ | ||
42 | - | ||
43 | - u_int bytes_saved; /* Number of bytes that compression "saved" */ | ||
44 | - /* ie: number of bytes that didn't need to be sent over the link | ||
45 | - * because of compression */ | ||
46 | - | ||
47 | - u_int in_mbad; /* Bad incoming packets */ | ||
48 | -}; | ||
49 | -#endif | ||
50 | - | ||
51 | #endif | 31 | #endif |
slirp/ip.h
@@ -250,43 +250,6 @@ struct ipoption { | @@ -250,43 +250,6 @@ struct ipoption { | ||
250 | int8_t ipopt_list[MAX_IPOPTLEN]; /* options proper */ | 250 | int8_t ipopt_list[MAX_IPOPTLEN]; /* options proper */ |
251 | }; | 251 | }; |
252 | 252 | ||
253 | -#ifdef LOG_ENABLED | ||
254 | -/* | ||
255 | - * Structure attached to inpcb.ip_moptions and | ||
256 | - * passed to ip_output when IP multicast options are in use. | ||
257 | - */ | ||
258 | - | ||
259 | -struct ipstat { | ||
260 | - u_long ips_total; /* total packets received */ | ||
261 | - u_long ips_badsum; /* checksum bad */ | ||
262 | - u_long ips_tooshort; /* packet too short */ | ||
263 | - u_long ips_toosmall; /* not enough data */ | ||
264 | - u_long ips_badhlen; /* ip header length < data size */ | ||
265 | - u_long ips_badlen; /* ip length < ip header length */ | ||
266 | - u_long ips_fragments; /* fragments received */ | ||
267 | - u_long ips_fragdropped; /* frags dropped (dups, out of space) */ | ||
268 | - u_long ips_fragtimeout; /* fragments timed out */ | ||
269 | - u_long ips_forward; /* packets forwarded */ | ||
270 | - u_long ips_cantforward; /* packets rcvd for unreachable dest */ | ||
271 | - u_long ips_redirectsent; /* packets forwarded on same net */ | ||
272 | - u_long ips_noproto; /* unknown or unsupported protocol */ | ||
273 | - u_long ips_delivered; /* datagrams delivered to upper level*/ | ||
274 | - u_long ips_localout; /* total ip packets generated here */ | ||
275 | - u_long ips_odropped; /* lost packets due to nobufs, etc. */ | ||
276 | - u_long ips_reassembled; /* total packets reassembled ok */ | ||
277 | - u_long ips_fragmented; /* datagrams successfully fragmented */ | ||
278 | - u_long ips_ofragments; /* output fragments created */ | ||
279 | - u_long ips_cantfrag; /* don't fragment flag was set, etc. */ | ||
280 | - u_long ips_badoptions; /* error in option processing */ | ||
281 | - u_long ips_noroute; /* packets discarded due to no route */ | ||
282 | - u_long ips_badvers; /* ip version != 4 */ | ||
283 | - u_long ips_rawout; /* total raw ip packets generated */ | ||
284 | - u_long ips_unaligned; /* times the ip packet was not aligned */ | ||
285 | -}; | ||
286 | - | ||
287 | -extern struct ipstat ipstat; | ||
288 | -#endif | ||
289 | - | ||
290 | extern struct ipq ipq; /* ip reass. queue */ | 253 | extern struct ipq ipq; /* ip reass. queue */ |
291 | extern u_int16_t ip_id; /* ip packet ctr, for ids */ | 254 | extern u_int16_t ip_id; /* ip packet ctr, for ids */ |
292 | 255 |
slirp/ip_icmp.c
@@ -33,10 +33,6 @@ | @@ -33,10 +33,6 @@ | ||
33 | #include "slirp.h" | 33 | #include "slirp.h" |
34 | #include "ip_icmp.h" | 34 | #include "ip_icmp.h" |
35 | 35 | ||
36 | -#ifdef LOG_ENABLED | ||
37 | -struct icmpstat icmpstat; | ||
38 | -#endif | ||
39 | - | ||
40 | /* The message sent when emulating PING */ | 36 | /* The message sent when emulating PING */ |
41 | /* Be nice and tell them it's just a pseudo-ping packet */ | 37 | /* Be nice and tell them it's just a pseudo-ping packet */ |
42 | static const char icmp_ping_msg[] = "This is a pseudo-PING packet used by Slirp to emulate ICMP ECHO-REQUEST packets.\n"; | 38 | static const char icmp_ping_msg[] = "This is a pseudo-PING packet used by Slirp to emulate ICMP ECHO-REQUEST packets.\n"; |
@@ -78,14 +74,11 @@ icmp_input(struct mbuf *m, int hlen) | @@ -78,14 +74,11 @@ icmp_input(struct mbuf *m, int hlen) | ||
78 | DEBUG_ARG("m = %lx", (long )m); | 74 | DEBUG_ARG("m = %lx", (long )m); |
79 | DEBUG_ARG("m_len = %d", m->m_len); | 75 | DEBUG_ARG("m_len = %d", m->m_len); |
80 | 76 | ||
81 | - STAT(icmpstat.icps_received++); | ||
82 | - | ||
83 | /* | 77 | /* |
84 | * Locate icmp structure in mbuf, and check | 78 | * Locate icmp structure in mbuf, and check |
85 | * that its not corrupted and of at least minimum length. | 79 | * that its not corrupted and of at least minimum length. |
86 | */ | 80 | */ |
87 | if (icmplen < ICMP_MINLEN) { /* min 8 bytes payload */ | 81 | if (icmplen < ICMP_MINLEN) { /* min 8 bytes payload */ |
88 | - STAT(icmpstat.icps_tooshort++); | ||
89 | freeit: | 82 | freeit: |
90 | m_freem(m); | 83 | m_freem(m); |
91 | goto end_error; | 84 | goto end_error; |
@@ -95,7 +88,6 @@ icmp_input(struct mbuf *m, int hlen) | @@ -95,7 +88,6 @@ icmp_input(struct mbuf *m, int hlen) | ||
95 | m->m_data += hlen; | 88 | m->m_data += hlen; |
96 | icp = mtod(m, struct icmp *); | 89 | icp = mtod(m, struct icmp *); |
97 | if (cksum(m, icmplen)) { | 90 | if (cksum(m, icmplen)) { |
98 | - STAT(icmpstat.icps_checksum++); | ||
99 | goto freeit; | 91 | goto freeit; |
100 | } | 92 | } |
101 | m->m_len += hlen; | 93 | m->m_len += hlen; |
@@ -159,12 +151,10 @@ icmp_input(struct mbuf *m, int hlen) | @@ -159,12 +151,10 @@ icmp_input(struct mbuf *m, int hlen) | ||
159 | case ICMP_TSTAMP: | 151 | case ICMP_TSTAMP: |
160 | case ICMP_MASKREQ: | 152 | case ICMP_MASKREQ: |
161 | case ICMP_REDIRECT: | 153 | case ICMP_REDIRECT: |
162 | - STAT(icmpstat.icps_notsupp++); | ||
163 | m_freem(m); | 154 | m_freem(m); |
164 | break; | 155 | break; |
165 | 156 | ||
166 | default: | 157 | default: |
167 | - STAT(icmpstat.icps_badtype++); | ||
168 | m_freem(m); | 158 | m_freem(m); |
169 | } /* swith */ | 159 | } /* swith */ |
170 | 160 | ||
@@ -299,8 +289,6 @@ icmp_error(struct mbuf *msrc, u_char type, u_char code, int minsize, | @@ -299,8 +289,6 @@ icmp_error(struct mbuf *msrc, u_char type, u_char code, int minsize, | ||
299 | 289 | ||
300 | (void ) ip_output((struct socket *)NULL, m); | 290 | (void ) ip_output((struct socket *)NULL, m); |
301 | 291 | ||
302 | - STAT(icmpstat.icps_reflect++); | ||
303 | - | ||
304 | end_error: | 292 | end_error: |
305 | return; | 293 | return; |
306 | } | 294 | } |
@@ -354,6 +342,4 @@ icmp_reflect(struct mbuf *m) | @@ -354,6 +342,4 @@ icmp_reflect(struct mbuf *m) | ||
354 | } | 342 | } |
355 | 343 | ||
356 | (void ) ip_output((struct socket *)NULL, m); | 344 | (void ) ip_output((struct socket *)NULL, m); |
357 | - | ||
358 | - STAT(icmpstat.icps_reflect++); | ||
359 | } | 345 | } |
slirp/ip_input.c
@@ -42,10 +42,6 @@ | @@ -42,10 +42,6 @@ | ||
42 | #include <osdep.h> | 42 | #include <osdep.h> |
43 | #include "ip_icmp.h" | 43 | #include "ip_icmp.h" |
44 | 44 | ||
45 | -#ifdef LOG_ENABLED | ||
46 | -struct ipstat ipstat; | ||
47 | -#endif | ||
48 | - | ||
49 | struct ipq ipq; | 45 | struct ipq ipq; |
50 | 46 | ||
51 | static struct ip *ip_reass(register struct ip *ip, | 47 | static struct ip *ip_reass(register struct ip *ip, |
@@ -82,24 +78,19 @@ ip_input(struct mbuf *m) | @@ -82,24 +78,19 @@ ip_input(struct mbuf *m) | ||
82 | DEBUG_ARG("m = %lx", (long)m); | 78 | DEBUG_ARG("m = %lx", (long)m); |
83 | DEBUG_ARG("m_len = %d", m->m_len); | 79 | DEBUG_ARG("m_len = %d", m->m_len); |
84 | 80 | ||
85 | - STAT(ipstat.ips_total++); | ||
86 | - | ||
87 | if (m->m_len < sizeof (struct ip)) { | 81 | if (m->m_len < sizeof (struct ip)) { |
88 | - STAT(ipstat.ips_toosmall++); | ||
89 | return; | 82 | return; |
90 | } | 83 | } |
91 | 84 | ||
92 | ip = mtod(m, struct ip *); | 85 | ip = mtod(m, struct ip *); |
93 | 86 | ||
94 | if (ip->ip_v != IPVERSION) { | 87 | if (ip->ip_v != IPVERSION) { |
95 | - STAT(ipstat.ips_badvers++); | ||
96 | goto bad; | 88 | goto bad; |
97 | } | 89 | } |
98 | 90 | ||
99 | hlen = ip->ip_hl << 2; | 91 | hlen = ip->ip_hl << 2; |
100 | if (hlen<sizeof(struct ip ) || hlen>m->m_len) {/* min header length */ | 92 | if (hlen<sizeof(struct ip ) || hlen>m->m_len) {/* min header length */ |
101 | - STAT(ipstat.ips_badhlen++); /* or packet too short */ | ||
102 | - goto bad; | 93 | + goto bad; /* or packet too short */ |
103 | } | 94 | } |
104 | 95 | ||
105 | /* keep ip header intact for ICMP reply | 96 | /* keep ip header intact for ICMP reply |
@@ -107,7 +98,6 @@ ip_input(struct mbuf *m) | @@ -107,7 +98,6 @@ ip_input(struct mbuf *m) | ||
107 | * if (ip->ip_sum) { | 98 | * if (ip->ip_sum) { |
108 | */ | 99 | */ |
109 | if(cksum(m,hlen)) { | 100 | if(cksum(m,hlen)) { |
110 | - STAT(ipstat.ips_badsum++); | ||
111 | goto bad; | 101 | goto bad; |
112 | } | 102 | } |
113 | 103 | ||
@@ -116,7 +106,6 @@ ip_input(struct mbuf *m) | @@ -116,7 +106,6 @@ ip_input(struct mbuf *m) | ||
116 | */ | 106 | */ |
117 | NTOHS(ip->ip_len); | 107 | NTOHS(ip->ip_len); |
118 | if (ip->ip_len < hlen) { | 108 | if (ip->ip_len < hlen) { |
119 | - STAT(ipstat.ips_badlen++); | ||
120 | goto bad; | 109 | goto bad; |
121 | } | 110 | } |
122 | NTOHS(ip->ip_id); | 111 | NTOHS(ip->ip_id); |
@@ -129,7 +118,6 @@ ip_input(struct mbuf *m) | @@ -129,7 +118,6 @@ ip_input(struct mbuf *m) | ||
129 | * Drop packet if shorter than we expect. | 118 | * Drop packet if shorter than we expect. |
130 | */ | 119 | */ |
131 | if (m->m_len < ip->ip_len) { | 120 | if (m->m_len < ip->ip_len) { |
132 | - STAT(ipstat.ips_tooshort++); | ||
133 | goto bad; | 121 | goto bad; |
134 | } | 122 | } |
135 | 123 | ||
@@ -210,11 +198,9 @@ ip_input(struct mbuf *m) | @@ -210,11 +198,9 @@ ip_input(struct mbuf *m) | ||
210 | * attempt reassembly; if it succeeds, proceed. | 198 | * attempt reassembly; if it succeeds, proceed. |
211 | */ | 199 | */ |
212 | if (ip->ip_tos & 1 || ip->ip_off) { | 200 | if (ip->ip_tos & 1 || ip->ip_off) { |
213 | - STAT(ipstat.ips_fragments++); | ||
214 | ip = ip_reass(ip, fp); | 201 | ip = ip_reass(ip, fp); |
215 | if (ip == NULL) | 202 | if (ip == NULL) |
216 | return; | 203 | return; |
217 | - STAT(ipstat.ips_reassembled++); | ||
218 | m = dtom(ip); | 204 | m = dtom(ip); |
219 | } else | 205 | } else |
220 | if (fp) | 206 | if (fp) |
@@ -226,7 +212,6 @@ ip_input(struct mbuf *m) | @@ -226,7 +212,6 @@ ip_input(struct mbuf *m) | ||
226 | /* | 212 | /* |
227 | * Switch out to protocol's input routine. | 213 | * Switch out to protocol's input routine. |
228 | */ | 214 | */ |
229 | - STAT(ipstat.ips_delivered++); | ||
230 | switch (ip->ip_p) { | 215 | switch (ip->ip_p) { |
231 | case IPPROTO_TCP: | 216 | case IPPROTO_TCP: |
232 | tcp_input(m, hlen, (struct socket *)NULL); | 217 | tcp_input(m, hlen, (struct socket *)NULL); |
@@ -238,7 +223,6 @@ ip_input(struct mbuf *m) | @@ -238,7 +223,6 @@ ip_input(struct mbuf *m) | ||
238 | icmp_input(m, hlen); | 223 | icmp_input(m, hlen); |
239 | break; | 224 | break; |
240 | default: | 225 | default: |
241 | - STAT(ipstat.ips_noproto++); | ||
242 | m_free(m); | 226 | m_free(m); |
243 | } | 227 | } |
244 | return; | 228 | return; |
@@ -399,7 +383,6 @@ insert: | @@ -399,7 +383,6 @@ insert: | ||
399 | return ip; | 383 | return ip; |
400 | 384 | ||
401 | dropfrag: | 385 | dropfrag: |
402 | - STAT(ipstat.ips_fragdropped++); | ||
403 | m_freem(m); | 386 | m_freem(m); |
404 | return NULL; | 387 | return NULL; |
405 | } | 388 | } |
@@ -468,7 +451,6 @@ ip_slowtimo(void) | @@ -468,7 +451,6 @@ ip_slowtimo(void) | ||
468 | struct ipq *fp = container_of(l, struct ipq, ip_link); | 451 | struct ipq *fp = container_of(l, struct ipq, ip_link); |
469 | l = l->next; | 452 | l = l->next; |
470 | if (--fp->ipq_ttl == 0) { | 453 | if (--fp->ipq_ttl == 0) { |
471 | - STAT(ipstat.ips_fragtimeout++); | ||
472 | ip_freef(fp); | 454 | ip_freef(fp); |
473 | } | 455 | } |
474 | } | 456 | } |
@@ -671,7 +653,6 @@ typedef u_int32_t n_time; | @@ -671,7 +653,6 @@ typedef u_int32_t n_time; | ||
671 | bad: | 653 | bad: |
672 | icmp_error(m, type, code, 0, 0); | 654 | icmp_error(m, type, code, 0, 0); |
673 | 655 | ||
674 | - STAT(ipstat.ips_badoptions++); | ||
675 | return (1); | 656 | return (1); |
676 | } | 657 | } |
677 | 658 |
slirp/ip_output.c
@@ -72,7 +72,6 @@ ip_output(struct socket *so, struct mbuf *m0) | @@ -72,7 +72,6 @@ ip_output(struct socket *so, struct mbuf *m0) | ||
72 | ip->ip_off &= IP_DF; | 72 | ip->ip_off &= IP_DF; |
73 | ip->ip_id = htons(ip_id++); | 73 | ip->ip_id = htons(ip_id++); |
74 | ip->ip_hl = hlen >> 2; | 74 | ip->ip_hl = hlen >> 2; |
75 | - STAT(ipstat.ips_localout++); | ||
76 | 75 | ||
77 | /* | 76 | /* |
78 | * If small enough for interface, can just send directly. | 77 | * If small enough for interface, can just send directly. |
@@ -93,7 +92,6 @@ ip_output(struct socket *so, struct mbuf *m0) | @@ -93,7 +92,6 @@ ip_output(struct socket *so, struct mbuf *m0) | ||
93 | */ | 92 | */ |
94 | if (ip->ip_off & IP_DF) { | 93 | if (ip->ip_off & IP_DF) { |
95 | error = -1; | 94 | error = -1; |
96 | - STAT(ipstat.ips_cantfrag++); | ||
97 | goto bad; | 95 | goto bad; |
98 | } | 96 | } |
99 | 97 | ||
@@ -118,7 +116,6 @@ ip_output(struct socket *so, struct mbuf *m0) | @@ -118,7 +116,6 @@ ip_output(struct socket *so, struct mbuf *m0) | ||
118 | m = m_get(); | 116 | m = m_get(); |
119 | if (m == NULL) { | 117 | if (m == NULL) { |
120 | error = -1; | 118 | error = -1; |
121 | - STAT(ipstat.ips_odropped++); | ||
122 | goto sendorfree; | 119 | goto sendorfree; |
123 | } | 120 | } |
124 | m->m_data += IF_MAXLINKHDR; | 121 | m->m_data += IF_MAXLINKHDR; |
@@ -145,7 +142,6 @@ ip_output(struct socket *so, struct mbuf *m0) | @@ -145,7 +142,6 @@ ip_output(struct socket *so, struct mbuf *m0) | ||
145 | mhip->ip_sum = cksum(m, mhlen); | 142 | mhip->ip_sum = cksum(m, mhlen); |
146 | *mnext = m; | 143 | *mnext = m; |
147 | mnext = &m->m_nextpkt; | 144 | mnext = &m->m_nextpkt; |
148 | - STAT(ipstat.ips_ofragments++); | ||
149 | } | 145 | } |
150 | /* | 146 | /* |
151 | * Update first fragment by trimming what's been copied out | 147 | * Update first fragment by trimming what's been copied out |
@@ -166,9 +162,6 @@ sendorfree: | @@ -166,9 +162,6 @@ sendorfree: | ||
166 | else | 162 | else |
167 | m_freem(m); | 163 | m_freem(m); |
168 | } | 164 | } |
169 | - | ||
170 | - if (error == 0) | ||
171 | - STAT(ipstat.ips_fragmented++); | ||
172 | } | 165 | } |
173 | 166 | ||
174 | done: | 167 | done: |
slirp/libslirp.h
@@ -26,7 +26,6 @@ int slirp_remove_hostfwd(int is_udp, struct in_addr host_addr, int host_port); | @@ -26,7 +26,6 @@ int slirp_remove_hostfwd(int is_udp, struct in_addr host_addr, int host_port); | ||
26 | int slirp_add_exec(int do_pty, const void *args, struct in_addr guest_addr, | 26 | int slirp_add_exec(int do_pty, const void *args, struct in_addr guest_addr, |
27 | int guest_port); | 27 | int guest_port); |
28 | 28 | ||
29 | -void slirp_stats(void); | ||
30 | void slirp_connection_info(Monitor *mon); | 29 | void slirp_connection_info(Monitor *mon); |
31 | 30 | ||
32 | void slirp_socket_recv(struct in_addr guest_addr, int guest_port, | 31 | void slirp_socket_recv(struct in_addr guest_addr, int guest_port, |
slirp/mbuf.c
@@ -17,10 +17,9 @@ | @@ -17,10 +17,9 @@ | ||
17 | 17 | ||
18 | #include <slirp.h> | 18 | #include <slirp.h> |
19 | 19 | ||
20 | -int mbuf_alloced = 0; | 20 | +static int mbuf_alloced; |
21 | struct mbuf m_freelist, m_usedlist; | 21 | struct mbuf m_freelist, m_usedlist; |
22 | #define MBUF_THRESH 30 | 22 | #define MBUF_THRESH 30 |
23 | -int mbuf_max = 0; | ||
24 | 23 | ||
25 | /* | 24 | /* |
26 | * Find a nice value for msize | 25 | * Find a nice value for msize |
@@ -57,8 +56,6 @@ m_get(void) | @@ -57,8 +56,6 @@ m_get(void) | ||
57 | mbuf_alloced++; | 56 | mbuf_alloced++; |
58 | if (mbuf_alloced > MBUF_THRESH) | 57 | if (mbuf_alloced > MBUF_THRESH) |
59 | flags = M_DOFREE; | 58 | flags = M_DOFREE; |
60 | - if (mbuf_alloced > mbuf_max) | ||
61 | - mbuf_max = mbuf_alloced; | ||
62 | } else { | 59 | } else { |
63 | m = m_freelist.m_next; | 60 | m = m_freelist.m_next; |
64 | remque(m); | 61 | remque(m); |
slirp/mbuf.h
@@ -114,19 +114,7 @@ struct mbuf { | @@ -114,19 +114,7 @@ struct mbuf { | ||
114 | #define M_DOFREE 0x08 /* when m_free is called on the mbuf, free() | 114 | #define M_DOFREE 0x08 /* when m_free is called on the mbuf, free() |
115 | * it rather than putting it on the free list */ | 115 | * it rather than putting it on the free list */ |
116 | 116 | ||
117 | -/* | ||
118 | - * Mbuf statistics. XXX | ||
119 | - */ | ||
120 | - | ||
121 | -struct mbstat { | ||
122 | - int mbs_alloced; /* Number of mbufs allocated */ | ||
123 | - | ||
124 | -}; | ||
125 | - | ||
126 | -extern struct mbstat mbstat; | ||
127 | -extern int mbuf_alloced; | ||
128 | extern struct mbuf m_freelist, m_usedlist; | 117 | extern struct mbuf m_freelist, m_usedlist; |
129 | -extern int mbuf_max; | ||
130 | 118 | ||
131 | void m_init _P((void)); | 119 | void m_init _P((void)); |
132 | struct mbuf * m_get _P((void)); | 120 | struct mbuf * m_get _P((void)); |
slirp/slirp.h
@@ -3,15 +3,6 @@ | @@ -3,15 +3,6 @@ | ||
3 | 3 | ||
4 | //#define DEBUG 1 | 4 | //#define DEBUG 1 |
5 | 5 | ||
6 | -// Uncomment the following line to enable SLIRP statistics printing in Qemu | ||
7 | -//#define LOG_ENABLED | ||
8 | - | ||
9 | -#ifdef LOG_ENABLED | ||
10 | -#define STAT(expr) expr | ||
11 | -#else | ||
12 | -#define STAT(expr) do { } while(0) | ||
13 | -#endif | ||
14 | - | ||
15 | #include "config-host.h" | 6 | #include "config-host.h" |
16 | #include "slirp_config.h" | 7 | #include "slirp_config.h" |
17 | 8 |
slirp/tcp_input.c
@@ -75,8 +75,6 @@ tcp_seq tcp_iss; /* tcp initial send seq # */ | @@ -75,8 +75,6 @@ tcp_seq tcp_iss; /* tcp initial send seq # */ | ||
75 | tp->t_flags |= TF_DELACK; \ | 75 | tp->t_flags |= TF_DELACK; \ |
76 | (tp)->rcv_nxt += (ti)->ti_len; \ | 76 | (tp)->rcv_nxt += (ti)->ti_len; \ |
77 | flags = (ti)->ti_flags & TH_FIN; \ | 77 | flags = (ti)->ti_flags & TH_FIN; \ |
78 | - STAT(tcpstat.tcps_rcvpack++); \ | ||
79 | - STAT(tcpstat.tcps_rcvbyte += (ti)->ti_len); \ | ||
80 | if (so->so_emu) { \ | 78 | if (so->so_emu) { \ |
81 | if (tcp_emu((so),(m))) sbappend((so), (m)); \ | 79 | if (tcp_emu((so),(m))) sbappend((so), (m)); \ |
82 | } else \ | 80 | } else \ |
@@ -94,8 +92,6 @@ tcp_seq tcp_iss; /* tcp initial send seq # */ | @@ -94,8 +92,6 @@ tcp_seq tcp_iss; /* tcp initial send seq # */ | ||
94 | tp->t_flags |= TF_DELACK; \ | 92 | tp->t_flags |= TF_DELACK; \ |
95 | (tp)->rcv_nxt += (ti)->ti_len; \ | 93 | (tp)->rcv_nxt += (ti)->ti_len; \ |
96 | flags = (ti)->ti_flags & TH_FIN; \ | 94 | flags = (ti)->ti_flags & TH_FIN; \ |
97 | - STAT(tcpstat.tcps_rcvpack++); \ | ||
98 | - STAT(tcpstat.tcps_rcvbyte += (ti)->ti_len); \ | ||
99 | if (so->so_emu) { \ | 95 | if (so->so_emu) { \ |
100 | if (tcp_emu((so),(m))) sbappend(so, (m)); \ | 96 | if (tcp_emu((so),(m))) sbappend(so, (m)); \ |
101 | } else \ | 97 | } else \ |
@@ -145,8 +141,6 @@ tcp_reass(register struct tcpcb *tp, register struct tcpiphdr *ti, | @@ -145,8 +141,6 @@ tcp_reass(register struct tcpcb *tp, register struct tcpiphdr *ti, | ||
145 | i = q->ti_seq + q->ti_len - ti->ti_seq; | 141 | i = q->ti_seq + q->ti_len - ti->ti_seq; |
146 | if (i > 0) { | 142 | if (i > 0) { |
147 | if (i >= ti->ti_len) { | 143 | if (i >= ti->ti_len) { |
148 | - STAT(tcpstat.tcps_rcvduppack++); | ||
149 | - STAT(tcpstat.tcps_rcvdupbyte += ti->ti_len); | ||
150 | m_freem(m); | 144 | m_freem(m); |
151 | /* | 145 | /* |
152 | * Try to present any queued data | 146 | * Try to present any queued data |
@@ -162,8 +156,6 @@ tcp_reass(register struct tcpcb *tp, register struct tcpiphdr *ti, | @@ -162,8 +156,6 @@ tcp_reass(register struct tcpcb *tp, register struct tcpiphdr *ti, | ||
162 | } | 156 | } |
163 | q = tcpiphdr_next(q); | 157 | q = tcpiphdr_next(q); |
164 | } | 158 | } |
165 | - STAT(tcpstat.tcps_rcvoopack++); | ||
166 | - STAT(tcpstat.tcps_rcvoobyte += ti->ti_len); | ||
167 | ti->ti_mbuf = m; | 159 | ti->ti_mbuf = m; |
168 | 160 | ||
169 | /* | 161 | /* |
@@ -263,8 +255,6 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | @@ -263,8 +255,6 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | ||
263 | goto cont_conn; | 255 | goto cont_conn; |
264 | } | 256 | } |
265 | 257 | ||
266 | - | ||
267 | - STAT(tcpstat.tcps_rcvtotal++); | ||
268 | /* | 258 | /* |
269 | * Get IP and TCP header together in first mbuf. | 259 | * Get IP and TCP header together in first mbuf. |
270 | * Note: IP leaves IP header in first mbuf. | 260 | * Note: IP leaves IP header in first mbuf. |
@@ -295,7 +285,6 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | @@ -295,7 +285,6 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | ||
295 | ti->ti_len = htons((u_int16_t)tlen); | 285 | ti->ti_len = htons((u_int16_t)tlen); |
296 | len = sizeof(struct ip ) + tlen; | 286 | len = sizeof(struct ip ) + tlen; |
297 | if(cksum(m, len)) { | 287 | if(cksum(m, len)) { |
298 | - STAT(tcpstat.tcps_rcvbadsum++); | ||
299 | goto drop; | 288 | goto drop; |
300 | } | 289 | } |
301 | 290 | ||
@@ -305,7 +294,6 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | @@ -305,7 +294,6 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | ||
305 | */ | 294 | */ |
306 | off = ti->ti_off << 2; | 295 | off = ti->ti_off << 2; |
307 | if (off < sizeof (struct tcphdr) || off > tlen) { | 296 | if (off < sizeof (struct tcphdr) || off > tlen) { |
308 | - STAT(tcpstat.tcps_rcvbadoff++); | ||
309 | goto drop; | 297 | goto drop; |
310 | } | 298 | } |
311 | tlen -= off; | 299 | tlen -= off; |
@@ -353,7 +341,6 @@ findso: | @@ -353,7 +341,6 @@ findso: | ||
353 | ti->ti_dst, ti->ti_dport); | 341 | ti->ti_dst, ti->ti_dport); |
354 | if (so) | 342 | if (so) |
355 | tcp_last_so = so; | 343 | tcp_last_so = so; |
356 | - STAT(tcpstat.tcps_socachemiss++); | ||
357 | } | 344 | } |
358 | 345 | ||
359 | /* | 346 | /* |
@@ -460,13 +447,10 @@ findso: | @@ -460,13 +447,10 @@ findso: | ||
460 | /* | 447 | /* |
461 | * this is a pure ack for outstanding data. | 448 | * this is a pure ack for outstanding data. |
462 | */ | 449 | */ |
463 | - STAT(tcpstat.tcps_predack++); | ||
464 | if (tp->t_rtt && | 450 | if (tp->t_rtt && |
465 | SEQ_GT(ti->ti_ack, tp->t_rtseq)) | 451 | SEQ_GT(ti->ti_ack, tp->t_rtseq)) |
466 | tcp_xmit_timer(tp, tp->t_rtt); | 452 | tcp_xmit_timer(tp, tp->t_rtt); |
467 | acked = ti->ti_ack - tp->snd_una; | 453 | acked = ti->ti_ack - tp->snd_una; |
468 | - STAT(tcpstat.tcps_rcvackpack++); | ||
469 | - STAT(tcpstat.tcps_rcvackbyte += acked); | ||
470 | sbdrop(&so->so_snd, acked); | 454 | sbdrop(&so->so_snd, acked); |
471 | tp->snd_una = ti->ti_ack; | 455 | tp->snd_una = ti->ti_ack; |
472 | m_freem(m); | 456 | m_freem(m); |
@@ -503,10 +487,7 @@ findso: | @@ -503,10 +487,7 @@ findso: | ||
503 | * with nothing on the reassembly queue and | 487 | * with nothing on the reassembly queue and |
504 | * we have enough buffer space to take it. | 488 | * we have enough buffer space to take it. |
505 | */ | 489 | */ |
506 | - STAT(tcpstat.tcps_preddat++); | ||
507 | tp->rcv_nxt += ti->ti_len; | 490 | tp->rcv_nxt += ti->ti_len; |
508 | - STAT(tcpstat.tcps_rcvpack++); | ||
509 | - STAT(tcpstat.tcps_rcvbyte += ti->ti_len); | ||
510 | /* | 491 | /* |
511 | * Add data to socket buffer. | 492 | * Add data to socket buffer. |
512 | */ | 493 | */ |
@@ -658,7 +639,6 @@ findso: | @@ -658,7 +639,6 @@ findso: | ||
658 | tp->t_flags |= TF_ACKNOW; | 639 | tp->t_flags |= TF_ACKNOW; |
659 | tp->t_state = TCPS_SYN_RECEIVED; | 640 | tp->t_state = TCPS_SYN_RECEIVED; |
660 | tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_INIT; | 641 | tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_INIT; |
661 | - STAT(tcpstat.tcps_accepts++); | ||
662 | goto trimthenstep6; | 642 | goto trimthenstep6; |
663 | } /* case TCPS_LISTEN */ | 643 | } /* case TCPS_LISTEN */ |
664 | 644 | ||
@@ -699,7 +679,6 @@ findso: | @@ -699,7 +679,6 @@ findso: | ||
699 | tcp_rcvseqinit(tp); | 679 | tcp_rcvseqinit(tp); |
700 | tp->t_flags |= TF_ACKNOW; | 680 | tp->t_flags |= TF_ACKNOW; |
701 | if (tiflags & TH_ACK && SEQ_GT(tp->snd_una, tp->iss)) { | 681 | if (tiflags & TH_ACK && SEQ_GT(tp->snd_una, tp->iss)) { |
702 | - STAT(tcpstat.tcps_connects++); | ||
703 | soisfconnected(so); | 682 | soisfconnected(so); |
704 | tp->t_state = TCPS_ESTABLISHED; | 683 | tp->t_state = TCPS_ESTABLISHED; |
705 | 684 | ||
@@ -726,8 +705,6 @@ trimthenstep6: | @@ -726,8 +705,6 @@ trimthenstep6: | ||
726 | m_adj(m, -todrop); | 705 | m_adj(m, -todrop); |
727 | ti->ti_len = tp->rcv_wnd; | 706 | ti->ti_len = tp->rcv_wnd; |
728 | tiflags &= ~TH_FIN; | 707 | tiflags &= ~TH_FIN; |
729 | - STAT(tcpstat.tcps_rcvpackafterwin++); | ||
730 | - STAT(tcpstat.tcps_rcvbyteafterwin += todrop); | ||
731 | } | 708 | } |
732 | tp->snd_wl1 = ti->ti_seq - 1; | 709 | tp->snd_wl1 = ti->ti_seq - 1; |
733 | tp->rcv_up = ti->ti_seq; | 710 | tp->rcv_up = ti->ti_seq; |
@@ -768,11 +745,6 @@ trimthenstep6: | @@ -768,11 +745,6 @@ trimthenstep6: | ||
768 | */ | 745 | */ |
769 | tp->t_flags |= TF_ACKNOW; | 746 | tp->t_flags |= TF_ACKNOW; |
770 | todrop = ti->ti_len; | 747 | todrop = ti->ti_len; |
771 | - STAT(tcpstat.tcps_rcvduppack++); | ||
772 | - STAT(tcpstat.tcps_rcvdupbyte += todrop); | ||
773 | - } else { | ||
774 | - STAT(tcpstat.tcps_rcvpartduppack++); | ||
775 | - STAT(tcpstat.tcps_rcvpartdupbyte += todrop); | ||
776 | } | 748 | } |
777 | m_adj(m, todrop); | 749 | m_adj(m, todrop); |
778 | ti->ti_seq += todrop; | 750 | ti->ti_seq += todrop; |
@@ -791,7 +763,6 @@ trimthenstep6: | @@ -791,7 +763,6 @@ trimthenstep6: | ||
791 | if ((so->so_state & SS_NOFDREF) && | 763 | if ((so->so_state & SS_NOFDREF) && |
792 | tp->t_state > TCPS_CLOSE_WAIT && ti->ti_len) { | 764 | tp->t_state > TCPS_CLOSE_WAIT && ti->ti_len) { |
793 | tp = tcp_close(tp); | 765 | tp = tcp_close(tp); |
794 | - STAT(tcpstat.tcps_rcvafterclose++); | ||
795 | goto dropwithreset; | 766 | goto dropwithreset; |
796 | } | 767 | } |
797 | 768 | ||
@@ -801,9 +772,7 @@ trimthenstep6: | @@ -801,9 +772,7 @@ trimthenstep6: | ||
801 | */ | 772 | */ |
802 | todrop = (ti->ti_seq+ti->ti_len) - (tp->rcv_nxt+tp->rcv_wnd); | 773 | todrop = (ti->ti_seq+ti->ti_len) - (tp->rcv_nxt+tp->rcv_wnd); |
803 | if (todrop > 0) { | 774 | if (todrop > 0) { |
804 | - STAT(tcpstat.tcps_rcvpackafterwin++); | ||
805 | if (todrop >= ti->ti_len) { | 775 | if (todrop >= ti->ti_len) { |
806 | - STAT(tcpstat.tcps_rcvbyteafterwin += ti->ti_len); | ||
807 | /* | 776 | /* |
808 | * If a new connection request is received | 777 | * If a new connection request is received |
809 | * while in TIME_WAIT, drop the old connection | 778 | * while in TIME_WAIT, drop the old connection |
@@ -826,11 +795,10 @@ trimthenstep6: | @@ -826,11 +795,10 @@ trimthenstep6: | ||
826 | */ | 795 | */ |
827 | if (tp->rcv_wnd == 0 && ti->ti_seq == tp->rcv_nxt) { | 796 | if (tp->rcv_wnd == 0 && ti->ti_seq == tp->rcv_nxt) { |
828 | tp->t_flags |= TF_ACKNOW; | 797 | tp->t_flags |= TF_ACKNOW; |
829 | - STAT(tcpstat.tcps_rcvwinprobe++); | ||
830 | - } else | 798 | + } else { |
831 | goto dropafterack; | 799 | goto dropafterack; |
832 | - } else | ||
833 | - STAT(tcpstat.tcps_rcvbyteafterwin += todrop); | 800 | + } |
801 | + } | ||
834 | m_adj(m, -todrop); | 802 | m_adj(m, -todrop); |
835 | ti->ti_len -= todrop; | 803 | ti->ti_len -= todrop; |
836 | tiflags &= ~(TH_PUSH|TH_FIN); | 804 | tiflags &= ~(TH_PUSH|TH_FIN); |
@@ -854,7 +822,6 @@ trimthenstep6: | @@ -854,7 +822,6 @@ trimthenstep6: | ||
854 | case TCPS_FIN_WAIT_2: | 822 | case TCPS_FIN_WAIT_2: |
855 | case TCPS_CLOSE_WAIT: | 823 | case TCPS_CLOSE_WAIT: |
856 | tp->t_state = TCPS_CLOSED; | 824 | tp->t_state = TCPS_CLOSED; |
857 | - STAT(tcpstat.tcps_drops++); | ||
858 | tp = tcp_close(tp); | 825 | tp = tcp_close(tp); |
859 | goto drop; | 826 | goto drop; |
860 | 827 | ||
@@ -893,7 +860,6 @@ trimthenstep6: | @@ -893,7 +860,6 @@ trimthenstep6: | ||
893 | if (SEQ_GT(tp->snd_una, ti->ti_ack) || | 860 | if (SEQ_GT(tp->snd_una, ti->ti_ack) || |
894 | SEQ_GT(ti->ti_ack, tp->snd_max)) | 861 | SEQ_GT(ti->ti_ack, tp->snd_max)) |
895 | goto dropwithreset; | 862 | goto dropwithreset; |
896 | - STAT(tcpstat.tcps_connects++); | ||
897 | tp->t_state = TCPS_ESTABLISHED; | 863 | tp->t_state = TCPS_ESTABLISHED; |
898 | /* | 864 | /* |
899 | * The sent SYN is ack'ed with our sequence number +1 | 865 | * The sent SYN is ack'ed with our sequence number +1 |
@@ -944,7 +910,6 @@ trimthenstep6: | @@ -944,7 +910,6 @@ trimthenstep6: | ||
944 | 910 | ||
945 | if (SEQ_LEQ(ti->ti_ack, tp->snd_una)) { | 911 | if (SEQ_LEQ(ti->ti_ack, tp->snd_una)) { |
946 | if (ti->ti_len == 0 && tiwin == tp->snd_wnd) { | 912 | if (ti->ti_len == 0 && tiwin == tp->snd_wnd) { |
947 | - STAT(tcpstat.tcps_rcvdupack++); | ||
948 | DEBUG_MISC((dfd," dup ack m = %lx so = %lx \n", | 913 | DEBUG_MISC((dfd," dup ack m = %lx so = %lx \n", |
949 | (long )m, (long )so)); | 914 | (long )m, (long )so)); |
950 | /* | 915 | /* |
@@ -1012,12 +977,9 @@ trimthenstep6: | @@ -1012,12 +977,9 @@ trimthenstep6: | ||
1012 | tp->snd_cwnd = tp->snd_ssthresh; | 977 | tp->snd_cwnd = tp->snd_ssthresh; |
1013 | tp->t_dupacks = 0; | 978 | tp->t_dupacks = 0; |
1014 | if (SEQ_GT(ti->ti_ack, tp->snd_max)) { | 979 | if (SEQ_GT(ti->ti_ack, tp->snd_max)) { |
1015 | - STAT(tcpstat.tcps_rcvacktoomuch++); | ||
1016 | goto dropafterack; | 980 | goto dropafterack; |
1017 | } | 981 | } |
1018 | acked = ti->ti_ack - tp->snd_una; | 982 | acked = ti->ti_ack - tp->snd_una; |
1019 | - STAT(tcpstat.tcps_rcvackpack++); | ||
1020 | - STAT(tcpstat.tcps_rcvackbyte += acked); | ||
1021 | 983 | ||
1022 | /* | 984 | /* |
1023 | * If transmit timer is running and timed sequence | 985 | * If transmit timer is running and timed sequence |
@@ -1138,10 +1100,6 @@ step6: | @@ -1138,10 +1100,6 @@ step6: | ||
1138 | (SEQ_LT(tp->snd_wl1, ti->ti_seq) || | 1100 | (SEQ_LT(tp->snd_wl1, ti->ti_seq) || |
1139 | (tp->snd_wl1 == ti->ti_seq && (SEQ_LT(tp->snd_wl2, ti->ti_ack) || | 1101 | (tp->snd_wl1 == ti->ti_seq && (SEQ_LT(tp->snd_wl2, ti->ti_ack) || |
1140 | (tp->snd_wl2 == ti->ti_ack && tiwin > tp->snd_wnd))))) { | 1102 | (tp->snd_wl2 == ti->ti_ack && tiwin > tp->snd_wnd))))) { |
1141 | - /* keep track of pure window updates */ | ||
1142 | - if (ti->ti_len == 0 && | ||
1143 | - tp->snd_wl2 == ti->ti_ack && tiwin > tp->snd_wnd) | ||
1144 | - STAT(tcpstat.tcps_rcvwinupd++); | ||
1145 | tp->snd_wnd = tiwin; | 1103 | tp->snd_wnd = tiwin; |
1146 | tp->snd_wl1 = ti->ti_seq; | 1104 | tp->snd_wl1 = ti->ti_seq; |
1147 | tp->snd_wl2 = ti->ti_ack; | 1105 | tp->snd_wl2 = ti->ti_ack; |
@@ -1425,7 +1383,6 @@ tcp_xmit_timer(register struct tcpcb *tp, int rtt) | @@ -1425,7 +1383,6 @@ tcp_xmit_timer(register struct tcpcb *tp, int rtt) | ||
1425 | DEBUG_ARG("tp = %lx", (long)tp); | 1383 | DEBUG_ARG("tp = %lx", (long)tp); |
1426 | DEBUG_ARG("rtt = %d", rtt); | 1384 | DEBUG_ARG("rtt = %d", rtt); |
1427 | 1385 | ||
1428 | - STAT(tcpstat.tcps_rttupdated++); | ||
1429 | if (tp->t_srtt != 0) { | 1386 | if (tp->t_srtt != 0) { |
1430 | /* | 1387 | /* |
1431 | * srtt is stored as fixed point with 3 bits after the | 1388 | * srtt is stored as fixed point with 3 bits after the |
slirp/tcp_output.c
@@ -247,8 +247,6 @@ again: | @@ -247,8 +247,6 @@ again: | ||
247 | /* | 247 | /* |
248 | * No reason to send a segment, just return. | 248 | * No reason to send a segment, just return. |
249 | */ | 249 | */ |
250 | - STAT(tcpstat.tcps_didnuttin++); | ||
251 | - | ||
252 | return (0); | 250 | return (0); |
253 | 251 | ||
254 | send: | 252 | send: |
@@ -292,16 +290,6 @@ send: | @@ -292,16 +290,6 @@ send: | ||
292 | * the template for sends on this connection. | 290 | * the template for sends on this connection. |
293 | */ | 291 | */ |
294 | if (len) { | 292 | if (len) { |
295 | - if (tp->t_force && len == 1) | ||
296 | - STAT(tcpstat.tcps_sndprobe++); | ||
297 | - else if (SEQ_LT(tp->snd_nxt, tp->snd_max)) { | ||
298 | - STAT(tcpstat.tcps_sndrexmitpack++); | ||
299 | - STAT(tcpstat.tcps_sndrexmitbyte += len); | ||
300 | - } else { | ||
301 | - STAT(tcpstat.tcps_sndpack++); | ||
302 | - STAT(tcpstat.tcps_sndbyte += len); | ||
303 | - } | ||
304 | - | ||
305 | m = m_get(); | 293 | m = m_get(); |
306 | if (m == NULL) { | 294 | if (m == NULL) { |
307 | error = 1; | 295 | error = 1; |
@@ -322,15 +310,6 @@ send: | @@ -322,15 +310,6 @@ send: | ||
322 | if (off + len == so->so_snd.sb_cc) | 310 | if (off + len == so->so_snd.sb_cc) |
323 | flags |= TH_PUSH; | 311 | flags |= TH_PUSH; |
324 | } else { | 312 | } else { |
325 | - if (tp->t_flags & TF_ACKNOW) | ||
326 | - STAT(tcpstat.tcps_sndacks++); | ||
327 | - else if (flags & (TH_SYN|TH_FIN|TH_RST)) | ||
328 | - STAT(tcpstat.tcps_sndctrl++); | ||
329 | - else if (SEQ_GT(tp->snd_up, tp->snd_una)) | ||
330 | - STAT(tcpstat.tcps_sndurg++); | ||
331 | - else | ||
332 | - STAT(tcpstat.tcps_sndwinup++); | ||
333 | - | ||
334 | m = m_get(); | 313 | m = m_get(); |
335 | if (m == NULL) { | 314 | if (m == NULL) { |
336 | error = 1; | 315 | error = 1; |
@@ -436,7 +415,6 @@ send: | @@ -436,7 +415,6 @@ send: | ||
436 | if (tp->t_rtt == 0) { | 415 | if (tp->t_rtt == 0) { |
437 | tp->t_rtt = 1; | 416 | tp->t_rtt = 1; |
438 | tp->t_rtseq = startseq; | 417 | tp->t_rtseq = startseq; |
439 | - STAT(tcpstat.tcps_segstimed++); | ||
440 | } | 418 | } |
441 | } | 419 | } |
442 | 420 | ||
@@ -481,7 +459,6 @@ send: | @@ -481,7 +459,6 @@ send: | ||
481 | out: | 459 | out: |
482 | return (error); | 460 | return (error); |
483 | } | 461 | } |
484 | - STAT(tcpstat.tcps_sndtotal++); | ||
485 | 462 | ||
486 | /* | 463 | /* |
487 | * Data sent (as far as we can tell). | 464 | * Data sent (as far as we can tell). |
slirp/tcp_subr.c
@@ -222,9 +222,7 @@ struct tcpcb *tcp_drop(struct tcpcb *tp, int err) | @@ -222,9 +222,7 @@ struct tcpcb *tcp_drop(struct tcpcb *tp, int err) | ||
222 | if (TCPS_HAVERCVDSYN(tp->t_state)) { | 222 | if (TCPS_HAVERCVDSYN(tp->t_state)) { |
223 | tp->t_state = TCPS_CLOSED; | 223 | tp->t_state = TCPS_CLOSED; |
224 | (void) tcp_output(tp); | 224 | (void) tcp_output(tp); |
225 | - STAT(tcpstat.tcps_drops++); | ||
226 | - } else | ||
227 | - STAT(tcpstat.tcps_conndrops++); | 225 | + } |
228 | return (tcp_close(tp)); | 226 | return (tcp_close(tp)); |
229 | } | 227 | } |
230 | 228 | ||
@@ -261,7 +259,6 @@ tcp_close(struct tcpcb *tp) | @@ -261,7 +259,6 @@ tcp_close(struct tcpcb *tp) | ||
261 | sbfree(&so->so_rcv); | 259 | sbfree(&so->so_rcv); |
262 | sbfree(&so->so_snd); | 260 | sbfree(&so->so_snd); |
263 | sofree(so); | 261 | sofree(so); |
264 | - STAT(tcpstat.tcps_closed++); | ||
265 | return ((struct tcpcb *)0); | 262 | return ((struct tcpcb *)0); |
266 | } | 263 | } |
267 | 264 | ||
@@ -442,8 +439,6 @@ tcp_connect(struct socket *inso) | @@ -442,8 +439,6 @@ tcp_connect(struct socket *inso) | ||
442 | 439 | ||
443 | tcp_template(tp); | 440 | tcp_template(tp); |
444 | 441 | ||
445 | - STAT(tcpstat.tcps_connattempt++); | ||
446 | - | ||
447 | tp->t_state = TCPS_SYN_SENT; | 442 | tp->t_state = TCPS_SYN_SENT; |
448 | tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_INIT; | 443 | tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_INIT; |
449 | tp->iss = tcp_iss; | 444 | tp->iss = tcp_iss; |
slirp/tcp_timer.c
@@ -32,10 +32,6 @@ | @@ -32,10 +32,6 @@ | ||
32 | 32 | ||
33 | #include <slirp.h> | 33 | #include <slirp.h> |
34 | 34 | ||
35 | -#ifdef LOG_ENABLED | ||
36 | -struct tcpstat tcpstat; /* tcp statistics */ | ||
37 | -#endif | ||
38 | - | ||
39 | u_int32_t tcp_now; /* for RFC 1323 timestamps */ | 35 | u_int32_t tcp_now; /* for RFC 1323 timestamps */ |
40 | 36 | ||
41 | static struct tcpcb *tcp_timers(register struct tcpcb *tp, int timer); | 37 | static struct tcpcb *tcp_timers(register struct tcpcb *tp, int timer); |
@@ -58,7 +54,6 @@ tcp_fasttimo(void) | @@ -58,7 +54,6 @@ tcp_fasttimo(void) | ||
58 | (tp->t_flags & TF_DELACK)) { | 54 | (tp->t_flags & TF_DELACK)) { |
59 | tp->t_flags &= ~TF_DELACK; | 55 | tp->t_flags &= ~TF_DELACK; |
60 | tp->t_flags |= TF_ACKNOW; | 56 | tp->t_flags |= TF_ACKNOW; |
61 | - STAT(tcpstat.tcps_delack++); | ||
62 | (void) tcp_output(tp); | 57 | (void) tcp_output(tp); |
63 | } | 58 | } |
64 | } | 59 | } |
@@ -180,7 +175,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | @@ -180,7 +175,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | ||
180 | * We tried our best, now the connection must die! | 175 | * We tried our best, now the connection must die! |
181 | */ | 176 | */ |
182 | tp->t_rxtshift = TCP_MAXRXTSHIFT; | 177 | tp->t_rxtshift = TCP_MAXRXTSHIFT; |
183 | - STAT(tcpstat.tcps_timeoutdrop++); | ||
184 | tp = tcp_drop(tp, tp->t_softerror); | 178 | tp = tcp_drop(tp, tp->t_softerror); |
185 | /* tp->t_softerror : ETIMEDOUT); */ /* XXX */ | 179 | /* tp->t_softerror : ETIMEDOUT); */ /* XXX */ |
186 | return (tp); /* XXX */ | 180 | return (tp); /* XXX */ |
@@ -192,7 +186,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | @@ -192,7 +186,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | ||
192 | */ | 186 | */ |
193 | tp->t_rxtshift = 6; | 187 | tp->t_rxtshift = 6; |
194 | } | 188 | } |
195 | - STAT(tcpstat.tcps_rexmttimeo++); | ||
196 | rexmt = TCP_REXMTVAL(tp) * tcp_backoff[tp->t_rxtshift]; | 189 | rexmt = TCP_REXMTVAL(tp) * tcp_backoff[tp->t_rxtshift]; |
197 | TCPT_RANGESET(tp->t_rxtcur, rexmt, | 190 | TCPT_RANGESET(tp->t_rxtcur, rexmt, |
198 | (short)tp->t_rttmin, TCPTV_REXMTMAX); /* XXX */ | 191 | (short)tp->t_rttmin, TCPTV_REXMTMAX); /* XXX */ |
@@ -254,7 +247,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | @@ -254,7 +247,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | ||
254 | * Force a byte to be output, if possible. | 247 | * Force a byte to be output, if possible. |
255 | */ | 248 | */ |
256 | case TCPT_PERSIST: | 249 | case TCPT_PERSIST: |
257 | - STAT(tcpstat.tcps_persisttimeo++); | ||
258 | tcp_setpersist(tp); | 250 | tcp_setpersist(tp); |
259 | tp->t_force = 1; | 251 | tp->t_force = 1; |
260 | (void) tcp_output(tp); | 252 | (void) tcp_output(tp); |
@@ -266,7 +258,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | @@ -266,7 +258,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | ||
266 | * or drop connection if idle for too long. | 258 | * or drop connection if idle for too long. |
267 | */ | 259 | */ |
268 | case TCPT_KEEP: | 260 | case TCPT_KEEP: |
269 | - STAT(tcpstat.tcps_keeptimeo++); | ||
270 | if (tp->t_state < TCPS_ESTABLISHED) | 261 | if (tp->t_state < TCPS_ESTABLISHED) |
271 | goto dropit; | 262 | goto dropit; |
272 | 263 | ||
@@ -285,7 +276,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | @@ -285,7 +276,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | ||
285 | * by the protocol spec, this requires the | 276 | * by the protocol spec, this requires the |
286 | * correspondent TCP to respond. | 277 | * correspondent TCP to respond. |
287 | */ | 278 | */ |
288 | - STAT(tcpstat.tcps_keepprobe++); | ||
289 | tcp_respond(tp, &tp->t_template, (struct mbuf *)NULL, | 279 | tcp_respond(tp, &tp->t_template, (struct mbuf *)NULL, |
290 | tp->rcv_nxt, tp->snd_una - 1, 0); | 280 | tp->rcv_nxt, tp->snd_una - 1, 0); |
291 | tp->t_timer[TCPT_KEEP] = TCPTV_KEEPINTVL; | 281 | tp->t_timer[TCPT_KEEP] = TCPTV_KEEPINTVL; |
@@ -294,7 +284,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | @@ -294,7 +284,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | ||
294 | break; | 284 | break; |
295 | 285 | ||
296 | dropit: | 286 | dropit: |
297 | - STAT(tcpstat.tcps_keepdrops++); | ||
298 | tp = tcp_drop(tp, 0); | 287 | tp = tcp_drop(tp, 0); |
299 | break; | 288 | break; |
300 | } | 289 | } |
slirp/tcp_var.h
@@ -158,69 +158,6 @@ struct tcpcb { | @@ -158,69 +158,6 @@ struct tcpcb { | ||
158 | #define TCP_REXMTVAL(tp) \ | 158 | #define TCP_REXMTVAL(tp) \ |
159 | (((tp)->t_srtt >> TCP_RTT_SHIFT) + (tp)->t_rttvar) | 159 | (((tp)->t_srtt >> TCP_RTT_SHIFT) + (tp)->t_rttvar) |
160 | 160 | ||
161 | -#ifdef LOG_ENABLED | ||
162 | -/* | ||
163 | - * TCP statistics. | ||
164 | - * Many of these should be kept per connection, | ||
165 | - * but that's inconvenient at the moment. | ||
166 | - */ | ||
167 | -struct tcpstat { | ||
168 | - u_long tcps_connattempt; /* connections initiated */ | ||
169 | - u_long tcps_accepts; /* connections accepted */ | ||
170 | - u_long tcps_connects; /* connections established */ | ||
171 | - u_long tcps_drops; /* connections dropped */ | ||
172 | - u_long tcps_conndrops; /* embryonic connections dropped */ | ||
173 | - u_long tcps_closed; /* conn. closed (includes drops) */ | ||
174 | - u_long tcps_segstimed; /* segs where we tried to get rtt */ | ||
175 | - u_long tcps_rttupdated; /* times we succeeded */ | ||
176 | - u_long tcps_delack; /* delayed acks sent */ | ||
177 | - u_long tcps_timeoutdrop; /* conn. dropped in rxmt timeout */ | ||
178 | - u_long tcps_rexmttimeo; /* retransmit timeouts */ | ||
179 | - u_long tcps_persisttimeo; /* persist timeouts */ | ||
180 | - u_long tcps_keeptimeo; /* keepalive timeouts */ | ||
181 | - u_long tcps_keepprobe; /* keepalive probes sent */ | ||
182 | - u_long tcps_keepdrops; /* connections dropped in keepalive */ | ||
183 | - | ||
184 | - u_long tcps_sndtotal; /* total packets sent */ | ||
185 | - u_long tcps_sndpack; /* data packets sent */ | ||
186 | - u_long tcps_sndbyte; /* data bytes sent */ | ||
187 | - u_long tcps_sndrexmitpack; /* data packets retransmitted */ | ||
188 | - u_long tcps_sndrexmitbyte; /* data bytes retransmitted */ | ||
189 | - u_long tcps_sndacks; /* ack-only packets sent */ | ||
190 | - u_long tcps_sndprobe; /* window probes sent */ | ||
191 | - u_long tcps_sndurg; /* packets sent with URG only */ | ||
192 | - u_long tcps_sndwinup; /* window update-only packets sent */ | ||
193 | - u_long tcps_sndctrl; /* control (SYN|FIN|RST) packets sent */ | ||
194 | - | ||
195 | - u_long tcps_rcvtotal; /* total packets received */ | ||
196 | - u_long tcps_rcvpack; /* packets received in sequence */ | ||
197 | - u_long tcps_rcvbyte; /* bytes received in sequence */ | ||
198 | - u_long tcps_rcvbadsum; /* packets received with ccksum errs */ | ||
199 | - u_long tcps_rcvbadoff; /* packets received with bad offset */ | ||
200 | - u_long tcps_rcvduppack; /* duplicate-only packets received */ | ||
201 | - u_long tcps_rcvdupbyte; /* duplicate-only bytes received */ | ||
202 | - u_long tcps_rcvpartduppack; /* packets with some duplicate data */ | ||
203 | - u_long tcps_rcvpartdupbyte; /* dup. bytes in part-dup. packets */ | ||
204 | - u_long tcps_rcvoopack; /* out-of-order packets received */ | ||
205 | - u_long tcps_rcvoobyte; /* out-of-order bytes received */ | ||
206 | - u_long tcps_rcvpackafterwin; /* packets with data after window */ | ||
207 | - u_long tcps_rcvbyteafterwin; /* bytes rcvd after window */ | ||
208 | - u_long tcps_rcvafterclose; /* packets rcvd after "close" */ | ||
209 | - u_long tcps_rcvwinprobe; /* rcvd window probe packets */ | ||
210 | - u_long tcps_rcvdupack; /* rcvd duplicate acks */ | ||
211 | - u_long tcps_rcvacktoomuch; /* rcvd acks for unsent data */ | ||
212 | - u_long tcps_rcvackpack; /* rcvd ack packets */ | ||
213 | - u_long tcps_rcvackbyte; /* bytes acked by rcvd acks */ | ||
214 | - u_long tcps_rcvwinupd; /* rcvd window update packets */ | ||
215 | - u_long tcps_predack; /* times hdr predict ok for acks */ | ||
216 | - u_long tcps_preddat; /* times hdr predict ok for data pkts */ | ||
217 | - u_long tcps_socachemiss; /* tcp_last_so misses */ | ||
218 | - u_long tcps_didnuttin; /* Times tcp_output didn't do anything XXX */ | ||
219 | -}; | ||
220 | - | ||
221 | -extern struct tcpstat tcpstat; /* tcp statistics */ | ||
222 | -#endif | ||
223 | - | ||
224 | extern u_int32_t tcp_now; /* for RFC 1323 timestamps */ | 161 | extern u_int32_t tcp_now; /* for RFC 1323 timestamps */ |
225 | 162 | ||
226 | #endif | 163 | #endif |
slirp/udp.c
@@ -41,10 +41,6 @@ | @@ -41,10 +41,6 @@ | ||
41 | #include <slirp.h> | 41 | #include <slirp.h> |
42 | #include "ip_icmp.h" | 42 | #include "ip_icmp.h" |
43 | 43 | ||
44 | -#ifdef LOG_ENABLED | ||
45 | -struct udpstat udpstat; | ||
46 | -#endif | ||
47 | - | ||
48 | struct socket udb; | 44 | struct socket udb; |
49 | 45 | ||
50 | static u_int8_t udp_tos(struct socket *so); | 46 | static u_int8_t udp_tos(struct socket *so); |
@@ -74,8 +70,6 @@ udp_input(register struct mbuf *m, int iphlen) | @@ -74,8 +70,6 @@ udp_input(register struct mbuf *m, int iphlen) | ||
74 | DEBUG_ARG("m = %lx", (long)m); | 70 | DEBUG_ARG("m = %lx", (long)m); |
75 | DEBUG_ARG("iphlen = %d", iphlen); | 71 | DEBUG_ARG("iphlen = %d", iphlen); |
76 | 72 | ||
77 | - STAT(udpstat.udps_ipackets++); | ||
78 | - | ||
79 | /* | 73 | /* |
80 | * Strip IP options, if any; should skip this, | 74 | * Strip IP options, if any; should skip this, |
81 | * make available to user, and use on returned packets, | 75 | * make available to user, and use on returned packets, |
@@ -101,7 +95,6 @@ udp_input(register struct mbuf *m, int iphlen) | @@ -101,7 +95,6 @@ udp_input(register struct mbuf *m, int iphlen) | ||
101 | 95 | ||
102 | if (ip->ip_len != len) { | 96 | if (ip->ip_len != len) { |
103 | if (len > ip->ip_len) { | 97 | if (len > ip->ip_len) { |
104 | - STAT(udpstat.udps_badlen++); | ||
105 | goto bad; | 98 | goto bad; |
106 | } | 99 | } |
107 | m_adj(m, len - ip->ip_len); | 100 | m_adj(m, len - ip->ip_len); |
@@ -123,7 +116,6 @@ udp_input(register struct mbuf *m, int iphlen) | @@ -123,7 +116,6 @@ udp_input(register struct mbuf *m, int iphlen) | ||
123 | ((struct ipovly *)ip)->ih_x1 = 0; | 116 | ((struct ipovly *)ip)->ih_x1 = 0; |
124 | ((struct ipovly *)ip)->ih_len = uh->uh_ulen; | 117 | ((struct ipovly *)ip)->ih_len = uh->uh_ulen; |
125 | if(cksum(m, len + sizeof(struct ip))) { | 118 | if(cksum(m, len + sizeof(struct ip))) { |
126 | - STAT(udpstat.udps_badsum++); | ||
127 | goto bad; | 119 | goto bad; |
128 | } | 120 | } |
129 | } | 121 | } |
@@ -165,7 +157,6 @@ udp_input(register struct mbuf *m, int iphlen) | @@ -165,7 +157,6 @@ udp_input(register struct mbuf *m, int iphlen) | ||
165 | if (tmp == &udb) { | 157 | if (tmp == &udb) { |
166 | so = NULL; | 158 | so = NULL; |
167 | } else { | 159 | } else { |
168 | - STAT(udpstat.udpps_pcbcachemiss++); | ||
169 | udp_last_so = so; | 160 | udp_last_so = so; |
170 | } | 161 | } |
171 | } | 162 | } |
@@ -279,8 +270,6 @@ int udp_output2(struct socket *so, struct mbuf *m, | @@ -279,8 +270,6 @@ int udp_output2(struct socket *so, struct mbuf *m, | ||
279 | ((struct ip *)ui)->ip_ttl = IPDEFTTL; | 270 | ((struct ip *)ui)->ip_ttl = IPDEFTTL; |
280 | ((struct ip *)ui)->ip_tos = iptos; | 271 | ((struct ip *)ui)->ip_tos = iptos; |
281 | 272 | ||
282 | - STAT(udpstat.udps_opackets++); | ||
283 | - | ||
284 | error = ip_output(so, m); | 273 | error = ip_output(so, m); |
285 | 274 | ||
286 | return (error); | 275 | return (error); |
slirp/udp.h
@@ -67,32 +67,12 @@ struct udpiphdr { | @@ -67,32 +67,12 @@ struct udpiphdr { | ||
67 | #define ui_ulen ui_u.uh_ulen | 67 | #define ui_ulen ui_u.uh_ulen |
68 | #define ui_sum ui_u.uh_sum | 68 | #define ui_sum ui_u.uh_sum |
69 | 69 | ||
70 | -#ifdef LOG_ENABLED | ||
71 | -struct udpstat { | ||
72 | - /* input statistics: */ | ||
73 | - u_long udps_ipackets; /* total input packets */ | ||
74 | - u_long udps_hdrops; /* packet shorter than header */ | ||
75 | - u_long udps_badsum; /* checksum error */ | ||
76 | - u_long udps_badlen; /* data length larger than packet */ | ||
77 | - u_long udps_noport; /* no socket on port */ | ||
78 | - u_long udps_noportbcast; /* of above, arrived as broadcast */ | ||
79 | - u_long udps_fullsock; /* not delivered, input socket full */ | ||
80 | - u_long udpps_pcbcachemiss; /* input packets missing pcb cache */ | ||
81 | - /* output statistics: */ | ||
82 | - u_long udps_opackets; /* total output packets */ | ||
83 | -}; | ||
84 | -#endif | ||
85 | - | ||
86 | /* | 70 | /* |
87 | * Names for UDP sysctl objects | 71 | * Names for UDP sysctl objects |
88 | */ | 72 | */ |
89 | #define UDPCTL_CHECKSUM 1 /* checksum UDP packets */ | 73 | #define UDPCTL_CHECKSUM 1 /* checksum UDP packets */ |
90 | #define UDPCTL_MAXID 2 | 74 | #define UDPCTL_MAXID 2 |
91 | 75 | ||
92 | -#ifdef LOG_ENABLED | ||
93 | -extern struct udpstat udpstat; | ||
94 | -#endif | ||
95 | - | ||
96 | extern struct socket udb; | 76 | extern struct socket udb; |
97 | struct mbuf; | 77 | struct mbuf; |
98 | 78 |