fix various doxygen errors

This commit is contained in:
Vedran Miletić
2011-11-26 21:13:46 -08:00
parent 270fb3958a
commit 39d338dbeb
37 changed files with 322 additions and 296 deletions

View File

@@ -25,7 +25,7 @@ DOXYFILE_ENCODING = UTF-8
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
PROJECT_NAME = "NS-3 "
PROJECT_NAME = "ns-3 "
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
@@ -590,8 +590,7 @@ INPUT_ENCODING = UTF-8
# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
FILE_PATTERNS = *.h \
*.tcc \
node-list.cc
*.cc
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
@@ -603,11 +602,7 @@ RECURSIVE = YES
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
EXCLUDE = src/olsr/model/olsr-state.h \
src/olsr/model/olsr-repositories.h \
src/core/model/high-precision.h \
src/core/model/high-precision-128.h \
src/core/model/high-precision-double.h
EXCLUDE =
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
# directories that are symbolic links (a Unix filesystem feature) are excluded
@@ -635,7 +630,39 @@ EXCLUDE_SYMBOLS =
# directories that contain example code fragments that are included (see
# the \include command).
EXAMPLE_PATH =
EXAMPLE_PATH = src/aodv/examples \
src/bridge/examples \
src/click/examples \
src/config-store/examples \
src/core/examples \
src/csma/examples \
src/csma-layout/examples \
src/dsdv/examples \
src/emu/examples \
src/energy/examples \
src/flow-monitor/examples \
src/internet/examples \
src/lte/examples \
src/mesh/examples \
src/mobility/examples \
src/mpi/examples \
src/netanim/examples \
src/network/examples \
src/nix-vector-routing/examples \
src/olsr/examples \
src/openflow/examples \
src/point-to-point/examples \
src/propagation/examples \
src/spectrum/examples \
src/tap-bridge/examples \
src/template/examples \
src/tools/examples \
src/topology-read/examples \
src/uan/examples \
src/virtual-net-device/examples \
src/visualizer/examples \
src/wifi/examples \
src/wimax/examples
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp

View File

