/*****************************************************************************

 @(#) $Id: ss7link.h,v 0.7.2.1 2000/09/07 12:49:16 brian Exp $

 -----------------------------------------------------------------------------

 Copyright (C) 1997, 1998, 1999, 2000  Brian Bidulock <bidulock@dallas.net>

 All Rights Reserved.

 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., 675 Mass
 Ave, Cambridge, MA 02139, USA.

 Last Modified $Date: 2000/09/07 12:49:16 $ by $Author: brian $

 -----------------------------------------------------------------------------

 $Log: ss7link.h,v $
 Revision 0.7.2.1  2000/09/07 12:49:16  brian
 Got ss7link interface support for drivers compiling.

 Revision 0.7  2000/09/07 11:18:12  brian
 Initial import of OpenSS7 stack.

 Revision 1.2  2000/09/07 10:51:51  brian
 Got these files going.

 Revision 1.1.1.1  2000/09/05 11:00:20  brian
 Initial import of new OpenSS7 stack for Linux.

 *****************************************************************************/

#ifndef __NET_SS7LINK_H__
#define __NET_SS7LINK_H__

struct ss7if_stats {
    struct {
        unsigned bytes;     /* number of bytes received */
        unsigned sus;       /* number of signal units received */
        unsigned discard;   /* number of signal units discarded */
        unsigned compress;  /* number of signal units compressed */

        unsigned sync;      /* number of flag detection transitions */
        unsigned idle;      /* number of mark idle transitions */
        unsigned abort;     /* number of breaks or aborts received */
        unsigned crc;       /* number of crc errors */
        unsigned frame;     /* number of frame errors */
        unsigned small;     /* number of frame too short errors */
        unsigned big;       /* number of frame too long errors */
        unsigned residue;   /* number of residue errors */
        unsigned overrun;   /* number of receive overruns */
        unsigned overflow;  /* number of receive overflows */
    } rx;

    struct {
        unsigned bytes;     /* number of bytes transmitted */
        unsigned sus;       /* number of signal units transmitted */
        unsigned retry;     /* number of signal units discarded */
        unsigned discard;   /* number of signal units discarded */
        unsigned repeat;    /* number of repeated sus */

        unsigned underruns; /* number of times transmitter underran */
        unsigned aborts;    /* number of tx aborts sent */
    } tx;

    /*  FIXME: put the SS7 statistics from Q.752 here.  */
    /*  FIXME: may of the above overlap with those below */

    struct net_device_stats dev_stats;
};

#endif  __NET_SS7LINK_H__

