|
DESERT 4.0.0
|
#include <uwmulti-traffic-range-crt.h>


Classes | |
| class | UwCheckRangeTimer |
Public Member Functions | |
| UwMultiTrafficRangeCtr () | |
| virtual | ~UwMultiTrafficRangeCtr () |
| virtual int | command (int, const char *const *) |
| virtual void | recv (Packet *p, int idSrc) |
| virtual void | sendDown (Packet *p, double delay=0) |
| virtual void | sendDown (int moduleId, Packet *p, double delay=0) |
Public Member Functions inherited from UwMultiTrafficControl | |
| UwMultiTrafficControl () | |
| virtual | ~UwMultiTrafficControl () |
| virtual void | recv (Packet *p) |
Protected Member Functions | |
| virtual void | manageBuffer (int traffic) |
| virtual int | getBestLowerLayer (int traffic, Packet *p=NULL) |
| virtual void | checkRange (int traffic, int module_id, uint8_t destAdd=UWIP_BROADCAST) |
| virtual void | manageCheckedLayer (int module_id, uint8_t destAdd, bool in_range, int idSrc=0) |
| virtual void | initStatus (int traffic) |
| virtual void | timerExpired (int traffic) |
| void | incrSignalingCounter (int traffic, CounterMap &map_cnt) |
| uint | getSignalingCounter (int traffic, const CounterMap &map_cnt) const |
Protected Member Functions inherited from UwMultiTrafficControl | |
| virtual void | recvFromUpperLayers (Packet *p) |
| virtual void | insertInBuffer (Packet *p, int traffic) |
| virtual Packet * | removeFromBuffer (int traffic) |
| virtual Packet * | getFromBuffer (int traffic) |
| void | insertTraffic2UpLayer (int traffic, int upper_layer_id) |
| void | insertTraffic2LowerLayer (int traffic, int lower_layer_stack, int lower_layer_id, int behavior) |
| virtual int | getUpperLayer (int traffic) |
| virtual void | eraseTraffic2LowerLayer (int traffic, int lower_layer_stack) |
| virtual void | eraseTraffic2Low (int traffic) |
| virtual void | eraseTraffic2Up (int traffic) |
| virtual bool | addUpLayerFromTag (int traffic_id, const std::string &tag) |
| virtual bool | addLowLayerFromTag (int traffic_id, const std::string &tag, int behavior) |
| void | setBufferFeature (int traffic_id, int max_size, bool is_circular, double send_down_delay=0) |
| virtual void | incrPktLoss (int traffic_id) |
| virtual uint | getDiscardedPacket (int traffic_id) const |
Protected Attributes | |
| StatusMap | status |
| double | check_to_period |
| int | signaling_pktSize |
| CounterMap | tx_probe_cnt |
| CounterMap | rx_probe_cnt |
| CounterMap | tx_probe_ack_cnt |
| CounterMap | rx_probe_ack_cnt |
Protected Attributes inherited from UwMultiTrafficControl | |
| int | debug_ |
| UpTrafficMap | up_map |
| DownTrafficMap | down_map |
| DownTrafficBuffer | down_buffer |
| BufferTrafficFeature | buffer_feature_map |
Private Attributes | |
| std::map< int, UwCheckRangeTimer * > | timers |
Class used to represents the UwMultiTrafficRangeCtr layer of a node.
| UwMultiTrafficRangeCtr::UwMultiTrafficRangeCtr | ( | ) |
Constructor of UwMultiPhy class.
References check_to_period, and signaling_pktSize.
|
inlinevirtual |
Destructor of UwMultiPhy class.
|
protectedvirtual |
procedure to check if a
| traffic | application traffic id |
References check_to_period, hdr_uwip::daddr(), UwMultiTrafficControl::debug_, UWIPClMsgSendAddr::getAddr(), incrSignalingCounter(), initStatus(), UwMultiTrafficRangeCtr::UwCheckRangeTimer::num_expires, hdr_uwcbr::priority(), PT_MULTI_TR_PROBE, RANGE_CNF_WAIT, hdr_uwip::saddr(), sendDown(), signaling_pktSize, status, timers, hdr_uwm_tr::traffic(), and tx_probe_cnt.
Referenced by getBestLowerLayer(), manageCheckedLayer(), and timerExpired().