@@ -37,9 +37,15 @@ namespace ns3 {
* CommandLine::AddValue but the most important functionality
* provided by this class is that it can be used to set the
* 'initial value' of every attribute in the system with the
* '\--TypeIdName::AttributeName=value' syntax and it can be used
* to set the value of every GlobalValue in the system with
* the \--GlobalValueName=value syntax.
* \verbatim
* --TypeIdName::AttributeName=value
* \endverbatim
* syntax and it can be used to set the value of every GlobalValue
* in the system with the
* \verbatim
* --GlobalValueName=value
* \endverbatim
* syntax.
*/
class CommandLine
{

View File

@@ -463,8 +463,8 @@ NamesPriv::Find (std::string path)
NameNode *node = &m_root;
//
// The string <remaining> is now composed entirely of path segments in the
// /Names name space and we have eaten the leading slash. e.g.,
// The string <remaining> is now composed entirely of path segments in
// the /Names name space and we have eaten the leading slash. e.g.,
// remaining = "ClientNode/eth0"
//
// The start of the search is always at the root of the name space.

View File

@@ -359,6 +359,7 @@ public:
}
/**
* \param timeUnit the unit of the value to return
* \return int64_t time value
*
* Convert the input time into an integer value according to the requested
* time unit.
@@ -390,6 +391,7 @@ public:
}
/**
* \param timeUnit the unit of the value to return
* \return double time value
*
* Convert the input time into a floating point value according to the requested
* time unit.

View File

@@ -937,7 +937,7 @@ class TestSuite : public TestCase
{
public:
/**
* \enum TestType
* \enum Type
* \brief Type of test.
*/
enum Type {

View File

@@ -47,7 +47,7 @@ class QueueEntry
public:
typedef Ipv4RoutingProtocol::UnicastForwardCallback UnicastForwardCallback;
typedef Ipv4RoutingProtocol::ErrorCallback ErrorCallback;
// / c-tor
/// c-tor
QueueEntry (Ptr<const Packet> pa = 0, Ipv4Header const & h = Ipv4Header (),
UnicastForwardCallback ucb = UnicastForwardCallback (),
ErrorCallback ecb = ErrorCallback ())
@@ -67,7 +67,7 @@ public:
{
return ((m_packet == o.m_packet) && (m_header.GetDestination () == o.m_header.GetDestination ()) && (m_expire == o.m_expire));
}
// /\name Fields
///\name Fields
// \{
UnicastForwardCallback GetUnicastForwardCallback () const
{
@@ -111,15 +111,15 @@ public:
}
// \}
private:
// / Data packet
/// Data packet
Ptr<const Packet> m_packet;
// / IP header
/// IP header
Ipv4Header m_header;
// / Unicast forward callback
/// Unicast forward callback
UnicastForwardCallback m_ucb;
// / Error callback
/// Error callback
ErrorCallback m_ecb;
// / Expire time for queue entry
/// Expire time for queue entry
Time m_expire;
};
/**
@@ -133,24 +133,24 @@ private:
class PacketQueue
{
public:
// / Default c-tor
/// Default c-tor
PacketQueue ()
{
}
// / Push entry in queue, if there is no entry with the same packet and destination address in queue.
/// Push entry in queue, if there is no entry with the same packet and destination address in queue.
bool Enqueue (QueueEntry & entry);
// / Return first found (the earliest) entry for given destination
/// Return first found (the earliest) entry for given destination
bool Dequeue (Ipv4Address dst, QueueEntry & entry);
// / Remove all packets with destination IP address dst
/// Remove all packets with destination IP address dst
void DropPacketWithDst (Ipv4Address dst);
// / Finds whether a packet with destination dst exists in the queue
/// Finds whether a packet with destination dst exists in the queue
bool Find (Ipv4Address dst);
// / Get count of packets with destination dst in the queue
/// Get count of packets with destination dst in the queue
uint32_t
GetCountForPacketsWithDst (Ipv4Address dst);
// / Number of entries
/// Number of entries
uint32_t GetSize ();
// /\name Fields
///\name Fields
// \{
uint32_t GetMaxQueueLen () const
{
@@ -180,15 +180,15 @@ public:
private:
std::vector<QueueEntry> m_queue;
// / Remove all expired entries
/// Remove all expired entries
void Purge ();
// / Notify that packet is dropped from queue by timeout
/// Notify that packet is dropped from queue by timeout
void Drop (QueueEntry en, std::string reason);
// / The maximum number of packets that we allow a routing protocol to buffer.
/// The maximum number of packets that we allow a routing protocol to buffer.
uint32_t m_maxLen;
// / The maximum number of packets that we allow per destination to buffer.
/// The maximum number of packets that we allow per destination to buffer.
uint32_t m_maxLenPerDst;
// / The maximum period of time that a routing protocol is allowed to buffer a packet for, seconds.
/// The maximum period of time that a routing protocol is allowed to buffer a packet for, seconds.
Time m_queueTimeout;
static bool IsEqual (QueueEntry en, const Ipv4Address dst)
{

View File

@@ -98,9 +98,9 @@ public:
return m_dstSeqNo;
}
private:
Ipv4Address m_dst; // /< Destination IP Address
uint32_t m_hopCount; // /< Number of Hops
uint32_t m_dstSeqNo; // /< Destination Sequence Number
Ipv4Address m_dst; ///< Destination IP Address
uint32_t m_hopCount; ///< Number of Hops
uint32_t m_dstSeqNo; ///< Destination Sequence Number
};
static inline std::ostream & operator<< (std::ostream& os, const DsdvHeader & packet)
{

View File

@@ -47,13 +47,13 @@ namespace ns3 {
namespace dsdv {
NS_OBJECT_ENSURE_REGISTERED (RoutingProtocol);
// / UDP Port for DSDV control traffic
/// UDP Port for DSDV control traffic
const uint32_t RoutingProtocol::DSDV_PORT = 269;
// / Tag used by DSDV implementation
/// Tag used by DSDV implementation
struct DeferredRouteOutputTag : public Tag
{
// / Positive if output device is fixed in RouteOutput
/// Positive if output device is fixed in RouteOutput
int32_t oif;
DeferredRouteOutputTag (int32_t o = -1)

View File

@@ -56,14 +56,14 @@ public:
GetTypeId (void);
static const uint32_t DSDV_PORT;
// / c-tor
/// c-tor
RoutingProtocol ();
virtual
~RoutingProtocol ();
virtual void
DoDispose ();
// /\name From Ipv4RoutingProtocol
///\name From Ipv4RoutingProtocol
// \{
Ptr<Ipv4Route> RouteOutput (Ptr<Packet> p, const Ipv4Header &header, Ptr<NetDevice> oif, Socket::SocketErrno &sockerr);
bool RouteInput (Ptr<const Packet> p, const Ipv4Header &header, Ptr<const NetDevice> idev, UnicastForwardCallback ucb,
@@ -75,7 +75,7 @@ public:
virtual void NotifyRemoveAddress (uint32_t interface, Ipv4InterfaceAddress address);
virtual void SetIpv4 (Ptr<Ipv4> ipv4);
// \}
// /\name Methods to handle protocol parameters
///\name Methods to handle protocol parameters
// \{
void SetEnableBufferFlag (bool f);
bool GetEnableBufferFlag () const;
@@ -86,64 +86,63 @@ public:
// \}
private:
// /\name Protocol parameters.
///\name Protocol parameters.
// \{
// / \{Holdtimes is the multiplicative factor of PeriodicUpdateInterval for which the node waits since the last update
// / before flushing a route from the routing table. If PeriodicUpdateInterval is 8s and Holdtimes is 3, the node
// / waits for 24s since the last update to flush this route from its routing table. \}
/// Holdtimes is the multiplicative factor of PeriodicUpdateInterval for which the node waits since the last update
/// before flushing a route from the routing table. If PeriodicUpdateInterval is 8s and Holdtimes is 3, the node
/// waits for 24s since the last update to flush this route from its routing table.
uint32_t Holdtimes;
// / \{PeriodicUpdateInterval specifies the periodic time interval between which the a node broadcasts
// / its entire routing table.\}
/// PeriodicUpdateInterval specifies the periodic time interval between which the a node broadcasts
/// its entire routing table.
Time m_periodicUpdateInterval;
// /\{ SettlingTime specifies the time for which a node waits before propagating an update.
// / It waits for this time interval in hope of receiving an update with a better metric.
// /\}
/// SettlingTime specifies the time for which a node waits before propagating an update.
/// It waits for this time interval in hope of receiving an update with a better metric.
Time m_settlingTime;
// /Nodes IP address
/// Nodes IP address
Ipv4Address m_mainAddress;
// / IP protocol
/// IP protocol
Ptr<Ipv4> m_ipv4;
// / Raw socket per each IP interface, map socket -> iface address (IP + mask)
/// Raw socket per each IP interface, map socket -> iface address (IP + mask)
std::map<Ptr<Socket>, Ipv4InterfaceAddress> m_socketAddresses;
// / Loopback device used to defer route requests until a route is found
/// Loopback device used to defer route requests until a route is found
Ptr<NetDevice> m_lo;
// / Main Routing table for the node
/// Main Routing table for the node
RoutingTable m_routingTable;
// / Advertised Routing table for the node
/// Advertised Routing table for the node
RoutingTable m_advRoutingTable;
// / The maximum number of packets that we allow a routing protocol to buffer.
/// The maximum number of packets that we allow a routing protocol to buffer.
uint32_t m_maxQueueLen;
// / The maximum number of packets that we allow per destination to buffer.
/// The maximum number of packets that we allow per destination to buffer.
uint32_t m_maxQueuedPacketsPerDst;
// /< The maximum period of time that a routing protocol is allowed to buffer a packet for.
/// The maximum period of time that a routing protocol is allowed to buffer a packet for.
Time m_maxQueueTime;
// / A "drop front on full" queue used by the routing layer to buffer packets to which it does not have a route.
/// A "drop front on full" queue used by the routing layer to buffer packets to which it does not have a route.
PacketQueue m_queue;
// / Flag that is used to enable or disable buffering
/// Flag that is used to enable or disable buffering
bool EnableBuffering;
// / Flag that is used to enable or disable Weighted Settling Time
/// Flag that is used to enable or disable Weighted Settling Time
bool EnableWST;
// / This is the wighted factor to determine the weighted settling time
/// This is the wighted factor to determine the weighted settling time
double m_weightedFactor;
// / This is a flag to enable route aggregation. Route aggregation will aggregate all routes for
// / 'RouteAggregationTime' from the time an update is received by a node and sends them as a single update .
/// This is a flag to enable route aggregation. Route aggregation will aggregate all routes for
/// 'RouteAggregationTime' from the time an update is received by a node and sends them as a single update .
bool EnableRouteAggregation;
// / Parameter that holds the route aggregation time interval
/// Parameter that holds the route aggregation time interval
Time m_routeAggregationTime;
// / Unicast callback for own packets
/// Unicast callback for own packets
UnicastForwardCallback m_scb;
// / Error callback for own packets
/// Error callback for own packets
ErrorCallback m_ecb;
// /\}
// \}
private:
// / Start protocol operation
/// Start protocol operation
void
Start ();
// / Queue packet untill we find a route
/// Queue packet untill we find a route
void
DeferredRouteOutput (Ptr<const Packet> p, const Ipv4Header & header, UnicastForwardCallback ucb, ErrorCallback ecb);
// / Look for any queued packets to send them out
/// Look for any queued packets to send them out
void
LookForQueuedPackets (void);
/**
@@ -153,18 +152,18 @@ private:
*/
void
SendPacketFromQueue (Ipv4Address dst, Ptr<Ipv4Route> route);
// / Find socket with local interface address iface
/// Find socket with local interface address iface
Ptr<Socket>
FindSocketWithInterfaceAddress (Ipv4InterfaceAddress iface) const;
// /\name Receive dsdv control packets
///\name Receive dsdv control packets
// \{
// / Receive and process dsdv control packet
/// Receive and process dsdv control packet
void
RecvDsdv (Ptr<Socket> socket);
// \}
void
Send (Ptr<Ipv4Route>, Ptr<const Packet>, const Ipv4Header &);
// / Create loopback route for given header
/// Create loopback route for given header
Ptr<Ipv4Route>
LoopbackRoute (const Ipv4Header & header, Ptr<NetDevice> oif) const;
/**
@@ -174,20 +173,20 @@ private:
*/
Time
GetSettlingTime (Ipv4Address dst);
// / Sends trigger update from a node
/// Sends trigger update from a node
void
SendTriggeredUpdate ();
// / Broadcasts the entire routing table for every PeriodicUpdateInterval
/// Broadcasts the entire routing table for every PeriodicUpdateInterval
void
SendPeriodicUpdate ();
void
MergeTriggerPeriodicUpdates ();
// / Notify that packet is dropped for some reason
/// Notify that packet is dropped for some reason
void
Drop (Ptr<const Packet>, const Ipv4Header &, Socket::SocketErrno);
// / Timer to trigger periodic updates from a node
/// Timer to trigger periodic updates from a node
Timer m_periodicUpdateTimer;
// / Timer used by the trigger updates in case of Weighted Settling Time is used
/// Timer used by the trigger updates in case of Weighted Settling Time is used
Timer m_triggeredExpireTimer;
};

