DESERT 3.5.1
Loading...
Searching...
No Matches
uwsr.h File Reference
#include <mac.h>
#include <mmac.h>
#include <iostream>
#include <string>
#include <map>
#include <set>
#include <utility>
#include <fstream>
#include <mphy.h>
Include dependency graph for uwsr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  MMacUWSR
 
class  MMacUWSR::UWSRTimer
 
class  MMacUWSR::BackOffTimer
 
class  MMacUWSR::AckTimer
 
class  MMacUWSR::ListenTimer
 
class  MMacUWSR::WaitTxTimer
 

Macros

#define UWSR_DROP_REASON_WRONG_STATE   "WST"
 
#define UWSR_DROP_REASON_WRONG_RECEIVER   "WRCV"
 
#define UWSR_DROP_REASON_UNKNOWN_TYPE   "UPT"
 
#define UWSR_DROP_REASON_BUFFER_FULL   "DBF"
 
#define UWSR_DROP_REASON_ERROR   "ERR"
 

Typedefs

typedef int pktSeqNum
 
typedef double txStartTime
 
typedef int macAddress
 
typedef int txRounds
 
typedef pair< macAddress, pktSeqNumusrPair
 
typedef pair< double, double > rttPair
 
typedef pair< int, int > txStatusPair
 

Variables

packet_t PT_MMAC_ACK
 

Detailed Description

UnderWater Selective Repeat (UWSR) this is basically a selective repeat ARQ protocol that coordinates the transmitter and receiver in time. In more detail, the transmitter sends Data packets and waits for a given time period between subsequent packets; the receiver knows the timing of the transmitter and sends acknowledgement (ACK) packets so that they arrive at the transmitter when it is listening. The protocol is effective because the channel propagation delay, underwater, is sufficiently large to accommodate more than one packet transmission within one round-trip time (RTT). Some parameters of the protocol can be tuned: for example, setting a higher number of packets to be transmitted within one RTT makes the transmission process more efficient, but also more prone to interference in a multiuser network.

Author
Saiful Azad
Version
1.0.0

Definition in file uwsr.h.

Macro Definition Documentation

◆ UWSR_DROP_REASON_BUFFER_FULL

#define UWSR_DROP_REASON_BUFFER_FULL   "DBF"

Definition at line 66 of file uwsr.h.

◆ UWSR_DROP_REASON_ERROR

#define UWSR_DROP_REASON_ERROR   "ERR"

Definition at line 67 of file uwsr.h.

◆ UWSR_DROP_REASON_UNKNOWN_TYPE

#define UWSR_DROP_REASON_UNKNOWN_TYPE   "UPT"

Definition at line 65 of file uwsr.h.

◆ UWSR_DROP_REASON_WRONG_RECEIVER

#define UWSR_DROP_REASON_WRONG_RECEIVER   "WRCV"

Definition at line 64 of file uwsr.h.

◆ UWSR_DROP_REASON_WRONG_STATE

#define UWSR_DROP_REASON_WRONG_STATE   "WST"

Definition at line 63 of file uwsr.h.

Typedef Documentation

◆ macAddress

typedef int macAddress

Definition at line 73 of file uwsr.h.

◆ pktSeqNum

typedef int pktSeqNum

Definition at line 71 of file uwsr.h.

◆ rttPair

typedef pair<double, double> rttPair

Definition at line 76 of file uwsr.h.

◆ txRounds

typedef int txRounds

Definition at line 74 of file uwsr.h.

◆ txStartTime

typedef double txStartTime

Definition at line 72 of file uwsr.h.

◆ txStatusPair

typedef pair<int, int> txStatusPair

Definition at line 77 of file uwsr.h.

◆ usrPair

typedef pair<macAddress, pktSeqNum> usrPair

Definition at line 75 of file uwsr.h.

Variable Documentation

◆ PT_MMAC_ACK

packet_t PT_MMAC_ACK
extern