Fix Doxygen comment formatting and typos
This commit is contained in:
@@ -625,8 +625,9 @@ class RerrHeader : public Header
|
||||
bool AddUnDestination(Ipv4Address dst, uint32_t seqNo);
|
||||
/**
|
||||
* \brief Delete pair (address + sequence number) from REER header, if the number of unreachable
|
||||
* destinations > 0 \param un unreachable pair (address + sequence number) \return true on
|
||||
* success
|
||||
* destinations > 0
|
||||
* \param un unreachable pair (address + sequence number)
|
||||
* \return true on success
|
||||
*/
|
||||
bool RemoveUnDestination(std::pair<Ipv4Address, uint32_t>& un);
|
||||
/// Clear header
|
||||
|
||||
@@ -230,7 +230,7 @@ class RoutingProtocol : public Ipv4RoutingProtocol
|
||||
uint32_t m_netDiameter; ///< Net diameter measures the maximum possible number of hops between
|
||||
///< two nodes in the network
|
||||
/**
|
||||
* NodeTraversalTime is a conservative estimate of the average one hop traversal time for
|
||||
* NodeTraversalTime is a conservative estimate of the average one hop traversal time for
|
||||
* packets and should include queuing delays, interrupt processing times and transfer times.
|
||||
*/
|
||||
Time m_nodeTraversalTime;
|
||||
@@ -328,9 +328,11 @@ class RoutingProtocol : public Ipv4RoutingProtocol
|
||||
void ScheduleRreqRetry(Ipv4Address dst);
|
||||
/**
|
||||
* Set lifetime field in routing table entry to the maximum of existing lifetime and lt, if the
|
||||
* entry exists \param addr - destination address \param lt - proposed time for lifetime field
|
||||
* in routing table entry for destination with address addr. \return true if route to
|
||||
* destination address addr exist
|
||||
* entry exists
|
||||
* \param addr destination address
|
||||
* \param lt proposed time for lifetime field in routing table entry for destination with
|
||||
* address addr.
|
||||
* \return true if route to destination address addr exist
|
||||
*/
|
||||
bool UpdateRouteLifeTime(Ipv4Address addr, Time lt);
|
||||
/**
|
||||
@@ -451,17 +453,19 @@ class RoutingProtocol : public Ipv4RoutingProtocol
|
||||
void SendRerrMessage(Ptr<Packet> packet, std::vector<Ipv4Address> precursors);
|
||||
/**
|
||||
* Send RERR message when no route to forward input packet. Unicast if there is reverse route to
|
||||
* originating node, broadcast otherwise. \param dst - destination node IP address \param
|
||||
* dstSeqNo - destination node sequence number \param origin - originating node IP address
|
||||
* originating node, broadcast otherwise.
|
||||
* \param dst destination node IP address
|
||||
* \param dstSeqNo destination node sequence number
|
||||
* \param origin originating node IP address
|
||||
*/
|
||||
void SendRerrWhenNoRouteToForward(Ipv4Address dst, uint32_t dstSeqNo, Ipv4Address origin);
|
||||
/// @}
|
||||
|
||||
/**
|
||||
* Send packet to destination scoket
|
||||
* \param socket - destination node socket
|
||||
* \param packet - packet to send
|
||||
* \param destination - destination node IP address
|
||||
* Send packet to destination socket
|
||||
* \param socket destination node socket
|
||||
* \param packet packet to send
|
||||
* \param destination destination node IP address
|
||||
*/
|
||||
void SendTo(Ptr<Socket> socket, Ptr<Packet> packet, Ipv4Address destination);
|
||||
|
||||
@@ -487,7 +491,7 @@ class RoutingProtocol : public Ipv4RoutingProtocol
|
||||
/**
|
||||
* Mark link to neighbor node as unidirectional for blacklistTimeout
|
||||
*
|
||||
* \param neighbor the IP address of the neightbor node
|
||||
* \param neighbor the IP address of the neighbor node
|
||||
* \param blacklistTimeout the black list timeout time
|
||||
*/
|
||||
void AckTimerExpire(Ipv4Address neighbor, Time blacklistTimeout);
|
||||
|
||||
@@ -210,7 +210,9 @@ class RequestQueue
|
||||
|
||||
/**
|
||||
* Push entry in queue, if there is no entry with the same packet and destination address in
|
||||
* queue. \param entry the queue entry \returns true if the entry is queued
|
||||
* queue.
|
||||
* \param entry the queue entry
|
||||
* \returns true if the entry is queued
|
||||
*/
|
||||
bool Enqueue(QueueEntry& entry);
|
||||
/**
|
||||
|
||||
@@ -500,12 +500,12 @@ class RoutingTable
|
||||
void GetListOfDestinationWithNextHop(Ipv4Address nextHop,
|
||||
std::map<Ipv4Address, uint32_t>& unreachable);
|
||||
/**
|
||||
* Update routing entries with this destination as follows:
|
||||
* 1. The destination sequence number of this routing entry, if it
|
||||
* exists and is valid, is incremented.
|
||||
* 2. The entry is invalidated by marking the route entry as invalid
|
||||
* 3. The Lifetime field is updated to current time plus DELETE_PERIOD.
|
||||
* \param unreachable routes to invalidate
|
||||
* Update routing entries with this destination as follows:
|
||||
* 1. The destination sequence number of this routing entry, if it
|
||||
* exists and is valid, is incremented.
|
||||
* 2. The entry is invalidated by marking the route entry as invalid
|
||||
* 3. The Lifetime field is updated to current time plus DELETE_PERIOD.
|
||||
* \param unreachable routes to invalidate
|
||||
*/
|
||||
void InvalidateRoutesWithDst(const std::map<Ipv4Address, uint32_t>& unreachable);
|
||||
/**
|
||||
@@ -523,9 +523,10 @@ class RoutingTable
|
||||
/// Delete all outdated entries and invalidate valid entry if Lifetime is expired
|
||||
void Purge();
|
||||
/** Mark entry as unidirectional (e.g. add this neighbor to "blacklist" for blacklistTimeout
|
||||
* period) \param neighbor - neighbor address link to which assumed to be unidirectional \param
|
||||
* blacklistTimeout - time for which the neighboring node is put into the blacklist \return true
|
||||
* on success
|
||||
* period)
|
||||
* \param neighbor neighbor address link to which assumed to be unidirectional
|
||||
* \param blacklistTimeout time for which the neighboring node is put into the blacklist
|
||||
* \return true on success
|
||||
*/
|
||||
bool MarkLinkAsUnidirectional(Ipv4Address neighbor, Time blacklistTimeout);
|
||||
/**
|
||||
|
||||
@@ -88,14 +88,13 @@ class BriteTopologyHelper
|
||||
* generate brite seed file
|
||||
*
|
||||
* \param streamNumber the stream number to assign
|
||||
*
|
||||
*/
|
||||
void AssignStreams(int64_t streamNumber);
|
||||
|
||||
/**
|
||||
* Create NS3 topology using information generated from BRITE.
|
||||
* Create NS3 topology using information generated from BRITE.
|
||||
*
|
||||
* \param stack Internet stack to assign to nodes in topology
|
||||
* \param stack Internet stack to assign to nodes in topology
|
||||
*/
|
||||
void BuildBriteTopology(InternetStackHelper& stack);
|
||||
|
||||
@@ -105,7 +104,6 @@ class BriteTopologyHelper
|
||||
*
|
||||
* \param stack Internet stack to assign to nodes in topology.
|
||||
* \param systemCount The number of MPI instances to be used in the simulation.
|
||||
*
|
||||
*/
|
||||
void BuildBriteTopology(InternetStackHelper& stack, const uint32_t systemCount);
|
||||
|
||||
@@ -114,7 +112,6 @@ class BriteTopologyHelper
|
||||
*
|
||||
* \param asNum the AS number
|
||||
* \returns the number of leaf nodes in the specified AS
|
||||
*
|
||||
*/
|
||||
uint32_t GetNLeafNodesForAs(uint32_t asNum);
|
||||
|
||||
@@ -141,7 +138,6 @@ class BriteTopologyHelper
|
||||
* \param asNum the AS number
|
||||
* \param nodeNum the Node number
|
||||
* \return the specified node
|
||||
*
|
||||
*/
|
||||
Ptr<Node> GetNodeForAs(uint32_t asNum, uint32_t nodeNum);
|
||||
|
||||
@@ -163,6 +159,8 @@ class BriteTopologyHelper
|
||||
uint32_t GetSystemNumberForAs(uint32_t asNum) const;
|
||||
|
||||
/**
|
||||
* Assign IPv4 addresses.
|
||||
*
|
||||
* \param address an Ipv4AddressHelper which is used to install
|
||||
* IPv4 addresses on all the node interfaces in
|
||||
* the topology
|
||||
@@ -170,6 +168,8 @@ class BriteTopologyHelper
|
||||
void AssignIpv4Addresses(Ipv4AddressHelper& address);
|
||||
|
||||
/**
|
||||
* Assign IPv6 addresses.
|
||||
*
|
||||
* \param address an Ipv6AddressHelper which is used to install
|
||||
* IPv6 addresses on all the node interfaces in
|
||||
* the topology
|
||||
|
||||
@@ -70,20 +70,24 @@ class MobilityBuildingInfo : public Object
|
||||
* \brief Mark this MobilityBuildingInfo instance as indoor
|
||||
*
|
||||
* \param building the building into which the MobilityBuildingInfo instance is located
|
||||
* \param nfloor the floor number 1...nFloors at which the MobilityBuildingInfo instance is
|
||||
* located \param nroomx the X room number 1...nRoomsX at which the MobilityBuildingInfo
|
||||
* instance is located \param nroomy the Y room number 1...nRoomsY at which the
|
||||
* MobilityBuildingInfo instance is located
|
||||
* \param nfloor the floor number 1...nFloors at which the MobilityBuildingInfo instance
|
||||
* is located
|
||||
* \param nroomx the X room number 1...nRoomsX at which the MobilityBuildingInfo instance
|
||||
* is located
|
||||
* \param nroomy the Y room number 1...nRoomsY at which the MobilityBuildingInfo instance
|
||||
* is located
|
||||
*/
|
||||
void SetIndoor(Ptr<Building> building, uint8_t nfloor, uint8_t nroomx, uint8_t nroomy);
|
||||
|
||||
/**
|
||||
* \brief Mark this MobilityBuildingInfo instance as indoor
|
||||
*
|
||||
* \param nfloor the floor number 1...nFloors at which the MobilityBuildingInfo instance is
|
||||
* located \param nroomx the X room number 1...nRoomsX at which the MobilityBuildingInfo
|
||||
* instance is located \param nroomy the Y room number 1...nRoomsY at which the
|
||||
* MobilityBuildingInfo instance is located
|
||||
* \param nfloor the floor number 1...nFloors at which the MobilityBuildingInfo instance
|
||||
* is located
|
||||
* \param nroomx the X room number 1...nRoomsX at which the MobilityBuildingInfo instance
|
||||
* is located
|
||||
* \param nroomy the Y room number 1...nRoomsY at which the MobilityBuildingInfo instance
|
||||
* is located
|
||||
*/
|
||||
|
||||
void SetIndoor(uint8_t nfloor, uint8_t nroomx, uint8_t nroomy);
|
||||
|
||||
@@ -94,16 +94,19 @@ class RandomWalk2dOutdoorMobilityModel : public MobilityModel
|
||||
/**
|
||||
* Check if there is a building between two positions (or if the nextPosition is inside a
|
||||
* building). The code is taken from MmWave3gppBuildingsPropagationLossModel from the NYU/UNIPD
|
||||
* ns-3 mmWave module \param currentPosition The current position of the node \param
|
||||
* nextPosition The position to check \return a pair with a boolean (true if the line between
|
||||
* the two position does not intersect building), and a pointer which is 0 if the boolean is
|
||||
* true, or it points to the building which is intersected
|
||||
* ns-3 mmWave module
|
||||
* \param currentPosition The current position of the node
|
||||
* \param nextPosition The position to check
|
||||
* \return a pair with a boolean (true if the line between the two position does not intersect
|
||||
* building), and a pointer which is 0 if the boolean is true, or it points to the building
|
||||
* which is intersected
|
||||
*/
|
||||
std::pair<bool, Ptr<Building>> IsLineClearOfBuildings(Vector currentPosition,
|
||||
Vector nextPosition) const;
|
||||
/**
|
||||
* Compute the intersecting point of the box represented by boundaries and the line between
|
||||
* current and next Notice that we only consider a 2d plane \param current The current position
|
||||
* current and next. Notice that we only consider a 2d plane.
|
||||
* \param current The current position
|
||||
* \param next The next position
|
||||
* \param boundaries The boundaries of the building we will intersect
|
||||
* \return a vector with the position of the intersection
|
||||
|
||||
@@ -137,9 +137,10 @@ class Ipv4ClickRouting : public Ipv4RoutingProtocol
|
||||
public:
|
||||
/**
|
||||
* \brief Allows the Click service methods, which reside outside Ipv4ClickRouting, to get the
|
||||
* required Ipv4ClickRouting instances. \param simnode The Click simclick_node_t instance for
|
||||
* which the Ipv4ClickRouting instance is required \return A Ptr to the required
|
||||
* Ipv4ClickRouting instance
|
||||
* required Ipv4ClickRouting instances.
|
||||
* \param simnode The Click simclick_node_t instance for which the Ipv4ClickRouting instance is
|
||||
* required
|
||||
* \return A Ptr to the required Ipv4ClickRouting instance
|
||||
*/
|
||||
static Ptr<Ipv4ClickRouting> GetClickInstanceFromSimNode(simclick_node_t* simnode);
|
||||
|
||||
|
||||
@@ -57,10 +57,10 @@ void cell_data_function_col_0(GtkTreeViewColumn* col,
|
||||
/**
|
||||
* This is the callback called when the value of an attribute is changed
|
||||
*
|
||||
* \param cell the changed cell
|
||||
* \param path_string the path
|
||||
* \param new_text the updated text in the cell
|
||||
* \param user_data user data
|
||||
* \param cell the changed cell
|
||||
* \param path_string the path
|
||||
* \param new_text the updated text in the cell
|
||||
* \param user_data user data
|
||||
*/
|
||||
void cell_edited_callback(GtkCellRendererText* cell,
|
||||
gchar* path_string,
|
||||
@@ -107,7 +107,7 @@ void exit_clicked_callback(GtkButton* button, gpointer user_data);
|
||||
/**
|
||||
* Exit the application
|
||||
* \param widget a pointer to the widget
|
||||
* \param event the event responsible for the aplication exit
|
||||
* \param event the event responsible for the application exit
|
||||
* \param user_data user data
|
||||
* \returns true on clean exit
|
||||
*/
|
||||
@@ -125,7 +125,7 @@ gboolean clean_model_callback(GtkTreeModel* model,
|
||||
GtkTreeIter* iter,
|
||||
gpointer data);
|
||||
|
||||
// display functions used by default configurator
|
||||
// display functions used by default configurator
|
||||
|
||||
/**
|
||||
* This function writes data in the second column, this data is going to be editable
|
||||
@@ -187,14 +187,14 @@ void save_clicked_attribute(GtkButton* button, gpointer user_data);
|
||||
*/
|
||||
void load_clicked_attribute(GtkButton* button, gpointer user_data);
|
||||
/**
|
||||
* This functions is called whenever there is a change in the value of an attribute
|
||||
* If the input value is ok, it will be updated in the default value and in the
|
||||
* GUI, otherwise, it won't be updated in both.
|
||||
* This functions is called whenever there is a change in the value of an attribute
|
||||
* If the input value is ok, it will be updated in the default value and in the
|
||||
* GUI, otherwise, it won't be updated in both.
|
||||
*
|
||||
* \param cell the changed cell
|
||||
* \param path_string the path
|
||||
* \param new_text the updated text in the cell
|
||||
* \param user_data user data
|
||||
* \param cell the changed cell
|
||||
* \param path_string the path
|
||||
* \param new_text the updated text in the cell
|
||||
* \param user_data user data
|
||||
*/
|
||||
void cell_edited_callback_config_default(GtkCellRendererText* cell,
|
||||
gchar* path_string,
|
||||
|
||||
@@ -339,10 +339,10 @@ class int64x64_t
|
||||
*/
|
||||
/**
|
||||
* @{
|
||||
* Arithmetic operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \param [in] rhs Right hand argument
|
||||
* \return The result of the operator.
|
||||
* Arithmetic operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \param [in] rhs Right hand argument
|
||||
* \return The result of the operator.
|
||||
*/
|
||||
|
||||
friend inline bool operator==(const int64x64_t& lhs, const int64x64_t& rhs)
|
||||
@@ -364,25 +364,25 @@ class int64x64_t
|
||||
{
|
||||
lhs._v += rhs._v;
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t& operator-=(int64x64_t& lhs, const int64x64_t& rhs)
|
||||
{
|
||||
lhs._v -= rhs._v;
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t& operator*=(int64x64_t& lhs, const int64x64_t& rhs)
|
||||
{
|
||||
lhs.Mul(rhs);
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t& operator/=(int64x64_t& lhs, const int64x64_t& rhs)
|
||||
{
|
||||
lhs.Div(rhs);
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
/**@}*/
|
||||
|
||||
@@ -392,24 +392,24 @@ class int64x64_t
|
||||
*/
|
||||
/**
|
||||
* @{
|
||||
* Unary operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \return The result of the operator.
|
||||
* Unary operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \return The result of the operator.
|
||||
*/
|
||||
friend inline int64x64_t operator+(const int64x64_t& lhs)
|
||||
{
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t operator-(const int64x64_t& lhs)
|
||||
{
|
||||
return int64x64_t(-lhs._v);
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t operator!(const int64x64_t& lhs)
|
||||
{
|
||||
return int64x64_t(!lhs._v);
|
||||
};
|
||||
}
|
||||
|
||||
/**@}*/
|
||||
|
||||
|
||||
@@ -315,10 +315,10 @@ class int64x64_t
|
||||
*/
|
||||
/**
|
||||
* @{
|
||||
* Arithmetic operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \param [in] rhs Right hand argument
|
||||
* \return The result of the operator.
|
||||
* Arithmetic operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \param [in] rhs Right hand argument
|
||||
* \return The result of the operator.
|
||||
*/
|
||||
|
||||
friend inline bool operator==(const int64x64_t& lhs, const int64x64_t& rhs)
|
||||
@@ -340,25 +340,25 @@ class int64x64_t
|
||||
{
|
||||
lhs._v = _cairo_int128_add(lhs._v, rhs._v);
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t& operator-=(int64x64_t& lhs, const int64x64_t& rhs)
|
||||
{
|
||||
lhs._v = _cairo_int128_sub(lhs._v, rhs._v);
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t& operator*=(int64x64_t& lhs, const int64x64_t& rhs)
|
||||
{
|
||||
lhs.Mul(rhs);
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t& operator/=(int64x64_t& lhs, const int64x64_t& rhs)
|
||||
{
|
||||
lhs.Div(rhs);
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
/** @} */
|
||||
|
||||
@@ -368,26 +368,26 @@ class int64x64_t
|
||||
*/
|
||||
/**
|
||||
* @{
|
||||
* Unary operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \return The result of the operator.
|
||||
* Unary operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \return The result of the operator.
|
||||
*/
|
||||
friend inline int64x64_t operator+(const int64x64_t& lhs)
|
||||
{
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t operator-(const int64x64_t& lhs)
|
||||
{
|
||||
int64x64_t tmp = lhs;
|
||||
tmp._v = _cairo_int128_negate(tmp._v);
|
||||
return tmp;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t operator!(const int64x64_t& lhs)
|
||||
{
|
||||
return (lhs == int64x64_t()) ? int64x64_t(1, 0) : int64x64_t();
|
||||
};
|
||||
}
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
@@ -316,10 +316,10 @@ class int64x64_t
|
||||
*/
|
||||
/*
|
||||
* @{
|
||||
* Arithmetic operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \param [in] rhs Right hand argument
|
||||
* \return The result of the operator.
|
||||
* Arithmetic operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \param [in] rhs Right hand argument
|
||||
* \return The result of the operator.
|
||||
*/
|
||||
|
||||
friend inline bool operator==(const int64x64_t& lhs, const int64x64_t& rhs)
|
||||
@@ -341,25 +341,25 @@ class int64x64_t
|
||||
{
|
||||
lhs._v += rhs._v;
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t& operator-=(int64x64_t& lhs, const int64x64_t& rhs)
|
||||
{
|
||||
lhs._v -= rhs._v;
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t& operator*=(int64x64_t& lhs, const int64x64_t& rhs)
|
||||
{
|
||||
lhs._v *= rhs._v;
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t& operator/=(int64x64_t& lhs, const int64x64_t& rhs)
|
||||
{
|
||||
lhs._v /= rhs._v;
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
/**@}*/
|
||||
|
||||
@@ -369,24 +369,24 @@ class int64x64_t
|
||||
*/
|
||||
/*
|
||||
* @{
|
||||
* Unary operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \return The result of the operator.
|
||||
* Unary operator.
|
||||
* \param [in] lhs Left hand argument
|
||||
* \return The result of the operator.
|
||||
*/
|
||||
friend inline int64x64_t operator+(const int64x64_t& lhs)
|
||||
{
|
||||
return lhs;
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t operator-(const int64x64_t& lhs)
|
||||
{
|
||||
return int64x64_t(-lhs._v);
|
||||
};
|
||||
}
|
||||
|
||||
friend inline int64x64_t operator!(const int64x64_t& lhs)
|
||||
{
|
||||
return int64x64_t(!lhs._v);
|
||||
};
|
||||
}
|
||||
|
||||
/**@}*/
|
||||
|
||||
|
||||
@@ -174,13 +174,13 @@ class Time
|
||||
|
||||
/**
|
||||
* \name Numeric constructors
|
||||
* Construct from a numeric value.
|
||||
* Construct from a numeric value.
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
* Construct from a numeric value.
|
||||
* The current time resolution will be assumed as the unit.
|
||||
* \param [in] v The value.
|
||||
* Construct from a numeric value.
|
||||
* The current time resolution will be assumed as the unit.
|
||||
* \param [in] v The value.
|
||||
*/
|
||||
explicit inline Time(double v)
|
||||
: m_data(llround(v))
|
||||
@@ -472,10 +472,10 @@ class Time
|
||||
static enum Unit GetResolution();
|
||||
|
||||
/**
|
||||
* Create a Time in the current unit.
|
||||
* Create a Time in the current unit.
|
||||
*
|
||||
* \param [in] value The value of the new Time.
|
||||
* \return A Time with \pname{value} in the current time unit.
|
||||
* \param [in] value The value of the new Time.
|
||||
* \return A Time with \pname{value} in the current time unit.
|
||||
*/
|
||||
inline static Time From(const int64x64_t& value)
|
||||
{
|
||||
@@ -489,11 +489,11 @@ class Time
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
* Create a Time equal to \pname{value} in unit \c unit
|
||||
* Create a Time equal to \pname{value} in unit \c unit
|
||||
*
|
||||
* \param [in] value The new Time value, expressed in \c unit
|
||||
* \param [in] unit The unit of \pname{value}
|
||||
* \return The Time representing \pname{value} in \c unit
|
||||
* \param [in] value The new Time value, expressed in \c unit
|
||||
* \param [in] unit The unit of \pname{value}
|
||||
* \return The Time representing \pname{value} in \c unit
|
||||
*/
|
||||
inline static Time FromInteger(uint64_t value, enum Unit unit)
|
||||
{
|
||||
@@ -540,10 +540,10 @@ class Time
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
* Get the Time value expressed in a particular unit.
|
||||
* Get the Time value expressed in a particular unit.
|
||||
*
|
||||
* \param [in] unit The desired unit
|
||||
* \return The Time expressed in \pname{unit}
|
||||
* \param [in] unit The desired unit
|
||||
* \return The Time expressed in \pname{unit}
|
||||
*/
|
||||
inline int64_t ToInteger(enum Unit unit) const
|
||||
{
|
||||
@@ -636,7 +636,7 @@ class Time
|
||||
/**
|
||||
* Get the current Resolution
|
||||
*
|
||||
* \return A pointer to the current Resolution
|
||||
* \return A pointer to the current Resolution
|
||||
*/
|
||||
static inline struct Resolution* PeekResolution()
|
||||
{
|
||||
@@ -658,7 +658,7 @@ class Time
|
||||
/**
|
||||
* Set the default resolution
|
||||
*
|
||||
* \return The Resolution object for the default resolution.
|
||||
* \return The Resolution object for the default resolution.
|
||||
*/
|
||||
static struct Resolution& SetDefaultNsResolution();
|
||||
/**
|
||||
@@ -1439,7 +1439,7 @@ MakeTimeChecker()
|
||||
* \ingroup attribute_time
|
||||
* Helper to make a Time checker with a lower bound.
|
||||
*
|
||||
* \param [in] min Minimum allowed value.
|
||||
* \param [in] min Minimum allowed value.
|
||||
* \return The AttributeChecker
|
||||
*/
|
||||
inline Ptr<const AttributeChecker>
|
||||
@@ -1472,10 +1472,10 @@ class TimeWithUnit
|
||||
Time::Unit m_unit; //!< The unit to use in output
|
||||
|
||||
/**
|
||||
* Output streamer
|
||||
* \param [in,out] os The stream.
|
||||
* \param [in] timeU The Time with desired unit
|
||||
* \returns The stream.
|
||||
* Output streamer
|
||||
* \param [in,out] os The stream.
|
||||
* \param [in] timeU The Time with desired unit
|
||||
* \returns The stream.
|
||||
*/
|
||||
friend std::ostream& operator<<(std::ostream& os, const TimeWithUnit& timeU);
|
||||
|
||||
|
||||
@@ -651,9 +651,11 @@ class ParetoRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random double from a Pareto distribution with the specified scale, shape,
|
||||
* and upper bound. \param [in] scale Mean parameter for the Pareto distribution. \param [in]
|
||||
* shape Shape parameter for the Pareto distribution. \param [in] bound Upper bound on values
|
||||
* returned. \return A floating point random value.
|
||||
* and upper bound.
|
||||
* \param [in] scale Mean parameter for the Pareto distribution.
|
||||
* \param [in] shape Shape parameter for the Pareto distribution.
|
||||
* \param [in] bound Upper bound on values returned.
|
||||
* \return A floating point random value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -678,9 +680,11 @@ class ParetoRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a Pareto distribution with the specified mean,
|
||||
* shape, and upper bound. \param [in] scale Scale parameter for the Pareto distribution. \param
|
||||
* [in] shape Shape parameter for the Pareto distribution. \param [in] bound Upper bound on
|
||||
* values returned. \return A random unsigned integer value.
|
||||
* shape, and upper bound.
|
||||
* \param [in] scale Scale parameter for the Pareto distribution.
|
||||
* \param [in] shape Shape parameter for the Pareto distribution.
|
||||
* \param [in] bound Upper bound on values returned.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -705,7 +709,8 @@ class ParetoRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random double from a Pareto distribution with the current mean, shape, and
|
||||
* upper bound. \return A floating point random value.
|
||||
* upper bound.
|
||||
* \return A floating point random value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -739,7 +744,8 @@ class ParetoRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a Pareto distribution with the current mean,
|
||||
* shape, and upper bound. \return A random unsigned integer value.
|
||||
* shape, and upper bound.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -865,9 +871,11 @@ class WeibullRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random double from a Weibull distribution with the specified scale, shape,
|
||||
* and upper bound. \param [in] scale Scale parameter for the Weibull distribution. \param [in]
|
||||
* shape Shape parameter for the Weibull distribution. \param [in] bound Upper bound on values
|
||||
* returned. \return A floating point random value.
|
||||
* and upper bound.
|
||||
* \param [in] scale Scale parameter for the Weibull distribution.
|
||||
* \param [in] shape Shape parameter for the Weibull distribution.
|
||||
* \param [in] bound Upper bound on values returned.
|
||||
* \return A floating point random value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -891,9 +899,11 @@ class WeibullRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a Weibull distribution with the specified
|
||||
* scale, shape, and upper bound. \param [in] scale Scale parameter for the Weibull
|
||||
* distribution. \param [in] shape Shape parameter for the Weibull distribution. \param [in]
|
||||
* bound Upper bound on values returned. \return A random unsigned integer value.
|
||||
* scale, shape, and upper bound.
|
||||
* \param [in] scale Scale parameter for the Weibull distribution.
|
||||
* \param [in] shape Shape parameter for the Weibull distribution.
|
||||
* \param [in] bound Upper bound on values returned.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -917,7 +927,8 @@ class WeibullRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random double from a Weibull distribution with the current scale, shape, and
|
||||
* upper bound. \return A floating point random value.
|
||||
* upper bound.
|
||||
* \return A floating point random value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -946,7 +957,8 @@ class WeibullRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a Weibull distribution with the current scale,
|
||||
* shape, and upper bound. \return A random unsigned integer value.
|
||||
* shape, and upper bound.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -1051,8 +1063,10 @@ class NormalRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random double from a normal distribution with the specified mean, variance,
|
||||
* and bound. \param [in] mean Mean value for the normal distribution. \param [in] variance
|
||||
* Variance value for the normal distribution. \param [in] bound Bound on values returned.
|
||||
* and bound.
|
||||
* \param [in] mean Mean value for the normal distribution.
|
||||
* \param [in] variance Variance value for the normal distribution.
|
||||
* \param [in] bound Bound on values returned.
|
||||
* \return A floating point random value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
@@ -1091,9 +1105,11 @@ class NormalRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a normal distribution with the specified mean,
|
||||
* variance, and bound. \param [in] mean Mean value for the normal distribution. \param [in]
|
||||
* variance Variance value for the normal distribution. \param [in] bound Bound on values
|
||||
* returned. \return A random unsigned integer value.
|
||||
* variance, and bound.
|
||||
* \param [in] mean Mean value for the normal distribution.
|
||||
* \param [in] variance Variance value for the normal distribution.
|
||||
* \param [in] bound Bound on values returned.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u1\f$ and \f$u2\f$ are uniform variables
|
||||
@@ -1129,7 +1145,8 @@ class NormalRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random double from a normal distribution with the current mean, variance,
|
||||
* and bound. \return A floating point random value.
|
||||
* and bound.
|
||||
* \return A floating point random value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u1\f$ and \f$u2\f$ are uniform variables
|
||||
@@ -1170,7 +1187,8 @@ class NormalRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a normal distribution with the current mean,
|
||||
* variance, and bound. \return A random unsigned integer value.
|
||||
* variance, and bound.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u1\f$ and \f$u2\f$ are uniform variables
|
||||
@@ -1296,8 +1314,10 @@ class LogNormalRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random double from a log-normal distribution with the specified mu and
|
||||
* sigma. \param [in] mu Mu value for the log-normal distribution. \param [in] sigma Sigma value
|
||||
* for the log-normal distribution. \return A floating point random value.
|
||||
* sigma.
|
||||
* \param [in] mu Mu value for the log-normal distribution.
|
||||
* \param [in] sigma Sigma value for the log-normal distribution.
|
||||
* \return A floating point random value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u1\f$ and \f$u2\f$ are uniform variables
|
||||
@@ -1331,8 +1351,10 @@ class LogNormalRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a log-normal distribution with the specified mu
|
||||
* and sigma. \param [in] mu Mu value for the log-normal distribution. \param [in] sigma Sigma
|
||||
* value for the log-normal distribution. \return A random unsigned integer value.
|
||||
* and sigma.
|
||||
* \param [in] mu Mu value for the log-normal distribution.
|
||||
* \param [in] sigma Sigma value for the log-normal distribution.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u1\f$ and \f$u2\f$ are uniform variables
|
||||
@@ -1405,7 +1427,8 @@ class LogNormalRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a log-normal distribution with the current mu
|
||||
* and sigma. \return A random unsigned integer value.
|
||||
* and sigma.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u1\f$ and \f$u2\f$ are uniform variables
|
||||
@@ -1521,8 +1544,10 @@ class GammaRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a gamma distribution with the specified alpha
|
||||
* and beta. \param [in] alpha Alpha value for the gamma distribution. \param [in] beta Beta
|
||||
* value for the gamma distribution. \return A random unsigned integer value.
|
||||
* and beta.
|
||||
* \param [in] alpha Alpha value for the gamma distribution.
|
||||
* \param [in] beta Beta value for the gamma distribution.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u\f$ is a uniform variable over [0,1]
|
||||
@@ -1553,7 +1578,8 @@ class GammaRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a gamma distribution with the current alpha and
|
||||
* beta. \return A random unsigned integer value.
|
||||
* beta.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u\f$ is a uniform variable over [0,1]
|
||||
@@ -1567,8 +1593,10 @@ class GammaRandomVariable : public RandomVariableStream
|
||||
private:
|
||||
/**
|
||||
* \brief Returns a random double from a normal distribution with the specified mean, variance,
|
||||
* and bound. \param [in] mean Mean value for the normal distribution. \param [in] variance
|
||||
* Variance value for the normal distribution. \param [in] bound Bound on values returned.
|
||||
* and bound.
|
||||
* \param [in] mean Mean value for the normal distribution.
|
||||
* \param [in] variance Variance value for the normal distribution.
|
||||
* \param [in] bound Bound on values returned.
|
||||
* \return A floating point random value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
@@ -1698,8 +1726,10 @@ class ErlangRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from an Erlang distribution with the specified k and
|
||||
* lambda. \param [in] k K value for the Erlang distribution. \param [in] lambda Lambda value
|
||||
* for the Erlang distribution. \return A random unsigned integer value.
|
||||
* lambda.
|
||||
* \param [in] k K value for the Erlang distribution.
|
||||
* \param [in] lambda Lambda value for the Erlang distribution.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u\f$ is a uniform variable over [0,1]
|
||||
@@ -1730,7 +1760,8 @@ class ErlangRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from an Erlang distribution with the current k and
|
||||
* lambda. \return A random unsigned integer value.
|
||||
* lambda.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u\f$ is a uniform variable over [0,1]
|
||||
@@ -1744,8 +1775,10 @@ class ErlangRandomVariable : public RandomVariableStream
|
||||
private:
|
||||
/**
|
||||
* \brief Returns a random double from an exponential distribution with the specified mean and
|
||||
* upper bound. \param [in] mean Mean value of the random variables. \param [in] bound Upper
|
||||
* bound on values returned. \return A floating point random value.
|
||||
* upper bound.
|
||||
* \param [in] mean Mean value of the random variables.
|
||||
* \param [in] bound Upper bound on values returned.
|
||||
* \return A floating point random value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -1838,8 +1871,11 @@ class TriangularRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random double from a triangular distribution with the specified mean, min,
|
||||
* and max. \param [in] mean Mean value for the triangular distribution. \param [in] min Low end
|
||||
* of the range. \param [in] max High end of the range. \return A floating point random value.
|
||||
* and max.
|
||||
* \param [in] mean Mean value for the triangular distribution.
|
||||
* \param [in] min Low end of the range.
|
||||
* \param [in] max High end of the range.
|
||||
* \return A floating point random value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -1875,9 +1911,11 @@ class TriangularRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a triangular distribution with the specified
|
||||
* mean, min, and max. \param [in] mean Mean value for the triangular distribution. \param [in]
|
||||
* min Low end of the range. \param [in] max High end of the range. \return A random unsigned
|
||||
* integer value.
|
||||
* mean, min, and max.
|
||||
* \param [in] mean Mean value for the triangular distribution.
|
||||
* \param [in] min Low end of the range.
|
||||
* \param [in] max High end of the range.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -1913,7 +1951,8 @@ class TriangularRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random double from a triangular distribution with the current mean, min, and
|
||||
* max. \return A floating point random value.
|
||||
* max.
|
||||
* \return A floating point random value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -1954,7 +1993,8 @@ class TriangularRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a triangular distribution with the current
|
||||
* mean, min, and max. \return A random unsigned integer value.
|
||||
* mean, min, and max.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if
|
||||
* m_isAntithetic is equal to true. If \f$u\f$ is a uniform variable
|
||||
@@ -2102,8 +2142,10 @@ class ZipfRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a Zipf distribution with the specified n and
|
||||
* alpha. \param [in] n N value for the Zipf distribution. \param [in] alpha Alpha value for the
|
||||
* Zipf distribution. \return A random unsigned integer value.
|
||||
* alpha.
|
||||
* \param [in] n N value for the Zipf distribution.
|
||||
* \param [in] alpha Alpha value for the Zipf distribution.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u\f$ is a uniform variable over [0,1]
|
||||
@@ -2134,7 +2176,8 @@ class ZipfRandomVariable : public RandomVariableStream
|
||||
|
||||
/**
|
||||
* \brief Returns a random unsigned integer from a Zipf distribution with the current n and
|
||||
* alpha. \return A random unsigned integer value.
|
||||
* alpha.
|
||||
* \return A random unsigned integer value.
|
||||
*
|
||||
* Note that antithetic values are being generated if m_isAntithetic
|
||||
* is equal to true. If \f$u\f$ is a uniform variable over [0,1]
|
||||
|
||||
@@ -157,8 +157,8 @@ class Scheduler : public Object
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
|
||||
|
||||
@@ -1220,10 +1220,10 @@ TypeId::SetUid(uint16_t uid)
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Insertion operator for TypeId
|
||||
* \param [in] os the output stream
|
||||
* \param [in] tid the TypeId
|
||||
* \returns the updated output stream.
|
||||
* \brief Insertion operator for TypeId
|
||||
* \param [in] os the output stream
|
||||
* \param [in] tid the TypeId
|
||||
* \returns the updated output stream.
|
||||
*/
|
||||
std::ostream&
|
||||
operator<<(std::ostream& os, TypeId tid)
|
||||
@@ -1233,10 +1233,10 @@ operator<<(std::ostream& os, TypeId tid)
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Extraction operator for TypeId
|
||||
* \param [in] is the input stream
|
||||
* \param [out] tid the TypeId value
|
||||
* \returns the updated input stream.
|
||||
* \brief Extraction operator for TypeId
|
||||
* \param [in] is the input stream
|
||||
* \param [out] tid the TypeId value
|
||||
* \returns the updated input stream.
|
||||
*/
|
||||
std::istream&
|
||||
operator>>(std::istream& is, TypeId& tid)
|
||||
|
||||
@@ -206,7 +206,9 @@ class PacketQueue
|
||||
|
||||
/**
|
||||
* Push entry in queue, if there is no entry with the same packet and destination address in
|
||||
* queue. \param entry QueueEntry to compare \return true if successful
|
||||
* queue.
|
||||
* \param entry QueueEntry to compare
|
||||
* \return true if successful
|
||||
*/
|
||||
bool Enqueue(QueueEntry& entry);
|
||||
/**
|
||||
|
||||
@@ -427,7 +427,9 @@ class DsrMaintainBuffer
|
||||
}
|
||||
|
||||
/// Push entry in queue, if there is no entry with the same packet and destination address in
|
||||
/// queue. \param entry Maintain Buffer Entry \return true on success adding the Entry.
|
||||
/// queue.
|
||||
/// \param entry Maintain Buffer Entry
|
||||
/// \return true on success adding the Entry.
|
||||
bool Enqueue(DsrMaintainBuffEntry& entry);
|
||||
/// Return first found (the earliest) entry for given destination
|
||||
/// \param [in] dst Entry destination
|
||||
|
||||
@@ -295,7 +295,9 @@ class DsrPassiveBuffer : public Object
|
||||
~DsrPassiveBuffer() override;
|
||||
|
||||
/// Push entry in queue, if there is no entry with the same packet and destination address in
|
||||
/// queue. \param entry Buffer Entry \return true on success adding the Entry.
|
||||
/// queue.
|
||||
/// \param entry Buffer Entry
|
||||
/// \return true on success adding the Entry.
|
||||
bool Enqueue(DsrPassiveBuffEntry& entry);
|
||||
/// Return first found (the earliest) entry for given destination
|
||||
/// \param [in] dst Entry destination
|
||||
|
||||
@@ -606,7 +606,9 @@ class DsrRouteCache : public Object
|
||||
|
||||
/**
|
||||
* \brief Update route cache entry if it has been recently used and successfully delivered the
|
||||
* data packet \param dst destination address of the route \return true in success
|
||||
* data packet
|
||||
* \param dst destination address of the route
|
||||
* \return true in success
|
||||
*/
|
||||
bool UpdateRouteEntry(Ipv4Address dst);
|
||||
/**
|
||||
@@ -686,7 +688,7 @@ class DsrRouteCache : public Object
|
||||
/// Structure to manage neighbor state
|
||||
struct Neighbor
|
||||
{
|
||||
Ipv4Address m_neighborAddress; ///< neightbor address
|
||||
Ipv4Address m_neighborAddress; ///< neighbor address
|
||||
Mac48Address m_hardwareAddress; ///< neighbor MAC address
|
||||
Time m_expireTime; ///< route expire time
|
||||
bool close; ///< is route active
|
||||
@@ -766,8 +768,8 @@ class DsrRouteCache : public Object
|
||||
|
||||
/**
|
||||
* \brief Get callback to ProcessTxError, this callback is trying to use the wifi mac tx error
|
||||
* header to notify a link layer drop event, however, it is not fully supported yet \return The
|
||||
* callback to ProcessTxError
|
||||
* header to notify a link layer drop event, however, it is not fully supported yet
|
||||
* \return The callback to ProcessTxError
|
||||
*/
|
||||
Callback<void, const WifiMacHeader&> GetTxErrorCallback() const
|
||||
{
|
||||
@@ -864,8 +866,8 @@ class DsrRouteCache : public Object
|
||||
public:
|
||||
/**
|
||||
* \brief Dijsktra algorithm to get the best route from m_netGraph and update the
|
||||
* m_bestRoutesTable_link when current graph information has changed \param type The type of the
|
||||
* cache
|
||||
* m_bestRoutesTable_link when current graph information has changed
|
||||
* \param type The type of the cache
|
||||
*/
|
||||
void SetCacheType(std::string type);
|
||||
/**
|
||||
@@ -881,14 +883,14 @@ class DsrRouteCache : public Object
|
||||
*/
|
||||
bool AddRoute_Link(DsrRouteCacheEntry::IP_VECTOR nodelist, Ipv4Address node);
|
||||
/**
|
||||
* \brief Rebuild the best route table
|
||||
* \note Use MAXWEIGHT to represeant maximum weight, use the IPv4 broadcast
|
||||
* address of 255.255.255.255 to represent a null preceding address
|
||||
* \param source The source address used for computing the routes
|
||||
* \brief Rebuild the best route table
|
||||
* \note Use MAXWEIGHT to represent maximum weight, use the IPv4 broadcast
|
||||
* address of 255.255.255.255 to represent a null preceding address
|
||||
* \param source The source address used for computing the routes
|
||||
*/
|
||||
void RebuildBestRouteTable(Ipv4Address source);
|
||||
/**
|
||||
* \brief Purge from the cache if the stability time expired
|
||||
* \brief Purge from the cache if the stability time expired
|
||||
*/
|
||||
void PurgeLinkNode();
|
||||
/**
|
||||
@@ -896,11 +898,12 @@ class DsrRouteCache : public Object
|
||||
* by that node, the stability metric for each of the two endpoint nodes of that link is
|
||||
* incremented by the amount of time since that link was last used. When a link is used in a
|
||||
* route chosen for a packet originated or salvaged by this node, the link's lifetime is set to
|
||||
* be at least UseExtends into the future \param rt cache entry
|
||||
* be at least UseExtends into the future
|
||||
* \param rt cache entry
|
||||
*/
|
||||
void UseExtends(DsrRouteCacheEntry::IP_VECTOR rt);
|
||||
/**
|
||||
* \brief Update the Net Graph for the link and node cache has changed
|
||||
* \brief Update the Net Graph for the link and node cache has changed
|
||||
*/
|
||||
void UpdateNetGraph();
|
||||
//---------------------------------------------------------------------------------------
|
||||
|
||||
@@ -320,7 +320,10 @@ class DsrRouting : public IpL4Protocol
|
||||
uint32_t GetPriority(DsrMessageType messageType);
|
||||
/**
|
||||
* \brief This function is responsible for sending error packets in case of break link to next
|
||||
* hop \param unreachNode unreachable node \param destination address \param originalDst address
|
||||
* hop
|
||||
* \param unreachNode unreachable node
|
||||
* \param destination address
|
||||
* \param originalDst address
|
||||
* \param salvage packet flag
|
||||
* \param protocol number
|
||||
*/
|
||||
@@ -328,13 +331,16 @@ class DsrRouting : public IpL4Protocol
|
||||
Ipv4Address destination,
|
||||
Ipv4Address originalDst,
|
||||
uint8_t salvage,
|
||||
uint8_t protocol); /**
|
||||
* \brief This function is responsible for forwarding
|
||||
* error packets along the route \param rerr
|
||||
* unreachable header \param sourceRoute source routing
|
||||
* header \param nextHop IP address of next hop \param
|
||||
* protocol number \param route IP route
|
||||
*/
|
||||
uint8_t protocol);
|
||||
|
||||
/**
|
||||
* \brief This function is responsible for forwarding error packets along the route
|
||||
* \param rerr unreachable header
|
||||
* \param sourceRoute source routing header
|
||||
* \param nextHop IP address of next hop
|
||||
* \param protocol number
|
||||
* \param route IP route
|
||||
*/
|
||||
void ForwardErrPacket(DsrOptionRerrUnreachHeader& rerr,
|
||||
DsrOptionSRHeader& sourceRoute,
|
||||
Ipv4Address nextHop,
|
||||
@@ -392,7 +398,8 @@ class DsrRouting : public IpL4Protocol
|
||||
bool SendRealDown(DsrNetworkQueueEntry& newEntry);
|
||||
/**
|
||||
* \brief This function is responsible for sending out data packets when have route, if no route
|
||||
* found, it will cache the packet and send out route requests \param sourceRoute source route
|
||||
* found, it will cache the packet and send out route requests
|
||||
* \param sourceRoute source route
|
||||
* \param nextHop next hop IP address
|
||||
* \param protocol number
|
||||
*/
|
||||
@@ -448,22 +455,24 @@ class DsrRouting : public IpL4Protocol
|
||||
Ipv4Address realDst);
|
||||
/**
|
||||
* \brief Cancel the network packet retransmission timer for a specific maintenance entry
|
||||
* \param mb maintian byffer entry
|
||||
* \param mb maintain buffer entry
|
||||
*/
|
||||
void CancelNetworkPacketTimer(DsrMaintainBuffEntry& mb);
|
||||
/**
|
||||
* \brief Cancel the passive packet retransmission timer for a specific maintenance entry
|
||||
* \param mb maintian byffer entry
|
||||
* \param mb maintain buffer entry
|
||||
*/
|
||||
void CancelPassivePacketTimer(DsrMaintainBuffEntry& mb);
|
||||
/**
|
||||
* \brief Cancel the link packet retransmission timer for a specific maintenance entry
|
||||
* \param mb maintian byffer entry
|
||||
* \param mb maintain buffer entry
|
||||
*/
|
||||
void CancelLinkPacketTimer(DsrMaintainBuffEntry& mb);
|
||||
/**
|
||||
* \brief Cancel the packet retransmission timer for a all maintenance entries with nextHop
|
||||
* address \param nextHop next hop IP address \param protocol number
|
||||
* address
|
||||
* \param nextHop next hop IP address
|
||||
* \param protocol number
|
||||
*/
|
||||
void CancelPacketTimerNextHop(Ipv4Address nextHop, uint8_t protocol);
|
||||
/**
|
||||
@@ -504,12 +513,16 @@ class DsrRouting : public IpL4Protocol
|
||||
void LinkScheduleTimerExpire(DsrMaintainBuffEntry& mb, uint8_t protocol);
|
||||
/**
|
||||
* \brief This function deals with packet retransmission timer expire using network
|
||||
* acknowledgment \param mb maintenance buffer entry \param protocol the protocol number
|
||||
* acknowledgment
|
||||
* \param mb maintenance buffer entry
|
||||
* \param protocol the protocol number
|
||||
*/
|
||||
void NetworkScheduleTimerExpire(DsrMaintainBuffEntry& mb, uint8_t protocol);
|
||||
/**
|
||||
* \brief This function deals with packet retransmission timer expire using passive
|
||||
* acknowledgment \param mb maintenance buffer entry \param protocol the protocol number
|
||||
* acknowledgment
|
||||
* \param mb maintenance buffer entry
|
||||
* \param protocol the protocol number
|
||||
*/
|
||||
void PassiveScheduleTimerExpire(DsrMaintainBuffEntry& mb, uint8_t protocol);
|
||||
/**
|
||||
|
||||
@@ -341,15 +341,17 @@ class DsrRreqTable : public Object
|
||||
void Invalidate();
|
||||
/**
|
||||
* \brief Verify if entry is unidirectional or not(e.g. add this neighbor to "blacklist" for
|
||||
* blacklistTimeout period) \param neighbor neighbor address link to which assumed to be
|
||||
* unidirectional \return true on success
|
||||
* blacklistTimeout period)
|
||||
* \param neighbor neighbor address link to which assumed to be unidirectional
|
||||
* \return true on success
|
||||
*/
|
||||
BlackList* FindUnidirectional(Ipv4Address neighbor);
|
||||
/**
|
||||
* \brief Mark entry as unidirectional (e.g. add this neighbor to "blacklist" for
|
||||
* blacklistTimeout period) \param neighbor - neighbor address link to which assumed to be
|
||||
* unidirectional \param blacklistTimeout - time for which the neighboring node is put into the
|
||||
* blacklist \return true on success
|
||||
* blacklistTimeout period)
|
||||
* \param neighbor neighbor address link to which assumed to be unidirectional
|
||||
* \param blacklistTimeout time for which the neighboring node is put into the blacklist
|
||||
* \return true on success
|
||||
*/
|
||||
bool MarkLinkAsUnidirectional(Ipv4Address neighbor, Time blacklistTimeout);
|
||||
/**
|
||||
|
||||
@@ -179,12 +179,12 @@ class LiIonEnergySource : public EnergySource
|
||||
void CalculateRemainingEnergy();
|
||||
|
||||
/**
|
||||
* \param current the actual discharge current value.
|
||||
* \return the cell voltage
|
||||
* Get the cell voltage in function of the discharge current.
|
||||
* It consider different discharge curves for different discharge currents
|
||||
* and the remaining energy of the cell.
|
||||
*
|
||||
* Get the cell voltage in function of the discharge current.
|
||||
* It consider different discharge curves for different discharge currents
|
||||
* and the remaining energy of the cell.
|
||||
* \param current the actual discharge current value.
|
||||
* \return the cell voltage
|
||||
*/
|
||||
double GetVoltage(double current) const;
|
||||
|
||||
|
||||
@@ -203,7 +203,8 @@ class Ipv6InterfaceContainer
|
||||
/**
|
||||
* \brief Set the default route for all the devices (except the router itself).
|
||||
* Note that the route will be set to the link-local address of the node with the specified
|
||||
* address. \param routerAddr the default router address
|
||||
* address.
|
||||
* \param routerAddr the default router address
|
||||
*/
|
||||
void SetDefaultRouteInAllNodes(Ipv6Address routerAddr);
|
||||
|
||||
@@ -217,7 +218,9 @@ class Ipv6InterfaceContainer
|
||||
/**
|
||||
* \brief Set the default route for the specified index.
|
||||
* Note that the route will be set to the link-local address of the node with the specified
|
||||
* address. \param i index \param routerAddr the default router address
|
||||
* address.
|
||||
* \param i index
|
||||
* \param routerAddr the default router address
|
||||
*/
|
||||
void SetDefaultRoute(uint32_t i, Ipv6Address routerAddr);
|
||||
|
||||
|
||||
@@ -142,23 +142,26 @@ class NeighborCacheHelper
|
||||
|
||||
/**
|
||||
* \brief Update neighbor caches when an address is removed from a Ipv4Interface with auto
|
||||
* generated neighbor cache. \param interface the Ipv4Interface that address removed from.
|
||||
* \param ifAddr the removed IPv4 interface address .
|
||||
* generated neighbor cache.
|
||||
* \param interface the Ipv4Interface that address removed from.
|
||||
* \param ifAddr the removed IPv4 interface address.
|
||||
*/
|
||||
void UpdateCacheByIpv4AddressRemoved(const Ptr<Ipv4Interface> interface,
|
||||
const Ipv4InterfaceAddress ifAddr) const;
|
||||
|
||||
/**
|
||||
* \brief Update neighbor caches when an address is added to a Ipv4Interface with auto generated
|
||||
* neighbor cache. \param interface the Ipv4Interface that address added to. \param ifAddr the
|
||||
* added IPv4 interface address.
|
||||
* neighbor cache.
|
||||
* \param interface the Ipv4Interface that address added to.
|
||||
* \param ifAddr the added IPv4 interface address.
|
||||
*/
|
||||
void UpdateCacheByIpv4AddressAdded(const Ptr<Ipv4Interface> interface,
|
||||
const Ipv4InterfaceAddress ifAddr) const;
|
||||
|
||||
/**
|
||||
* \brief Update neighbor caches when an address is removed from a Ipv6Interface with auto
|
||||
* generated neighbor cache. \param interface the Ipv6Interface that address removed from.
|
||||
* generated neighbor cache.
|
||||
* \param interface the Ipv6Interface that address removed from.
|
||||
* \param ifAddr the removed IPv6 interface address.
|
||||
*/
|
||||
void UpdateCacheByIpv6AddressRemoved(const Ptr<Ipv6Interface> interface,
|
||||
@@ -166,8 +169,9 @@ class NeighborCacheHelper
|
||||
|
||||
/**
|
||||
* \brief Update neighbor cache when an address is added to a Ipv6Interface with auto generated
|
||||
* neighbor cache. \param interface the Ipv6Interface that address added to. \param ifAddr the
|
||||
* added IPv6 interface address.
|
||||
* neighbor cache.
|
||||
* \param interface the Ipv6Interface that address added to.
|
||||
* \param ifAddr the added IPv6 interface address.
|
||||
*/
|
||||
void UpdateCacheByIpv6AddressAdded(const Ptr<Ipv6Interface> interface,
|
||||
const Ipv6InterfaceAddress ifAddr) const;
|
||||
|
||||
@@ -39,8 +39,9 @@ class ArpHeader : public Header
|
||||
* \brief Set the ARP request parameters
|
||||
* \param sourceHardwareAddress the source hardware address
|
||||
* \param sourceProtocolAddress the source IP address
|
||||
* \param destinationHardwareAddress the destination hardware address (usually the broadcast
|
||||
* address) \param destinationProtocolAddress the destination IP address
|
||||
* \param destinationHardwareAddress the destination hardware address (usually the
|
||||
* broadcast address)
|
||||
* \param destinationProtocolAddress the destination IP address
|
||||
*/
|
||||
void SetRequest(Address sourceHardwareAddress,
|
||||
Ipv4Address sourceProtocolAddress,
|
||||
@@ -50,8 +51,9 @@ class ArpHeader : public Header
|
||||
* \brief Set the ARP reply parameters
|
||||
* \param sourceHardwareAddress the source hardware address
|
||||
* \param sourceProtocolAddress the source IP address
|
||||
* \param destinationHardwareAddress the destination hardware address (usually the broadcast
|
||||
* address) \param destinationProtocolAddress the destination IP address
|
||||
* \param destinationHardwareAddress the destination hardware address (usually the
|
||||
* broadcast address)
|
||||
* \param destinationProtocolAddress the destination IP address
|
||||
*/
|
||||
void SetReply(Address sourceHardwareAddress,
|
||||
Ipv4Address sourceProtocolAddress,
|
||||
|
||||
@@ -305,7 +305,8 @@ class Ipv6ExtensionFragment : public Ipv6Extension
|
||||
* \param packet the packet.
|
||||
* \param ipv6Header the IPv6 header.
|
||||
* \param fragmentSize the maximal size of the fragment (unfragmentable part + fragmentation
|
||||
* header + fragmentable part). \param listFragments the list of fragments.
|
||||
* header + fragmentable part).
|
||||
* \param listFragments the list of fragments.
|
||||
*/
|
||||
void GetFragments(Ptr<Packet> packet,
|
||||
Ipv6Header ipv6Header,
|
||||
|
||||
@@ -171,9 +171,9 @@ class Ipv6RoutingProtocol : public Object
|
||||
*
|
||||
* Protocols are expected to implement this method to be notified whenever
|
||||
* a new address is removed from an interface. Typically used to remove the 'network route' of
|
||||
* an interface. Can be invoked on an up or down interface. \param interface the index of the
|
||||
* interface we are being notified about \param address a new address being added to an
|
||||
* interface
|
||||
* an interface. Can be invoked on an up or down interface.
|
||||
* \param interface the index of the interface we are being notified about
|
||||
* \param address a new address being added to an interface
|
||||
*/
|
||||
virtual void NotifyRemoveAddress(uint32_t interface, Ipv6InterfaceAddress address) = 0;
|
||||
|
||||
|
||||
@@ -203,9 +203,9 @@ class LrWpanCsmaCa : public Object
|
||||
*/
|
||||
void DeferCsmaTimeout();
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.2.2
|
||||
* PLME-CCA.confirm status
|
||||
* @param status TRX_OFF, BUSY or IDLE
|
||||
* IEEE 802.15.4-2006 section 6.2.2.2
|
||||
* PLME-CCA.confirm status
|
||||
* \param status TRX_OFF, BUSY or IDLE
|
||||
*
|
||||
* When Phy has completed CCA, it calls back here which in turn execute the final steps
|
||||
* of the CSMA-CA algorithm.
|
||||
@@ -260,8 +260,8 @@ class LrWpanCsmaCa : public Object
|
||||
private:
|
||||
void DoDispose() override;
|
||||
/**
|
||||
* \brief Get the time left in the CAP portion of the Outgoing or Incoming superframe.
|
||||
* \return the time left in the CAP
|
||||
* \brief Get the time left in the CAP portion of the Outgoing or Incoming superframe.
|
||||
* \return the time left in the CAP
|
||||
*/
|
||||
Time GetTimeLeftInCap();
|
||||
/**
|
||||
|
||||
@@ -135,7 +135,8 @@ class SuperframeField
|
||||
/**
|
||||
* Serialize the entire superframe specification field.
|
||||
* \param i an iterator which points to where the superframe specification field should be
|
||||
* written. \return an iterator.
|
||||
* written.
|
||||
* \return an iterator.
|
||||
*/
|
||||
Buffer::Iterator Serialize(Buffer::Iterator i) const;
|
||||
/**
|
||||
@@ -177,7 +178,7 @@ class GtsFields
|
||||
GtsFields();
|
||||
/**
|
||||
* Get the GTS Specification Field from the GTS Fields
|
||||
* \return The GTS Spcecification Field
|
||||
* \return The GTS Specification Field
|
||||
*/
|
||||
uint8_t GetGtsSpecField() const;
|
||||
/**
|
||||
@@ -196,8 +197,8 @@ class GtsFields
|
||||
*/
|
||||
void SetGtsDirectionField(uint8_t gtsDir);
|
||||
/**
|
||||
* Get the GTS Specification Permit. TRUE if coordinator is accepting GTS requests.
|
||||
* \return True if the coordinator is accepting GTS request.
|
||||
* Get the GTS Specification Permit. TRUE if coordinator is accepting GTS requests.
|
||||
* \return True if the coordinator is accepting GTS request.
|
||||
*/
|
||||
bool GetGtsPermit() const;
|
||||
/**
|
||||
@@ -208,7 +209,8 @@ class GtsFields
|
||||
/**
|
||||
* Serialize the entire GTS fields.
|
||||
* \param i an iterator which points to where the superframe specification field should be
|
||||
* written. \return an iterator.
|
||||
* written.
|
||||
* \return an iterator.
|
||||
*/
|
||||
Buffer::Iterator Serialize(Buffer::Iterator i) const;
|
||||
/**
|
||||
@@ -292,7 +294,8 @@ class PendingAddrFields
|
||||
uint8_t GetNumShortAddr() const;
|
||||
/**
|
||||
* Get the number of Extended Pending Address indicated in the Pending Address Specification
|
||||
* Field. \return The number Short Pending Address.
|
||||
* Field.
|
||||
* \return The number Short Pending Address.
|
||||
*/
|
||||
uint8_t GetNumExtAddr() const;
|
||||
|
||||
@@ -359,8 +362,9 @@ class CapabilityField
|
||||
uint32_t GetSerializedSize() const;
|
||||
/**
|
||||
* Serialize the entire Capability Information Field.
|
||||
* \param i an iterator which points to where the Capability information field should be
|
||||
* written. \return an iterator.
|
||||
* \param i an iterator which points to where the Capability information field
|
||||
* should be written.
|
||||
* \return an iterator.
|
||||
*/
|
||||
Buffer::Iterator Serialize(Buffer::Iterator i) const;
|
||||
/**
|
||||
@@ -371,8 +375,9 @@ class CapabilityField
|
||||
Buffer::Iterator Deserialize(Buffer::Iterator i);
|
||||
/**
|
||||
* True if the device type is a Full Functional Device (FFD) false if is a Reduced Functional
|
||||
* Device (RFD). \return True if the device type is a Full Functional Device (FFD) false if is a
|
||||
* Reduced Functional Device (RFD).
|
||||
* Device (RFD).
|
||||
* \return True if the device type is a Full Functional Device (FFD) false if is a Reduced
|
||||
* Functional Device (RFD).
|
||||
*/
|
||||
bool IsDeviceTypeFfd() const;
|
||||
/**
|
||||
@@ -388,14 +393,16 @@ class CapabilityField
|
||||
bool IsReceiverOnWhenIdle() const;
|
||||
/**
|
||||
* True if the device is capable of sending and receiving cryptographically protected MAC
|
||||
* frames. \return True if the device is capable of sending and receiving cryptographically
|
||||
* protected MAC frames.
|
||||
* frames.
|
||||
* \return True if the device is capable of sending and receiving cryptographically protected
|
||||
* MAC frames.
|
||||
*/
|
||||
bool IsSecurityCapability() const;
|
||||
/**
|
||||
* True if the device wishes the coordinator to allocate a short address as result of the
|
||||
* association procedure. \return True if the device wishes the coordinator to allocate a short
|
||||
* address as result of the association procedure.
|
||||
* association procedure.
|
||||
* \return True if the device wishes the coordinator to allocate a short address as result of
|
||||
* the association procedure.
|
||||
*/
|
||||
bool IsShortAddrAllocOn() const;
|
||||
/**
|
||||
|
||||
@@ -155,7 +155,8 @@ class CommandPayloadHeader : public Header
|
||||
void SetCommandFrameType(MacCommand macCmd);
|
||||
/**
|
||||
* Set the Capability Information Field to the command payload header (Association Request
|
||||
* Command). \param cap The capability Information field
|
||||
* Command).
|
||||
* \param cap The capability Information field
|
||||
*/
|
||||
void SetCapabilityField(CapabilityField cap);
|
||||
/**
|
||||
@@ -185,14 +186,15 @@ class CommandPayloadHeader : public Header
|
||||
MacCommand GetCommandFrameType() const;
|
||||
/**
|
||||
* Get the Capability Information Field from the command payload header. (Association Request
|
||||
* Command) \return The Capability Information Field
|
||||
* Command)
|
||||
* \return The Capability Information Field
|
||||
*/
|
||||
CapabilityField GetCapabilityField() const;
|
||||
|
||||
private:
|
||||
MacCommand m_cmdFrameId; //!< The command Frame Identifier
|
||||
CapabilityField
|
||||
m_capabilityInfo; //!< Capability Information Field (Association Request Command)
|
||||
m_capabilityInfo; //!< Capability Information Field (Association Request Command)
|
||||
Mac16Address m_shortAddr; //!< Contains the short address assigned by the coordinator
|
||||
//!< (Association Response Command) See IEEE 802.15.4-2011 5.3.2.2.
|
||||
AssocStatus m_assocStatus; //!< Association Status (Association Response Command)
|
||||
|
||||
@@ -819,84 +819,84 @@ class LrWpanMac : public Object
|
||||
uint16_t GetPanId() const;
|
||||
|
||||
/**
|
||||
* Get the coordinator short address currently associated to this device.
|
||||
* Get the coordinator short address currently associated to this device.
|
||||
*
|
||||
* \return The coordinator short address
|
||||
* \return The coordinator short address
|
||||
*/
|
||||
Mac16Address GetCoordShortAddress() const;
|
||||
|
||||
/**
|
||||
* Get the coordinator extended address currently associated to this device.
|
||||
* Get the coordinator extended address currently associated to this device.
|
||||
*
|
||||
* \return The coordinator extended address
|
||||
* \return The coordinator extended address
|
||||
*/
|
||||
Mac64Address GetCoordExtAddress() const;
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006, section 7.1.1.1
|
||||
* MCPS-DATA.request
|
||||
* Request to transfer a MSDU.
|
||||
* IEEE 802.15.4-2006, section 7.1.1.1
|
||||
* MCPS-DATA.request
|
||||
* Request to transfer a MSDU.
|
||||
*
|
||||
* \param params the request parameters
|
||||
* \param p the packet to be transmitted
|
||||
* \param params the request parameters
|
||||
* \param p the packet to be transmitted
|
||||
*/
|
||||
void McpsDataRequest(McpsDataRequestParams params, Ptr<Packet> p);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006, section 7.1.14.1
|
||||
* MLME-START.request
|
||||
* Request to allow a PAN coordinator to initiate
|
||||
* a new PAN or beginning a new superframe configuration.
|
||||
* IEEE 802.15.4-2006, section 7.1.14.1
|
||||
* MLME-START.request
|
||||
* Request to allow a PAN coordinator to initiate
|
||||
* a new PAN or beginning a new superframe configuration.
|
||||
*
|
||||
* \param params the request parameters
|
||||
* \param params the request parameters
|
||||
*/
|
||||
void MlmeStartRequest(MlmeStartRequestParams params);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2011, section 6.2.10.1
|
||||
* MLME-SCAN.request
|
||||
* Request primitive used to initiate a channel scan over a given list of channels.
|
||||
* IEEE 802.15.4-2011, section 6.2.10.1
|
||||
* MLME-SCAN.request
|
||||
* Request primitive used to initiate a channel scan over a given list of channels.
|
||||
*
|
||||
* \param params the scan request parameters
|
||||
* \param params the scan request parameters
|
||||
*/
|
||||
void MlmeScanRequest(MlmeScanRequestParams params);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2011, section 6.2.2.1
|
||||
* MLME-ASSOCIATE.request
|
||||
* Request primitive used by a device to request an association with
|
||||
* a coordinator.
|
||||
* IEEE 802.15.4-2011, section 6.2.2.1
|
||||
* MLME-ASSOCIATE.request
|
||||
* Request primitive used by a device to request an association with
|
||||
* a coordinator.
|
||||
*
|
||||
* \param params the request parameters
|
||||
* \param params the request parameters
|
||||
*/
|
||||
void MlmeAssociateRequest(MlmeAssociateRequestParams params);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2011, section 6.2.2.3
|
||||
* MLME-ASSOCIATE.response
|
||||
* Primitive used to initiate a response to an MLME-ASSOCIATE.indication
|
||||
* primitive.
|
||||
* IEEE 802.15.4-2011, section 6.2.2.3
|
||||
* MLME-ASSOCIATE.response
|
||||
* Primitive used to initiate a response to an MLME-ASSOCIATE.indication
|
||||
* primitive.
|
||||
*
|
||||
* \param params the associate response parameters
|
||||
* \param params the associate response parameters
|
||||
*/
|
||||
void MlmeAssociateResponse(MlmeAssociateResponseParams params);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2011, section 6.2.13.1
|
||||
* MLME-SYNC.request
|
||||
* Request to synchronize with the coordinator by acquiring and,
|
||||
* if specified, tracking beacons.
|
||||
* IEEE 802.15.4-2011, section 6.2.13.1
|
||||
* MLME-SYNC.request
|
||||
* Request to synchronize with the coordinator by acquiring and,
|
||||
* if specified, tracking beacons.
|
||||
*
|
||||
* \param params the request parameters
|
||||
* \param params the request parameters
|
||||
*/
|
||||
void MlmeSyncRequest(MlmeSyncRequestParams params);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2011, section 6.2.14.2
|
||||
* MLME-POLL.request
|
||||
* Prompts the device to request data from the coordinator.
|
||||
* IEEE 802.15.4-2011, section 6.2.14.2
|
||||
* MLME-POLL.request
|
||||
* Prompts the device to request data from the coordinator.
|
||||
*
|
||||
* \param params the request parameters
|
||||
* \param params the request parameters
|
||||
*/
|
||||
void MlmePollRequest(MlmePollRequestParams params);
|
||||
|
||||
@@ -1014,64 +1014,64 @@ class LrWpanMac : public Object
|
||||
// interfaces between MAC and PHY
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.1.3
|
||||
* PD-DATA.indication
|
||||
* Indicates the transfer of an MPDU from PHY to MAC (receiving)
|
||||
* @param psduLength number of bytes in the PSDU
|
||||
* @param p the packet to be transmitted
|
||||
* @param lqi Link quality (LQI) value measured during reception of the PPDU
|
||||
* IEEE 802.15.4-2006 section 6.2.1.3
|
||||
* PD-DATA.indication
|
||||
* Indicates the transfer of an MPDU from PHY to MAC (receiving)
|
||||
* \param psduLength number of bytes in the PSDU
|
||||
* \param p the packet to be transmitted
|
||||
* \param lqi Link quality (LQI) value measured during reception of the PPDU
|
||||
*/
|
||||
void PdDataIndication(uint32_t psduLength, Ptr<Packet> p, uint8_t lqi);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.1.2
|
||||
* Confirm the end of transmission of an MPDU to MAC
|
||||
* @param status to report to MAC
|
||||
* PHY PD-DATA.confirm status
|
||||
* IEEE 802.15.4-2006 section 6.2.1.2
|
||||
* Confirm the end of transmission of an MPDU to MAC
|
||||
* \param status to report to MAC
|
||||
* PHY PD-DATA.confirm status
|
||||
*/
|
||||
void PdDataConfirm(LrWpanPhyEnumeration status);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.2.2
|
||||
* PLME-CCA.confirm status
|
||||
* @param status TRX_OFF, BUSY or IDLE
|
||||
* IEEE 802.15.4-2006 section 6.2.2.2
|
||||
* PLME-CCA.confirm status
|
||||
* \param status TRX_OFF, BUSY or IDLE
|
||||
*/
|
||||
void PlmeCcaConfirm(LrWpanPhyEnumeration status);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.2.4
|
||||
* PLME-ED.confirm status and energy level
|
||||
* @param status SUCCESS, TRX_OFF or TX_ON
|
||||
* @param energyLevel 0x00-0xff ED level for the channel
|
||||
* IEEE 802.15.4-2006 section 6.2.2.4
|
||||
* PLME-ED.confirm status and energy level
|
||||
* \param status SUCCESS, TRX_OFF or TX_ON
|
||||
* \param energyLevel 0x00-0xff ED level for the channel
|
||||
*/
|
||||
void PlmeEdConfirm(LrWpanPhyEnumeration status, uint8_t energyLevel);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.2.6
|
||||
* PLME-GET.confirm
|
||||
* Get attributes per definition from Table 23 in section 6.4.2
|
||||
* @param status SUCCESS or UNSUPPORTED_ATTRIBUTE
|
||||
* @param id the attributed identifier
|
||||
* @param attribute the attribute value
|
||||
* IEEE 802.15.4-2006 section 6.2.2.6
|
||||
* PLME-GET.confirm
|
||||
* Get attributes per definition from Table 23 in section 6.4.2
|
||||
* \param status SUCCESS or UNSUPPORTED_ATTRIBUTE
|
||||
* \param id the attributed identifier
|
||||
* \param attribute the attribute value
|
||||
*/
|
||||
void PlmeGetAttributeConfirm(LrWpanPhyEnumeration status,
|
||||
LrWpanPibAttributeIdentifier id,
|
||||
LrWpanPhyPibAttributes* attribute);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.2.8
|
||||
* PLME-SET-TRX-STATE.confirm
|
||||
* Set PHY state
|
||||
* @param status in RX_ON,TRX_OFF,FORCE_TRX_OFF,TX_ON
|
||||
* IEEE 802.15.4-2006 section 6.2.2.8
|
||||
* PLME-SET-TRX-STATE.confirm
|
||||
* Set PHY state
|
||||
* \param status in RX_ON,TRX_OFF,FORCE_TRX_OFF,TX_ON
|
||||
*/
|
||||
void PlmeSetTRXStateConfirm(LrWpanPhyEnumeration status);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.2.10
|
||||
* PLME-SET.confirm
|
||||
* Set attributes per definition from Table 23 in section 6.4.2
|
||||
* @param status SUCCESS, UNSUPPORTED_ATTRIBUTE, INVALID_PARAMETER, or READ_ONLY
|
||||
* @param id the attributed identifier
|
||||
* IEEE 802.15.4-2006 section 6.2.2.10
|
||||
* PLME-SET.confirm
|
||||
* Set attributes per definition from Table 23 in section 6.4.2
|
||||
* \param status SUCCESS, UNSUPPORTED_ATTRIBUTE, INVALID_PARAMETER, or READ_ONLY
|
||||
* \param id the attributed identifier
|
||||
*/
|
||||
void PlmeSetAttributeConfirm(LrWpanPhyEnumeration status, LrWpanPibAttributeIdentifier id);
|
||||
|
||||
@@ -1626,7 +1626,8 @@ class LrWpanMac : public Object
|
||||
/**
|
||||
* Extracts a packet from pending transactions list (Indirect transmissions).
|
||||
* \param dst The extended address used an index to obtain an element from the pending
|
||||
* transaction list. \param entry The dequeued element from the pending transaction list.
|
||||
* transaction list.
|
||||
* \param entry The dequeued element from the pending transaction list.
|
||||
* \return The status of the dequeue
|
||||
*/
|
||||
bool DequeueInd(Mac64Address dst, Ptr<IndTxQueueElement> entry);
|
||||
|
||||
@@ -174,9 +174,9 @@ typedef struct
|
||||
*
|
||||
* This method implements the PD SAP: PdDataIndication
|
||||
*
|
||||
* @param psduLength number of bytes in the PSDU
|
||||
* @param p the packet to be transmitted
|
||||
* @param lqi Link quality (LQI) value measured during reception of the PPDU
|
||||
* \param psduLength number of bytes in the PSDU
|
||||
* \param p the packet to be transmitted
|
||||
* \param lqi Link quality (LQI) value measured during reception of the PPDU
|
||||
*/
|
||||
typedef Callback<void, uint32_t, Ptr<Packet>, uint8_t> PdDataIndicationCallback;
|
||||
|
||||
@@ -336,148 +336,148 @@ class LrWpanPhy : public SpectrumPhy
|
||||
void StartRx(Ptr<SpectrumSignalParameters> params) override;
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.1.1
|
||||
* PD-DATA.request
|
||||
* Request to transfer MPDU from MAC (transmitting)
|
||||
* @param psduLength number of bytes in the PSDU
|
||||
* @param p the packet to be transmitted
|
||||
* IEEE 802.15.4-2006 section 6.2.1.1
|
||||
* PD-DATA.request
|
||||
* Request to transfer MPDU from MAC (transmitting)
|
||||
* \param psduLength number of bytes in the PSDU
|
||||
* \param p the packet to be transmitted
|
||||
*/
|
||||
void PdDataRequest(const uint32_t psduLength, Ptr<Packet> p);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.2.1
|
||||
* PLME-CCA.request
|
||||
* Perform a CCA per section 6.9.9
|
||||
* IEEE 802.15.4-2006 section 6.2.2.1
|
||||
* PLME-CCA.request
|
||||
* Perform a CCA per section 6.9.9
|
||||
*/
|
||||
void PlmeCcaRequest();
|
||||
|
||||
/**
|
||||
* Cancel an ongoing CCA request.
|
||||
* Cancel an ongoing CCA request.
|
||||
*/
|
||||
void CcaCancel();
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.2.3
|
||||
* PLME-ED.request
|
||||
* Perform an ED per section 6.9.7
|
||||
* IEEE 802.15.4-2006 section 6.2.2.3
|
||||
* PLME-ED.request
|
||||
* Perform an ED per section 6.9.7
|
||||
*/
|
||||
void PlmeEdRequest();
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.2.5
|
||||
* PLME-GET.request
|
||||
* Get attributes per definition from Table 23 in section 6.4.2
|
||||
* @param id the attributed identifier
|
||||
* IEEE 802.15.4-2006 section 6.2.2.5
|
||||
* PLME-GET.request
|
||||
* Get attributes per definition from Table 23 in section 6.4.2
|
||||
* \param id the attributed identifier
|
||||
*/
|
||||
void PlmeGetAttributeRequest(LrWpanPibAttributeIdentifier id);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.2.7
|
||||
* PLME-SET-TRX-STATE.request
|
||||
* Set PHY state
|
||||
* @param state in RX_ON,TRX_OFF,FORCE_TRX_OFF,TX_ON
|
||||
* IEEE 802.15.4-2006 section 6.2.2.7
|
||||
* PLME-SET-TRX-STATE.request
|
||||
* Set PHY state
|
||||
* \param state in RX_ON,TRX_OFF,FORCE_TRX_OFF,TX_ON
|
||||
*/
|
||||
void PlmeSetTRXStateRequest(LrWpanPhyEnumeration state);
|
||||
|
||||
/**
|
||||
* IEEE 802.15.4-2006 section 6.2.2.9
|
||||
* PLME-SET.request
|
||||
* Set attributes per definition from Table 23 in section 6.4.2
|
||||
* @param id the attributed identifier
|
||||
* @param attribute the attribute value
|
||||
* IEEE 802.15.4-2006 section 6.2.2.9
|
||||
* PLME-SET.request
|
||||
* Set attributes per definition from Table 23 in section 6.4.2
|
||||
* \param id the attributed identifier
|
||||
* \param attribute the attribute value
|
||||
*/
|
||||
void PlmeSetAttributeRequest(LrWpanPibAttributeIdentifier id,
|
||||
LrWpanPhyPibAttributes* attribute);
|
||||
|
||||
/**
|
||||
* set the callback for the end of a RX, as part of the
|
||||
* interconnections betweenthe PHY and the MAC. The callback
|
||||
* interconnections between the PHY and the MAC. The callback
|
||||
* implements PD Indication SAP.
|
||||
* @param c the callback
|
||||
* \param c the callback
|
||||
*/
|
||||
void SetPdDataIndicationCallback(PdDataIndicationCallback c);
|
||||
|
||||
/**
|
||||
* set the callback for the end of a TX, as part of the
|
||||
* interconnections betweenthe PHY and the MAC. The callback
|
||||
* interconnections between the PHY and the MAC. The callback
|
||||
* implements PD SAP.
|
||||
* @param c the callback
|
||||
* \param c the callback
|
||||
*/
|
||||
void SetPdDataConfirmCallback(PdDataConfirmCallback c);
|
||||
|
||||
/**
|
||||
* set the callback for the end of a CCA, as part of the
|
||||
* interconnections betweenthe PHY and the MAC. The callback
|
||||
* interconnections between the PHY and the MAC. The callback
|
||||
* implement PLME CCA confirm SAP
|
||||
* @param c the callback
|
||||
* \param c the callback
|
||||
*/
|
||||
void SetPlmeCcaConfirmCallback(PlmeCcaConfirmCallback c);
|
||||
|
||||
/**
|
||||
* set the callback for the end of an ED, as part of the
|
||||
* interconnections betweenthe PHY and the MAC. The callback
|
||||
* interconnections between the PHY and the MAC. The callback
|
||||
* implement PLME ED confirm SAP
|
||||
* @param c the callback
|
||||
* \param c the callback
|
||||
*/
|
||||
void SetPlmeEdConfirmCallback(PlmeEdConfirmCallback c);
|
||||
|
||||
/**
|
||||
* set the callback for the end of an GetAttribute, as part of the
|
||||
* interconnections betweenthe PHY and the MAC. The callback
|
||||
* interconnections between the PHY and the MAC. The callback
|
||||
* implement PLME GetAttribute confirm SAP
|
||||
* @param c the callback
|
||||
* \param c the callback
|
||||
*/
|
||||
void SetPlmeGetAttributeConfirmCallback(PlmeGetAttributeConfirmCallback c);
|
||||
|
||||
/**
|
||||
* set the callback for the end of an SetTRXState, as part of the
|
||||
* interconnections betweenthe PHY and the MAC. The callback
|
||||
* interconnections between the PHY and the MAC. The callback
|
||||
* implement PLME SetTRXState confirm SAP
|
||||
* @param c the callback
|
||||
* \param c the callback
|
||||
*/
|
||||
void SetPlmeSetTRXStateConfirmCallback(PlmeSetTRXStateConfirmCallback c);
|
||||
|
||||
/**
|
||||
* set the callback for the end of an SetAttribute, as part of the
|
||||
* interconnections betweenthe PHY and the MAC. The callback
|
||||
* interconnections between the PHY and the MAC. The callback
|
||||
* implement PLME SetAttribute confirm SAP
|
||||
* @param c the callback
|
||||
* \param c the callback
|
||||
*/
|
||||
void SetPlmeSetAttributeConfirmCallback(PlmeSetAttributeConfirmCallback c);
|
||||
|
||||
/**
|
||||
* Get The current channel page number in use in this PHY from the PIB attributes.
|
||||
*
|
||||
* @return The current page number
|
||||
* \return The current page number
|
||||
*/
|
||||
uint8_t GetCurrentPage() const;
|
||||
|
||||
/**
|
||||
* Get The current channel number in use in this PHY from the PIB attributes.
|
||||
*
|
||||
* @return The current channel number
|
||||
* \return The current channel number
|
||||
*/
|
||||
uint8_t GetCurrentChannelNum() const;
|
||||
|
||||
/**
|
||||
* implement PLME SetAttribute confirm SAP
|
||||
* bit rate is in bit/s. Symbol rate is in symbol/s.
|
||||
* @param isData is true for data rate or false for symbol rate
|
||||
* @return the rate value of this PHY
|
||||
* \param isData is true for data rate or false for symbol rate
|
||||
* \return the rate value of this PHY
|
||||
*/
|
||||
double GetDataOrSymbolRate(bool isData);
|
||||
|
||||
/**
|
||||
* set the error model to use
|
||||
*
|
||||
* @param e pointer to LrWpanErrorModel to use
|
||||
* \param e pointer to LrWpanErrorModel to use
|
||||
*/
|
||||
void SetErrorModel(Ptr<LrWpanErrorModel> e);
|
||||
|
||||
/**
|
||||
* get the error model in use
|
||||
*
|
||||
* @return pointer to LrWpanErrorModel in use
|
||||
* \return pointer to LrWpanErrorModel in use
|
||||
*/
|
||||
Ptr<LrWpanErrorModel> GetErrorModel() const;
|
||||
|
||||
|
||||
@@ -81,7 +81,9 @@ class FemtocellBlockAllocator
|
||||
private:
|
||||
/**
|
||||
* Function that checks if the box area is overlapping with some of previously created building
|
||||
* blocks. \param box the area to check \returns true if there is an overlap
|
||||
* blocks.
|
||||
* \param box the area to check
|
||||
* \returns true if there is an overlap
|
||||
*/
|
||||
bool OverlapsWithAnyPrevious(Box box);
|
||||
Box m_area; ///< Area
|
||||
|
||||
@@ -61,8 +61,8 @@ class CcHelper : public Object
|
||||
~CcHelper() override;
|
||||
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
void DoDispose() override;
|
||||
@@ -180,8 +180,9 @@ class CcHelper : public Object
|
||||
* \param dlBandwidth downlink bandwidth for the current CC
|
||||
* \param ulEarfcn uplink EARFCN - not control on the validity at this point
|
||||
* \param dlEarfcn downlink EARFCN - not control on the validity at this point
|
||||
* \param isPrimary identify if this is the Primary Component Carrier (PCC) - only one PCC is
|
||||
* allowed \return the component carrier
|
||||
* \param isPrimary identify if this is the Primary Component Carrier (PCC) - only one
|
||||
* PCC is allowed
|
||||
* \return the component carrier
|
||||
*/
|
||||
ComponentCarrier CreateSingleCc(uint16_t ulBandwidth,
|
||||
uint16_t dlBandwidth,
|
||||
|
||||
@@ -53,8 +53,8 @@ class EmuEpcHelper : public NoBackhaulEpcHelper
|
||||
|
||||
// inherited from Object
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
TypeId GetInstanceTypeId() const override;
|
||||
|
||||
@@ -61,8 +61,8 @@ class EpcHelper : public Object
|
||||
|
||||
// inherited from Object
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
void DoDispose() override;
|
||||
|
||||
@@ -106,8 +106,8 @@ class LteHelper : public Object
|
||||
~LteHelper() override;
|
||||
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
void DoDispose() override;
|
||||
@@ -469,12 +469,13 @@ class LteHelper : public Object
|
||||
uint8_t ActivateDedicatedEpsBearer(Ptr<NetDevice> ueDevice, EpsBearer bearer, Ptr<EpcTft> tft);
|
||||
|
||||
/**
|
||||
* \brief Manually trigger dedicated bearer de-activation at specific simulation time
|
||||
* \param ueDevice the UE on which dedicated bearer to be de-activated must be of the type
|
||||
* LteUeNetDevice \param enbDevice eNB, must be of the type LteEnbNetDevice \param bearerId
|
||||
* Bearer Identity which is to be de-activated
|
||||
* \brief Manually trigger dedicated bearer de-activation at specific simulation time
|
||||
* \param ueDevice the UE on which dedicated bearer to be de-activated must be of the type
|
||||
* LteUeNetDevice
|
||||
* \param enbDevice eNB, must be of the type LteEnbNetDevice
|
||||
* \param bearerId Bearer Identity which is to be de-activated
|
||||
*
|
||||
* \warning Requires the use of EPC mode. See SetEpcHelper() method.
|
||||
* \warning Requires the use of EPC mode. See SetEpcHelper() method.
|
||||
*/
|
||||
|
||||
void DeActivateDedicatedEpsBearer(Ptr<NetDevice> ueDevice,
|
||||
@@ -725,13 +726,13 @@ class LteHelper : public Object
|
||||
uint16_t targetCellId);
|
||||
|
||||
/**
|
||||
* \brief The actual function to trigger a manual bearer de-activation
|
||||
* \param ueDevice the UE on which bearer to be de-activated must be of the type LteUeNetDevice
|
||||
* \param enbDevice eNB, must be of the type LteEnbNetDevice
|
||||
* \param bearerId Bearer Identity which is to be de-activated
|
||||
* \brief The actual function to trigger a manual bearer de-activation
|
||||
* \param ueDevice the UE on which bearer to be de-activated must be of the type LteUeNetDevice
|
||||
* \param enbDevice eNB, must be of the type LteEnbNetDevice
|
||||
* \param bearerId Bearer Identity which is to be de-activated
|
||||
*
|
||||
* This method is normally scheduled by DeActivateDedicatedEpsBearer() to run at a specific
|
||||
* time when a manual bearer de-activation is desired by the simulation user.
|
||||
* This method is normally scheduled by DeActivateDedicatedEpsBearer() to run at a specific
|
||||
* time when a manual bearer de-activation is desired by the simulation user.
|
||||
*/
|
||||
void DoDeActivateDedicatedEpsBearer(Ptr<NetDevice> ueDevice,
|
||||
Ptr<NetDevice> enbDevice,
|
||||
|
||||
@@ -40,8 +40,8 @@ class LteHexGridEnbTopologyHelper : public Object
|
||||
~LteHexGridEnbTopologyHelper() override;
|
||||
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
void DoDispose() override;
|
||||
|
||||
@@ -50,8 +50,8 @@ class LteStatsCalculator : public Object
|
||||
~LteStatsCalculator() override;
|
||||
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
|
||||
|
||||
@@ -61,8 +61,8 @@ class MacStatsCalculator : public LteStatsCalculator
|
||||
|
||||
// Inherited from ns3::Object
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
|
||||
|
||||
@@ -58,8 +58,8 @@ class NoBackhaulEpcHelper : public EpcHelper
|
||||
|
||||
// inherited from Object
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
TypeId GetInstanceTypeId() const override;
|
||||
|
||||
@@ -63,8 +63,8 @@ class PhyRxStatsCalculator : public LteStatsCalculator
|
||||
|
||||
// Inherited from ns3::Object
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
|
||||
|
||||
@@ -70,8 +70,8 @@ class PhyStatsCalculator : public LteStatsCalculator
|
||||
|
||||
// Inherited from ns3::Object
|
||||
/**
|
||||
* Register this type.
|
||||
* @return The object TypeId.
|
||||
* Register this type.
|
||||
* @return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
|
||||
|
||||
@@ -63,8 +63,8 @@ class PhyTxStatsCalculator : public LteStatsCalculator
|
||||
|
||||
// Inherited from ns3::Object
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
|
||||
|
||||
@@ -50,8 +50,8 @@ class PointToPointEpcHelper : public NoBackhaulEpcHelper
|
||||
|
||||
// inherited from Object
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
TypeId GetInstanceTypeId() const override;
|
||||
|
||||
@@ -88,8 +88,8 @@ class RadioBearerStatsCalculator : public LteStatsCalculator
|
||||
|
||||
// Inherited from ns3::Object
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
void DoDispose() override;
|
||||
|
||||
@@ -50,8 +50,8 @@ class RadioEnvironmentMapHelper : public Object
|
||||
// inherited from Object
|
||||
void DoDispose() override;
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
|
||||
|
||||
@@ -68,9 +68,11 @@ class EpcEnbApplication : public Application
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* \param lteSocket the socket to be used to send/receive IPv4 packets to/from the LTE radio
|
||||
* interface \param lteSocket6 the socket to be used to send/receive IPv6 packets to/from the
|
||||
* LTE radio interface \param cellId the identifier of the eNB
|
||||
* \param lteSocket the socket to be used to send/receive IPv4 packets to/from the
|
||||
* LTE radio interface
|
||||
* \param lteSocket6 the socket to be used to send/receive IPv6 packets to/from the
|
||||
* LTE radio interface
|
||||
* \param cellId the identifier of the eNB
|
||||
*/
|
||||
EpcEnbApplication(Ptr<Socket> lteSocket, Ptr<Socket> lteSocket6, uint16_t cellId);
|
||||
|
||||
@@ -78,8 +80,9 @@ class EpcEnbApplication : public Application
|
||||
* Add a S1-U interface to the eNB
|
||||
*
|
||||
* \param s1uSocket the socket to be used to send/receive packets to/from the S1-U interface
|
||||
* connected with the SGW \param enbS1uAddress the IPv4 address of the S1-U interface of this
|
||||
* eNB \param sgwS1uAddress the IPv4 address at which this eNB will be able to reach its SGW for
|
||||
* connected with the SGW
|
||||
* \param enbS1uAddress the IPv4 address of the S1-U interface of this eNB
|
||||
* \param sgwS1uAddress the IPv4 address at which this eNB will be able to reach its SGW for
|
||||
* S1-U communications
|
||||
*/
|
||||
void AddS1Interface(Ptr<Socket> s1uSocket,
|
||||
@@ -222,8 +225,10 @@ class EpcEnbApplication : public Application
|
||||
|
||||
/**
|
||||
* \brief This function accepts bearer id corresponding to a particular UE and schedules
|
||||
* indication of bearer release towards MME \param imsi maps to mmeUeS1Id \param rnti maps to
|
||||
* enbUeS1Id \param bearerId Bearer Identity which is to be de-activated
|
||||
* indication of bearer release towards MME
|
||||
* \param imsi maps to mmeUeS1Id
|
||||
* \param rnti maps to enbUeS1Id
|
||||
* \param bearerId Bearer Identity which is to be de-activated
|
||||
*/
|
||||
void DoReleaseIndication(uint64_t imsi, uint16_t rnti, uint8_t bearerId);
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@ namespace ns3
|
||||
* LteEnbRrc and the EpcEnbApplication. In particular, this class implements the
|
||||
* Provider part of the SAP, i.e., the methods exported by the
|
||||
* EpcEnbApplication and called by the LteEnbRrc.
|
||||
*
|
||||
*/
|
||||
class EpcEnbS1SapProvider
|
||||
{
|
||||
@@ -41,18 +40,18 @@ class EpcEnbS1SapProvider
|
||||
virtual ~EpcEnbS1SapProvider();
|
||||
|
||||
/**
|
||||
* Initial UE message.
|
||||
*
|
||||
*
|
||||
* \param imsi
|
||||
* \param rnti
|
||||
* \param imsi IMSI
|
||||
* \param rnti RNTI
|
||||
*/
|
||||
virtual void InitialUeMessage(uint64_t imsi, uint16_t rnti) = 0;
|
||||
|
||||
/**
|
||||
* \brief Triggers epc-enb-application to send ERAB Release Indication message towards MME
|
||||
* \param imsi the UE IMSI
|
||||
* \param rnti the UE RNTI
|
||||
* \param bearerId Bearer Identity which is to be de-activated
|
||||
* \brief Triggers epc-enb-application to send ERAB Release Indication message towards MME
|
||||
* \param imsi the UE IMSI
|
||||
* \param rnti the UE RNTI
|
||||
* \param bearerId Bearer Identity which is to be de-activated
|
||||
*/
|
||||
virtual void DoSendReleaseIndication(uint64_t imsi, uint16_t rnti, uint8_t bearerId) = 0;
|
||||
|
||||
@@ -80,11 +79,11 @@ class EpcEnbS1SapProvider
|
||||
virtual void PathSwitchRequest(PathSwitchRequestParameters params) = 0;
|
||||
|
||||
/**
|
||||
* release UE context at the S1 Application of the source eNB after
|
||||
* Release UE context at the S1 Application of the source eNB after
|
||||
* reception of the UE CONTEXT RELEASE X2 message from the target eNB
|
||||
* during X2-based handover
|
||||
*
|
||||
* \param rnti
|
||||
* \param rnti RNTI
|
||||
*/
|
||||
virtual void UeContextRelease(uint16_t rnti) = 0;
|
||||
};
|
||||
@@ -94,7 +93,6 @@ class EpcEnbS1SapProvider
|
||||
* LteEnbRrc and the EpcEnbApplication. In particular, this class implements the
|
||||
* User part of the SAP, i.e., the methods exported by the LteEnbRrc
|
||||
* and called by the EpcEnbApplication.
|
||||
*
|
||||
*/
|
||||
class EpcEnbS1SapUser
|
||||
{
|
||||
@@ -112,7 +110,7 @@ class EpcEnbS1SapUser
|
||||
/**
|
||||
* Initial context setup request
|
||||
*
|
||||
* \param params
|
||||
* \param params Parameters
|
||||
*/
|
||||
virtual void InitialContextSetupRequest(InitialContextSetupRequestParameters params) = 0;
|
||||
|
||||
@@ -130,9 +128,9 @@ class EpcEnbS1SapUser
|
||||
};
|
||||
|
||||
/**
|
||||
* request the setup of a DataRadioBearer
|
||||
* Request the setup of a DataRadioBearer
|
||||
*
|
||||
* \param params
|
||||
* \param params Parameters
|
||||
*/
|
||||
virtual void DataRadioBearerSetupRequest(DataRadioBearerSetupRequestParameters params) = 0;
|
||||
|
||||
@@ -143,9 +141,9 @@ class EpcEnbS1SapUser
|
||||
};
|
||||
|
||||
/**
|
||||
* request a path switch acknowledge
|
||||
* Request a path switch acknowledge
|
||||
*
|
||||
* \param params
|
||||
* \param params Parameters
|
||||
*/
|
||||
virtual void PathSwitchRequestAcknowledge(PathSwitchRequestAcknowledgeParameters params) = 0;
|
||||
};
|
||||
@@ -153,7 +151,6 @@ class EpcEnbS1SapUser
|
||||
/**
|
||||
* Template for the implementation of the EpcEnbS1SapProvider as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberEpcEnbS1SapProvider : public EpcEnbS1SapProvider
|
||||
@@ -222,7 +219,6 @@ MemberEpcEnbS1SapProvider<C>::UeContextRelease(uint16_t rnti)
|
||||
/**
|
||||
* Template for the implementation of the EpcEnbS1SapUser as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberEpcEnbS1SapUser : public EpcEnbS1SapUser
|
||||
|
||||
@@ -49,7 +49,6 @@ class EpcS11Sap
|
||||
|
||||
/**
|
||||
* Fully-qualified TEID, see 3GPP TS 29.274 section 8.22
|
||||
*
|
||||
*/
|
||||
struct Fteid
|
||||
{
|
||||
@@ -59,7 +58,6 @@ class EpcS11Sap
|
||||
|
||||
/**
|
||||
* TS 29.274 8.21 User Location Information (ULI)
|
||||
*
|
||||
*/
|
||||
struct Uli
|
||||
{
|
||||
@@ -78,7 +76,6 @@ class EpcS11SapMme : public EpcS11Sap
|
||||
public:
|
||||
/**
|
||||
* 3GPP TS 29.274 version 8.3.1 Release 8 section 8.28
|
||||
*
|
||||
*/
|
||||
struct BearerContextCreated
|
||||
{
|
||||
@@ -121,7 +118,8 @@ class EpcS11SapMme : public EpcS11Sap
|
||||
|
||||
/**
|
||||
* \brief As per 3GPP TS 29.274 Release 9 V9.3.0, a Delete Bearer Request message shall be sent
|
||||
* on the S11 interface by PGW to SGW and from SGW to MME \param msg the message
|
||||
* on the S11 interface by PGW to SGW and from SGW to MME
|
||||
* \param msg the message
|
||||
*/
|
||||
virtual void DeleteBearerRequest(DeleteBearerRequestMessage msg) = 0;
|
||||
|
||||
@@ -141,7 +139,7 @@ class EpcS11SapMme : public EpcS11Sap
|
||||
};
|
||||
|
||||
/**
|
||||
* send a Modify Bearer Response message
|
||||
* Send a Modify Bearer Response message
|
||||
*
|
||||
* \param msg the message
|
||||
*/
|
||||
@@ -178,7 +176,7 @@ class EpcS11SapSgw : public EpcS11Sap
|
||||
};
|
||||
|
||||
/**
|
||||
* send a Create Session Request message
|
||||
* Send a Create Session Request message
|
||||
*
|
||||
* \param msg the message
|
||||
*/
|
||||
@@ -201,7 +199,8 @@ class EpcS11SapSgw : public EpcS11Sap
|
||||
|
||||
/**
|
||||
* \brief As per 3GPP TS 29.274 Release 9 V9.3.0, a Delete Bearer Command message shall be sent
|
||||
* on the S11 interface by the MME to the SGW \param msg the DeleteBearerCommandMessage
|
||||
* on the S11 interface by the MME to the SGW
|
||||
* \param msg the DeleteBearerCommandMessage
|
||||
*/
|
||||
virtual void DeleteBearerCommand(DeleteBearerCommandMessage msg) = 0;
|
||||
|
||||
@@ -222,7 +221,8 @@ class EpcS11SapSgw : public EpcS11Sap
|
||||
|
||||
/**
|
||||
* \brief As per 3GPP TS 29.274 Release 9 V9.3.0, a Delete Bearer Command message shall be sent
|
||||
* on the S11 interface by the MME to the SGW \param msg the message
|
||||
* on the S11 interface by the MME to the SGW
|
||||
* \param msg the message
|
||||
*/
|
||||
virtual void DeleteBearerResponse(DeleteBearerResponseMessage msg) = 0;
|
||||
|
||||
@@ -235,7 +235,7 @@ class EpcS11SapSgw : public EpcS11Sap
|
||||
};
|
||||
|
||||
/**
|
||||
* send a Modify Bearer Request message
|
||||
* Send a Modify Bearer Request message
|
||||
*
|
||||
* \param msg the message
|
||||
*/
|
||||
@@ -245,7 +245,6 @@ class EpcS11SapSgw : public EpcS11Sap
|
||||
/**
|
||||
* Template for the implementation of the EpcS11SapMme as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberEpcS11SapMme : public EpcS11SapMme
|
||||
@@ -308,7 +307,6 @@ MemberEpcS11SapMme<C>::ModifyBearerResponse(ModifyBearerResponseMessage msg)
|
||||
/**
|
||||
* Template for the implementation of the EpcS11SapSgw as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberEpcS11SapSgw : public EpcS11SapSgw
|
||||
|
||||
@@ -52,12 +52,12 @@ class EpcS1apSapMme : public EpcS1apSap
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Initial UE message.
|
||||
*
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param stmsi in practice, the imsi
|
||||
* \param ecgi in practice, the cell Id
|
||||
*
|
||||
*/
|
||||
virtual void InitialUeMessage(uint64_t mmeUeS1Id,
|
||||
uint16_t enbUeS1Id,
|
||||
@@ -66,7 +66,6 @@ class EpcS1apSapMme : public EpcS1apSap
|
||||
|
||||
/**
|
||||
* E-RAB Release Indication Item IEs, 3GPP TS 36.413 version 9.8.0 section 9.1.3.7
|
||||
*
|
||||
*/
|
||||
struct ErabToBeReleasedIndication
|
||||
{
|
||||
@@ -81,7 +80,6 @@ class EpcS1apSapMme : public EpcS1apSap
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param erabToBeReleaseIndication List of bearers to be deactivated
|
||||
*
|
||||
*/
|
||||
virtual void ErabReleaseIndication(
|
||||
uint64_t mmeUeS1Id,
|
||||
@@ -90,7 +88,6 @@ class EpcS1apSapMme : public EpcS1apSap
|
||||
|
||||
/**
|
||||
* E-RAB Setup Item IEs, see 3GPP TS 36.413 9.1.4.2
|
||||
*
|
||||
*/
|
||||
struct ErabSetupItem
|
||||
{
|
||||
@@ -104,7 +101,7 @@ class EpcS1apSapMme : public EpcS1apSap
|
||||
*
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param erabSetupList
|
||||
* \param erabSetupList List of ERAB setup
|
||||
*
|
||||
*/
|
||||
virtual void InitialContextSetupResponse(uint64_t mmeUeS1Id,
|
||||
@@ -113,7 +110,6 @@ class EpcS1apSapMme : public EpcS1apSap
|
||||
|
||||
/**
|
||||
* E-RABs Switched in Downlink Item IE, see 3GPP TS 36.413 9.1.5.8
|
||||
*
|
||||
*/
|
||||
struct ErabSwitchedInDownlinkItem
|
||||
{
|
||||
@@ -127,8 +123,8 @@ class EpcS1apSapMme : public EpcS1apSap
|
||||
*
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param gci
|
||||
* \param erabToBeSwitchedInDownlinkList
|
||||
* \param gci GCI
|
||||
* \param erabToBeSwitchedInDownlinkList List of ERAB to be switched in downlink
|
||||
*/
|
||||
virtual void PathSwitchRequest(
|
||||
uint64_t enbUeS1Id,
|
||||
@@ -160,8 +156,7 @@ class EpcS1apSapEnb : public EpcS1apSap
|
||||
*
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param erabToBeSetupList
|
||||
*
|
||||
* \param erabToBeSetupList List of ERAB to be setup
|
||||
*/
|
||||
virtual void InitialContextSetupRequest(uint64_t mmeUeS1Id,
|
||||
uint16_t enbUeS1Id,
|
||||
@@ -169,7 +164,6 @@ class EpcS1apSapEnb : public EpcS1apSap
|
||||
|
||||
/**
|
||||
* E-RABs Switched in Uplink Item IE, see 3GPP TS 36.413 9.1.5.9
|
||||
*
|
||||
*/
|
||||
struct ErabSwitchedInUplinkItem
|
||||
{
|
||||
@@ -183,8 +177,8 @@ class EpcS1apSapEnb : public EpcS1apSap
|
||||
*
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param cgi
|
||||
* \param erabToBeSwitchedInUplinkList
|
||||
* \param cgi CGI
|
||||
* \param erabToBeSwitchedInUplinkList List of ERAB to be switched in uplink
|
||||
*/
|
||||
virtual void PathSwitchRequestAcknowledge(
|
||||
uint64_t enbUeS1Id,
|
||||
@@ -196,7 +190,6 @@ class EpcS1apSapEnb : public EpcS1apSap
|
||||
/**
|
||||
* Template for the implementation of the EpcS1apSapMme as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberEpcS1apSapMme : public EpcS1apSapMme
|
||||
@@ -215,7 +208,7 @@ class MemberEpcS1apSapMme : public EpcS1apSapMme
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param imsi the IMSI
|
||||
* \param ecgi
|
||||
* \param ecgi ECGI
|
||||
*/
|
||||
void InitialUeMessage(uint64_t mmeUeS1Id,
|
||||
uint16_t enbUeS1Id,
|
||||
@@ -225,7 +218,7 @@ class MemberEpcS1apSapMme : public EpcS1apSapMme
|
||||
* ERAB Release Indiation function
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param erabToBeReleaseIndication
|
||||
* \param erabToBeReleaseIndication List of ERAB to be release indication
|
||||
*/
|
||||
void ErabReleaseIndication(
|
||||
uint64_t mmeUeS1Id,
|
||||
@@ -236,7 +229,7 @@ class MemberEpcS1apSapMme : public EpcS1apSapMme
|
||||
* Initial context setup response
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param erabSetupList
|
||||
* \param erabSetupList List of ERAB setup
|
||||
*/
|
||||
void InitialContextSetupResponse(uint64_t mmeUeS1Id,
|
||||
uint16_t enbUeS1Id,
|
||||
@@ -245,8 +238,8 @@ class MemberEpcS1apSapMme : public EpcS1apSapMme
|
||||
* Path switch request
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param cgi
|
||||
* \param erabToBeSwitchedInDownlinkList
|
||||
* \param cgi CGI
|
||||
* \param erabToBeSwitchedInDownlinkList List of ERAB to be switched in downlink
|
||||
*/
|
||||
void PathSwitchRequest(
|
||||
uint64_t enbUeS1Id,
|
||||
@@ -313,7 +306,6 @@ MemberEpcS1apSapMme<C>::PathSwitchRequest(
|
||||
/**
|
||||
* Template for the implementation of the EpcS1apSapEnb as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberEpcS1apSapEnb : public EpcS1apSapEnb
|
||||
@@ -331,7 +323,7 @@ class MemberEpcS1apSapEnb : public EpcS1apSapEnb
|
||||
* Initial context setup request function
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param erabToBeSetupList
|
||||
* \param erabToBeSetupList List of ERAB to be setup
|
||||
*/
|
||||
void InitialContextSetupRequest(uint64_t mmeUeS1Id,
|
||||
uint16_t enbUeS1Id,
|
||||
@@ -340,8 +332,8 @@ class MemberEpcS1apSapEnb : public EpcS1apSapEnb
|
||||
* Path switch request acknowledge function
|
||||
* \param enbUeS1Id in practice, we use the RNTI
|
||||
* \param mmeUeS1Id in practice, we use the IMSI
|
||||
* \param cgi
|
||||
* \param erabToBeSwitchedInUplinkList
|
||||
* \param cgi CGI
|
||||
* \param erabToBeSwitchedInUplinkList List of ERAB to be switched in uplink
|
||||
*/
|
||||
void PathSwitchRequestAcknowledge(
|
||||
uint64_t enbUeS1Id,
|
||||
|
||||
@@ -339,7 +339,6 @@ class EpcX2Sap
|
||||
* \brief Parameters of the HANDOVER CANCEL message.
|
||||
*
|
||||
* See section 9.1.1.6 for further info about the parameters
|
||||
*
|
||||
*/
|
||||
struct HandoverCancelParams
|
||||
{
|
||||
@@ -402,7 +401,7 @@ class EpcX2SapProvider : public EpcX2Sap
|
||||
|
||||
/**
|
||||
* Send resource status update function
|
||||
* \param params the resource statue update paramweters
|
||||
* \param params the resource statue update parameters
|
||||
*/
|
||||
virtual void SendResourceStatusUpdate(ResourceStatusUpdateParams params) = 0;
|
||||
|
||||
@@ -510,13 +509,13 @@ class EpcX2SpecificEpcX2SapProvider : public EpcX2SapProvider
|
||||
|
||||
/**
|
||||
* Send handover request function
|
||||
* \param params the hadnover request parameters
|
||||
* \param params the handover request parameters
|
||||
*/
|
||||
void SendHandoverRequest(HandoverRequestParams params) override;
|
||||
|
||||
/**
|
||||
* Send handover request ack function
|
||||
* \param params the handover request ack pararameters
|
||||
* \param params the handover request ack parameters
|
||||
*/
|
||||
void SendHandoverRequestAck(HandoverRequestAckParams params) override;
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ class FfMacCschedSapProvider
|
||||
struct SiConfiguration_s m_siConfiguration; ///< SI configuration
|
||||
|
||||
uint16_t m_ulBandwidth; ///< UL bandwidth
|
||||
uint16_t m_dlBandwidth; ///< DL badnwidth
|
||||
uint16_t m_dlBandwidth; ///< DL bandwidth
|
||||
|
||||
enum NormalExtended_e m_ulCyclicPrefixLength; ///< UL cyclic prefix length
|
||||
enum NormalExtended_e m_dlCyclicPrefixLength; ///< DL cyclic prefix length
|
||||
@@ -113,7 +113,7 @@ class FfMacCschedSapProvider
|
||||
uint8_t m_deltaPucchShift; ///< delta pu cch shift
|
||||
uint8_t m_nrbCqi; ///< nrb CQI
|
||||
uint8_t m_ncsAn; ///< ncs an
|
||||
uint8_t m_srsSubframeConfiguration; ///< SRS subframe confguration
|
||||
uint8_t m_srsSubframeConfiguration; ///< SRS subframe configuration
|
||||
uint8_t m_srsSubframeOffset; ///< SRS subframe offset
|
||||
uint8_t m_srsBandwidthConfiguration; ///< SRS bandwidth configuration
|
||||
bool m_srsMaxUpPts; ///< SRS maximum up pts
|
||||
@@ -142,7 +142,7 @@ class FfMacCschedSapProvider
|
||||
struct DrxConfig_s m_drxConfig; ///< drx config
|
||||
uint16_t m_timeAlignmentTimer; ///< time alignment timer
|
||||
|
||||
/// MeasGapConfigPattern_e enumaration
|
||||
/// MeasGapConfigPattern_e enumeration
|
||||
enum MeasGapConfigPattern_e
|
||||
{
|
||||
MGP_GP1,
|
||||
@@ -151,7 +151,7 @@ class FfMacCschedSapProvider
|
||||
} m_measGapConfigPattern; ///< measGapConfigPattern
|
||||
|
||||
uint8_t m_measGapConfigSubframeOffset; ///< measure gap config subframe offset
|
||||
bool m_spsConfigPresent; ///< SPS configu present
|
||||
bool m_spsConfigPresent; ///< SPS config present
|
||||
struct SpsConfig_s m_spsConfig; ///< SPS config
|
||||
bool m_srConfigPresent; ///< SR config present
|
||||
struct SrConfig_s m_srConfig; ///< SR config
|
||||
|
||||
@@ -77,15 +77,19 @@ class LteAmc : public Object
|
||||
|
||||
/**
|
||||
* \brief Get the Transport Block Size for a selected MCS and number of PRB (table 7.1.7.2.1-1
|
||||
* of 36.213) \param mcs the MCS index \param nprb the no. of PRB \return the Transport Block
|
||||
* Size in bits
|
||||
* of 36.213)
|
||||
* \param mcs the MCS index
|
||||
* \param nprb the no. of PRB
|
||||
* \return the Transport Block Size in bits
|
||||
*/
|
||||
int GetDlTbSizeFromMcs(int mcs, int nprb);
|
||||
|
||||
/**
|
||||
* \brief Get the Transport Block Size for a selected MCS and number of PRB (table 8.6.1-1
|
||||
* of 36.213) \param mcs the MCS index \param nprb the no. of PRB \return the Transport Block
|
||||
* Size in bits
|
||||
* of 36.213)
|
||||
* \param mcs the MCS index
|
||||
* \param nprb the no. of PRB
|
||||
* \return the Transport Block Size in bits
|
||||
*/
|
||||
int GetUlTbSizeFromMcs(int mcs, int nprb);
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@ namespace ns3
|
||||
* In particular, this class implements the
|
||||
* Provider part of the SAP, i.e., the methods exported by the
|
||||
* LteUeRrc and called by the EpcUeNas.
|
||||
*
|
||||
*/
|
||||
class LteAsSapProvider
|
||||
{
|
||||
@@ -84,7 +83,6 @@ class LteAsSapProvider
|
||||
|
||||
/**
|
||||
* \brief Tell the RRC entity to release the connection.
|
||||
*
|
||||
*/
|
||||
virtual void Disconnect() = 0;
|
||||
};
|
||||
@@ -95,7 +93,6 @@ class LteAsSapProvider
|
||||
* In particular, this class implements the
|
||||
* User part of the SAP, i.e., the methods exported by the
|
||||
* EpcUeNas and called by the LteUeRrc.
|
||||
*
|
||||
*/
|
||||
class LteAsSapUser
|
||||
{
|
||||
@@ -104,19 +101,16 @@ class LteAsSapUser
|
||||
|
||||
/**
|
||||
* \brief Notify the NAS that RRC Connection Establishment was successful.
|
||||
*
|
||||
*/
|
||||
virtual void NotifyConnectionSuccessful() = 0;
|
||||
|
||||
/**
|
||||
* \brief Notify the NAS that RRC Connection Establishment failed.
|
||||
*
|
||||
*/
|
||||
virtual void NotifyConnectionFailed() = 0;
|
||||
|
||||
/**
|
||||
* Notify the NAS that RRC Connection was released
|
||||
*
|
||||
*/
|
||||
virtual void NotifyConnectionReleased() = 0;
|
||||
|
||||
@@ -131,7 +125,6 @@ class LteAsSapUser
|
||||
/**
|
||||
* Template for the implementation of the LteAsSapProvider as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberLteAsSapProvider : public LteAsSapProvider
|
||||
@@ -213,7 +206,6 @@ MemberLteAsSapProvider<C>::Disconnect()
|
||||
/**
|
||||
* Template for the implementation of the LteAsSapUser as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberLteAsSapUser : public LteAsSapUser
|
||||
|
||||
@@ -41,24 +41,28 @@ class LteEnbCphySapProvider
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* destructor
|
||||
* Destructor
|
||||
*/
|
||||
virtual ~LteEnbCphySapProvider();
|
||||
|
||||
/**
|
||||
*
|
||||
* Set cell ID
|
||||
*
|
||||
* \param cellId the Cell Identifier
|
||||
*/
|
||||
virtual void SetCellId(uint16_t cellId) = 0;
|
||||
|
||||
/**
|
||||
* Set bandwidth
|
||||
*
|
||||
* \param ulBandwidth the UL bandwidth in PRBs
|
||||
* \param dlBandwidth the DL bandwidth in PRBs
|
||||
*/
|
||||
virtual void SetBandwidth(uint16_t ulBandwidth, uint16_t dlBandwidth) = 0;
|
||||
|
||||
/**
|
||||
* Set EARFCN
|
||||
*
|
||||
* \param ulEarfcn the UL EARFCN
|
||||
* \param dlEarfcn the DL EARFCN
|
||||
*/
|
||||
@@ -87,30 +91,37 @@ class LteEnbCphySapProvider
|
||||
virtual void SetPa(uint16_t rnti, double pa) = 0;
|
||||
|
||||
/**
|
||||
* Set transmission mode
|
||||
*
|
||||
* \param rnti the RNTI of the user
|
||||
* \param txMode the transmissionMode of the user
|
||||
*/
|
||||
virtual void SetTransmissionMode(uint16_t rnti, uint8_t txMode) = 0;
|
||||
|
||||
/**
|
||||
* Set SRS configuration index
|
||||
*
|
||||
* \param rnti the RNTI of the user
|
||||
* \param srsCi the SRS Configuration Index of the user
|
||||
*/
|
||||
virtual void SetSrsConfigurationIndex(uint16_t rnti, uint16_t srsCi) = 0;
|
||||
|
||||
/**
|
||||
* Set master information block
|
||||
*
|
||||
* \param mib the Master Information Block to be sent on the BCH
|
||||
*/
|
||||
virtual void SetMasterInformationBlock(LteRrcSap::MasterInformationBlock mib) = 0;
|
||||
|
||||
/**
|
||||
* Set system information block type 1
|
||||
*
|
||||
* \param sib1 the System Information Block Type 1 to be sent on the BCH
|
||||
*/
|
||||
virtual void SetSystemInformationBlockType1(LteRrcSap::SystemInformationBlockType1 sib1) = 0;
|
||||
|
||||
/**
|
||||
* Get reference signal power
|
||||
*
|
||||
* \return Reference Signal Power for SIB2
|
||||
*/
|
||||
@@ -127,7 +138,7 @@ class LteEnbCphySapUser
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* destructor
|
||||
* Destructor
|
||||
*/
|
||||
virtual ~LteEnbCphySapUser();
|
||||
};
|
||||
@@ -135,7 +146,6 @@ class LteEnbCphySapUser
|
||||
/**
|
||||
* Template for the implementation of the LteEnbCphySapProvider as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberLteEnbCphySapProvider : public LteEnbCphySapProvider
|
||||
@@ -258,7 +268,6 @@ MemberLteEnbCphySapProvider<C>::GetReferenceSignalPower()
|
||||
/**
|
||||
* Template for the implementation of the LteEnbCphySapUser as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberLteEnbCphySapUser : public LteEnbCphySapUser
|
||||
|
||||
@@ -86,7 +86,8 @@ class LteEnbPhySapUser
|
||||
|
||||
/**
|
||||
* \brief Receive SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control
|
||||
* channel \param msg the Ideal Control Message to receive
|
||||
* channel
|
||||
* \param msg the Ideal Control Message to receive
|
||||
*/
|
||||
virtual void ReceiveLteControlMessage(Ptr<LteControlMessage> msg) = 0;
|
||||
|
||||
|
||||
@@ -1050,8 +1050,10 @@ class LteEnbRrc : public Object
|
||||
|
||||
/**
|
||||
* \brief This function acts as an interface to trigger Release indication messages towards eNB
|
||||
* and EPC \param imsi the IMSI \param rnti the RNTI \param bearerId Bearer Identity which is to
|
||||
* be de-activated
|
||||
* and EPC
|
||||
* \param imsi the IMSI
|
||||
* \param rnti the RNTI
|
||||
* \param bearerId Bearer Identity which is to be de-activated
|
||||
*/
|
||||
void DoSendReleaseDataRadioBearer(uint64_t imsi, uint16_t rnti, uint8_t bearerId);
|
||||
|
||||
@@ -1151,8 +1153,9 @@ class LteEnbRrc : public Object
|
||||
|
||||
/**
|
||||
* Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::CompleteSetupUe interface to
|
||||
* UeManager::CompleteSetupUe \param rnti the RNTI \param params the
|
||||
* LteEnbRrcSapProvider::CompleteSetupUeParameters
|
||||
* UeManager::CompleteSetupUe
|
||||
* \param rnti the RNTI
|
||||
* \param params the LteEnbRrcSapProvider::CompleteSetupUeParameters
|
||||
*/
|
||||
void DoCompleteSetupUe(uint16_t rnti, LteEnbRrcSapProvider::CompleteSetupUeParameters params);
|
||||
/**
|
||||
|
||||
@@ -78,8 +78,11 @@ class LteMiErrorModel
|
||||
public:
|
||||
/**
|
||||
* \brief find the mmib (mean mutual information per bit) for different modulations of the
|
||||
* specified TB \param sinr the perceived sinr values in the whole bandwidth in Watt \param map
|
||||
* the active RBs for the TB \param mcs the MCS of the TB \return the mmib
|
||||
* specified TB
|
||||
* \param sinr the perceived sinr values in the whole bandwidth in Watt
|
||||
* \param map the active RBs for the TB
|
||||
* \param mcs the MCS of the TB
|
||||
* \return the mmib
|
||||
*/
|
||||
static double Mib(const SpectrumValue& sinr, const std::vector<int>& map, uint8_t mcs);
|
||||
/**
|
||||
|
||||
@@ -53,7 +53,7 @@ class LtePdcpSapProvider
|
||||
* This method is to be called when upper RRC entity has a
|
||||
* RRC PDU ready to send
|
||||
*
|
||||
* \param params
|
||||
* \param params Parameters
|
||||
*/
|
||||
virtual void TransmitPdcpSdu(TransmitPdcpSduParameters params) = 0;
|
||||
};
|
||||
@@ -83,7 +83,7 @@ class LtePdcpSapUser
|
||||
/**
|
||||
* Called by the PDCP entity to notify the RRC entity of the reception of a new RRC PDU
|
||||
*
|
||||
* \param params
|
||||
* \param params Parameters
|
||||
*/
|
||||
virtual void ReceivePdcpSdu(ReceivePdcpSduParameters params) = 0;
|
||||
};
|
||||
|
||||
@@ -50,7 +50,6 @@ class Packet;
|
||||
* the ns-3 coding style. Due to the 1-to-1 mapping with TS 36.331,
|
||||
* detailed doxygen documentation is omitted, so please refer to
|
||||
* 36.331 for the meaning of these data structures / fields.
|
||||
*
|
||||
*/
|
||||
class LteRrcSap
|
||||
{
|
||||
@@ -736,7 +735,7 @@ class LteRrcSap
|
||||
struct CellIdentification
|
||||
{
|
||||
uint32_t physCellId; ///< physical cell ID
|
||||
uint32_t dlCarrierFreq; ///< ARFCN - valueEUTRA
|
||||
uint32_t dlCarrierFreq; ///< ARFCN - valueEUTRA
|
||||
};
|
||||
|
||||
/// AntennaInfoCommon structure
|
||||
@@ -1427,7 +1426,6 @@ MemberLteUeRrcSapUser<C>::SendIdealUeContextRemoveRequest(uint16_t rnti)
|
||||
/**
|
||||
* Template for the implementation of the LteUeRrcSapProvider as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberLteUeRrcSapProvider : public LteUeRrcSapProvider
|
||||
@@ -1670,7 +1668,6 @@ MemberLteEnbRrcSapUser<C>::DecodeHandoverCommand(Ptr<Packet> p)
|
||||
/**
|
||||
* Template for the implementation of the LteEnbRrcSapProvider as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberLteEnbRrcSapProvider : public LteEnbRrcSapProvider
|
||||
|
||||
@@ -62,7 +62,8 @@ class LteUeCcmRrcSapProvider
|
||||
*
|
||||
* \param lcId is the Logical Channel Id
|
||||
* \param lcConfig is a single structure contains logical Channel Id, Logical Channel config and
|
||||
* Component Carrier Id \param msu is the pointer to LteMacSapUser related to the Rlc instance
|
||||
* Component Carrier Id
|
||||
* \param msu is the pointer to LteMacSapUser related to the Rlc instance
|
||||
* \return vector of LcsConfig contains the lc configuration for each Mac
|
||||
* the size of the vector is equal to the number of component
|
||||
* carrier enabled.
|
||||
|
||||
@@ -41,13 +41,12 @@ class LteUeCphySapProvider
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* destructor
|
||||
* Destructor
|
||||
*/
|
||||
virtual ~LteUeCphySapProvider();
|
||||
|
||||
/**
|
||||
* reset the PHY
|
||||
*
|
||||
* Reset the PHY
|
||||
*/
|
||||
virtual void Reset() = 0;
|
||||
|
||||
@@ -176,7 +175,6 @@ class LteUeCphySapProvider
|
||||
* \brief Reset the PHY after radio link failure function
|
||||
* It resets the physical layer parameters of the
|
||||
* UE after RLF.
|
||||
*
|
||||
*/
|
||||
virtual void ResetPhyAfterRlf() = 0;
|
||||
|
||||
@@ -186,7 +184,6 @@ class LteUeCphySapProvider
|
||||
* Upon receiving N311 in-sync indications from the UE
|
||||
* PHY the UE RRC instructs the UE PHY to reset the
|
||||
* RLF parameters so, it can start RLF detection again.
|
||||
*
|
||||
*/
|
||||
virtual void ResetRlfParams() = 0;
|
||||
|
||||
@@ -196,7 +193,6 @@ class LteUeCphySapProvider
|
||||
* problems are detected at the UE and the recovery process is
|
||||
* started by checking if the radio frames are in-sync for N311
|
||||
* consecutive times.
|
||||
*
|
||||
*/
|
||||
virtual void StartInSnycDetection() = 0;
|
||||
|
||||
@@ -299,7 +295,6 @@ class LteUeCphySapUser
|
||||
/**
|
||||
* Template for the implementation of the LteUeCphySapProvider as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberLteUeCphySapProvider : public LteUeCphySapProvider
|
||||
@@ -477,7 +472,6 @@ MemberLteUeCphySapProvider<C>::SetImsi(uint64_t imsi)
|
||||
/**
|
||||
* Template for the implementation of the LteUeCphySapUser as a member
|
||||
* of an owner class of type C to which all methods are forwarded
|
||||
*
|
||||
*/
|
||||
template <class C>
|
||||
class MemberLteUeCphySapUser : public LteUeCphySapUser
|
||||
|
||||
@@ -504,34 +504,39 @@ class LteUeRrc : public Object
|
||||
void DoRecvSystemInformation(LteRrcSap::SystemInformation msg);
|
||||
/**
|
||||
* Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionSetup
|
||||
* interface. \param msg the LteRrcSap::RrcConnectionSetup
|
||||
* interface.
|
||||
* \param msg the LteRrcSap::RrcConnectionSetup
|
||||
*/
|
||||
void DoRecvRrcConnectionSetup(LteRrcSap::RrcConnectionSetup msg);
|
||||
/**
|
||||
* Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReconfiguration
|
||||
* interface. \param msg the LteRrcSap::RrcConnectionReconfiguration
|
||||
* interface.
|
||||
* \param msg the LteRrcSap::RrcConnectionReconfiguration
|
||||
*/
|
||||
void DoRecvRrcConnectionReconfiguration(LteRrcSap::RrcConnectionReconfiguration msg);
|
||||
/**
|
||||
* Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishment
|
||||
* interface. \param msg LteRrcSap::RrcConnectionReestablishment
|
||||
* interface.
|
||||
* \param msg LteRrcSap::RrcConnectionReestablishment
|
||||
*/
|
||||
void DoRecvRrcConnectionReestablishment(LteRrcSap::RrcConnectionReestablishment msg);
|
||||
/**
|
||||
* Part of the RRC protocol. Implement the
|
||||
* LteUeRrcSapProvider::RecvRrcConnectionReestablishmentReject interface. \param msg
|
||||
* LteRrcSap::RrcConnectionReestablishmentReject
|
||||
* LteUeRrcSapProvider::RecvRrcConnectionReestablishmentReject interface.
|
||||
* \param msg LteRrcSap::RrcConnectionReestablishmentReject
|
||||
*/
|
||||
void DoRecvRrcConnectionReestablishmentReject(
|
||||
LteRrcSap::RrcConnectionReestablishmentReject msg);
|
||||
/**
|
||||
* Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionRelease
|
||||
* interface. \param msg LteRrcSap::RrcConnectionRelease
|
||||
* interface.
|
||||
* \param msg LteRrcSap::RrcConnectionRelease
|
||||
*/
|
||||
void DoRecvRrcConnectionRelease(LteRrcSap::RrcConnectionRelease msg);
|
||||
/**
|
||||
* Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReject
|
||||
* interface. \param msg the LteRrcSap::RrcConnectionReject
|
||||
* interface.
|
||||
* \param msg the LteRrcSap::RrcConnectionReject
|
||||
*/
|
||||
void DoRecvRrcConnectionReject(LteRrcSap::RrcConnectionReject msg);
|
||||
|
||||
|
||||
@@ -152,7 +152,8 @@ class NoOpComponentCarrierManager : public LteEnbComponentCarrierManager
|
||||
virtual void DoUlReceiveSr(uint16_t rnti, uint8_t componentCarrierId);
|
||||
/**
|
||||
* \brief Function implements the function of the SAP interface of CCM instance which is used by
|
||||
* MAC to notify the PRB occupancy reported by scheduler. \param prbOccupancy the PRB occupancy
|
||||
* MAC to notify the PRB occupancy reported by scheduler.
|
||||
* \param prbOccupancy the PRB occupancy
|
||||
* \param componentCarrierId the component carrier ID
|
||||
*/
|
||||
virtual void DoNotifyPrbOccupancy(double prbOccupancy, uint8_t componentCarrierId);
|
||||
|
||||
@@ -78,10 +78,10 @@ class LteCellSelectionTestCase : public TestCase
|
||||
* \param relPosY relative position to the inter site distance in Y
|
||||
* \param isCsgMember if true, simulation is allowed access to CSG cell
|
||||
* \param checkPoint the time in the simulation when the UE is verified
|
||||
* \param expectedCellId1 ///< The cell ID that the UE is expected to attach to (0 means
|
||||
* that the UE should not attach to any cell). \param expectedCellId2 ///< An alternative
|
||||
* cell ID that the UE is expected to attach to (0 means that this no alternative cell is
|
||||
* expected).
|
||||
* \param expectedCellId1 the cell ID that the UE is expected to attach to
|
||||
* (0 means that the UE should not attach to any cell).
|
||||
* \param expectedCellId2 an alternative cell ID that the UE is expected to attach to
|
||||
* (0 means that this no alternative cell is expected).
|
||||
*/
|
||||
UeSetup_t(double relPosX,
|
||||
double relPosY,
|
||||
|
||||
@@ -172,9 +172,13 @@ class LteRadioLinkFailureTestCase : public TestCase
|
||||
|
||||
/**
|
||||
* \brief This callback function is executed when UE RRC receives an in-sync or out-of-sync
|
||||
* indication \param context the context string \param imsi the IMSI \param rnti the RNTI \param
|
||||
* cellId the cell ID \param type in-sync or out-of-sync indication \param count the number of
|
||||
* in-sync or out-of-sync indications
|
||||
* indication
|
||||
* \param context the context string
|
||||
* \param imsi the IMSI
|
||||
* \param rnti the RNTI
|
||||
* \param cellId the cell ID
|
||||
* \param type in-sync or out-of-sync indication
|
||||
* \param count the number of in-sync or out-of-sync indications
|
||||
*/
|
||||
void PhySyncDetectionCallback(std::string context,
|
||||
uint64_t imsi,
|
||||
|
||||
@@ -95,8 +95,9 @@ class EpcTftClassifierTestCase : public TestCase
|
||||
* \param dp the destination port
|
||||
* \param tos the TOS
|
||||
* \param tftId the TFT ID
|
||||
* \param useIpv6 use IPv6 or IPv4 addresses. If set, addresses will be used as IPv4 mapped
|
||||
* addresses \returns the name string
|
||||
* \param useIpv6 use IPv6 or IPv4 addresses. If set, addresses will be used as IPv4
|
||||
* mapped addresses
|
||||
* \returns the name string
|
||||
*/
|
||||
static std::string BuildNameString(Ptr<EpcTftClassifier> c,
|
||||
EpcTft::Direction d,
|
||||
|
||||
@@ -45,8 +45,10 @@ class LteRrcConnectionEstablishmentTestCase : public TestCase
|
||||
* \param nBearers number of bearers to be setup in each connection
|
||||
* \param tConnBase connection time base value for all UEs in ms
|
||||
* \param tConnIncrPerUe additional connection time increment for each UE index (0...nUes-1) in
|
||||
* ms \param delayDiscStart expected duration to perform connection establishment in ms \param
|
||||
* errorExpected if true, test case will wait a bit longer to accommodate for transmission error
|
||||
* ms
|
||||
* \param delayDiscStart expected duration to perform connection establishment in ms
|
||||
* \param errorExpected if true, test case will wait a bit longer to accommodate for
|
||||
* transmission error
|
||||
* \param useIdealRrc If set to false, real RRC protocol model will be used
|
||||
* \param admitRrcConnectionRequest If set to false, eNb will not allow UE connections
|
||||
* \param description additional description of the test case
|
||||
@@ -71,11 +73,13 @@ class LteRrcConnectionEstablishmentTestCase : public TestCase
|
||||
* \param nUes number of UEs in the test
|
||||
* \param nBearers number of bearers to be setup in each connection
|
||||
* \param tConnBase connection time base value for all UEs in ms
|
||||
* \param tConnIncrPerUe additional connection time increment for each UE index (0...nUes-1) in
|
||||
* ms \param delayDiscStart expected duration to perform connection establishment in ms \param
|
||||
* useIdealRrc If set to false, real RRC protocol model will be used \param
|
||||
* admitRrcConnectionRequest If set to false, eNb will not allow UE connections \param
|
||||
* description additional description of the test case \returns the name string
|
||||
* \param tConnIncrPerUe additional connection time increment for each UE index (0...nUes-1)
|
||||
* in ms
|
||||
* \param delayDiscStart expected duration to perform connection establishment in ms
|
||||
* \param useIdealRrc If set to false, real RRC protocol model will be used
|
||||
* \param admitRrcConnectionRequest If set to false, eNb will not allow UE connections
|
||||
* \param description additional description of the test case
|
||||
* \returns the name string
|
||||
*/
|
||||
static std::string BuildNameString(uint32_t nUes,
|
||||
uint32_t nBearers,
|
||||
|
||||
@@ -84,8 +84,9 @@ class LteX2HandoverMeasuresTestCase : public TestCase
|
||||
* \param useUdp true if UDP is to be used, false if TCP is to be used
|
||||
* \param schedulerType type of scheduler to be used (e.g. "ns3::PfFfMacScheduler")
|
||||
* \param handoverAlgorithmType type of handover algorithm to be used (e.g.
|
||||
* "ns3::A3RsrpHandoverAlgorithm") \param admitHo true if Ho is admitted, false if it is not
|
||||
* admitted \param useIdealRrc true if ideal RRC is to be used, false if real RRC is to be used
|
||||
* "ns3::A3RsrpHandoverAlgorithm")
|
||||
* \param admitHo true if Ho is admitted, false if it is not admitted
|
||||
* \param useIdealRrc true if ideal RRC is to be used, false if real RRC is to be used
|
||||
*/
|
||||
LteX2HandoverMeasuresTestCase(uint32_t nEnbs,
|
||||
uint32_t nUes,
|
||||
@@ -108,8 +109,10 @@ class LteX2HandoverMeasuresTestCase : public TestCase
|
||||
* \param useUdp true if UDP is to be used, false if TCP is to be used
|
||||
* \param schedulerType the scheduler type
|
||||
* \param handoverAlgorithmType type of handover algorithm to be used (e.g.
|
||||
* "ns3::A3RsrpHandoverAlgorithm") \param admitHo true if Ho is admitted, false if it is not
|
||||
* admitted \param useIdealRrc true if the ideal RRC should be used \returns the name string
|
||||
* "ns3::A3RsrpHandoverAlgorithm")
|
||||
* \param admitHo true if Ho is admitted, false if it is not admitted
|
||||
* \param useIdealRrc true if the ideal RRC should be used
|
||||
* \returns the name string
|
||||
*/
|
||||
static std::string BuildNameString(uint32_t nEnbs,
|
||||
uint32_t nUes,
|
||||
|
||||
@@ -174,7 +174,8 @@ class HwmpRtable : public Object
|
||||
LookupResult LookupReactiveExpired(Mac48Address destination);
|
||||
/**
|
||||
* Find proactive path to tree root. Note that calling this method has side effect of deleting
|
||||
* expired proactive path \return The lookup result
|
||||
* expired proactive path
|
||||
* \return The lookup result
|
||||
*/
|
||||
LookupResult LookupProactive();
|
||||
/**
|
||||
@@ -186,7 +187,9 @@ class HwmpRtable : public Object
|
||||
|
||||
/**
|
||||
* When peer link with a given MAC-address fails - it returns list of unreachable destination
|
||||
* addresses \param peerAddress the peer address \returns the list of unreachable destinations
|
||||
* addresses
|
||||
* \param peerAddress the peer address
|
||||
* \returns the list of unreachable destinations
|
||||
*/
|
||||
std::vector<HwmpProtocol::FailedDestination> GetUnreachableDestinations(
|
||||
Mac48Address peerAddress);
|
||||
|
||||
@@ -111,11 +111,13 @@ class PeerManagementProtocol : public Object
|
||||
/**
|
||||
* Deliver Peer link management information to the protocol-part
|
||||
* \param interface is a interface ID of a given MAC (interfaceID rather than MAC address,
|
||||
* because many interfaces may have the same MAC) \param peerAddress is address of peer \param
|
||||
* peerMeshPointAddress is address of peer mesh point device (equal to peer address when only
|
||||
* one interface) \param aid is association ID, which peer has assigned to us \param
|
||||
* peerManagementElement is peer link management element \param meshConfig is mesh configuration
|
||||
* element taken from the peer management frame
|
||||
* because many interfaces may have the same MAC)
|
||||
* \param peerAddress is address of peer
|
||||
* \param peerMeshPointAddress is address of peer mesh point device (equal to peer address when
|
||||
* only one interface)
|
||||
* \param aid is association ID, which peer has assigned to us
|
||||
* \param peerManagementElement is peer link management element
|
||||
* \param meshConfig is mesh configuration element taken from the peer management frame
|
||||
*/
|
||||
void ReceivePeerLinkFrame(uint32_t interface,
|
||||
Mac48Address peerAddress,
|
||||
@@ -154,8 +156,8 @@ class PeerManagementProtocol : public Object
|
||||
/// \name Interface to other protocols (MLME)
|
||||
///@{
|
||||
/**
|
||||
* Set peer link status change callback
|
||||
* \param cb the callback
|
||||
* Set peer link status change callback
|
||||
* \param cb the callback
|
||||
*/
|
||||
void SetPeerLinkStatusCallback(Callback<void, Mac48Address, Mac48Address, uint32_t, bool> cb);
|
||||
/**
|
||||
|
||||
@@ -66,7 +66,8 @@ class MeshPointDevice : public NetDevice
|
||||
///@{
|
||||
/**
|
||||
* \brief Attach new interface to the station. Interface must support 48-bit MAC address and
|
||||
* SendFrom method. \param port the port used
|
||||
* SendFrom method.
|
||||
* \param port the port used
|
||||
*
|
||||
* \attention Only MeshPointDevice can have IP address, but not individual interfaces.
|
||||
*/
|
||||
|
||||
@@ -87,16 +87,19 @@ class MeshWifiInterfaceMac : public WifiMac
|
||||
/// \name Beacons
|
||||
///@{
|
||||
/**
|
||||
* Set maximum initial random delay before first beacon
|
||||
* \param interval maximum random interval
|
||||
* Set maximum initial random delay before first beacon
|
||||
* \param interval maximum random interval
|
||||
*/
|
||||
void SetRandomStartDelay(Time interval);
|
||||
/**
|
||||
* Set interval between two successive beacons
|
||||
* \param interval beacon interval
|
||||
* Set interval between two successive beacons
|
||||
* \param interval beacon interval
|
||||
*/
|
||||
void SetBeaconInterval(Time interval);
|
||||
/// \return interval between two beacons
|
||||
/**
|
||||
* Get beacon interval.
|
||||
* \return interval between two beacons
|
||||
*/
|
||||
Time GetBeaconInterval() const;
|
||||
/**
|
||||
* \brief Next beacon frame time
|
||||
@@ -108,7 +111,7 @@ class MeshWifiInterfaceMac : public WifiMac
|
||||
Time GetTbtt() const;
|
||||
/**
|
||||
* \brief Shift TBTT.
|
||||
* \param shift
|
||||
* \param shift Shift
|
||||
*
|
||||
* This is supposed to be used by any entity managing beacon collision avoidance (e.g. Peer
|
||||
* management protocol in 802.11s)
|
||||
@@ -121,7 +124,7 @@ class MeshWifiInterfaceMac : public WifiMac
|
||||
/**
|
||||
* Install plugin.
|
||||
*
|
||||
* \param plugin
|
||||
* \param plugin Plugin
|
||||
*
|
||||
* \todo return unique ID to allow user to unregister plugins
|
||||
*/
|
||||
@@ -143,7 +146,7 @@ class MeshWifiInterfaceMac : public WifiMac
|
||||
/**
|
||||
* Switch frequency channel.
|
||||
*
|
||||
* \param new_id
|
||||
* \param new_id New ID.
|
||||
*/
|
||||
void SwitchFrequencyChannel(uint16_t new_id);
|
||||
|
||||
@@ -157,11 +160,15 @@ class MeshWifiInterfaceMac : public WifiMac
|
||||
/**
|
||||
* Check supported rates.
|
||||
*
|
||||
* \param rates
|
||||
* \param rates Rates.
|
||||
* \return true if rates are supported
|
||||
*/
|
||||
bool CheckSupportedRates(SupportedRates rates) const;
|
||||
/// \return list of supported bitrates
|
||||
|
||||
/**
|
||||
* Get supported rates.
|
||||
* \return list of supported bitrates
|
||||
*/
|
||||
SupportedRates GetSupportedRates() const;
|
||||
|
||||
/// \name Metric Calculation routines:
|
||||
@@ -184,7 +191,10 @@ class MeshWifiInterfaceMac : public WifiMac
|
||||
* \param os the output stream
|
||||
*/
|
||||
void Report(std::ostream& os) const;
|
||||
/// Reset statistics function
|
||||
|
||||
/**
|
||||
* Reset statistics function
|
||||
*/
|
||||
void ResetStats();
|
||||
|
||||
/**
|
||||
@@ -234,9 +244,13 @@ class MeshWifiInterfaceMac : public WifiMac
|
||||
* \param to the to address
|
||||
*/
|
||||
void ForwardDown(Ptr<Packet> packet, Mac48Address from, Mac48Address to);
|
||||
/// Send beacon
|
||||
/**
|
||||
* Send beacon.
|
||||
*/
|
||||
void SendBeacon();
|
||||
/// Schedule next beacon
|
||||
/**
|
||||
* Schedule next beacon.
|
||||
*/
|
||||
void ScheduleNextBeacon();
|
||||
/**
|
||||
* Get current beaconing status
|
||||
@@ -244,7 +258,9 @@ class MeshWifiInterfaceMac : public WifiMac
|
||||
* \returns true if beacon active
|
||||
*/
|
||||
bool GetBeaconGeneration() const;
|
||||
/// Real d-tor
|
||||
/**
|
||||
* Real d-tor.
|
||||
*/
|
||||
void DoDispose() override;
|
||||
|
||||
private:
|
||||
@@ -254,7 +270,7 @@ class MeshWifiInterfaceMac : public WifiMac
|
||||
|
||||
/// \name Mesh timing intervals
|
||||
///@{
|
||||
/// whether beaconing is enabled
|
||||
/// Whether beaconing is enabled
|
||||
bool m_beaconEnable;
|
||||
/// Beaconing interval.
|
||||
Time m_beaconInterval;
|
||||
@@ -285,10 +301,12 @@ class MeshWifiInterfaceMac : public WifiMac
|
||||
/**
|
||||
* Print statistics.
|
||||
*
|
||||
* \param os
|
||||
* \param os Output stream
|
||||
*/
|
||||
void Print(std::ostream& os) const;
|
||||
/// constructor
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
Statistics();
|
||||
};
|
||||
|
||||
|
||||
@@ -145,7 +145,7 @@ class Ns2MobilityHelperTest : public TestCase
|
||||
|
||||
/**
|
||||
* Set NS-2 trace to read as single large string (don't forget to add \\n and quote \"'s)
|
||||
* \param trace the mobility trace
|
||||
* \param trace the mobility trace
|
||||
*/
|
||||
void SetTrace(const std::string& trace)
|
||||
{
|
||||
|
||||
@@ -93,8 +93,8 @@ class GrantedTimeWindowMpiInterface : public ParallelCommunicationInterface, Obj
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
|
||||
|
||||
@@ -48,8 +48,8 @@ class MpiReceiver : public Object
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
~MpiReceiver() override;
|
||||
|
||||
@@ -52,8 +52,8 @@ class NullMessageMpiInterface : public ParallelCommunicationInterface, Object
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
* Register this type.
|
||||
* \return The object TypeId.
|
||||
*/
|
||||
static TypeId GetTypeId();
|
||||
|
||||
|
||||
@@ -61,8 +61,8 @@ class RemoteChannelBundle : public Object
|
||||
RemoteChannelBundle();
|
||||
|
||||
/**
|
||||
* Construct and assing system Id.
|
||||
* \param [in] remoteSystemId The system id.
|
||||
* Construct and assign system Id.
|
||||
* \param [in] remoteSystemId The system id.
|
||||
*/
|
||||
RemoteChannelBundle(const uint32_t remoteSystemId);
|
||||
|
||||
@@ -91,10 +91,10 @@ class RemoteChannelBundle : public Object
|
||||
Time GetGuaranteeTime() const;
|
||||
|
||||
/**
|
||||
* \param time The guarantee time.
|
||||
*
|
||||
* Set the guarantee time for the bundle. This should be called
|
||||
* after a packet or Null Message received.
|
||||
*
|
||||
* \param time The guarantee time.
|
||||
*/
|
||||
void SetGuaranteeTime(Time time);
|
||||
|
||||
@@ -125,11 +125,11 @@ class RemoteChannelBundle : public Object
|
||||
std::size_t GetSize() const;
|
||||
|
||||
/**
|
||||
* \param time The delay from now when the null message should be received.
|
||||
*
|
||||
* Send Null Message to the remote task associated with this bundle.
|
||||
* Message will be delivered at current simulation time + the time
|
||||
* passed in.
|
||||
*
|
||||
* \param time The delay from now when the null message should be received.
|
||||
*/
|
||||
void Send(Time time);
|
||||
|
||||
|
||||
@@ -254,7 +254,7 @@ class PacketMetadata
|
||||
|
||||
/**
|
||||
* \brief Get the metadata serialized size
|
||||
* \return the seralized size
|
||||
* \return the serialized size
|
||||
*/
|
||||
uint32_t GetSerializedSize() const;
|
||||
|
||||
@@ -266,17 +266,17 @@ class PacketMetadata
|
||||
ItemIterator BeginItem(Buffer buffer) const;
|
||||
|
||||
/**
|
||||
* \brief Serialization to raw uint8_t*
|
||||
* \param buffer the buffer to serialize to
|
||||
* \param maxSize the maximum serialization size
|
||||
* \return 1 on success, 0 on failure
|
||||
* \brief Serialization to raw uint8_t*
|
||||
* \param buffer the buffer to serialize to
|
||||
* \param maxSize the maximum serialization size
|
||||
* \return 1 on success, 0 on failure
|
||||
*/
|
||||
uint32_t Serialize(uint8_t* buffer, uint32_t maxSize) const;
|
||||
/**
|
||||
* \brief Deserialization from raw uint8_t*
|
||||
* \param buffer the buffer to deserialize from
|
||||
* \param size the size
|
||||
* \return 1 on success, 0 on failure
|
||||
* \brief Deserialization from raw uint8_t*
|
||||
* \param buffer the buffer to deserialize from
|
||||
* \param size the size
|
||||
* \return 1 on success, 0 on failure
|
||||
*/
|
||||
uint32_t Deserialize(const uint8_t* buffer, uint32_t size);
|
||||
|
||||
@@ -424,8 +424,7 @@ class PacketMetadata
|
||||
uint32_t m_count;
|
||||
/** size (in bytes) of m_data buffer below */
|
||||
uint16_t m_size;
|
||||
/** max of the m_used field over all objects which
|
||||
* reference this struct Data instance */
|
||||
/** max of the m_used field over all objects which reference this struct Data instance */
|
||||
uint16_t m_dirtyEnd;
|
||||
/** variable-sized buffer of bytes */
|
||||
uint8_t m_data[PACKET_METADATA_DATA_M_DATA_SIZE];
|
||||
@@ -443,41 +442,41 @@ class PacketMetadata
|
||||
struct SmallItem
|
||||
{
|
||||
/** offset (in bytes) from start of m_data buffer
|
||||
to next element in linked list. value is 0xffff
|
||||
if next element does not exist.
|
||||
stored as a fixed-size 16 bit integer.
|
||||
to next element in linked list. value is 0xffff
|
||||
if next element does not exist.
|
||||
stored as a fixed-size 16 bit integer.
|
||||
*/
|
||||
uint16_t next;
|
||||
/** offset (in bytes) from start of m_data buffer
|
||||
to previous element in linked list. value is 0xffff
|
||||
if previous element does not exist.
|
||||
stored as a fixed-size 16 bit integer.
|
||||
to previous element in linked list. value is 0xffff
|
||||
if previous element does not exist.
|
||||
stored as a fixed-size 16 bit integer.
|
||||
*/
|
||||
uint16_t prev;
|
||||
/** the high 31 bits of this field identify the
|
||||
type of the header or trailer represented by
|
||||
this item: the value zero represents payload.
|
||||
If the low bit of this uid is one, an ExtraItem
|
||||
structure follows this SmallItem structure.
|
||||
stored as a variable-size 32 bit integer.
|
||||
type of the header or trailer represented by
|
||||
this item: the value zero represents payload.
|
||||
If the low bit of this uid is one, an ExtraItem
|
||||
structure follows this SmallItem structure.
|
||||
stored as a variable-size 32 bit integer.
|
||||
*/
|
||||
uint32_t typeUid;
|
||||
/** the size (in bytes) of the header or trailer represented
|
||||
by this element.
|
||||
stored as a variable-size 32 bit integer.
|
||||
by this element.
|
||||
stored as a variable-size 32 bit integer.
|
||||
*/
|
||||
uint32_t size;
|
||||
/** this field tries to uniquely identify each header or
|
||||
trailer _instance_ while the typeUid field uniquely
|
||||
identifies each header or trailer _type_. This field
|
||||
is used to test whether two items are equal in the sense
|
||||
that they represent the same header or trailer instance.
|
||||
That equality test is based on the typeUid and chunkUid
|
||||
fields so, the likelihood that two header instances
|
||||
share the same chunkUid _and_ typeUid is very small
|
||||
unless they are really representations of the same header
|
||||
instance.
|
||||
stored as a fixed-size 16 bit integer.
|
||||
trailer _instance_ while the typeUid field uniquely
|
||||
identifies each header or trailer _type_. This field
|
||||
is used to test whether two items are equal in the sense
|
||||
that they represent the same header or trailer instance.
|
||||
That equality test is based on the typeUid and chunkUid
|
||||
fields so, the likelihood that two header instances
|
||||
share the same chunkUid _and_ typeUid is very small
|
||||
unless they are really representations of the same header
|
||||
instance.
|
||||
stored as a fixed-size 16 bit integer.
|
||||
*/
|
||||
uint16_t chunkUid;
|
||||
};
|
||||
@@ -488,19 +487,19 @@ class PacketMetadata
|
||||
struct ExtraItem
|
||||
{
|
||||
/** offset (in bytes) from start of original header to
|
||||
the start of the fragment still present.
|
||||
stored as a variable-size 32 bit integer.
|
||||
the start of the fragment still present.
|
||||
stored as a variable-size 32 bit integer.
|
||||
*/
|
||||
uint32_t fragmentStart;
|
||||
/** offset (in bytes) from start of original header to
|
||||
the end of the fragment still present.
|
||||
stored as a variable-size 32 bit integer.
|
||||
the end of the fragment still present.
|
||||
stored as a variable-size 32 bit integer.
|
||||
*/
|
||||
uint32_t fragmentEnd;
|
||||
/** the packetUid of the packet in which this header or trailer
|
||||
was first added. It could be different from the m_packetUid
|
||||
field if the user has aggregated multiple packets into one.
|
||||
stored as a fixed-size 64 bit integer.
|
||||
was first added. It could be different from the m_packetUid
|
||||
field if the user has aggregated multiple packets into one.
|
||||
stored as a fixed-size 64 bit integer.
|
||||
*/
|
||||
uint64_t packetUid;
|
||||
};
|
||||
|
||||
@@ -40,24 +40,24 @@ class FlowIdTag : public Tag
|
||||
FlowIdTag();
|
||||
|
||||
/**
|
||||
* Constructs a FlowIdTag with the given flow id
|
||||
* Constructs a FlowIdTag with the given flow id
|
||||
*
|
||||
* \param flowId Id to use for the tag
|
||||
* \param flowId Id to use for the tag
|
||||
*/
|
||||
FlowIdTag(uint32_t flowId);
|
||||
/**
|
||||
* Sets the flow id for the tag
|
||||
* \param flowId Id to assign to the tag
|
||||
* Sets the flow id for the tag
|
||||
* \param flowId Id to assign to the tag
|
||||
*/
|
||||
void SetFlowId(uint32_t flowId);
|
||||
/**
|
||||
* Gets the flow id for the tag
|
||||
* \returns current flow id for this tag
|
||||
* Gets the flow id for the tag
|
||||
* \returns current flow id for this tag
|
||||
*/
|
||||
uint32_t GetFlowId() const;
|
||||
/**
|
||||
* Uses a static variable to generate sequential flow id
|
||||
* \returns flow id allocated
|
||||
* Uses a static variable to generate sequential flow id
|
||||
* \returns flow id allocated
|
||||
*/
|
||||
static uint32_t AllocateFlowId();
|
||||
|
||||
|
||||
@@ -551,8 +551,9 @@ class Ipv6Prefix
|
||||
void SetPrefixLength(uint8_t prefixLength);
|
||||
|
||||
/**
|
||||
* \brief Get the minimum prefix length, i.e., 128 - the length of the largest sequence trailing
|
||||
* zeroes. \return minimum prefix length
|
||||
* \brief Get the minimum prefix length, i.e., 128 - the length of the largest sequence
|
||||
* trailing zeroes.
|
||||
* \return minimum prefix length
|
||||
*/
|
||||
uint8_t GetMinimumPrefixLength() const;
|
||||
|
||||
|
||||
@@ -374,9 +374,9 @@ class LollipopCounter
|
||||
* be on a circular region, and it is represented by
|
||||
* the smallest circular distance between two numbers.
|
||||
*
|
||||
* Arithmetic operator.
|
||||
* \param [in] val Counter to compute the difference against
|
||||
* \return The result of the difference.
|
||||
* Arithmetic operator.
|
||||
* \param [in] val Counter to compute the difference against
|
||||
* \return The result of the difference.
|
||||
*/
|
||||
T AbsoluteMagnitudeOfDifference(const LollipopCounter& val) const
|
||||
{
|
||||
|
||||
@@ -274,15 +274,16 @@ class PcapFile
|
||||
/**
|
||||
* \brief Compare two PCAP files packet-by-packet
|
||||
*
|
||||
* \param f1 First PCAP file name
|
||||
* \param f2 Second PCAP file name
|
||||
* \param sec [out] Time stamp of first different packet, seconds. Undefined if files don't
|
||||
* differ.
|
||||
* \param usec [out] Time stamp of first different packet, microseconds. Undefined if files
|
||||
* don't differ.
|
||||
* \param packets [out] Number of first different packet. Total number of parsed packets if
|
||||
* files don't differ.
|
||||
* \param snapLen Snap length (if used)
|
||||
* \return true if files are different, false otherwise
|
||||
*
|
||||
* \param f1 First PCAP file name
|
||||
* \param f2 Second PCAP file name
|
||||
* \param sec [out] Time stamp of first different packet, seconds. Undefined if files
|
||||
* doesn't differ. \param usec [out] Time stamp of first different packet, microseconds.
|
||||
* Undefined if files doesn't differ. \param packets [out] Number of first different packet.
|
||||
* Total number of parsed packets if files doesn't differ. \param snapLen Snap length (if
|
||||
* used)
|
||||
*/
|
||||
static bool Diff(const std::string& f1,
|
||||
const std::string& f2,
|
||||
|
||||
@@ -616,7 +616,8 @@ RoutingProtocol::RecvOlsr(Ptr<Socket> socket)
|
||||
/// \brief This auxiliary function (defined in \RFC{3626}) is used for calculating the MPR Set.
|
||||
///
|
||||
/// \param tuple the neighbor tuple which has the main address of the node we are going to calculate
|
||||
/// its degree to. \return the degree of the node.
|
||||
/// its degree to.
|
||||
/// \return the degree of the node.
|
||||
///
|
||||
int
|
||||
RoutingProtocol::Degree(const NeighborTuple& tuple)
|
||||
|
||||
@@ -231,7 +231,7 @@ class RoutingProtocol : public Ipv4RoutingProtocol
|
||||
* 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 routingTable the Ipv4StaticRouting routing table to be associated.
|
||||
* \param routingTable the Ipv4StaticRouting routing table to be associated.
|
||||
*/
|
||||
void SetRoutingTableAssociation(Ptr<Ipv4StaticRouting> routingTable);
|
||||
|
||||
@@ -415,9 +415,9 @@ class RoutingProtocol : public Ipv4RoutingProtocol
|
||||
|
||||
private:
|
||||
/**
|
||||
* \brief Tests whether or not the specified route uses a non-OLSR outgoing interface.
|
||||
* \param route The route to be tested.
|
||||
* \returns True if the outgoing interface of the specified route is a non-OLSR interface,
|
||||
* \brief Tests whether or not the specified route uses a non-OLSR outgoing interface.
|
||||
* \param route The route to be tested.
|
||||
* \returns True if the outgoing interface of the specified route is a non-OLSR interface,
|
||||
* false otherwise.
|
||||
*/
|
||||
bool UsesNonOlsrOutgoingInterface(const Ipv4RoutingTableEntry& route);
|
||||
@@ -542,8 +542,9 @@ class RoutingProtocol : public Ipv4RoutingProtocol
|
||||
*
|
||||
* \param olsrMessage The %OLSR message which must be forwarded.
|
||||
* \param duplicated NULL if the message has never been considered for forwarding, or a
|
||||
* duplicate tuple in other case. \param localIface The address of the interface where the
|
||||
* message was received from. \param senderAddress The sender IPv4 address.
|
||||
* duplicate tuple in other case.
|
||||
* \param localIface The address of the interface where the message was received from.
|
||||
* \param senderAddress The sender IPv4 address.
|
||||
*/
|
||||
void ForwardDefault(olsr::MessageHeader olsrMessage,
|
||||
DuplicateTuple* duplicated,
|
||||
@@ -815,9 +816,9 @@ class RoutingProtocol : public Ipv4RoutingProtocol
|
||||
int Degree(const NeighborTuple& tuple);
|
||||
|
||||
/**
|
||||
* Check that address is one of my interfaces.
|
||||
* \param a the address to check.
|
||||
* \return true if the address is own by the node.
|
||||
* Check that address is one of my interfaces.
|
||||
* \param a the address to check.
|
||||
* \return true if the address is own by the node.
|
||||
*/
|
||||
bool IsMyOwnAddress(const Ipv4Address& a) const;
|
||||
|
||||
|
||||
@@ -455,12 +455,15 @@ class Controller : public Object
|
||||
*
|
||||
* \param key The matching key data; used to create a flow that matches the packet.
|
||||
* \param buffer_id The OpenFlow Buffer ID; used to run the actions on the packet if we add or
|
||||
* modify the flow. \param command Whether to add, modify, or delete this flow. \param acts List
|
||||
* of actions to execute. \param actions_len Length of the actions buffer. \param idle_timeout
|
||||
* Flow expires if left inactive for this amount of time (specify OFP_FLOW_PERMANENT to disable
|
||||
* feature). \param hard_timeout Flow expires after this amount of time (specify
|
||||
* OFP_FLOW_PERMANENT to disable feature). \return Flow data that when passed to SetFlow will
|
||||
* add, modify, or delete a flow it defines.
|
||||
* modify the flow.
|
||||
* \param command Whether to add, modify, or delete this flow.
|
||||
* \param acts List of actions to execute.
|
||||
* \param actions_len Length of the actions buffer.
|
||||
* \param idle_timeout Flow expires if left inactive for this amount of time (specify
|
||||
* OFP_FLOW_PERMANENT to disable feature).
|
||||
* \param hard_timeout Flow expires after this amount of time (specify OFP_FLOW_PERMANENT to
|
||||
* disable feature).
|
||||
* \return Flow data that when passed to SetFlow will add, modify, or delete a flow it defines.
|
||||
*/
|
||||
ofp_flow_mod* BuildFlow(sw_flow_key key,
|
||||
uint32_t buffer_id,
|
||||
|
||||
@@ -185,9 +185,9 @@ class OpenFlowSwitchNetDevice : public NetDevice
|
||||
* \param packet_uid Packet UID; used to fetch the packet and its metadata.
|
||||
* \param in_port The index of the port the Packet was initially received on.
|
||||
* \param max_len The maximum number of bytes the caller wants to be sent; a value of 0
|
||||
* indicates the entire packet should be sent. Used when outputting to controller. \param
|
||||
* out_port The port we want to output on. \param ignore_no_fwd If true, Ports that are set to
|
||||
* not forward are forced to forward.
|
||||
* indicates the entire packet should be sent. Used when outputting to controller.
|
||||
* \param out_port The port we want to output on.
|
||||
* \param ignore_no_fwd If true, Ports that are set to not forward are forced to forward.
|
||||
*/
|
||||
void DoOutput(uint32_t packet_uid,
|
||||
int in_port,
|
||||
@@ -321,8 +321,9 @@ class OpenFlowSwitchNetDevice : public NetDevice
|
||||
*
|
||||
* \param packet_uid Packet UID; used to fetch the packet and its metadata.
|
||||
* \param in_port The index of the port the Packet was initially received on. This port doesn't
|
||||
* forward when flooding. \param flood If true, don't send out on the ports with flooding
|
||||
* disabled. \return 0 if everything's ok, otherwise an error number.
|
||||
* forward when flooding.
|
||||
* \param flood If true, don't send out on the ports with flooding disabled.
|
||||
* \return 0 if everything's ok, otherwise an error number.
|
||||
*/
|
||||
int OutputAll(uint32_t packet_uid, int in_port, bool flood);
|
||||
|
||||
@@ -355,7 +356,8 @@ class OpenFlowSwitchNetDevice : public NetDevice
|
||||
* \param packet_uid Packet UID; used to fetch the packet and its metadata.
|
||||
* \param in_port The index of the port the Packet was initially received on.
|
||||
* \param max_len The maximum number of bytes that the caller wants to be sent; a value of 0
|
||||
* indicates the entire packet should be sent. \param reason Why the packet is being sent.
|
||||
* indicates the entire packet should be sent.
|
||||
* \param reason Why the packet is being sent.
|
||||
*/
|
||||
void OutputControl(uint32_t packet_uid, int in_port, size_t max_len, int reason);
|
||||
|
||||
|
||||
@@ -201,7 +201,8 @@ class SixLowPanNetDevice : public NetDevice
|
||||
* \param [in] contextId context id (most be between 0 and 15 included).
|
||||
* \param [in] contextPrefix context prefix to be used in compression/decompression.
|
||||
* \param [in] compressionAllowed compression and decompression allowed (true), decompression
|
||||
* only (false). \param [in] validLifetime validity time (relative to the actual time).
|
||||
* only (false).
|
||||
* \param [in] validLifetime validity time (relative to the actual time).
|
||||
*
|
||||
*/
|
||||
void AddContext(uint8_t contextId,
|
||||
@@ -215,7 +216,8 @@ class SixLowPanNetDevice : public NetDevice
|
||||
* \param [in] contextId context id (most be between 0 and 15 included).
|
||||
* \param [out] contextPrefix context prefix to be used in compression/decompression.
|
||||
* \param [out] compressionAllowed compression and decompression allowed (true), decompression
|
||||
* only (false). \param [out] validLifetime validity time (relative to the actual time).
|
||||
* only (false).
|
||||
* \param [out] validLifetime validity time (relative to the actual time).
|
||||
*
|
||||
* \return false if the context has not been found.
|
||||
*
|
||||
@@ -274,10 +276,11 @@ class SixLowPanNetDevice : public NetDevice
|
||||
/**
|
||||
* \param [in] packet Packet sent from above down to Network Device.
|
||||
* \param [in] source Source mac address (only used if doSendFrom is true, i.e., "MAC
|
||||
* spoofing"). \param [in] dest Mac address of the destination (already resolved). \param [in]
|
||||
* protocolNumber Identifies the type of payload contained in this packet. Used to call the
|
||||
* right L3Protocol when the packet is received. \param [in] doSendFrom Perform a SendFrom
|
||||
* instead of a Send.
|
||||
* spoofing").
|
||||
* \param [in] dest Mac address of the destination (already resolved).
|
||||
* \param [in] protocolNumber Identifies the type of payload contained in this packet. Used to
|
||||
* call the right L3Protocol when the packet is received.
|
||||
* \param [in] doSendFrom Perform a SendFrom instead of a Send.
|
||||
*
|
||||
* Called from higher layer to send packet into Network Device
|
||||
* with the specified source and destination Addresses.
|
||||
@@ -546,11 +549,14 @@ class SixLowPanNetDevice : public NetDevice
|
||||
/**
|
||||
* \brief Performs a packet fragmentation.
|
||||
* \param [in] packet the packet to be fragmented (with headers already compressed with
|
||||
* 6LoWPAN). \param [in] origPacketSize the size of the IP packet before the 6LoWPAN header
|
||||
* compression, including the IP/L4 headers. \param [in] origHdrSize the size of the IP header
|
||||
* before the 6LoWPAN header compression. \param [in] extraHdrSize the sum of the sizes of BC0
|
||||
* header and MESH header if mesh routing is used or 0. \param [out] listFragments A reference
|
||||
* to the list of the resulting packets, all with the proper headers in place.
|
||||
* 6LoWPAN).
|
||||
* \param [in] origPacketSize the size of the IP packet before the 6LoWPAN header compression,
|
||||
* including the IP/L4 headers.
|
||||
* \param [in] origHdrSize the size of the IP header before the 6LoWPAN header compression.
|
||||
* \param [in] extraHdrSize the sum of the sizes of BC0 header and MESH header if mesh routing
|
||||
* is used or 0.
|
||||
* \param [out] listFragments A reference to the list of the resulting packets, all with the
|
||||
* proper headers in place.
|
||||
*/
|
||||
void DoFragmentation(Ptr<Packet> packet,
|
||||
uint32_t origPacketSize,
|
||||
@@ -613,8 +619,8 @@ class SixLowPanNetDevice : public NetDevice
|
||||
uint16_t m_meshCacheLength; //!< length of the cache for each source.
|
||||
Ptr<RandomVariableStream>
|
||||
m_meshUnderJitter; //!< Random variable for the mesh-under packet retransmission.
|
||||
std::map<Address /* OriginatorAdddress */, std::list<uint8_t /* SequenceNumber */>>
|
||||
m_seenPkts; //!< Seen packets, memorized by OriginatorAdddress, SequenceNumber.
|
||||
std::map<Address /* OriginatorAddress */, std::list<uint8_t /* SequenceNumber */>>
|
||||
m_seenPkts; //!< Seen packets, memorized by OriginatorAddress, SequenceNumber.
|
||||
|
||||
Ptr<Node> m_node; //!< Smart pointer to the Node.
|
||||
Ptr<NetDevice> m_netDevice; //!< Smart pointer to the underlying NetDevice.
|
||||
@@ -670,7 +676,7 @@ class SixLowPanNetDevice : public NetDevice
|
||||
* \brief Clean an address from its prefix.
|
||||
*
|
||||
* This function is used to find the relevant bits to be sent in stateful IPHC compression.
|
||||
* Only the pefix length is used - the address prefix is assumed to be matching the prefix.
|
||||
* Only the prefix length is used - the address prefix is assumed to be matching the prefix.
|
||||
*
|
||||
* \param address the address to be cleaned
|
||||
* \param prefix the prefix to remove
|
||||
|
||||
@@ -290,10 +290,14 @@ class ThreeGppChannelModel : public MatrixBasedChannelModel
|
||||
* Compute the channel matrix between two nodes a and b, and their
|
||||
* antenna arrays aAntenna and bAntenna using the procedure
|
||||
* described in 3GPP TR 38.901
|
||||
* \param channelParams the channel parameters previously generated for the pair of nodes a and
|
||||
* b \param table3gpp the 3gpp parameters table \param sMob the mobility model of node s \param
|
||||
* uMob the mobility model of node u \param sAntenna the antenna array of node s \param uAntenna
|
||||
* the antenna array of node u \return the channel realization
|
||||
* \param channelParams the channel parameters previously generated for the pair of
|
||||
* nodes a and b
|
||||
* \param table3gpp the 3gpp parameters table
|
||||
* \param sMob the mobility model of node s
|
||||
* \param uMob the mobility model of node u
|
||||
* \param sAntenna the antenna array of node s
|
||||
* \param uAntenna the antenna array of node u
|
||||
* \return the channel realization
|
||||
*/
|
||||
|
||||
virtual Ptr<ChannelMatrix> GetNewChannel(Ptr<const ThreeGppChannelParams> channelParams,
|
||||
@@ -325,9 +329,10 @@ class ThreeGppChannelModel : public MatrixBasedChannelModel
|
||||
|
||||
/**
|
||||
* Check if the channel matrix has to be updated (it needs update when the channel params
|
||||
* generation time is more recent than channel matrix generation time \param channelParams
|
||||
* channel params structure \param channelMatrix channel matrix structure \return true if the
|
||||
* channel matrix has to be updated, false otherwise
|
||||
* generation time is more recent than channel matrix generation time
|
||||
* \param channelParams channel params structure
|
||||
* \param channelMatrix channel matrix structure
|
||||
* \return true if the channel matrix has to be updated, false otherwise
|
||||
*/
|
||||
bool ChannelMatrixNeedsUpdate(Ptr<const ThreeGppChannelParams> channelParams,
|
||||
Ptr<const ChannelMatrix> channelMatrix);
|
||||
|
||||
@@ -96,8 +96,9 @@ class WifiSpectrumValueHelper
|
||||
* \param minInnerBandDbr the minimum relative power in the inner band (in dBr)
|
||||
* \param minOuterbandDbr the minimum relative power in the outer band (in dBr)
|
||||
* \param lowestPointDbr maximum relative power of the outermost subcarriers of the guard band
|
||||
* (in dBr) \return a pointer to a newly allocated SpectrumValue representing the OFDM Transmit
|
||||
* Power Spectral Density in W/Hz for each Band
|
||||
* (in dBr)
|
||||
* \return a pointer to a newly allocated SpectrumValue representing the OFDM Transmit Power
|
||||
* Spectral Density in W/Hz for each Band
|
||||
*/
|
||||
static Ptr<SpectrumValue> CreateOfdmTxPowerSpectralDensity(uint32_t centerFrequency,
|
||||
uint16_t channelWidth,
|
||||
@@ -118,9 +119,10 @@ class WifiSpectrumValueHelper
|
||||
* \param minInnerBandDbr the minimum relative power in the inner band (in dBr)
|
||||
* \param minOuterbandDbr the minimum relative power in the outer band (in dBr)
|
||||
* \param lowestPointDbr maximum relative power of the outermost subcarriers of the guard band
|
||||
* (in dBr) \param puncturedSubchannels bitmap indicating whether a 20 MHz subchannel is
|
||||
* punctured or not \return a pointer to a newly allocated SpectrumValue representing the
|
||||
* duplicated 20 MHz OFDM Transmit Power Spectral Density in W/Hz for each Band
|
||||
* (in dBr)
|
||||
* \param puncturedSubchannels bitmap indicating whether a 20 MHz subchannel is punctured or not
|
||||
* \return a pointer to a newly allocated SpectrumValue representing the duplicated 20 MHz OFDM
|
||||
* Transmit Power Spectral Density in W/Hz for each Band
|
||||
*/
|
||||
static Ptr<SpectrumValue> CreateDuplicated20MhzTxPowerSpectralDensity(
|
||||
uint32_t centerFrequency,
|
||||
@@ -144,8 +146,9 @@ class WifiSpectrumValueHelper
|
||||
* \param minInnerBandDbr the minimum relative power in the inner band (in dBr)
|
||||
* \param minOuterbandDbr the minimum relative power in the outer band (in dBr)
|
||||
* \param lowestPointDbr maximum relative power of the outermost subcarriers of the guard band
|
||||
* (in dBr) \return a pointer to a newly allocated SpectrumValue representing the HT OFDM
|
||||
* Transmit Power Spectral Density in W/Hz for each Band
|
||||
* (in dBr)
|
||||
* \return a pointer to a newly allocated SpectrumValue representing the HT OFDM Transmit Power
|
||||
* Spectral Density in W/Hz for each Band
|
||||
*/
|
||||
static Ptr<SpectrumValue> CreateHtOfdmTxPowerSpectralDensity(uint32_t centerFrequency,
|
||||
uint16_t channelWidth,
|
||||
@@ -167,9 +170,10 @@ class WifiSpectrumValueHelper
|
||||
* \param minInnerBandDbr the minimum relative power in the inner band (in dBr)
|
||||
* \param minOuterbandDbr the minimum relative power in the outer band (in dBr)
|
||||
* \param lowestPointDbr maximum relative power of the outermost subcarriers of the guard band
|
||||
* (in dBr) \param puncturedSubchannels bitmap indicating whether a 20 MHz subchannel is
|
||||
* punctured or not \return a pointer to a newly allocated SpectrumValue representing the HE
|
||||
* OFDM Transmit Power Spectral Density in W/Hz for each Band
|
||||
* (in dBr)
|
||||
* \param puncturedSubchannels bitmap indicating whether a 20 MHz subchannel is punctured or not
|
||||
* \return a pointer to a newly allocated SpectrumValue representing the HE OFDM Transmit Power
|
||||
* Spectral Density in W/Hz for each Band
|
||||
*/
|
||||
static Ptr<SpectrumValue> CreateHeOfdmTxPowerSpectralDensity(
|
||||
uint32_t centerFrequency,
|
||||
@@ -274,18 +278,24 @@ class WifiSpectrumValueHelper
|
||||
* between the inner and the middle bands.
|
||||
*
|
||||
* \param c spectrumValue to allocate according to transmit power spectral density mask (in W/Hz
|
||||
* for each band) \param allocatedSubBands vector of start and stop subcarrier indexes of the
|
||||
* allocated sub bands \param maskBand start and stop subcarrier indexes of transmit mask (in
|
||||
* case signal doesn't cover whole SpectrumModel) \param txPowerPerBandW power allocated to each
|
||||
* subcarrier in the allocated sub bands \param nGuardBands size (in number of subcarriers) of
|
||||
* the guard band (left and right) \param innerSlopeWidth size (in number of subcarriers) of the
|
||||
* inner band (i.e. slope going from 0 dBr to -20 dBr in the figure above) \param
|
||||
* minInnerBandDbr the minimum relative power in the inner band (i.e. -20 dBr in the figure
|
||||
* above) \param minOuterbandDbr the minimum relative power in the outer band (i.e. -28 dBr in
|
||||
* the figure above) \param lowestPointDbr maximum relative power of the outermost subcarriers
|
||||
* of the guard band (in dBr) \param puncturedSubBands vector of start and stop subcarrier
|
||||
* indexes of the punctured sub bands \param puncturedSlopeWidth size (in number of subcarriers)
|
||||
* of the punctured band slope
|
||||
* for each band)
|
||||
* \param allocatedSubBands vector of start and stop subcarrier indexes of the allocated sub
|
||||
* bands
|
||||
* \param maskBand start and stop subcarrier indexes of transmit mask (in case signal doesn't
|
||||
* cover whole SpectrumModel)
|
||||
* \param txPowerPerBandW power allocated to each subcarrier in the allocated sub bands
|
||||
* \param nGuardBands size (in number of subcarriers) of the guard band (left and right)
|
||||
* \param innerSlopeWidth size (in number of subcarriers) of the inner band (i.e. slope going
|
||||
* from 0 dBr to -20 dBr in the figure above)
|
||||
* \param minInnerBandDbr the minimum relative power in the inner band (i.e., -20 dBr in the
|
||||
* figure above)
|
||||
* \param minOuterbandDbr the minimum relative power in the outer band (i.e., -28 dBr in the
|
||||
* figure above)
|
||||
* \param lowestPointDbr maximum relative power of the outermost subcarriers of the guard band
|
||||
* (in dBr)
|
||||
* \param puncturedSubBands vector of start and stop subcarrier indexes of the punctured sub
|
||||
* bands
|
||||
* \param puncturedSlopeWidth size (in number of subcarriers) of the punctured band slope
|
||||
*/
|
||||
static void CreateSpectrumMaskForOfdm(
|
||||
Ptr<SpectrumValue> c,
|
||||
|
||||
@@ -544,31 +544,31 @@ class QueueDisc : public Object
|
||||
void DoInitialize() override;
|
||||
|
||||
/**
|
||||
* \brief Perform the actions required when the queue disc is notified of
|
||||
* a packet dropped before enqueue
|
||||
* \param item item that was dropped
|
||||
* \param reason the reason why the item was dropped
|
||||
* This method must be called by subclasses to record that a packet was
|
||||
* dropped before enqueue for the specified reason
|
||||
* \brief Perform the actions required when the queue disc is notified of
|
||||
* a packet dropped before enqueue
|
||||
* \param item item that was dropped
|
||||
* \param reason the reason why the item was dropped
|
||||
* This method must be called by subclasses to record that a packet was
|
||||
* dropped before enqueue for the specified reason
|
||||
*/
|
||||
void DropBeforeEnqueue(Ptr<const QueueDiscItem> item, const char* reason);
|
||||
|
||||
/**
|
||||
* \brief Perform the actions required when the queue disc is notified of
|
||||
* a packet dropped after dequeue
|
||||
* \param item item that was dropped
|
||||
* \param reason the reason why the item was dropped
|
||||
* This method must be called by subclasses to record that a packet was
|
||||
* dropped after dequeue for the specified reason
|
||||
* \brief Perform the actions required when the queue disc is notified of
|
||||
* a packet dropped after dequeue
|
||||
* \param item item that was dropped
|
||||
* \param reason the reason why the item was dropped
|
||||
* This method must be called by subclasses to record that a packet was
|
||||
* dropped after dequeue for the specified reason
|
||||
*/
|
||||
void DropAfterDequeue(Ptr<const QueueDiscItem> item, const char* reason);
|
||||
|
||||
/**
|
||||
* \brief Marks the given packet and, if successful, updates the counters
|
||||
* associated with the given reason
|
||||
* \param item item that has to be marked
|
||||
* \param reason the reason why the item has to be marked
|
||||
* \return true if the item was successfully marked, false otherwise
|
||||
* \brief Marks the given packet and, if successful, updates the counters
|
||||
* associated with the given reason
|
||||
* \param item item that has to be marked
|
||||
* \param reason the reason why the item has to be marked
|
||||
* \return true if the item was successfully marked, false otherwise
|
||||
*/
|
||||
bool Mark(Ptr<QueueDiscItem> item, const char* reason);
|
||||
|
||||
@@ -671,21 +671,21 @@ class QueueDisc : public Object
|
||||
bool Transmit(Ptr<QueueDiscItem> item);
|
||||
|
||||
/**
|
||||
* \brief Perform the actions required when the queue disc is notified of
|
||||
* a packet enqueue
|
||||
* \param item item that was enqueued
|
||||
* \brief Perform the actions required when the queue disc is notified of
|
||||
* a packet enqueue
|
||||
* \param item item that was enqueued
|
||||
*/
|
||||
void PacketEnqueued(Ptr<const QueueDiscItem> item);
|
||||
|
||||
/**
|
||||
* \brief Perform the actions required when the queue disc is notified of
|
||||
* a packet dequeue
|
||||
* \param item item that was dequeued
|
||||
* \brief Perform the actions required when the queue disc is notified of
|
||||
* a packet dequeue
|
||||
* \param item item that was dequeued
|
||||
*/
|
||||
void PacketDequeued(Ptr<const QueueDiscItem> item);
|
||||
|
||||
static const uint32_t DEFAULT_QUOTA =
|
||||
64; //!< Default quota (as in /proc/sys/net/core/dev_weight)
|
||||
/// Default quota (as in /proc/sys/net/core/dev_weight)
|
||||
static const uint32_t DEFAULT_QUOTA = 64;
|
||||
|
||||
std::vector<Ptr<InternalQueue>> m_queues; //!< Internal queues
|
||||
std::vector<Ptr<PacketFilter>> m_filters; //!< Packet filters
|
||||
|
||||
@@ -104,9 +104,11 @@ class TbfQueueDiscTestCase : public TestCase
|
||||
void Enqueue(Ptr<TbfQueueDisc> queue, Address dest, uint32_t size);
|
||||
/**
|
||||
* DequeueAndCheck function to check if a packet is blocked or not after dequeuing and verify
|
||||
* against expected result \param queue the queue disc on which DequeueAndCheck needs to be done
|
||||
* \param flag the boolean value against which the return value of dequeue () has to be compared
|
||||
* with \param printStatement the string to be printed in the NS_TEST_EXPECT_MSG_EQ
|
||||
* against expected result
|
||||
* \param queue the queue disc on which DequeueAndCheck needs to be done
|
||||
* \param flag the boolean value against which the return value of dequeue ()
|
||||
* has to be compared with
|
||||
* \param printStatement the string to be printed in the NS_TEST_EXPECT_MSG_EQ
|
||||
*/
|
||||
void DequeueAndCheck(Ptr<TbfQueueDisc> queue, bool flag, std::string printStatement);
|
||||
/**
|
||||
|
||||
@@ -228,11 +228,14 @@ class PyViz
|
||||
* \param [in] boundsY1 Bounding box, minimum Y coord
|
||||
* \param [in] boundsX2 Bounding box, maximum X coord
|
||||
* \param [in] boundsY2 Bounding box, maximum Y coord
|
||||
* \param [in,out] lineX1 Line, minimum X coord (any on input, clipped to the bounding box on
|
||||
* output) \param [in,out] lineY1 Line, minimum Y coord (any on input, clipped to the bounding
|
||||
* box on output) \param [in,out] lineX2 Line, maximum X coord (any on input, clipped to the
|
||||
* bounding box on output) \param [in,out] lineY2 Line, maximum Y coord (any on input, clipped
|
||||
* to the bounding box on output)
|
||||
* \param [in,out] lineX1 Line, minimum X coord (any on input, clipped to the bounding box
|
||||
* on output)
|
||||
* \param [in,out] lineY1 Line, minimum Y coord (any on input, clipped to the bounding box
|
||||
* on output)
|
||||
* \param [in,out] lineX2 Line, maximum X coord (any on input, clipped to the bounding box
|
||||
* on output)
|
||||
* \param [in,out] lineY2 Line, maximum Y coord (any on input, clipped to the bounding box
|
||||
* on output)
|
||||
*/
|
||||
// -#- @lineX1(direction=inout); @lineY1(direction=inout); @lineX2(direction=inout);
|
||||
// @lineY2(direction=inout) -#-
|
||||
@@ -276,14 +279,14 @@ class PyViz
|
||||
struct TransmissionSampleKey
|
||||
{
|
||||
/**
|
||||
* less than operator
|
||||
* Less than operator
|
||||
*
|
||||
* \param other object to compare
|
||||
* \return true if less than
|
||||
*/
|
||||
bool operator<(const TransmissionSampleKey& other) const;
|
||||
/**
|
||||
* equality operator
|
||||
* Equality operator
|
||||
*
|
||||
* \param other object to compare
|
||||
* \return true if equal
|
||||
@@ -300,22 +303,22 @@ class PyViz
|
||||
uint32_t bytes; ///< bytes
|
||||
};
|
||||
|
||||
// data
|
||||
// Data
|
||||
std::map<uint32_t, PacketCaptureOptions> m_packetCaptureOptions; ///< packet capture options
|
||||
std::vector<std::string> m_pauseMessages; ///< pause message
|
||||
std::map<TxRecordKey, TxRecordValue> m_txRecords; ///< transmit records
|
||||
std::map<TransmissionSampleKey, TransmissionSampleValue>
|
||||
m_transmissionSamples; ///< transmission samples
|
||||
std::map<Ptr<Node>, uint32_t> m_packetDrops; ///< packt drops
|
||||
std::map<Ptr<Node>, uint32_t> m_packetDrops; ///< packet drops
|
||||
std::set<uint32_t>
|
||||
m_nodesOfInterest; ///< list of node IDs whose transmissions will be monitored
|
||||
std::map<uint32_t, Time> m_packetsOfInterest; ///< list of packet UIDs that will be monitored
|
||||
std::map<uint32_t, LastPacketsSample> m_lastPackets; ///< last packets
|
||||
std::map<uint32_t, std::vector<NetDeviceStatistics>> m_nodesStatistics; ///< node statsitics
|
||||
std::map<uint32_t, std::vector<NetDeviceStatistics>> m_nodesStatistics; ///< node statistics
|
||||
|
||||
// Trace callbacks
|
||||
/**
|
||||
* network transmit common trace callback function
|
||||
* Network transmit common trace callback function
|
||||
* \param context the context
|
||||
* \param packet the packet
|
||||
* \param destination the destination MAC address
|
||||
@@ -324,7 +327,7 @@ class PyViz
|
||||
Ptr<const Packet> packet,
|
||||
const Mac48Address& destination);
|
||||
/**
|
||||
* network receive common trace callback function
|
||||
* Network receive common trace callback function
|
||||
* \param context the context
|
||||
* \param packet the packet
|
||||
* \param source the source MAC address
|
||||
@@ -334,31 +337,31 @@ class PyViz
|
||||
const Mac48Address& source);
|
||||
|
||||
/**
|
||||
* WIFI transmit trace callback function
|
||||
* Wi-Fi transmit trace callback function
|
||||
* \param context the context
|
||||
* \param packet the packet
|
||||
*/
|
||||
void TraceNetDevTxWifi(std::string context, Ptr<const Packet> packet);
|
||||
/**
|
||||
* WIFI receive trace callback function
|
||||
* Wi-Fi receive trace callback function
|
||||
* \param context the context
|
||||
* \param packet the packet
|
||||
*/
|
||||
void TraceNetDevRxWifi(std::string context, Ptr<const Packet> packet);
|
||||
|
||||
/**
|
||||
* queue drop trace callback function
|
||||
* Queue drop trace callback function
|
||||
* \param context the context
|
||||
* \param packet the packet
|
||||
*/
|
||||
void TraceDevQueueDrop(std::string context, Ptr<const Packet> packet);
|
||||
/**
|
||||
* ipv4 drop trace callback function
|
||||
* Ipv4 drop trace callback function
|
||||
* \param context the context
|
||||
* \param hdr the header
|
||||
* \param packet the packet
|
||||
* \param reason the drop reason
|
||||
* \param dummy_ipv4
|
||||
* \param dummy_ipv4 the dummy Ipv4
|
||||
* \param interface the interface
|
||||
*/
|
||||
void TraceIpv4Drop(std::string context,
|
||||
@@ -381,14 +384,14 @@ class PyViz
|
||||
*/
|
||||
void TraceNetDevRxCsma(std::string context, Ptr<const Packet> packet);
|
||||
/**
|
||||
* CSMA promiscious receive function
|
||||
* CSMA promiscuous receive function
|
||||
* \param context the context
|
||||
* \param packet the packet
|
||||
*/
|
||||
void TraceNetDevPromiscRxCsma(std::string context, Ptr<const Packet> packet);
|
||||
|
||||
/**
|
||||
* Point to point transmit trace calllback function
|
||||
* Point to point transmit trace callback function
|
||||
* \param context the context
|
||||
* \param packet the packet
|
||||
*/
|
||||
@@ -401,7 +404,7 @@ class PyViz
|
||||
void TraceNetDevRxPointToPoint(std::string context, Ptr<const Packet> packet);
|
||||
|
||||
/**
|
||||
* WIMax transmit trace callback function
|
||||
* WiMax transmit trace callback function
|
||||
* \param context the context
|
||||
* \param packet the packet
|
||||
* \param destination the destination MAC address
|
||||
@@ -410,7 +413,7 @@ class PyViz
|
||||
Ptr<const Packet> packet,
|
||||
const Mac48Address& destination);
|
||||
/**
|
||||
* WIMax transmit trace callback function
|
||||
* WiMax transmit trace callback function
|
||||
* \param context the context
|
||||
* \param packet the packet
|
||||
* \param source the source MAC address
|
||||
@@ -439,7 +442,7 @@ class PyViz
|
||||
const Mac48Address& source);
|
||||
|
||||
/**
|
||||
* Findnet device statistics function
|
||||
* Find net device statistics function
|
||||
* \param node the node
|
||||
* \param interface the interface number
|
||||
* \returns the device statistics
|
||||
@@ -454,7 +457,8 @@ class PyViz
|
||||
|
||||
bool m_stop; ///< stop?
|
||||
Time m_runUntil; ///< run until time
|
||||
/// stop simulation callback function
|
||||
|
||||
/// Stop simulation callback function
|
||||
void CallbackStopSimulation();
|
||||
};
|
||||
|
||||
|
||||
@@ -243,8 +243,8 @@ class WaveNetDevice : public WifiNetDevice
|
||||
*/
|
||||
bool StartSch(const SchInfo& schInfo);
|
||||
/**
|
||||
* \param channelNumber the channel which access resource will be released.
|
||||
* \return whether channel access is released successfully
|
||||
* \param channelNumber the channel which access resource will be released.
|
||||
* \return whether channel access is released successfully
|
||||
*/
|
||||
bool StopSch(uint32_t channelNumber);
|
||||
|
||||
|
||||
@@ -79,7 +79,8 @@ class ErrorRateModel : public Object
|
||||
* \param nbits the number of bits in this chunk
|
||||
* \param numRxAntennas the number of active RX antennas (1 if not provided)
|
||||
* \param field the PPDU field to which the chunk belongs to (assumes this is for the payload
|
||||
* part if not provided) \param staId the station ID for MU
|
||||
* part if not provided)
|
||||
* \param staId the station ID for MU
|
||||
*
|
||||
* \return probability of successfully receiving the chunk
|
||||
*/
|
||||
|
||||
@@ -458,7 +458,8 @@ class HePhy : public VhtPhy
|
||||
*
|
||||
* \param event the event holding incoming PPDU's information
|
||||
* \param status the status of the reception of the correctly received SIG-A after the
|
||||
* configuration support check \return the updated status of the reception of the SIG-A
|
||||
* configuration support check
|
||||
* \return the updated status of the reception of the SIG-A
|
||||
*/
|
||||
virtual PhyFieldRxStatus ProcessSigA(Ptr<Event> event, PhyFieldRxStatus status);
|
||||
|
||||
@@ -468,7 +469,8 @@ class HePhy : public VhtPhy
|
||||
*
|
||||
* \param event the event holding incoming PPDU's information
|
||||
* \param status the status of the reception of the correctly received SIG-A after the
|
||||
* configuration support check \return the updated status of the reception of the SIG-B
|
||||
* configuration support check
|
||||
* \return the updated status of the reception of the SIG-B
|
||||
*/
|
||||
virtual PhyFieldRxStatus ProcessSigB(Ptr<Event> event, PhyFieldRxStatus status);
|
||||
|
||||
|
||||
@@ -62,8 +62,9 @@ class HtCapabilities : public WifiInformationElement
|
||||
* Set the Supported MCS Set field in the HT Capabilities information element.
|
||||
*
|
||||
* \param ctrl1 the first 64 bytes of the Supported MCS Set field in the HT Capabilities
|
||||
* information element \param ctrl2 the last 64 bytes of the Supported MCS Set field in the HT
|
||||
* Capabilities information element
|
||||
* information element
|
||||
* \param ctrl2 the last 64 bytes of the Supported MCS Set field in the HT Capabilities
|
||||
* information element
|
||||
*/
|
||||
void SetSupportedMcsSet(uint64_t ctrl1, uint64_t ctrl2);
|
||||
/**
|
||||
|
||||
@@ -82,8 +82,9 @@ class HtOperation : public WifiInformationElement
|
||||
/**
|
||||
* Set the Basic MCS Set field in the HT Operation information element.
|
||||
*
|
||||
* \param ctrl1 the first 64 bytes of the Basic MCS Set field in the HT Operation information
|
||||
* element \param ctrl2 the last 64 bytes of the Basic MCS Set field in the HT Operation
|
||||
* \param ctrl1 the first 64 bytes of the Basic MCS Set field in the HT Operation
|
||||
* information element
|
||||
* \param ctrl2 the last 64 bytes of the Basic MCS Set field in the HT Operation
|
||||
* information element
|
||||
*/
|
||||
void SetBasicMcsSet(uint64_t ctrl1, uint64_t ctrl2);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user