wifi: Additional Doxygen fixes

This commit is contained in:
Robert Ammon
2017-08-19 08:43:14 -07:00
parent 931059cca4
commit fa6e4a0317
32 changed files with 317 additions and 58 deletions

View File

@@ -97,7 +97,10 @@ public:
void Run (struct InterferenceExperiment::Input input);
private:
/// Function triggered when a packet is dropped
/**
* Function triggered when a packet is dropped
* \param packet the packet that was dropped
*/
void PacketDropped(Ptr<const Packet> packet);
/// Send A function
void SendA (void) const;

View File

@@ -53,11 +53,14 @@ public:
/**
* Create a mac helper in a default working state.
* \returns a default HtWifiMacHelper
*/
static HtWifiMacHelper Default (void);
/**
* Converts a HT MCS value into a DataRate value
* \param mcs the HT MCS
* \returns a DataRate value for the HT MCS
*/
static StringValue DataRateForMcs (int mcs);
};

View File

@@ -53,6 +53,7 @@ public:
/**
* Create a mac helper in a default working state.
* \returns a default QosWifiMacHelper
*/
static QosWifiMacHelper Default (void);

View File

@@ -45,6 +45,7 @@ public:
/**
* Create a phy helper in a default working state.
* \returns a default SpectrumWifPhyHelper
*/
static SpectrumWifiPhyHelper Default (void);

View File

@@ -168,6 +168,7 @@ public:
/**
* Create a phy helper in a default working state.
* \returns a default YansWifiPhyHelper
*/
static YansWifiPhyHelper Default (void);

View File

@@ -48,7 +48,9 @@ public:
*/
AmpduTag ();
/**
* Set m_ampdu to 1.
* \param supported the A-MPDU supported flag
*
* Set the A-MPDU supported flag.
*/
void SetAmpdu (bool supported);
/**

View File

@@ -31,6 +31,7 @@ namespace ns3 {
*/
class BlockAckAgreement
{
/// Provide access to MacLow class
friend class MacLow;

View File

@@ -72,8 +72,12 @@ class BlockAckManager : public Object
private:
/// type conversion operator
BlockAckManager (const BlockAckManager&);
/// assignment operator
BlockAckManager& operator= (const BlockAckManager&);
/**
* assignment operator
* \param block BlockAckManager to assign
* \returns the assigned BlockAckManager
*/
BlockAckManager& operator= (const BlockAckManager& block);
public:
@@ -322,8 +326,8 @@ public:
void SetUnblockDestinationCallback (Callback<void, Mac48Address, uint8_t> callback);
/**
* \param recipient
* \param tid
* \param recipient the destination address
* \param tid the Traffic ID
* \param startingSeq
*
* \return true if there are packets in the queue that could be sent under block ACK,
@@ -336,8 +340,8 @@ public:
*/
bool SwitchToBlockAckIfNeeded (Mac48Address recipient, uint8_t tid, uint16_t startingSeq);
/**
* \param recipient
* \param tid
* \param recipient the destination address
* \param tid the Traffic ID
*
* \return the sequence number of the next retry packet for a specific agreement
*
@@ -348,10 +352,19 @@ public:
uint16_t GetSeqNumOfNextRetryPacket (Mac48Address recipient, uint8_t tid) const;
/**
* Checks if the packet already exists in the retransmit queue or not if it does then it doesn't add it again
*
* \param currentSeq the current sequence
* \param recipient the destination address
* \param tid the Traffic ID
* \returns true if the packet already exists
*/
bool AlreadyExists (uint16_t currentSeq, Mac48Address recipient, uint8_t tid) const;
/**
* Remove a packet after you peek in the queue and get it
* \param tid the Traffic ID
* \param recipient the destination address
* \param seqnumber sequence number
* \returns true if a packet was removed
*/
bool RemovePacket (uint8_t tid, Mac48Address recipient, uint16_t seqnumber);
/**
@@ -373,7 +386,7 @@ public:
*
* \param tid Traffic ID
* \param seqNumber sequence number
* \param recipient mac address
* \param recipient MAC address
*
* \returns true if BAR retransmission needed
*/

View File

@@ -408,8 +408,8 @@ private:
union
{
uint16_t m_bitmap[64];
uint64_t m_compressedBitmap;
uint16_t m_bitmap[64]; ///< the block ack bitmap
uint64_t m_compressedBitmap; ///< the compressed block ack bitmap
} bitmap; ///< bitmap union type
};