View File

@@ -56,7 +56,7 @@ enum RouteFlags
class RoutingTableEntry
{
public:
// / c-tor
/// c-tor
RoutingTableEntry (Ptr<NetDevice> dev = 0, Ipv4Address dst = Ipv4Address (), u_int32_t m_seqNo = 0,
Ipv4InterfaceAddress iface = Ipv4InterfaceAddress (), u_int32_t hops = 0, Ipv4Address nextHop = Ipv4Address (),
Time lifetime = Simulator::Now (), Time SettlingTime = Simulator::Now (), bool changedEntries = false);
@@ -180,11 +180,11 @@ public:
Print (Ptr<OutputStreamWrapper> stream) const;
private:
// /\name Fields
///\name Fields
// \{
// / Destination Sequence Number
/// Destination Sequence Number
uint32_t m_seqNo;
// / Hop Count (number of hops needed to reach destination)
/// Hop Count (number of hops needed to reach destination)
uint32_t m_hops;
/**
* \brief Expiration or deletion time of the route
@@ -200,16 +200,16 @@ private:
* - output device
*/
Ptr<Ipv4Route> m_ipv4Route;
// / Output interface address
/// Output interface address
Ipv4InterfaceAddress m_iface;
// / Routing flags: valid, invalid or in search
/// Routing flags: valid, invalid or in search
RouteFlags m_flag;
// / Time for which the node retains an update with changed metric before broadcasting it.
// / A node does that in hope of receiving a better update.
/// Time for which the node retains an update with changed metric before broadcasting it.
/// A node does that in hope of receiving a better update.
Time m_settlingTime;
// / Flag to show if any of the routing table entries were changed with the routing update.
/// Flag to show if any of the routing table entries were changed with the routing update.
uint32_t m_entriesChanged;
// \}
//\}
};
/**
@@ -219,7 +219,7 @@ private:
class RoutingTable
{
public:
// / c-tor
/// c-tor
RoutingTable ();
/**
* Add routing table entry if it doesn't yet exist in routing table
@@ -247,14 +247,14 @@ public:
LookupRoute (Ipv4Address id, RoutingTableEntry & rt, bool forRouteInput);
/**
* Updating the routing Table with routing table entry rt
* \param routing table entry rt
* \param rt routing table entry
* \return true on success
*/
bool
Update (RoutingTableEntry & rt);
/**
* Lookup list of addresses for which nxtHp is the next Hop address
* \param nexthop's address for which we want the list of destinations
* \param nxtHp nexthop's address for which we want the list of destinations
* \param dstList is the list that will hold all these destination addresses
*/
void
@@ -265,35 +265,35 @@ public:
*/
void
GetListOfAllRoutes (std::map<Ipv4Address, RoutingTableEntry> & allRoutes);
// / Delete all route from interface with address iface
/// Delete all route from interface with address iface
void
DeleteAllRoutesFromInterface (Ipv4InterfaceAddress iface);
// / Delete all entries from routing table
/// Delete all entries from routing table
void
Clear ()
{
m_ipv4AddressEntry.clear ();
}
// / Delete all outdated entries if Lifetime is expired
/// Delete all outdated entries if Lifetime is expired
void
Purge (std::map<Ipv4Address, RoutingTableEntry> & removedAddresses);
// / Print routing table
/// Print routing table
void
Print (Ptr<OutputStreamWrapper> stream) const;
// / Provides the number of routes present in that nodes routing table.
/// Provides the number of routes present in that nodes routing table.
uint32_t
RoutingTableSize ();
/**
* Add an event for a destination address so that the update to for that destination is sent
* after the event is completed.
* \param destination address for which this event is running.
* \param unique eventid that was generated.
* \param address destination address for which this event is running.
* \param id unique eventid that was generated.
*/
bool
AddIpv4Event (Ipv4Address, EventId);
AddIpv4Event (Ipv4Address address, EventId id);
/**
* Clear up the entry from the map after the event is completed
* \param destination address for which this event is running.
* \param address destination address for which this event is running.
* \return true on success
*/
bool
@@ -301,7 +301,7 @@ public:
/**
* Force delete an update waiting for settling time to complete as a better update to
* same destination was received.
* \param destination address for which this event is running.
* \param address destination address for which this event is running.
* \return true on success
*/
bool
@@ -309,19 +309,19 @@ public:
/**
* Force delete an update waiting for settling time to complete as a better update to
* same destination was received.
* \param destination address for which this event is running.
* \param address destination address for which this event is running.
* \return true on finding out that an event is already running for that destination address.
*/
bool
ForceDeleteIpv4Event (Ipv4Address address);
/**
* Get the EcentId associated with that address.
* \param destination address for which this event is running.
* \param address destination address for which this event is running.
* \return EventId on finding out an event is associated else return NULL.
*/
EventId
GetEventId (Ipv4Address address);
// /\name Handle life time of invalid route
///\name Handle life time of invalid route
// \{
Time Getholddowntime () const
{
@@ -334,13 +334,13 @@ public:
// \}
private:
// /\name Fields
///\name Fields
// \{
// / an entry in the routing table.
/// an entry in the routing table.
std::map<Ipv4Address, RoutingTableEntry> m_ipv4AddressEntry;
// / an entry in the event table.
/// an entry in the event table.
std::map<Ipv4Address, EventId> m_ipv4Events;
// /
///
Time m_holddownTime;
// \}
};

View File

@@ -111,7 +111,7 @@ public:
};
/**
* \brief Set ECN Field
* \param ECN Type
* \param ecn ECN Type
*/
void SetEcn (EcnType ecn);
/**

View File

@@ -136,7 +136,7 @@ NscTcpSocketImpl::~NscTcpSocketImpl ()
* when DeAllocate is called, it will call into
* Ipv4EndPointDemux::Deallocate which triggers
* a delete of the associated endPoint which triggers
* in turn a call to the method ::Destroy below
* in turn a call to the method NscTcpSocketImpl::Destroy below
* will will zero the m_endPoint field.
*/
NS_ASSERT (m_endPoint != 0);

View File

@@ -84,7 +84,7 @@ UdpSocketImpl::~UdpSocketImpl ()
* when DeAllocate is called, it will call into
* Ipv4EndPointDemux::Deallocate which triggers
* a delete of the associated endPoint which triggers
* in turn a call to the method ::Destroy below
* in turn a call to the method UdpSocketImpl::Destroy below
* will will zero the m_endPoint field.
*/
NS_ASSERT (m_endPoint != 0);

View File

