00001 /* 00002 * Copyright (c) 2001, Swedish Institute of Computer Science. 00003 * All rights reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions 00007 * are met: 00008 * 1. Redistributions of source code must retain the above copyright 00009 * notice, this list of conditions and the following disclaimer. 00010 * 2. Redistributions in binary form must reproduce the above copyright 00011 * notice, this list of conditions and the following disclaimer in the 00012 * documentation and/or other materials provided with the distribution. 00013 * 3. Neither the name of the Institute nor the names of its contributors 00014 * may be used to endorse or promote products derived from this software 00015 * without specific prior written permission. 00016 * 00017 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 00018 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00019 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00020 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 00021 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00022 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 00023 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 00024 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00025 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 00026 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00027 * SUCH DAMAGE. 00028 * 00029 * This file is part of the lwIP TCP/IP stack. 00030 * 00031 * Author: Adam Dunkels <adam@sics.se> 00032 * 00033 * $Id$ 00034 */ 00035 #ifndef __LWIP_STATS_H__ 00036 #define __LWIP_STATS_H__ 00037 00038 #include "net/opt.h" 00039 #include "net/arch/cc.h" 00040 00041 #include "net/memp.h" 00042 00043 #ifdef STATS 00044 00045 struct stats_proto { 00046 uInt16 xmit; /* Transmitted packets. */ 00047 uInt16 rexmit; /* Retransmitted packets. */ 00048 uInt16 recv; /* Received packets. */ 00049 uInt16 fw; /* Forwarded packets. */ 00050 uInt16 drop; /* Dropped packets. */ 00051 uInt16 chkerr; /* Checksum error. */ 00052 uInt16 lenerr; /* Invalid length error. */ 00053 uInt16 memerr; /* Out of memory error. */ 00054 uInt16 rterr; /* Routing error. */ 00055 uInt16 proterr; /* Protocol error. */ 00056 uInt16 opterr; /* Error in options. */ 00057 uInt16 err; /* Misc error. */ 00058 uInt16 cachehit; 00059 }; 00060 00061 struct stats_mem { 00062 uInt16 avail; 00063 uInt16 used; 00064 uInt16 max; 00065 uInt16 err; 00066 uInt16 reclaimed; 00067 }; 00068 00069 struct stats_pbuf { 00070 uInt16 avail; 00071 uInt16 used; 00072 uInt16 max; 00073 uInt16 err; 00074 uInt16 reclaimed; 00075 00076 uInt16 alloc_locked; 00077 uInt16 refresh_locked; 00078 }; 00079 00080 struct stats_syselem { 00081 uInt16 used; 00082 uInt16 max; 00083 uInt16 err; 00084 }; 00085 00086 struct stats_sys { 00087 struct stats_syselem sem; 00088 struct stats_syselem mbox; 00089 }; 00090 00091 struct stats_ { 00092 struct stats_proto link; 00093 struct stats_proto ip; 00094 struct stats_proto icmp; 00095 struct stats_proto udp; 00096 struct stats_proto tcp; 00097 struct stats_pbuf pbuf; 00098 struct stats_mem mem; 00099 struct stats_mem memp[MEMP_MAX]; 00100 struct stats_sys sys; 00101 }; 00102 00103 extern struct stats_ stats; 00104 00105 #endif /* STATS */ 00106 00107 void stats_init(void); 00108 #endif /* __LWIP_STATS_H__ */ 00109 00110 00111 00112