-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathloggertypes.h
103 lines (90 loc) · 2.01 KB
/
loggertypes.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/*
* Logger type header
*/
#ifndef LOGGERTYPES_H
#define LOGGERTYPES_H
#include <string>
class Packet;
class TcpSrc;
class Queue;
class Logged
{
public:
Logged(const std::string &name)
{
_name = name;
id = LASTIDNUM;
Logged::LASTIDNUM++;
}
virtual ~Logged() {}
void setName(const std::string &name) { _name = name; }
virtual const std::string& str() { return _name; };
uint32_t id;
private:
static uint32_t LASTIDNUM;
std::string _name;
};
class TrafficLogger
{
public:
enum EventType { TRAFFIC_EVENT = 3 };
enum TrafficEvent {
PKT_ARRIVE = 0,
PKT_DEPART = 1,
PKT_CREATESEND = 2,
PKT_DROP = 3,
PKT_RCVDESTROY = 4
};
virtual void logTraffic(Packet &pkt, Logged &location, TrafficEvent ev) = 0;
virtual ~TrafficLogger(){};
};
class QueueLogger
{
public:
enum EventType {
QUEUE_EVENT = 0,
QUEUE_RECORD = 4,
QUEUE_APPROX = 5
};
enum QueueEvent {
PKT_ENQUEUE = 0,
PKT_DROP = 1,
PKT_SERVICE = 2
};
enum QueueRecord { CUM_TRAFFIC = 0 };
enum QueueApprox {
QUEUE_RANGE = 0,
QUEUE_OVERFLOW = 1
};
virtual void logQueue(Queue &queue, QueueEvent ev, Packet &pkt) = 0;
virtual ~QueueLogger(){};
};
class TcpLogger
{
public:
enum EventType {
TCP_EVENT = 1,
TCP_STATE = 2,
TCP_RECORD = 6,
TCP_SINK = 11
};
enum TcpEvent {
TCP_RCV = 0,
TCP_RCV_FR_END = 1,
TCP_RCV_FR = 2,
TCP_RCV_DUP_FR = 3,
TCP_RCV_DUP = 4,
TCP_RCV_3DUPNOFR = 5,
TCP_RCV_DUP_FASTXMIT = 6,
TCP_TIMEOUT = 7,
};
enum TcpState {
TCPSTATE_CNTRL = 0,
TCPSTATE_SEQ = 1
};
enum TcpRecord { AVE_CWND = 0 };
enum TcpSinkRecord { RATE = 0 };
virtual void logTcp(TcpSrc &src, TcpEvent ev) = 0;
virtual ~TcpLogger(){};
};
#endif /* LOGGERTYPES_H */