@@ -28,7 +28,8 @@ namespace ns3 {
*
* \brief Prototype for class, which helps to install MAC-layer
* routing stack to ns3::MeshPointDevice
* \details You need to create a MeshPointDevice and attach all
*
* You need to create a MeshPointDevice and attach all
* interfaces to it, than call Install method
*/
class MeshStack : public Object

View File

@@ -26,16 +26,15 @@ namespace dot11s {
/**
* \ingroup dot11s
*
* \brief airtime link metric calculator
* \brief Airtime link metric calculator
*
* \details Airtime link metric is defined in 11B.10 of 802.11s Draft D3.0 as:
* Airtime link metric is defined in 11B.10 of 802.11s Draft D3.0 as:
*
* airtime = (O + Bt/r)* (1 + average retry counter), where
*
* o -- the PHY dependent channel access which includes frame headers, training sequences,
* airtime = (O + Bt/r)* (1 + average retry counter), where:
* - o -- the PHY dependent channel access which includes frame headers, training sequences,
* access protocol frames, etc.
* bt -- the test packet length in bits (8192 by default),
* r -- the current bitrate of the packet,
* - bt -- the test packet length in bits (8192 by default),
* - r -- the current bitrate of the packet,
*
* Final result is expressed in units of 0.01 Time Unit = 10.24 us (as required by 802.11s draft)
*/

View File

@@ -34,7 +34,7 @@ namespace dot11s {
* \brief Hwmp tag implements interaction between HWMP
* protocol and MeshWifiMac
*
* \details Hwmp tag keeps the following:
* Hwmp tag keeps the following:
* 1. When packet is passed from Hwmp to 11sMAC:
* - retransmitter address,
* - TTL value,

View File

@@ -34,9 +34,9 @@ namespace dot11s
/**
* \ingroup dot11s
*
* \brief 802.11s Peer link management frame:
* \details included the following (see chapters 7.4.12.1-7.4.12.3 of
* 802.11s):
* \brief 802.11s Peer link management frame
*
* Peer link management frame included the following (see chapters 7.4.12.1-7.4.12.3 of 802.11s):
* - Subtype field
* - Association ID field
* - Supported rates

View File

@@ -202,14 +202,14 @@ private:
PeerLink& operator= (const PeerLink &);
PeerLink (const PeerLink &);
///The number of interface I am associated with
/// The number of interface I am associated with
uint32_t m_interface;
/// pointer to MAC plugin, which is responsible for peer management
Ptr<PeerManagementProtocolMac> m_macPlugin;
/// Peer address
Mac48Address m_peerAddress;
/// Mesh point address, equal to peer address in case of single
//interface mesh point
/// interface mesh point
Mac48Address m_peerMeshPointAddress;
/// My ID of this link
uint16_t m_localLinkId;
@@ -253,7 +253,7 @@ private:
EventId m_beaconLossTimer;
uint16_t m_maxBeaconLoss;
uint16_t m_maxPacketFail;
//\}
// \}
/// How to report my status change
SignalStatusCallback m_linkStatusCallback;
};

View File

@@ -45,26 +45,30 @@ public:
PeerManagementProtocolMac (uint32_t interface, Ptr<PeerManagementProtocol> protocol);
~PeerManagementProtocolMac ();
///\name Inherited from plugin abstract class
///\{
// \{
void SetParent (Ptr<MeshWifiInterfaceMac> parent);
bool Receive (Ptr<Packet> packet, const WifiMacHeader & header);
bool UpdateOutcomingFrame (Ptr<Packet> packet, WifiMacHeader & header, Mac48Address from, Mac48Address to);
void UpdateBeacon (MeshWifiBeacon & beacon) const;
///\}
///\name Statistics:
///\{
// \}
///\name Statistics
// \{
void Report (std::ostream &) const;
void ResetStats ();
uint32_t GetLinkMetric (Mac48Address peerAddress);
///\}
// \}
private:
PeerManagementProtocolMac& operator= (const PeerManagementProtocolMac &);
PeerManagementProtocolMac (const PeerManagementProtocolMac &);
friend class PeerManagementProtocol;
friend class PeerLink;
///\name Create peer link management frames:
///\{
///\name Create peer link management frames
// \{
/**
* \brief This structure keeps all fields in peer link management frame,
* which are not subclasses of WifiInformationElement
*/
struct PlinkFrameStart
{
uint8_t subtype;
@@ -75,18 +79,13 @@ private:
Ptr<Packet> CreatePeerLinkOpenFrame ();
Ptr<Packet> CreatePeerLinkConfirmFrame ();
Ptr<Packet> CreatePeerLinkCloseFrame ();
/**
* \brief This structure keeps all fields in peer link management frame,
* which are not subclasses of WifiInformationElement
*/
/// \name Parses the start of the frame, where there are no
/// WifiInformationElements exist
/// Parses the start of the frame, where no WifiInformationElements exist
PlinkFrameStart ParsePlinkFrame (Ptr<const Packet> packet);
///\}
///// Closes link when a proper number of successive transmissions have failed
// \}
/// Closes link when a proper number of successive transmissions have failed
void TxError (WifiMacHeader const &hdr);
void TxOk (WifiMacHeader const &hdr);
///BCA functionallity:
/// BCA functionality
void SetBeaconShift (Time shift);
void SetPeerManagerProtcol (Ptr<PeerManagementProtocol> protocol);
void SendPeerLinkManagementFrame (
@@ -96,9 +95,10 @@ private:
IePeerManagement peerElement,
IeConfiguration meshConfig
);
///\brief DUBUG only - to print established links
///\brief debug only, used to print established links
Mac48Address GetAddress () const;
///\name Statistics
// \{
struct Statistics
{
uint16_t txOpen;
@@ -122,11 +122,11 @@ private:
struct Statistics m_stats;
///\}
///\name Information about MAC and protocol:
///\{
// \{
Ptr<MeshWifiInterfaceMac> m_parent;
uint32_t m_ifIndex;
Ptr<PeerManagementProtocol> m_protocol;
///\}
// \}
};
} // namespace dot11s

View File

@@ -82,7 +82,7 @@ public:
* \param beaconTiming beacon timing element (needed by BCA)
*/
void ReceiveBeacon (uint32_t interface, Mac48Address peerAddress, Time beaconInterval, Ptr<IeBeaconTiming> beaconTiming);
//\}
// \}
/**
* \brief Methods that handle Peer link management frames
* interaction:
@@ -125,9 +125,9 @@ public:
* \brief Checks if there is established link
*/
bool IsActiveLink (uint32_t interface, Mac48Address peerAddress);
//\}
// \}
///\name Interface to other protocols (MLME)
//\{
// \{
/// Set peer link status change callback
void SetPeerLinkStatusCallback (Callback<void, Mac48Address, Mac48Address, uint32_t, bool> cb);
/// Find active peer link by my interface and peer interface MAC
@@ -150,7 +150,8 @@ public:
void Report (std::ostream &) const;
void ResetStats ();
private:
/** \name Private structures
/**
* \name Private structures
* \{
*/
/// Keeps information about beacon of peer station: beacon interval, association ID, last time we have received a beacon
@@ -171,7 +172,7 @@ private:
typedef std::map<uint32_t, BeaconsOnInterface> BeaconInfoMap;
///\brief this vector keeps pointers to MAC-plugins
typedef std::map<uint32_t, Ptr<PeerManagementProtocolMac> > PeerManagementProtocolMacMap;
///\}
// \}
private:
PeerManagementProtocol& operator= (const PeerManagementProtocol &);
PeerManagementProtocol (const PeerManagementProtocol &);
@@ -200,7 +201,7 @@ private:
*/
Time TuToTime (uint32_t x);
uint32_t TimeToTu (Time x);
///\}
// \}
/// Aux. method to register open links
void NotifyLinkOpen (Mac48Address peerMp, Mac48Address peerIface, Mac48Address myIface, uint32_t interface);
@@ -218,9 +219,9 @@ private:
bool m_enableBca;
/// Beacon can be shifted at [-m_maxBeaconShift; +m_maxBeaconShift] TUs
uint16_t m_maxBeaconShift;
///Last beacon at each interface
/// Last beacon at each interface
std::map<uint32_t, Time> m_lastBeacon;
///Beacon interval at each interface
/// Beacon interval at each interface
std::map<uint32_t, Time> m_beaconInterval;
/**
@@ -248,7 +249,7 @@ private:
LinkEventCallback m_linkCloseTraceSrc;
///\name Statistics:
///\{
// \{
struct Statistics {
uint16_t linksTotal;
uint16_t linksOpened;
@@ -258,7 +259,7 @@ private:
void Print (std::ostream & os) const;
};
struct Statistics m_stats;
///\}
// \}
};
} // namespace dot11s

View File

@@ -58,7 +58,7 @@ public:
* \param mpAddress is mesh point address
*/
WifiMacHeader CreateHeader (Mac48Address address, Mac48Address mpAddress);
///Returns a beacon interval of wifi beacon
/// Returns a beacon interval of wifi beacon
Time GetBeaconInterval () const;
/// Create frame = { beacon header + all information elements sorted by ElementId () }
Ptr<Packet> CreatePacket ();

View File

@@ -61,19 +61,19 @@ public:
virtual ~MeshWifiInterfaceMac ();
///\name Inherited from WifiMac
//\{
// \{
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from);
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to);
virtual bool SupportsSendFrom () const;
virtual void SetLinkUpCallback (Callback<void> linkUp);
//\}
// \}
///\name Each mesh point interfaces must know the mesh point address
//\{
// \{
void SetMeshPointAddress (Mac48Address);
Mac48Address GetMeshPointAddress () const;
//\}
// \}
///\name Beacons
//\{
// \{
/// Set maximum initial random delay before first beacon
void SetRandomStartDelay (Time interval);
/// Set interval between two successive beacons
@@ -94,13 +94,13 @@ public:
* \attention User of ShiftTbtt () must take care to not shift it to the past.
*/
void ShiftTbtt (Time shift);
//\}
// \}
///\name Plugins
//\{
// \{
/// Install plugin. TODO return unique ID to allow unregister plugins
void InstallPlugin (Ptr<MeshWifiInterfaceMacPlugin> plugin);
//\}
// \}
/** \name Channel switching
*
@@ -109,12 +109,12 @@ public:
*
* Number of channels to use must be limited elsewhere.
*/
//\{
// \{
/// Current channel Id
uint16_t GetFrequencyChannel () const;
/// Switch channel
void SwitchFrequencyChannel (uint16_t new_id);
//\}
// \}
/// To be used by plugins sending management frames.
void SendManagementFrame (Ptr<Packet> frame, const WifiMacHeader& hdr);
@@ -122,11 +122,11 @@ public:
bool CheckSupportedRates (SupportedRates rates) const;
/// \return list of supported bitrates
SupportedRates GetSupportedRates () const;
///\ name Metric Calculation routines:
///\{
///\name Metric Calculation routines:
// \{
void SetLinkMetricCallback (Callback<uint32_t, Mac48Address, Ptr<MeshWifiInterfaceMac> > cb);
uint32_t GetLinkMetric (Mac48Address peerAddress);
///\}
// \}
///\brief Statistics:
void Report (std::ostream &) const;
void ResetStats ();
@@ -152,14 +152,14 @@ private:
typedef std::vector<Ptr<MeshWifiInterfaceMacPlugin> > PluginList;
///\name Mesh timing intervals
//\{
// \{
/// Beaconing interval.
Time m_beaconInterval;
/// Maximum delay before first beacon
Time m_randomStart;
/// Time for the next frame
Time m_tbtt;
//\}
// \}
/// Mesh point address
Mac48Address m_mpAddress;
@@ -170,7 +170,7 @@ private:
PluginList m_plugins;
Callback<uint32_t, Mac48Address, Ptr<MeshWifiInterfaceMac> > m_linkMetricCallback;
///\name Statistics:
///\{
// \{
struct Statistics
{
uint16_t recvBeacons;
@@ -183,7 +183,7 @@ private:
Statistics ();
};
Statistics m_stats;
///\}
// \}
/// Current PHY standard: needed to configure metric
WifiPhyStandard m_standard;
};

