Subversion Repositories HelenOS

Rev

Rev 3886 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3886 Rev 3912
Line 1... Line 1...
1
/*
1
/*
2
 * Copyright (c) 2008 Lukas Mejdrech
2
 * Copyright (c) 2009 Lukas Mejdrech
3
 * All rights reserved.
3
 * All rights reserved.
4
 *
4
 *
5
 * Redistribution and use in source and binary forms, with or without
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions
6
 * modification, are permitted provided that the following conditions
7
 * are met:
7
 * are met:
Line 24... Line 24...
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
 */
27
 */
28
 
28
 
29
/** @addtogroup net
29
/** @addtogroup netif
30
 * @{
30
 *  @{
31
 */
31
 */
32
 
32
 
33
/**
-
 
34
 * @file
33
/** @file
-
 
34
 *  Device identifier, state and usage statistics.
35
 */
35
 */
36
 
36
 
37
#ifndef __NET_DEVICE_ID_TYPE_H__
37
#ifndef __NET_DEVICE_ID_TYPE_H__
38
#define __NET_DEVICE_ID_TYPE_H__
38
#define __NET_DEVICE_ID_TYPE_H__
39
 
39
 
40
#include "../structures/int_map.h"
40
#include "../structures/int_map.h"
41
 
41
 
42
#define DEVICE_MAP_DECLARE  INT_MAP_DECLARE
42
#define DEVICE_MAP_DECLARE  INT_MAP_DECLARE
43
#define DEVICE_MAP_IMPLEMENT    INT_MAP_IMPLEMENT
43
#define DEVICE_MAP_IMPLEMENT    INT_MAP_IMPLEMENT
44
 
44
 
-
 
45
/** Device identifier type.
-
 
46
 */
45
typedef int device_id_t;
47
typedef int device_id_t;
46
 
48
 
-
 
49
/** Device state type.
-
 
50
 */
47
typedef enum device_state   device_state_t;
51
typedef enum device_state   device_state_t;
48
 
52
 
-
 
53
/** Type definition of the device usage statistics.
-
 
54
 *  @see device_stats
-
 
55
 */
49
typedef struct device_stats device_stats_t;
56
typedef struct device_stats device_stats_t;
-
 
57
 
-
 
58
/** Type definition of the device usage statistics pointer.
-
 
59
 *  @see device_stats
-
 
60
 */
50
typedef device_stats_t *    device_stats_ref;
61
typedef device_stats_t *    device_stats_ref;
51
 
62
 
-
 
63
/** Device state.
-
 
64
 */
52
enum    device_state{
65
enum    device_state{
-
 
66
    /** Device not present or not initialized.
-
 
67
     */
53
    NETIF_NULL = 0,
68
    NETIF_NULL = 0,
-
 
69
    /** Device present and stopped.
-
 
70
     */
54
    NETIF_STOPPED,
71
    NETIF_STOPPED,
-
 
72
    /** Device present and active.
-
 
73
     */
55
    NETIF_ACTIVE,
74
    NETIF_ACTIVE,
-
 
75
    /** Device present but unable to transmit.
-
 
76
     */
56
    NETIF_CARRIER_LOST
77
    NETIF_CARRIER_LOST
57
};
78
};
58
 
79
 
-
 
80
/** Device usage statistics.
59
// based on linux_kernel/include/linux/netdevice.h
81
 *  Based on linux_kernel/include/linux/netdevice.h.
60
 
82
 */