View File

@@ -58,7 +58,9 @@ class CtrlBAckResponseHeader;
class DcaTxop : public Object
{
public:
/// allow DcfListener class access
friend class DcfListener;
/// allow MacLowTransmissionListener class access
friend class MacLowTransmissionListener;
DcaTxop ();
@@ -247,6 +249,7 @@ public:
virtual void GotBlockAck (const CtrlBAckResponseHeader *blockAck, Mac48Address recipient, double rxSnr, WifiMode txMode, double dataSnr);
/**
* Event handler when a Block ACK timeout has occurred.
* \param nMpdus the number of MPDUs sent in the A-MPDU transmission that results in a Block ACK timeout.
*/
virtual void MissedBlockAck (uint8_t nMpdus);
@@ -290,6 +293,7 @@ public:
protected:
///< DcfState associated class
friend class DcfState;
virtual void DoDispose (void);

View File

@@ -144,6 +144,7 @@ public:
protected:
/// DcfManager associated class
friend class DcfManager;
// Inherited from ns3::Object

View File

@@ -68,7 +68,7 @@ enum TypeOfStation
class EdcaTxopN : public DcaTxop
{
public:
// Allow test cases to access private members
/// Allow test cases to access private members
friend class ::AmpduAggregationTest;
std::map<Mac48Address, bool> m_aMpduEnabled; //!< list containing flags whether A-MPDU is enabled for a given destination address
@@ -200,6 +200,7 @@ public:
void GotBlockAck (const CtrlBAckResponseHeader *blockAck, Mac48Address recipient, double rxSnr, WifiMode txMode, double dataSnr);
/**
* Event handler when a Block ACK timeout has occurred.
* \param nMpdus number of MPDUs sent in the A-MPDU transmission that results in a Block ACK timeout.
*/
void MissedBlockAck (uint8_t nMpdus);
/**
@@ -424,6 +425,7 @@ public:
private:
/// allow AggregationCapableTransmissionListener class access
friend class AggregationCapableTransmissionListener;
/**

View File

@@ -40,7 +40,10 @@ public:
* \param hesupported the HE supported indicator
*/
void SetHeSupported (uint8_t hesupported);
/**
* Get the wifi information element ID
* \returns the wifi information element ID
*/
WifiInformationElementId ElementId () const;
/**
* Get information field size

View File

@@ -327,7 +327,12 @@ private:
double m_firstPower; ///< first power
bool m_rxing; ///< flag whether it is in receiving state
/// Returns a const_iterator to the first nichange, which is later than moment
/**
* Returns a const iterator to the first nichange, which is later than moment
*
* \param moment time to check from
* \returns an iterator to the list of NiChanges
*/
NiChanges::const_iterator GetPosition (Time moment);
/**
* Add NiChange to the list at the appropriate position.

View File

@@ -212,6 +212,7 @@ public:
private:
friend std::ostream &operator << (std::ostream &os, const MacLowTransmissionParameters &params);
uint32_t m_nextSize; //!< the next size
/// wait ack enumerated type
enum
{
ACK_NONE,
@@ -243,8 +244,9 @@ std::ostream &operator << (std::ostream &os, const MacLowTransmissionParameters
class MacLow : public Object
{
public:
// Allow test cases to access private members
/// Allow test cases to access private members
friend class ::TwoLevelAggregationTest;
/// Allow test cases to access private members
friend class ::AmpduAggregationTest;
/**
* typedef for a callback for MacLowRx

View File

@@ -63,6 +63,7 @@ public:
private:
/// allow MacRxMiddleTest associated class access
friend class MacRxMiddleTest;
/**
* Look up for OriginatorRxStatus associated with the sender address

View File

@@ -46,8 +46,8 @@ typedef std::vector<std::pair<Time, WifiMode> > TxTime;
struct McsGroup
{
uint8_t streams; ///< streams
uint8_t sgi; ///< SQI
uint8_t chWidth; ///< channel width
uint8_t sgi; ///< short guard interval (0 or 1)
uint8_t chWidth; ///< channel width (MHz)
bool isVht; ///< is VHT?
bool isSupported; ///< is supported?
@@ -260,37 +260,105 @@ private:
*/
void DoDisposeStation (WifiRemoteStation *station);
/// Check the validity of a combination of number of streams, chWidth and mode.
/**
* Check the validity of a combination of number of streams, chWidth and mode.
*
* \param phy pointer to the wifi phy
* \param streams the number of streams
* \param chWidth the channel width (MHz)
* \param mode the wifi mode
* \returns true if the combination is valid
*/
bool IsValidMcs (Ptr<WifiPhy> phy, uint8_t streams, uint8_t chWidth, WifiMode mode);
/// Estimates the TxTime of a frame with a given mode and group (stream, guard interval and channel width).
/**
* Estimates the TxTime of a frame with a given mode and group (stream, guard interval and channel width).
*
* \param phy pointer to the wifi phy
* \param streams the number of streams
* \param sgi short guard interval enabled (0 or 1)
* \param chWidth the channel width (MHz)
* \param mode the wifi mode
* \returns the transmit time
*/
Time CalculateMpduTxDuration (Ptr<WifiPhy> phy, uint8_t streams, uint8_t sgi, uint8_t chWidth, WifiMode mode);
/// Estimates the TxTime of a frame with a given mode and group (stream, guard interval and channel width).
/**
* Estimates the TxTime of a frame with a given mode and group (stream, guard interval and channel width).
*
* \param phy pointer to the wifi phy
* \param streams the number of streams
* \param sgi short guard interval enabled (0 or 1)
* \param chWidth the channel width (MHz)
* \param mode the wifi mode
* \returns the transmit time
*/
Time CalculateFirstMpduTxDuration (Ptr<WifiPhy> phy, uint8_t streams, uint8_t sgi, uint8_t chWidth, WifiMode mode);
/// Obtain the TXtime saved in the group information.
/**
* Obtain the TXtime saved in the group information.
*
* \param groupId the group ID
* \param mode the wifi mode
* \returns the transmit time
*/
Time GetMpduTxTime (uint32_t groupId, WifiMode mode) const;
/// Save a TxTime to the vector of groups.
/**
* Save a TxTime to the vector of groups.
*
* \param groupId the group ID
* \param mode the wifi mode
* \param t the transmit time
*/
void AddMpduTxTime (uint32_t groupId, WifiMode mode, Time t);
/// Obtain the TXtime saved in the group information.
/**
* Obtain the TXtime saved in the group information.
*
* \param groupId the group ID
* \param mode the wifi mode
* \returns the transmit time
*/
Time GetFirstMpduTxTime (uint32_t groupId, WifiMode mode) const;
/// Save a TxTime to the vector of groups.
/**
* Save a TxTime to the vector of groups.
*
* \param groupId the group ID
* \param mode the wifi mode
* \param t the transmit time
*/
void AddFirstMpduTxTime (uint32_t groupId, WifiMode mode, Time t);
/// Update the number of retries and reset accordingly.
/**
* Update the number of retries and reset accordingly.
* \param station the wifi remote station
*/
void UpdateRetry (MinstrelHtWifiRemoteStation *station);
/// Update the number of sample count variables.
/**
* Update the number of sample count variables.
*
* \param station the wifi remote station
* \param nSuccessfulMpdus
* \param nFailedMpdus
*/
void UpdatePacketCounters (MinstrelHtWifiRemoteStation *station, uint8_t nSuccessfulMpdus, uint8_t nFailedMpdus);
/// Getting the next sample from Sample Table.
/**
* Getting the next sample from Sample Table.
*
* \param station the wifi remote station
* \returns the next sample
*/
uint32_t GetNextSample (MinstrelHtWifiRemoteStation *station);
/// Set the next sample from Sample Table.
/**
* Set the next sample from Sample Table.
*
* \param station the wifi remote station
*/
void SetNextSample (MinstrelHtWifiRemoteStation *station);
/**
@@ -456,7 +524,12 @@ private:
* \returns the rate ID
*/
/// Return the rateId inside a group, from the global index.
/**
* Return the rateId inside a group, from the global index.
*
* \param index the index
* \returns the rate ID
*/
uint32_t GetRateId (uint32_t index);
/**
@@ -476,22 +549,53 @@ private:
*/
uint32_t GetIndex (uint32_t groupId, uint32_t rateId);
/// Returns the groupId of a HT MCS with the given number of streams, if using sgi and the channel width used.
/**
* Returns the groupId of a HT MCS with the given number of streams, if using sgi and the channel width used.
*
* \param txstreams the number of streams
* \param sgi short guard interval enabled (0 or 1)
* \param chWidth the channel width (MHz)
* \returns the HT group ID
*/
uint32_t GetHtGroupId (uint8_t txstreams, uint8_t sgi, uint8_t chWidth);
/// Returns the groupId of a VHT MCS with the given number of streams, if using sgi and the channel width used.
/**
* Returns the groupId of a VHT MCS with the given number of streams, if using sgi and the channel width used.
*
* \param txstreams the number of streams
* \param sgi short guard interval enabled (0 or 1)
* \param chWidth the channel width (MHz)
* \returns the VHT group ID
*/
uint32_t GetVhtGroupId (uint8_t txstreams, uint8_t sgi, uint8_t chWidth);
/// Returns the lowest global index of the rates supported by the station.
/**
* Returns the lowest global index of the rates supported by the station.
*
* \param station the minstrel HT wifi remote station
* \returns the lowest global index
*/
uint32_t GetLowestIndex (MinstrelHtWifiRemoteStation *station);
/// Returns the lowest global index of the rates supported by in the group.
/**
* Returns the lowest global index of the rates supported by in the group.
*
* \param station the minstrel HT wifi remote station
* \param groupId the group ID
* \returns the lowest global index
*/
uint32_t GetLowestIndex (MinstrelHtWifiRemoteStation *station, uint32_t groupId);
/// Returns a list of only the VHT MCS supported by the device.
/**
* Returns a list of only the VHT MCS supported by the device.
* \returns the list of the VHT MCS supported
*/
WifiModeList GetVhtDeviceMcsList (void) const;
/// Returns a list of only the HT MCS supported by the device.
/**
* Returns a list of only the HT MCS supported by the device.
* \returns the list of the HT MCS supported
*/
WifiModeList GetHtDeviceMcsList (void) const;
Time m_updateStats; //!< How frequent do we calculate the stats (1/10 seconds).

View File

@@ -275,7 +275,12 @@ private:
bool IsLowLatency (void) const;
/// for estimating the TxTime of a packet with a given mode
/**
* for estimating the TxTime of a packet with a given mode
*
* \param mode Wi-Fi mode
* \returns the transmission time
*/
Time GetCalcTxTime (WifiMode mode) const;
/**
* Add transmission time for the given mode to an internal list.

View File

@@ -76,10 +76,17 @@ public:
*/
virtual bool Aggregate (Ptr<const Packet> packet, Ptr<Packet> aggregatedPacket) const = 0;
/**
* This method performs a VHT/HE single MPDU aggregation.
*/
* \param packet the packet we want to insert into <i>aggregatedPacket</i>.
* \param aggregatedPacket packet that will contain the packet of size <i>packetSize</i>, if aggregation is possible.
*
* This method performs a VHT/HE single MPDU aggregation.
*/
virtual void AggregateSingleMpdu (Ptr<const Packet> packet, Ptr<Packet> aggregatedPacket) const = 0;
/**
* \param packet the packet we want to insert into <i>aggregatedPacket</i>.
* \param last true if it is the last packet.
* \param isSingleMpdu true if it is a single MPDU
*
* Adds A-MPDU subframe header and padding to each MPDU that is part of an A-MPDU before it is sent.
*/
virtual void AddHeaderAndPad (Ptr<Packet> packet, bool last, bool isSingleMpdu) const = 0;

View File

@@ -67,10 +67,17 @@ public:
*/
bool Aggregate (Ptr<const Packet> packet, Ptr<Packet> aggregatedPacket) const;
/**
* This method performs a VHT/HE single MPDU aggregation.
*/
* \param packet the packet we want to insert into <i>aggregatedPacket</i>.
* \param aggregatedPacket packet that will contain the packet of size <i>packetSize</i>, if aggregation is possible.
*
* This method performs a VHT/HE single MPDU aggregation.
*/
void AggregateSingleMpdu (Ptr<const Packet> packet, Ptr<Packet> aggregatedPacket) const;
/**
* \param packet the packet we want to insert into <i>aggregatedPacket</i>.
* \param last true if it is the last packet.
* \param isSingleMpdu true if it is a single MPDU
*
* Adds A-MPDU subframe header and padding to each MPDU that is part of an A-MPDU before it is sent.
*/
void AddHeaderAndPad (Ptr<Packet> packet, bool last, bool isSingleMpdu) const;

View File

@@ -32,6 +32,7 @@ namespace ns3 {
*/
class OriginatorBlockAckAgreement : public BlockAckAgreement
{
/// allow BlockAckManager class access
friend class BlockAckManager;

View File

@@ -569,8 +569,13 @@ protected:
private:
/// type conversion operator
RegularWifiMac (const RegularWifiMac &);
/// assignment operator
RegularWifiMac & operator= (const RegularWifiMac &);
/**
* assignment operator
*
* \param mac the RegularWifiMac to assign
* \returns the assigned value
*/
RegularWifiMac & operator= (const RegularWifiMac & mac);
/**
* This method is a private utility invoked to configure the channel

View File

@@ -75,9 +75,34 @@ public:
*/
char* PeekString (void) const;
/**
* Get the ElementID.
*
* \returns the element ID
*/
WifiInformationElementId ElementId () const;
/**
* Get the information field size.
*
* \returns the information field size
*/
uint8_t GetInformationFieldSize () const;
/**
* Get the information field size.
*
* \param start the information field iterator
*/
void SerializeInformationField (Buffer::Iterator start) const;
/**
* Get the information field size.
*
* \param start the information field iterator
* \param length the size of the information field
* \returns the size of the field read
*/
uint8_t DeserializeInformationField (Buffer::Iterator start,
uint8_t length);

View File

@@ -79,8 +79,8 @@ public:
* Deserialize information field.
*
* \param start the iterator
* \param length the field length
* \returns the information field
* \param length the field length (bytes)
* \returns length of the information field deserialized (bytes)
*/
uint8_t DeserializeInformationField (Buffer::Iterator start,
uint8_t length);
@@ -133,8 +133,13 @@ public:
/// type conversion operator
SupportedRates (const SupportedRates &);
/// assignment operator
SupportedRates& operator= (const SupportedRates&);
/**
* assignment operator
*
* \param rates the rates to assign
* \returns the assigned value
*/
SupportedRates& operator= (const SupportedRates& rates);
/**
* This defines the maximum number of supported rates that a STA is
@@ -207,14 +212,35 @@ public:
* \return the rate
*/
uint32_t GetRate (uint8_t i) const;
/**
* Get the ElementID.
*
* \returns the element ID
*/
WifiInformationElementId ElementId () const;
/**
* Get the information field size.
*
* \returns the information field size
*/
uint8_t GetInformationFieldSize () const;
/**
* Get the information field size.
*
* \param start the information field iterator
*/
void SerializeInformationField (Buffer::Iterator start) const;
/**
* Get the information field size.
*
* \param start the information field iterator
* \param length the size of the information field (bytes)
* \returns the size of the field read (bytes)
*/
uint8_t DeserializeInformationField (Buffer::Iterator start,
uint8_t length);
/*
/**
* We support the Extended Supported Rates Information Element
* through the ExtendedSupportedRatesIE object which is declared
* above. We allow this class to be a friend so that it can access

View File

@@ -68,17 +68,37 @@ public:
* \return deserialized bytes
*/
virtual uint32_t DeserializeSingleIe (Buffer::Iterator start);
/// Set maximum size to control overflow of the max packet length
/**
* Set maximum size to control overflow of the max packet length
*
* \param size the maximum size to set (bytes)
*/
void SetMaxSize (uint16_t size);
/// As soon as this is a vector, we define an Iterator
typedef std::vector<Ptr<WifiInformationElement> >::iterator Iterator;
/// Returns Begin of the vector
/**
* Returns Begin of the vector
* \returns the begin of the vector
*/
Iterator Begin ();
/// Returns End of the vector
/**
* Returns End of the vector
* \returns the end of the vector
*/
Iterator End ();
/// add an IE, if maxSize has exceeded, returns false
/**
* add an IE, if maxSize has exceeded, returns false
*
* \param element wifi information element to add
* \returns true is added
*/
bool AddInformationElement (Ptr<WifiInformationElement> element);
/// vector of pointers to information elements is the body of IeVector
/**
* vector of pointers to information elements is the body of IeVector
*
* \param id the element id to find
* \returns the information element
*/
Ptr<WifiInformationElement> FindFirst (WifiInformationElementId id) const;
/**
@@ -97,7 +117,10 @@ protected:
* typedef for a vector of WifiInformationElements.
*/
typedef std::vector<Ptr<WifiInformationElement> > IE_VECTOR;
/// Current number of bytes
/**
* Current number of bytes
* \returns the number of bytes
*/
uint32_t GetSize () const;
IE_VECTOR m_elements; //!< Information element vector
/// Size in bytes (actually, max packet length)

View File

@@ -269,7 +269,9 @@ public:
uint16_t GetSerializedSize () const;
// Each subclass must implement these pure virtual functions:
/// Own unique Element ID
/**
* \returns Own unique Element ID
*/
virtual WifiInformationElementId ElementId () const = 0;
/**
* Length of serialized information (i.e., the length of the body

View File

@@ -27,6 +27,7 @@ namespace ns3 {
NS_OBJECT_ENSURE_REGISTERED (WifiMacHeader);
/// type enumeration
enum
{
TYPE_MGT = 0,
@@ -34,6 +35,7 @@ enum
TYPE_DATA = 2
};
/// subtype enumeration
enum
{
//Reserved: 0 - 6

View File

@@ -201,11 +201,11 @@ public:
*/
virtual void SetWifiPhy (Ptr<WifiPhy> phy) = 0;
/**
* return current attached WifiPhy device
* \return currently attached WifiPhy device
*/
virtual Ptr<WifiPhy> GetWifiPhy (void) const = 0;
/**
* remove current attached WifiPhy device from this MAC.
* remove currently attached WifiPhy device from this MAC.
*/
virtual void ResetWifiPhy (void) = 0;
/**

View File

@@ -222,7 +222,9 @@ public:
private:
/// allow WifiModeFactory class access
friend class WifiModeFactory;
/// allow WifiPhyTag class access
friend class WifiPhyTag; // access the UID-based constructor
/**
* Create a WifiMode from a given unique ID.
@@ -299,6 +301,7 @@ public:
private:
/// allow WifiMode class access
friend class WifiMode;
friend std::istream & operator >> (std::istream &is, WifiMode &mode);

View File

@@ -57,7 +57,10 @@ public:
void NotifyTxSuccess (uint32_t retryCounter);
/// Updates average frame error rate when final data or RTS has failed.
void NotifyTxFailed ();
/// Return frame error rate (probability that frame is corrupted due to transmission error).
/**
* Return frame error rate (probability that frame is corrupted due to transmission error).
* \returns the frame error rate
*/
double GetFrameErrorRate () const;
private:
/**

View File

@@ -46,6 +46,8 @@ struct WifiSpectrumSignalParameters : public SpectrumSignalParameters
/**
* copy constructor
*
* \param p the wifi spectrum signal parameters
*/
WifiSpectrumSignalParameters (const WifiSpectrumSignalParameters& p);

View File

@@ -52,6 +52,7 @@ public:
private:
/// allow DcfManagerTest class access
friend class DcfManagerTest;
typedef std::pair<uint64_t,uint64_t> ExpectedGrant; //!< the expected grant typedef