View File

@@ -168,9 +168,10 @@ private:
* were serialized in the byte buffer. The maintenance of metadata is
* optional and disabled by default. To enable it, you must call
* Packet::EnablePrinting and this will allow you to get non-empty
* output from Packet::Print and Packet::Print. If you wish to only enable
* output from Packet::Print. If you wish to only enable
* checking of metadata, and do not need any printing capability, you can
* call Packet::EnableChecking: its runtime cost is lower than Packet::EnablePrinting.
* call Packet::EnableChecking: its runtime cost is lower than
* Packet::EnablePrinting.
*
* - The set of tags contain simulation-specific information which cannot
* be stored in the packet byte buffer because the protocol headers or trailers
@@ -415,7 +416,7 @@ public:
/**
* By default, packets do not keep around enough metadata to
* perform the operations requested by the Print methods. If you
* want to be able to invoke any of the two ::Print methods,
* want to be able the Packet::Print method,
* you need to invoke this method at least once during the
* simulation setup and before any packet is created.
*/

View File

@@ -21,8 +21,7 @@
*/
///
/// \file olsr-repositories.h
/// \brief Here are defined all data structures needed by an OLSR node.
/// \brief Here are defined all data structures needed by an OLSR node.
///
#ifndef OLSR_REPOSITORIES_H

View File