61
struct  device_stats{
83
struct  device_stats{
-
 
84
    /** Total packets received.
-
 
85
     */
62
    unsigned long   rx_packets;     /* total packets received   */
86
    unsigned long   rx_packets;
63
    unsigned long   tx_packets;     /* total packets transmitted    */
87
    /** Total packets transmitted.
-
 
88
     */
-
 
89
    unsigned long   tx_packets;
-
 
90
    /** Total bytes received.
-
 
91
     */
64
    unsigned long   rx_bytes;       /* total bytes received     */
92
    unsigned long   rx_bytes;
65
    unsigned long   tx_bytes;       /* total bytes transmitted  */
93
    /** Total bytes transmitted.
-
 
94
     */
-
 
95
    unsigned long   tx_bytes;
-
 
96
    /** Bad packets received counter.
-
 
97
     */
66
    unsigned long   rx_errors;      /* bad packets received     */
98
    unsigned long   rx_errors;
-
 
99
    /** Packet transmition problems counter.
-
 
100
     */
67
    unsigned long   tx_errors;      /* packet transmit problems */
101
    unsigned long   tx_errors;
-
 
102
    /** No space in buffers counter.
-
 
103
     */
68
    unsigned long   rx_dropped;     /* no space in linux buffers    */
104
    unsigned long   rx_dropped;
-
 
105
    /** No space available counter.
-
 
106
     */
69
    unsigned long   tx_dropped;     /* no space available in linux  */
107
    unsigned long   tx_dropped;
70
    unsigned long   multicast;      /* multicast packets received   */
108
    /** Total multicast packets received.
-
 
109
     */
-
 
110
    unsigned long   multicast;
-
 
111
    /** The number of collisions due to congestion on the medium.
-
 
112
     */
71
    unsigned long   collisions;
113
    unsigned long   collisions;
72
 
114
 
73
    /* detailed rx_errors: */
115
    /* detailed rx_errors: */
-
 
116
    /** Received packet length error counter.
-
 
117
     */
74
    unsigned long   rx_length_errors;
118
    unsigned long   rx_length_errors;
-
 
119
    /** Receiver buffer overflow counter.
-
 
120
     */
75
    unsigned long   rx_over_errors;     /* receiver ring buff overflow  */
121
    unsigned long   rx_over_errors;
-
 
122
    /** Received packet with crc error counter.
-
 
123
     */
76
    unsigned long   rx_crc_errors;      /* recved pkt with crc error    */
124
    unsigned long   rx_crc_errors;
-
 
125
    /** Received frame alignment error counter.
-
 
126
     */
77
    unsigned long   rx_frame_errors;    /* recv'd frame alignment error */
127
    unsigned long   rx_frame_errors;
-
 
128
    /** Receiver fifo overrun counter.
-
 
129
     */
78
    unsigned long   rx_fifo_errors;     /* recv'r fifo overrun      */
130
    unsigned long   rx_fifo_errors;
-
 
131
    /** Receiver missed packet counter.
-
 
132
     */
79
    unsigned long   rx_missed_errors;   /* receiver missed packet   */
133
    unsigned long   rx_missed_errors;
80
 
134
 
81
    /* detailed tx_errors */
135
    /* detailed tx_errors */
-
 
136
    /** Transmitter aborted counter.
-
 
137
     */
82
    unsigned long   tx_aborted_errors;
138
    unsigned long   tx_aborted_errors;
-
 
139
    /** Transmitter carrier errors counter.
-
 
140
     */
83
    unsigned long   tx_carrier_errors;
141
    unsigned long   tx_carrier_errors;
-
 
142
    /** Transmitter fifo overrun counter.
-
 
143
     */
84
    unsigned long   tx_fifo_errors;
144
    unsigned long   tx_fifo_errors;
-
 
145
    /** Transmitter carrier errors counter.
-
 
146
     */
85
    unsigned long   tx_heartbeat_errors;
147
    unsigned long   tx_heartbeat_errors;
-
 
148
    /** Transmitter window errors counter.
-
 
149
     */
86
    unsigned long   tx_window_errors;
150
    unsigned long   tx_window_errors;
87
 
151
 
88
    /* for cslip etc */
152
    /* for cslip etc */
-
 
153
    /** Total compressed packets received.
-
 
154
     */
89
    unsigned long   rx_compressed;
155
    unsigned long   rx_compressed;
-
 
156
    /** Total compressed packet transmitted.
-
 
157
     */
90
    unsigned long   tx_compressed;
158
    unsigned long   tx_compressed;
91
};
159
};
92
 
160
 
93
#endif
161
#endif
94
 
162