|
virtual |
TCL command interpreter. It implements the following OTcl methods:
| argc | Number of arguments in argv. |
| argv | Array of strings which are the command parameters (Note that argv[0] is the name of the object). |
Reimplemented from UwMultiTrafficControl.
References UwMultiTrafficControl::addLowLayerFromTag(), CHECK_RANGE, UwMultiTrafficControl::command(), getSignalingCounter(), ROBUST, rx_probe_ack_cnt, rx_probe_cnt, tx_probe_ack_cnt, and tx_probe_cnt.

|
protectedvirtual |
return the Best Lower Layer id where to forward the packet of traffic type
| traffic | application traffic id |
Reimplemented from UwMultiTrafficControl.
References CHECK_RANGE, checkRange(), UwMultiTrafficControl::debug_, UwMultiTrafficControl::down_map, IDLE, initStatus(), RANGE_CNF_WAIT, ROBUST, and status.
Referenced by manageBuffer().

|
protected |
Return the number of signaling pkts sent for the given traffic
| traffic | application traffic id |
| map_cnt | map with counter for each traffic |
Referenced by command().
|
protected |
Incement number of signaling pkts sent for the given traffic
| traffic | application traffic id |
| map_cnt | map with counter for each traffic |
Referenced by checkRange(), and recv().
|
protectedvirtual |
default status initialization
| traffic | application traffic id |
References IDLE, check_status::module_ids, check_status::robust_id, check_status::status, and status.
Referenced by checkRange(), and getBestLowerLayer().
|
protectedvirtual |
manage to tx a packet of traffic type
| traffic | application traffic id |
Reimplemented from UwMultiTrafficControl.
References UwMultiTrafficControl::buffer_feature_map, getBestLowerLayer(), UwMultiTrafficControl::getFromBuffer(), IDLE, UwMultiTrafficControl::removeFromBuffer(), sendDown(), and status.

|
protectedvirtual |
procedure when a CHECKED stack is checked
| module | id |
| in_range | true if the PHY is in range, false otherwise |
References UwMultiTrafficControl::buffer_feature_map, checkRange(), UwMultiTrafficControl::debug_, UwMultiTrafficControl::getFromBuffer(), IDLE, UwMultiTrafficControl::insertInBuffer(), UwMultiTrafficRangeCtr::UwCheckRangeTimer::num_expires, RANGE_CNF_WAIT, UwMultiTrafficControl::removeFromBuffer(), sendDown(), status, and timers.
Referenced by recv(), and timerExpired().

|
virtual |
Handle a packet coming from upper layers
| p | pointer to the packet |
References hdr_uwip::daddr(), UwMultiTrafficControl::debug_, UWIPClMsgSendAddr::getAddr(), incrSignalingCounter(), manageCheckedLayer(), PT_MULTI_TR_PROBE, PT_MULTI_TR_PROBE_ACK, UwMultiTrafficControl::recv(), rx_probe_ack_cnt, rx_probe_cnt, hdr_uwip::saddr(), sendDown(), signaling_pktSize, and tx_probe_ack_cnt.

|
inlinevirtual |
Send a packet to the requested module of the bottom layer
| moduleId | ID of the down module at which you would send the packet |
| p | pointer of the packet which has to be sent |
| delay | (optional) delay introduced before transmission [sec.] |
|
inlinevirtual |
Send a packet to the module(s) of the bottom layers
| p | pointer of the packet which has to be sent |
| delay | (optional) delay introduced before transmission [sec.] |
Referenced by checkRange(), manageBuffer(), manageCheckedLayer(), and recv().
|
protectedvirtual |
handle when a a timer expires
| traffic | application traffic id |
References checkRange(), UwMultiTrafficControl::debug_, UwMultiTrafficControl::getFromBuffer(), IDLE, manageCheckedLayer(), RANGE_CNF_WAIT, status, and timers.

|
protected |
Time-Out period
Referenced by checkRange(), and UwMultiTrafficRangeCtr().
|
protected |
|
protected |
|
protected |
Signaling packet size
Referenced by checkRange(), recv(), and UwMultiTrafficRangeCtr().
|
protected |
Map of status per traffic types
Referenced by checkRange(), getBestLowerLayer(), initStatus(), manageBuffer(), manageCheckedLayer(), and timerExpired().
|
private |
Map of timer per traffic types
Referenced by checkRange(), manageCheckedLayer(), and timerExpired().
|
protected |
|
protected |
Number of probe pkts sent for each traffic
Referenced by checkRange(), and command().