/* $Id: mcl_stats.h,v 1.1.1.1 2003/09/03 12:45:44 chneuman Exp $ */ /* * Copyright (c) 1999-2003 INRIA - Universite Paris 6 - All rights reserved * (main author: Vincent Roca - vincent.roca@inrialpes.fr) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, * USA. */ #ifndef MCL_STATS_H /* { */ #define MCL_STATS_H /****** statistics ******/ /* * statistics collected at the receiver and sender sides */ #define MAX_FIN_TIME 512 #define STATS_FIN_TIME 0 #define STATS_SEQ 1 typedef struct { /* * outgoing traffic stats */ ulong tx_pkts; /* nb of data packets sent */ ulong tx_sig_pkts; /* sig only packets sent */ ulong tx_bytes; /* nb of data bytes sent*/ ulong tx_totbytes; /* total data+sig bytes sent */ ulong tx_fec_pkts; /* nb of fec data pkts sent */ ulong tx_fec_bytes; /* total nb of fec bytes sent */ ulong tx_pkts_per_lvl[MAX_TX_LEVEL]; /* packets sent on each level */ ulong tx_bytes_per_lvl[MAX_TX_LEVEL]; /* data bytes sent per level */ #ifdef SIMUL_LOSSES ulong tx_simul_loss_sent; /* total nb of non lost pkts */ ulong tx_simul_loss_lost; /* total nb of simul lost pkts*/ #endif /* * incoming traffic stats */ ulong rx_pkts; /* total nb of packets recvd */ /* (doesn't include fec pkts) */ //ulong rx_sig_pkts; /* signaling packets recvd */ ulong rx_bytes; /* nb of data bytes received */ /* (doesn't include fec pkts) */ ulong rx_totbytes; /* total data+sig bytes recvd */ ulong rx_fec_pkts; /* total nb of fec pkts recvd */ ulong rx_fec_bytes; /* total nb of fec bytes recvd*/ ulong rx_pkts_per_lvl[MAX_TX_LEVEL]; /* packets recvd on each lvl */ /* (includes data+fec packets)*/ ulong rx_bytes_per_lvl[MAX_TX_LEVEL]; /* bytes received on each lvl */ /* (includes data+fec packets)*/ ulong rx_undup_pkts_per_lvl[MAX_TX_LEVEL];/* unduplicated pkts recvd*/ ulong rx_dupl_pkts; /* # pkts recvd several times */ ulong rx_dupl_bytes; /* # bytes recvd several times*/ #if defined(RLC) || defined(FLIDS) ulong rx_lost_pkts; /* total nb of lost pkts recvd*/ ulong rx_lost_per_lvl[MAX_TX_LEVEL]; /* # lost (or delayed!) pkts */ #endif ushort finish_index; /* next available entry in tab*/ ulong finish_times[MAX_FIN_TIME][2]; /* circular buffer of finish */ /* times [][0] & seq nb [][1] */ ulong adus_compl; /* nb of ADUs completed */ /* * errors */ ulong errors; /* nb of erroneous DUs recvd */ ulong bad_hdr; /* error in header */ ulong bad_demux_label; /* wrong LCT demux label */ ulong other_errors; /* non packet related errors */ /* * common stats */ ulong buf_space; /* current allocated buf space*/ ulong max_buf_space; /* max allocated buffer space */ ulong adus_announced; /* nb of ADUs announced */ } stats_t; #endif /* } MCL_STATS_H */