@@ -22,8 +22,7 @@
///
/// \file OLSR.cc
/// \brief Implementation of OLSR agent and related classes.
/// \brief Implementation of OLSR agent and related classes.
///
/// This is the main file of this software because %OLSR's behaviour is
/// implemented here.
@@ -499,7 +498,6 @@ RoutingProtocol::RecvOlsr (Ptr<Socket> socket)
receiverIfaceAddr, inetSourceAddr.GetIpv4 ());
}
}
}
// After processing all OLSR messages, we must recompute the routing table
@@ -573,7 +571,6 @@ RoutingProtocol::MprComputation ()
// MPR computation should be done for each interface. See section 8.3.1
// (RFC 3626) for details.
MprSet mprSet;
// N is the subset of neighbors of the node, which are
// neighbor "of the interface I"
@@ -586,7 +583,7 @@ RoutingProtocol::MprComputation ()
N.push_back (*neighbor);
}
}
// N2 is the set of 2-hop neighbors reachable from "the interface
// I", excluding:
// (i) the nodes only reachable by members of N with willingness WILL_NEVER
@@ -681,7 +678,7 @@ RoutingProtocol::MprComputation ()
// 2. Calculate D(y), where y is a member of N, for all nodes in N.
// (we do this later)
// 3. Add to the MPR set those nodes in N, which are the *only*
// nodes to provide reachability to a node in N2.
std::set<Ipv4Address> coveredTwoHopNeighbors;
@@ -734,7 +731,7 @@ RoutingProtocol::MprComputation ()
twoHopNeigh++;
}
}
// 4. While there exist nodes in N2 which are not covered by at
// least one node in the MPR set:
while (N2.begin () != N2.end ())
@@ -882,7 +879,7 @@ RoutingProtocol::RoutingTableComputation ()
// 1. All the entries from the routing table are removed.
Clear ();
// 2. The new routing entries are added starting with the
// symmetric neighbors (h=1) as the destination nodes.
const NeighborSet &neighborSet = m_state.GetNeighbors ();
@@ -1080,9 +1077,9 @@ RoutingProtocol::RoutingTableComputation ()
// 4. For each entry in the multiple interface association base
// where there exists a routing entry such that:
// R_dest_addr == I_main_addr (of the multiple interface association entry)
// R_dest_addr == I_main_addr (of the multiple interface association entry)
// AND there is no routing entry such that:
// R_dest_addr == I_iface_addr
// R_dest_addr == I_iface_addr
const IfaceAssocSet &ifaceAssocSet = m_state.GetIfaceAssocSet ();
for (IfaceAssocSet::const_iterator it = ifaceAssocSet.begin ();
it != ifaceAssocSet.end (); it++)
@@ -1268,13 +1265,13 @@ RoutingProtocol::ProcessTc (const olsr::MessageHeader &msg,
{
const olsr::MessageHeader::Tc &tc = msg.GetTc ();
Time now = Simulator::Now ();
// 1. If the sender interface of this message is not in the symmetric
// 1-hop neighborhood of this node, the message MUST be discarded.
const LinkTuple *link_tuple = m_state.FindSymLinkTuple (senderIface, now);
if (link_tuple == NULL)
return;
// 2. If there exist some tuple in the topology set where:
// T_last_addr == originator address AND
// T_seq > ANSN,
@@ -1284,10 +1281,10 @@ RoutingProtocol::ProcessTc (const olsr::MessageHeader &msg,
m_state.FindNewerTopologyTuple (msg.GetOriginatorAddress (), tc.ansn);
if (topologyTuple != NULL)
return;
// 3. All tuples in the topology set where:
// T_last_addr == originator address AND
// T_seq < ANSN
// T_last_addr == originator address AND
// T_seq < ANSN
// MUST be removed from the topology set.
m_state.EraseOlderTopologyTuples (msg.GetOriginatorAddress (), tc.ansn);
@@ -1298,10 +1295,10 @@ RoutingProtocol::ProcessTc (const olsr::MessageHeader &msg,
{
const Ipv4Address &addr = *i;
// 4.1. If there exist some tuple in the topology set where:
// T_dest_addr == advertised neighbor main address, AND
// T_last_addr == originator address,
// T_dest_addr == advertised neighbor main address, AND
// T_last_addr == originator address,
// then the holding time of that tuple MUST be set to:
// T_time = current time + validity time.
// T_time = current time + validity time.
TopologyTuple *topologyTuple =
m_state.FindTopologyTuple (addr, msg.GetOriginatorAddress ());
@@ -1313,10 +1310,10 @@ RoutingProtocol::ProcessTc (const olsr::MessageHeader &msg,
{
// 4.2. Otherwise, a new tuple MUST be recorded in the topology
// set where:
// T_dest_addr = advertised neighbor main address,
// T_last_addr = originator address,
// T_seq = ANSN,
// T_time = current time + validity time.
// T_dest_addr = advertised neighbor main address,
// T_last_addr = originator address,
// T_seq = ANSN,
// T_time = current time + validity time.
TopologyTuple topologyTuple;;
topologyTuple.destAddr = addr;
topologyTuple.lastAddr = msg.GetOriginatorAddress ();
@@ -1376,7 +1373,7 @@ RoutingProtocol::ProcessMid (const olsr::MessageHeader &msg,
" the message MUST be discarded.");
return;
}
// 2. For each interface address listed in the MID message
for (std::vector<Ipv4Address>::const_iterator i = mid.interfaceAddresses.begin ();
i != mid.interfaceAddresses.end (); i++)
@@ -1526,7 +1523,7 @@ RoutingProtocol::ForwardDefault (olsr::MessageHeader olsrMessage,
" from " << olsrMessage.GetOriginatorAddress () << " because it is duplicated");
return;
}
// If the sender interface address is an interface address
// of a MPR selector of this node and ttl is greater than 1,
// the message must be retransmitted
@@ -1545,7 +1542,7 @@ RoutingProtocol::ForwardDefault (olsr::MessageHeader olsrMessage,
retransmitted = true;
}
}
// Update duplicate tuple...
if (duplicated != NULL)
{
@@ -1680,7 +1677,7 @@ RoutingProtocol::SendHello ()
std::vector<olsr::MessageHeader::Hello::LinkMessage>
&linkMessages = hello.linkMessages;
const LinkSet &links = m_state.GetLinks ();
for (LinkSet::const_iterator link_tuple = links.begin ();
link_tuple != links.end (); link_tuple++)
@@ -1921,7 +1918,7 @@ RoutingProtocol::RemoveHostNetworkAssociation (Ipv4Address networkAddr, Ipv4Mask
/// in HNA messages sent by the node.
/// If this method is called more than once, entries from the old
/// association are deleted before entries from the new one are added.
/// \param the Ipv4StaticRouting routing table to be associated.
/// \param routingTable the Ipv4StaticRouting routing table to be associated.
///
void
RoutingProtocol::SetRoutingTableAssociation (Ptr<Ipv4StaticRouting> routingTable)
@@ -1983,8 +1980,8 @@ RoutingProtocol::UsesNonOlsrOutgoingInterface (const Ipv4RoutingTableEntry &rout
}
///
/// \brief Updates Link Set according to a new received HELLO message (following RFC 3626
/// specification). Neighbor Set is also updated if needed.
/// \brief Updates Link Set according to a new received HELLO message
/// (following RFC 3626 specification). Neighbor Set is also updated if needed.
void
RoutingProtocol::LinkSensing (const olsr::MessageHeader &msg,
const olsr::MessageHeader::Hello &hello,
@@ -1997,7 +1994,7 @@ RoutingProtocol::LinkSensing (const olsr::MessageHeader &msg,
NS_LOG_DEBUG ("@" << now.GetSeconds () << ": Olsr node " << m_mainAddress
<< ": LinkSensing(receiverIface=" << receiverIface
<< ", senderIface=" << senderIface << ") BEGIN");
NS_ASSERT (msg.GetVTime () > Seconds (0));
LinkTuple *link_tuple = m_state.FindLinkTuple (senderIface);
if (link_tuple == NULL)
@@ -2017,7 +2014,7 @@ RoutingProtocol::LinkSensing (const olsr::MessageHeader &msg,
NS_LOG_LOGIC ("Existing link tuple already exists => will update it");
updated = true;
}
link_tuple->asymTime = now + msg.GetVTime ();
for (std::vector<olsr::MessageHeader::Hello::LinkMessage>::const_iterator linkMessage =
hello.linkMessages.begin ();
@@ -2118,8 +2115,8 @@ RoutingProtocol::LinkSensing (const olsr::MessageHeader &msg,
}
///
/// \brief Updates the Neighbor Set according to the information contained in a new received
/// HELLO message (following RFC 3626).
/// \brief Updates the Neighbor Set according to the information contained in
/// a new received HELLO message (following RFC 3626).
void
RoutingProtocol::PopulateNeighborSet (const olsr::MessageHeader &msg,
const olsr::MessageHeader::Hello &hello)
@@ -2133,8 +2130,8 @@ RoutingProtocol::PopulateNeighborSet (const olsr::MessageHeader &msg,
///
/// \brief Updates the 2-hop Neighbor Set according to the information contained in a new
/// received HELLO message (following RFC 3626).
/// \brief Updates the 2-hop Neighbor Set according to the information contained
/// in a new received HELLO message (following RFC 3626).
void
RoutingProtocol::PopulateTwoHopNeighborSet (const olsr::MessageHeader &msg,
const olsr::MessageHeader::Hello &hello)
@@ -2142,7 +2139,7 @@ RoutingProtocol::PopulateTwoHopNeighborSet (const olsr::MessageHeader &msg,
Time now = Simulator::Now ();
NS_LOG_DEBUG ("Olsr node " << m_mainAddress << ": PopulateTwoHopNeighborSet BEGIN");
for (LinkSet::const_iterator link_tuple = m_state.GetLinks ().begin ();
link_tuple != m_state.GetLinks ().end (); link_tuple++)
{
@@ -2245,8 +2242,8 @@ RoutingProtocol::PopulateTwoHopNeighborSet (const olsr::MessageHeader &msg,
///
/// \brief Updates the MPR Selector Set according to the information contained in a new
/// received HELLO message (following RFC 3626).
/// \brief Updates the MPR Selector Set according to the information contained in
/// a new received HELLO message (following RFC 3626).
void
RoutingProtocol::PopulateMprSelectorSet (const olsr::MessageHeader &msg,
const olsr::MessageHeader::Hello &hello)
@@ -2254,7 +2251,7 @@ RoutingProtocol::PopulateMprSelectorSet (const olsr::MessageHeader &msg,
NS_LOG_FUNCTION (this);
Time now = Simulator::Now ();
typedef std::vector<olsr::MessageHeader::Hello::LinkMessage> LinkMessageVec;
for (LinkMessageVec::const_iterator linkMessage = hello.linkMessages.begin ();
linkMessage != hello.linkMessages.end ();
@@ -2305,9 +2302,9 @@ RoutingProtocol::PopulateMprSelectorSet (const olsr::MessageHeader &msg,
#if 0
///
/// \brief Drops a given packet because it couldn't be delivered to the corresponding
/// destination by the MAC layer. This may cause a neighbor loss, and appropiate
/// actions are then taken.
/// \brief Drops a given packet because it couldn't be delivered to the corresponding
/// destination by the MAC layer. This may cause a neighbor loss, and appropiate
/// actions are then taken.
///
/// \param p the packet which couldn't be delivered by the MAC layer.
///
@@ -2316,17 +2313,17 @@ OLSR::mac_failed (Ptr<Packet> p) {
double now = Simulator::Now ();
struct hdr_ip* ih = HDR_IP (p);
struct hdr_cmn* ch = HDR_CMN (p);
debug ("%f: Node %d MAC Layer detects a breakage on link to %d\n",
now,
OLSR::node_id (ra_addr ()),
OLSR::node_id (ch->next_hop ()));
if ((u_int32_t)ih->daddr () == IP_BROADCAST) {
drop (p, DROP_RTR_MAC_CALLBACK);
return;
}
OLSR_link_tuple* link_tuple = state_.find_link_tuple (ch->next_hop ());
if (link_tuple != NULL) {
link_tuple->lost_time () = now + OLSR_NEIGHB_HOLD_TIME;
@@ -2431,8 +2428,8 @@ RoutingProtocol::RemoveLinkTuple (const LinkTuple &tuple)
}
///
/// \brief This function is invoked when a link tuple is updated. Its aim is to
/// also update the corresponding neighbor tuple if it is needed.
/// \brief This function is invoked when a link tuple is updated. Its aim is to
/// also update the corresponding neighbor tuple if it is needed.
///
/// \param tuple the link tuple which has been updated.
///
@@ -2525,7 +2522,7 @@ RoutingProtocol::RemoveNeighborTuple (const NeighborTuple &tuple)
// OLSR::node_id(ra_addr()),
// OLSR::node_id(tuple->neighborMainAddr),
// ((tuple->status() == OLSR_STATUS_SYM) ? "sym" : "not_sym"));
m_state.EraseNeighborTuple (tuple);
IncrementAnsn ();
}
@@ -2987,7 +2984,7 @@ RoutingProtocol::Clear ()
///
/// \brief Deletes the entry whose destination address is given.
/// \param dest address of the destination node.
/// \param dest address of the destination node.
///
void
RoutingProtocol::RemoveEntry (Ipv4Address const &dest)
@@ -2997,9 +2994,9 @@ RoutingProtocol::RemoveEntry (Ipv4Address const &dest)
///
/// \brief Looks up an entry for the specified destination address.
/// \param dest destination address.
/// \param dest destination address.
/// \param outEntry output parameter to hold the routing entry result, if fuond
/// \return true if found, false if not found
/// \return true if found, false if not found
///
bool
RoutingProtocol::Lookup (Ipv4Address const &dest,
@@ -3016,8 +3013,8 @@ RoutingProtocol::Lookup (Ipv4Address const &dest,
}
///
/// \brief Finds the appropiate entry which must be used in order to forward
/// a data packet to a next hop (given a destination).
/// \brief Finds the appropiate entry which must be used in order to forward
/// a data packet to a next hop (given a destination).
///
/// Imagine a routing table like this: [A,B] [B,C] [C,C]; being each pair of the
/// form [dest addr,next-hop addr]. In this case, if this function is invoked with
@@ -3025,11 +3022,11 @@ RoutingProtocol::Lookup (Ipv4Address const &dest,
/// to forward a data packet destined to A. That is, C is a neighbor of this node,
/// but B isn't. This function finds the appropiate neighbor for forwarding a packet.
///
/// \param entry the routing table entry which indicates the destination node
/// we are interested in.
/// \return the appropiate routing table entry which indicates the next
/// hop which must be used for forwarding a data packet, or NULL
/// if there is no such entry.
/// \param entry the routing table entry which indicates the destination node
/// we are interested in.
/// \return the appropiate routing table entry which indicates the next
/// hop which must be used for forwarding a data packet, or NULL
/// if there is no such entry.
///
bool
RoutingProtocol::FindSendEntry (RoutingTableEntry const &entry,
@@ -3239,10 +3236,10 @@ RoutingProtocol::NotifyRemoveAddress (uint32_t interface, Ipv4InterfaceAddress a
///
/// If an entry for the given destination existed, it is deleted and freed.
///
/// \param dest address of the destination node.
/// \param next address of the next hop node.
/// \param iface address of the local interface.
/// \param dist distance to the destination node.
/// \param dest address of the destination node.
/// \param next address of the next hop node.
/// \param iface address of the local interface.
/// \param dist distance to the destination node.
///
void
RoutingProtocol::AddEntry (Ipv4Address const &dest,
@@ -3348,7 +3345,7 @@ RoutingProtocol::Dump (void)
#endif //NS3_LOG_ENABLE
}
}
} // namespace olsr, ns3
} // namespace olsr
} // namespace ns3

View File

@@ -21,7 +21,7 @@
*/
///
/// \file OlsrState.cc
/// \file olsr-state.cc
/// \brief Implementation of all functions needed for manipulating the internal
/// state of an OLSR node.
///

View File

@@ -55,7 +55,7 @@ public:
/**
* \brief Enables a chain of loss models to act on the signal
* \param The next PropagationLossModel to add to the chain
* \param next The next PropagationLossModel to add to the chain
*
* This method of chaining propagation loss models only works commutatively
* if the propagation loss of all models in the chain are independent
@@ -515,8 +515,8 @@ public:
* \brief Set loss (in dB, positive) between pair of ns-3 objects
* (typically, nodes).
*
* \param ma Source mobility model
* \param mb Destination mobility model
* \param a ma Source mobility model
* \param b mb Destination mobility model
* \param loss a -> b path loss, positive in dB
* \param symmetric If true (default), both a->b and b->a paths will be affected
*/

View File

@@ -37,11 +37,7 @@ class SpectrumChannel;
/**
* \ingroup spectrum
*
*
* create the NetDevice depicted in the figure
* @image html HdOfdmAlohaNoAck.png
*
* \brief create the AlohaNoackNetDevice
*/
class AdhocAlohaNoackIdealPhyHelper
{

View File

@@ -434,23 +434,23 @@ public:
/**
*
*
* @param base the base
* @param exp the exponent
* @param lhs the base
* @param rhs the exponent
*
* @return each value in base raised to the exponent
*/
friend SpectrumValue Pow (const SpectrumValue& base, double exp);
friend SpectrumValue Pow (const SpectrumValue& lhs, double rhs);
/**
*
*
* @param base the base
* @param exp the exponent
* @param lhs the base
* @param rhs the exponent
*
* @return the value in base raised to each value in the exponent
*/
friend SpectrumValue Pow (double base, const SpectrumValue& exp);
friend SpectrumValue Pow (double lhs, const SpectrumValue& rhs);
/**
*
@@ -535,15 +535,14 @@ std::ostream& operator << (std::ostream& os, const SpectrumValue& pvf);
double Norm (const SpectrumValue& x);
double Sum (const SpectrumValue& x);
double Prod (const SpectrumValue& x);
SpectrumValue Pow (const SpectrumValue& base, double exp);
SpectrumValue Pow (double base, const SpectrumValue& exp);
SpectrumValue Log10 (const SpectrumValue& arg);
SpectrumValue Log2 (const SpectrumValue& arg);
SpectrumValue Log (const SpectrumValue& arg);
SpectrumValue Pow (const SpectrumValue& lhs, double rhs);
SpectrumValue Pow (double lhs, const SpectrumValue& rhs);
SpectrumValue Log10 (const SpectrumValue& arg);
SpectrumValue Log2 (const SpectrumValue& arg);
SpectrumValue Log (const SpectrumValue& arg);
double Integral (const SpectrumValue& x);
} // namespace ns3
#endif /* SPECTRUM_VALUE_H */

View File

@@ -188,8 +188,8 @@ public:
NetDeviceContainer Install (NodeContainer c) const;
/**
* \param channel a channel to use
* \param c a set of nodes
* \param channel a channel to use
*
* For each of the input nodes, a new ns3::UanNetDevice is attached
* to the shared input channel. Each ns3::UanNetDevice is also
@@ -202,6 +202,7 @@ public:
/**
* \param node a node where to install the uan components
* \param channel a channel to use
*
* Create a default uan stack with:
* - default channel, ideal propagation and default noise model

View File

@@ -169,7 +169,7 @@ class UanPhy : public Object
public:
static TypeId GetTypeId (void);
// / Enum defining possible Phy states
/// Enum defining possible Phy states
enum State
{
IDLE, CCABUSY, RX, TX, SLEEP

View File

@@ -200,7 +200,7 @@ std::ostream &operator << (std::ostream &os, const UanModesList &ml);
*/
std::istream &operator >> (std::istream &is, UanModesList &ml);
///UanModesList is attribute value
/// UanModesList is attribute value
ATTRIBUTE_HELPER_HEADER (UanModesList);
} // namespace ns3

View File

@@ -121,7 +121,7 @@ private:
double m_noiseFigure; /**< noise figure (linear) */
Ptr<ErrorRateModel> m_errorRateModel;
///Experimental: needed for energy duration calculation
/// Experimental: needed for energy duration calculation
NiChanges m_niChanges;
double m_firstPower;
bool m_rxing;

View File

@@ -46,7 +46,7 @@ public:
WifiInformationElementVector ();
~WifiInformationElementVector ();
///\name Inherited from Header
//\{
// \{
static TypeId GetTypeId ();
TypeId GetInstanceTypeId () const;
virtual uint32_t GetSerializedSize () const;

View File

@@ -252,11 +252,9 @@ public:
*/
static WifiMode GetPlcpHeaderMode (WifiMode payloadMode, WifiPreamble preamble);
/**
*
*
/**
* \param payloadMode the WifiMode use for the transmission of the payload
* \param preamble the type of preamble
* \param preamble the type of preamble
*
* \return the duration of the PLCP header in microseconds
*/
@@ -271,8 +269,8 @@ public:
static uint32_t GetPlcpPreambleDurationMicroSeconds (WifiMode payloadMode, WifiPreamble preamble);
/**
* \param size the number of bytes in the packet to send
* \param payloadMode the WifiMode use for the transmission of the payload
* \param preamble the type of preamble
*
* \return the duration of the payload in microseconds
*/

View File

@@ -64,17 +64,17 @@ private:
* because it resets time of last update.
*/
double CalculateAveragingCoefficient ();
///averaging coefficient depends on the memory time
/// averaging coefficient depends on the memory time
Time m_memoryTime;
///when last update has occured
/// when last update has occured
Time m_lastUpdate;
/// moving percentage of failed frames
double m_failAvg;
};
/**
* \brief hold a list of per-remote-station state.
* \ingroup wifi
* \brief hold a list of per-remote-station state.
*
* \sa ns3::WifiRemoteStation.
*/

View File

@@ -110,23 +110,23 @@ BSSchedulerRtps::AddDownlinkBurst (Ptr<const WimaxConnection> connection,
m_downlinkBursts->push_back (std::make_pair (dlMapIe, burst));
}
/**
* \brief A DownLink Scheduler for rtPS Flows
*
* The DL Scheduler assigns the available bandwidth in the following order:
* - IR Connections
* - Broadcast Connections
* - Basic and Primary Connections
* - UGS Connections
* - rtPS Connections
* - nrtPS Connections
* - BE Connections
* All rtPS flows that have packets in the queue can transmit at least one
* packet, according to the available bandwidth.
*/
void
BSSchedulerRtps::Schedule (void)
{
/**
* \brief A DownLink Scheduler for rtPS Flows
*
* The DL Scheduler assigns the available bandwidth in the following order:
* - IR Connections
* - Broadcast Connections
* - Basic and Primary Connections
* - UGS Connections
* - rtPS Connections
* - nrtPS Connections
* - BE Connections
* All rtPS flows that have packets in the queue can transmit at least one
* packet, according to the available bandwidth.
*/
uint32_t availableSymbols = GetBs ()->GetNrDlSymbols ();