38#ifndef UWMULTI_MULTIPHY_CONTROLLER_H
39#define UWMULTI_MULTIPHY_CONTROLLER_H
62 return "PT_UWMULTIPHY_DATA";
65 return "PT_UWMULTIPHY_PING";
68 return "PT_UWMULTIPHY_PONG";
70 return "Unknown packet";
80 return o <<
"LINK_UNKNOWN";
82 return o <<
"LINK_OK";
84 return o <<
"LINK_PROBING";
86 return o <<
"(invalid value)";
109 friend std::ostream &
112 os <<
"<LocalConnection(trafficType=" << c.
trafficType <<
","
137 friend std::ostream &
140 os <<
"<RemoteConnection(localMacID=" << c.
localMacID <<
","
141 <<
"remoteIP=" << c.
remoteIP <<
")>";
252 virtual int command(
int,
const char *
const *);
254 void recv(Packet *p);
256 void recv(Packet *p,
int idSrc);
271 virtual void expire(Event *e);
293 if (this->module != NULL && this->module->debug_ >= 3) {
295 <<
"::UwMultiPhyControl::ResilienceTimer::constructor"
296 <<
"::localIP(" << this->
module->localIP << ")"
297 << "::localMAC(" << this->conn.localMacID << ")"
298 << "::remoteIP(" << this->conn.remoteIP << ")"
304 if (this->module != NULL && this->module->debug_ >= 3) {
306 <<
"::UwMultiPhyControl::ResilienceTimer::destructor"
307 <<
"::localMacID(" << this->conn.
localMacID <<
")"
308 <<
"::remoteIP(" << this->conn.
remoteIP <<
")"
309 <<
"::module(" << this->
module << ")"
310 << "::this(" << this << ")" << std::endl;
325 virtual void expire(Event *e);
351 if (this->module != NULL && this->module->debug_ >= 3) {
353 <<
"::UwMultiPhyControl::ProbeTimer::destructor"
354 <<
"::localMacID(" << this->conn.
localMacID <<
")"
355 <<
"::remoteIP(" << this->conn.
remoteIP <<
")"
356 <<
"::module(" << this->
module << ")"
357 << "::this(" << this << ")" << std::endl;
packet_t PT_UWMULTIPHY_PONG
Definition initlib.cc:54
packet_t PT_UWMULTIPHY_PING
Definition initlib.cc:53
packet_t PT_UWMULTIPHY_DATA
Definition initlib.cc:52
Definition uwmulti-multiphy-controller.h:147
PriorityMap()
Definition uwmulti-multiphy-controller.cpp:50
friend std::ostream & operator<<(std::ostream &, const PriorityMap &)
std::map< int, int > defaultPriorities
Definition uwmulti-multiphy-controller.h:152
int debug_
Definition uwmulti-multiphy-controller.h:149
void addCustomPriority(LocalConnection c, int priority)
Definition uwmulti-multiphy-controller.cpp:61
int getPriority(LocalConnection c)
Definition uwmulti-multiphy-controller.cpp:73
std::map< LocalConnection, int > customPriorities
Definition uwmulti-multiphy-controller.h:155
void setDefaultPriority(int macID, int priority)
Definition uwmulti-multiphy-controller.cpp:67
Definition uwmulti-multiphy-controller.h:316
ProbeTimer()
Definition uwmulti-multiphy-controller.h:330
~ProbeTimer()
Definition uwmulti-multiphy-controller.h:349
ProbeTimer(UwMultiPhyControl *m, RemoteConnection c)
Definition uwmulti-multiphy-controller.h:342
UwMultiPhyControl *RemoteConnection conn
Definition uwmulti-multiphy-controller.h:319
virtual void expire(Event *e)
Definition uwmulti-multiphy-controller.cpp:586
Definition uwmulti-multiphy-controller.h:261
UwMultiPhyControl *RemoteConnection conn
Definition uwmulti-multiphy-controller.h:265
ResilienceTimer()
Definition uwmulti-multiphy-controller.h:276
virtual void expire(Event *e)
Definition uwmulti-multiphy-controller.cpp:570
ResilienceTimer(UwMultiPhyControl *m, RemoteConnection c)
Definition uwmulti-multiphy-controller.h:288
~ResilienceTimer()
Definition uwmulti-multiphy-controller.h:302
Definition uwmulti-multiphy-controller.h:194
int localIP
Definition uwmulti-multiphy-controller.h:199
std::map< RemoteConnection, ResilienceTimer > resilienceTimers
Definition uwmulti-multiphy-controller.h:207
UwMultiPhyControl()
Definition uwmulti-multiphy-controller.cpp:137
std::vector< int > macIDs
Definition uwmulti-multiphy-controller.h:200
std::map< RemoteConnection, int > linkStatuses
Definition uwmulti-multiphy-controller.h:219
std::queue< Packet * > packet_queue
Definition uwmulti-multiphy-controller.h:202
std::map< int, double > resilienceTimeouts
Definition uwmulti-multiphy-controller.h:206
std::map< int, int > macTclIdLayerId
Definition uwmulti-multiphy-controller.h:226
void initialize()
Definition uwmulti-multiphy-controller.cpp:233
int getBestMacID(int trafficType, int remoteIP)
Definition uwmulti-multiphy-controller.cpp:539
void updateAvailability(RemoteConnection c, LinkStatus status)
Definition uwmulti-multiphy-controller.cpp:498
void recvFromUpperLayers(Packet *p)
Definition uwmulti-multiphy-controller.cpp:394
void recv(Packet *p)
Definition uwmulti-multiphy-controller.cpp:281
std::map< RemoteConnection, ProbeTimer > probeTimers
Definition uwmulti-multiphy-controller.h:213
void sendPing(RemoteConnection c)
Definition uwmulti-multiphy-controller.cpp:449
virtual int command(int, const char *const *)
Definition uwmulti-multiphy-controller.cpp:146
void recvFromLowerLayers(Packet *p, int macID)
Definition uwmulti-multiphy-controller.cpp:303
std::map< int, double > probeTimeouts
Definition uwmulti-multiphy-controller.h:212
PriorityMap priorityMap
Definition uwmulti-multiphy-controller.h:217
int debug_
Definition uwmulti-multiphy-controller.h:196
std::map< int, int > macResilience
Definition uwmulti-multiphy-controller.h:224
virtual ~UwMultiPhyControl()
Definition uwmulti-multiphy-controller.h:248
Definition uwmulti-multiphy-controller.h:91
int localMacID
Definition uwmulti-multiphy-controller.h:93
int trafficType
Definition uwmulti-multiphy-controller.h:92
bool operator<(const LocalConnection &o) const
Definition uwmulti-multiphy-controller.h:102
friend std::ostream & operator<<(std::ostream &os, const LocalConnection &c)
Definition uwmulti-multiphy-controller.h:110
bool operator==(const LocalConnection &o) const
Definition uwmulti-multiphy-controller.h:96
Definition uwmulti-multiphy-controller.h:119
friend std::ostream & operator<<(std::ostream &os, const RemoteConnection &c)
Definition uwmulti-multiphy-controller.h:138
bool operator<(const RemoteConnection &o) const
Definition uwmulti-multiphy-controller.h:130
int localMacID
Definition uwmulti-multiphy-controller.h:120
bool operator==(const RemoteConnection &o) const
Definition uwmulti-multiphy-controller.h:124
int remoteIP
Definition uwmulti-multiphy-controller.h:121
Provides the UWCBR packets header description and the definition of the class UWCBR.
Provides the UWIP packets header description. Definition of the class that define the network layer.
std::ostream & operator<<(std::ostream &o, LinkStatus s)
Definition uwmulti-multiphy-controller.h:76
LinkStatus
Definition uwmulti-multiphy-controller.h:73
@ LINK_PROBING
Definition uwmulti-multiphy-controller.h:73
@ LINK_OK
Definition uwmulti-multiphy-controller.h:73
@ LINK_UNKNOWN
Definition uwmulti-multiphy-controller.h:73
std::string printType(packet_t ptype)
Definition uwmulti-multiphy-controller.h:59