mirror of
https://gitlab.ibr.cs.tu-bs.de/tschuber/ns-3-leo.git
synced 2025-06-08 18:13:57 +02:00
Update doxygen documentation
This commit is contained in:
parent
61b6fd7ea1
commit
f17ff6abc6
38 changed files with 1023 additions and 124 deletions
|
@ -25,12 +25,34 @@
|
|||
#include "ns3/applications-module.h"
|
||||
#include "ns3/node-container.h"
|
||||
|
||||
/**
|
||||
* \file
|
||||
* \ingroup leo
|
||||
* Declares ArpCacheHelper
|
||||
*/
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
/**
|
||||
* \ingroup leo
|
||||
* \brief Prepares the ARP cache, so the addresses do not have to be queried
|
||||
*/
|
||||
class ArpCacheHelper
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* \brief Install the addresses of the interfaces into the ARP caches of the devices
|
||||
* \param devices devices
|
||||
* \param interfaces interfaces
|
||||
*/
|
||||
void Install (NetDeviceContainer &devices, Ipv4InterfaceContainer &interfaces) const;
|
||||
|
||||
/**
|
||||
* \brief Install the addresses of the interfaces into the ARP caches of the devices
|
||||
* \param deviceSrc devices
|
||||
* \param deviceDst devices
|
||||
* \param interfaces interfaces
|
||||
*/
|
||||
void Install (NetDeviceContainer &devicesSrc, NetDeviceContainer &devicesDst, Ipv4InterfaceContainer &interfaces) const;
|
||||
};
|
||||
|
||||
|
|
|
@ -29,29 +29,35 @@
|
|||
#define LEO_GND_RAD_EARTH 6.371e6
|
||||
|
||||
/**
|
||||
* \brief Builds a node container of nodes with constant positions
|
||||
*
|
||||
* Adds waypoints from file for each node.
|
||||
* \file
|
||||
* \ingroup leo
|
||||
*/
|
||||
|
||||
namespace ns3
|
||||
{
|
||||
|
||||
/**
|
||||
* \ingroup leo
|
||||
* \brief Builds a node container of nodes with constant positions
|
||||
* Adds waypoints from file for each node.
|
||||
*/
|
||||
class LeoGndNodeHelper
|
||||
{
|
||||
public:
|
||||
/// constructor
|
||||
LeoGndNodeHelper ();
|
||||
/// deconstructor
|
||||
virtual ~LeoGndNodeHelper ();
|
||||
|
||||
/**
|
||||
*
|
||||
* \brief Create a node container with nodes at the positions in file
|
||||
* \param file path to latitude longitude file
|
||||
* \returns a node container containing nodes using the specified attributes
|
||||
*/
|
||||
NodeContainer Install (const std::string &file);
|
||||
|
||||
/**
|
||||
*
|
||||
* \brief Create a node container with uniformly distributed nodes
|
||||
* \param latNodes a number of nodes to in latitude direction
|
||||
* \param lonNodes a number of nodes to in longitude direction
|
||||
* \returns a node container containing nodes using the specified attributes
|
||||
|
@ -59,7 +65,7 @@ public:
|
|||
NodeContainer Install (uint32_t latNodes, uint32_t lonNodes);
|
||||
|
||||
/**
|
||||
*
|
||||
* \brief Install two nodes at two locations
|
||||
* \param location1 first location
|
||||
* \param location2 second location
|
||||
* \returns a node container containing nodes using the specified attributes
|
||||
|
@ -68,16 +74,17 @@ public:
|
|||
const LeoLatLong &location2);
|
||||
|
||||
/**
|
||||
* Set an attribute for each node
|
||||
*
|
||||
* \brief Set an attribute for each node
|
||||
* \param name name of the attribute
|
||||
* \param value value of the attribute
|
||||
*/
|
||||
void SetAttribute (std::string name, const AttributeValue &value);
|
||||
|
||||
private:
|
||||
/// Fatory for nodes
|
||||
ObjectFactory m_gndNodeFactory;
|
||||
|
||||
/// Convert the latitude and longitude to a position on a sphere
|
||||
static Vector3D GetEarthPosition (const LeoLatLong &loc);
|
||||
};
|
||||
|
||||
|
|
|
@ -27,17 +27,20 @@
|
|||
|
||||
#include <ns3/trace-helper.h>
|
||||
|
||||
/**
|
||||
* \file
|
||||
* \ingroup leo
|
||||
* Declares IslNetDevice
|
||||
*/
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
class NetDevice;
|
||||
class Node;
|
||||
|
||||
/**
|
||||
* \ingroup leo
|
||||
* \brief Build a set of IslNetDevice objects
|
||||
*
|
||||
* Normally we eschew multiple inheritance, however, the classes
|
||||
* PcapUserHelperForDevice and AsciiTraceUserHelperForDevice are
|
||||
* "mixins".
|
||||
*/
|
||||
class IslHelper : public PcapHelperForDevice,
|
||||
public AsciiTraceHelperForDevice
|
||||
|
@ -158,7 +161,6 @@ public:
|
|||
bool explicitFilename);
|
||||
|
||||
private:
|
||||
|
||||
ObjectFactory m_queueFactory; //!< Queue Factory
|
||||
ObjectFactory m_channelFactory; //!< Channel Factory
|
||||
ObjectFactory m_deviceFactory; //!< Device Factory
|
||||
|
|
|
@ -27,38 +27,136 @@
|
|||
|
||||
#include <ns3/trace-helper.h>
|
||||
|
||||
/**
|
||||
* \file
|
||||
* \ingroup leo
|
||||
* Declares LeoChannelHelper
|
||||
*/
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
/**
|
||||
* \ingroup leo
|
||||
* \brief Build a channel for transmissions between ns3::LeoMockNetDevice s
|
||||
*/
|
||||
class LeoChannelHelper : public PcapHelperForDevice,
|
||||
public AsciiTraceHelperForDevice
|
||||
{
|
||||
public:
|
||||
/// constructor
|
||||
LeoChannelHelper ();
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* \param constellation name of the link parameter preset
|
||||
*/
|
||||
LeoChannelHelper (std::string constellation);
|
||||
|
||||
/// destructor
|
||||
virtual ~LeoChannelHelper ()
|
||||
{};
|
||||
|
||||
/**
|
||||
* \brief Install the satellites and stations into the channel
|
||||
* \param satellites satellites
|
||||
* \param stations ground stations
|
||||
* \return container of network devices attached to the channel
|
||||
*/
|
||||
NetDeviceContainer Install (NodeContainer &satellites, NodeContainer &stations);
|
||||
|
||||
/**
|
||||
* \brief Install the satellites and stations into the channel
|
||||
* \param satellites satellites
|
||||
* \param stations ground stations
|
||||
* \return container of network devices attached to the channel
|
||||
*/
|
||||
NetDeviceContainer Install (std::vector<Ptr<Node> > &satellites, std::vector<Ptr<Node> > &stations);
|
||||
|
||||
/**
|
||||
* \brief Install the satellites and stations into the channel
|
||||
* \param satellites satellites
|
||||
* \param stations ground stations
|
||||
* \return container of network devices attached to the channel
|
||||
*/
|
||||
NetDeviceContainer Install (std::vector<std::string> &satellites, std::vector<std::string> &stations);
|
||||
|
||||
/**
|
||||
* \brief Set the type and attributes of the queues of the ground stations
|
||||
* \param type type of the queue
|
||||
* \param n1 name of an attribute of the queue
|
||||
* \param v1 value of an attribute of the queue
|
||||
* \param n2 name of an attribute of the queue
|
||||
* \param v2 value of an attribute of the queue
|
||||
* \param n3 name of an attribute of the queue
|
||||
* \param v3 value of an attribute of the queue
|
||||
* \param n4 name of an attribute of the queue
|
||||
* \param v4 value of an attribute of the queue
|
||||
*/
|
||||
void SetGndQueue (std::string type,
|
||||
std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
|
||||
std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
|
||||
std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
|
||||
std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue ());
|
||||
|
||||
/**
|
||||
* \brief Set the type and attributes of the queues of the satellite devices
|
||||
* \param type type of the queue
|
||||
* \param n1 name of an attribute of the queue
|
||||
* \param v1 value of an attribute of the queue
|
||||
* \param n2 name of an attribute of the queue
|
||||
* \param v2 value of an attribute of the queue
|
||||
* \param n3 name of an attribute of the queue
|
||||
* \param v3 value of an attribute of the queue
|
||||
* \param n4 name of an attribute of the queue
|
||||
* \param v4 value of an attribute of the queue
|
||||
*/
|
||||
void SetSatQueue (std::string type,
|
||||
std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
|
||||
std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
|
||||
std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
|
||||
std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue ());
|
||||
|
||||
/**
|
||||
* \brief Set the type and attributes of the devices of the ground devices
|
||||
* \param type type of the device
|
||||
* \param n1 name of an attribute of the device
|
||||
* \param v1 value of an attribute of the device
|
||||
* \param n2 name of an attribute of the device
|
||||
* \param v2 value of an attribute of the device
|
||||
* \param n3 name of an attribute of the device
|
||||
* \param v3 value of an attribute of the device
|
||||
* \param n4 name of an attribute of the device
|
||||
* \param v4 value of an attribute of the device
|
||||
*/
|
||||
void SetGndDeviceAttribute (std::string name, const AttributeValue &value);
|
||||
|
||||
/**
|
||||
* \brief Set the type and attributes of the devices of the satellite devices
|
||||
* \param type type of the device
|
||||
* \param n1 name of an attribute of the device
|
||||
* \param v1 value of an attribute of the device
|
||||
* \param n2 name of an attribute of the device
|
||||
* \param v2 value of an attribute of the device
|
||||
* \param n3 name of an attribute of the device
|
||||
* \param v3 value of an attribute of the device
|
||||
* \param n4 name of an attribute of the device
|
||||
* \param v4 value of an attribute of the device
|
||||
*/
|
||||
void SetSatDeviceAttribute (std::string name, const AttributeValue &value);
|
||||
|
||||
/**
|
||||
* \brief Set the type and attributes of the channel
|
||||
* \param type type of the channel
|
||||
* \param n1 name of an attribute of the channel
|
||||
* \param v1 value of an attribute of the channel
|
||||
* \param n2 name of an attribute of the channel
|
||||
* \param v2 value of an attribute of the channel
|
||||
* \param n3 name of an attribute of the channel
|
||||
* \param v3 value of an attribute of the channel
|
||||
* \param n4 name of an attribute of the channel
|
||||
* \param v4 value of an attribute of the channel
|
||||
*/
|
||||
void SetChannelAttribute (std::string name, const AttributeValue &value);
|
||||
|
||||
virtual void EnablePcapInternal (std::string prefix, Ptr<NetDevice> nd, bool promiscuous, bool explicitFilename);
|
||||
|
@ -67,20 +165,44 @@ public:
|
|||
Ptr<NetDevice> nd,
|
||||
bool explicitFilename);
|
||||
|
||||
/**
|
||||
* \brief Set the link parameter preset
|
||||
* \param constellation name of the link parameter preset
|
||||
*/
|
||||
void SetConstellation (std::string constellation);
|
||||
|
||||
private:
|
||||
/// Satellite queues
|
||||
ObjectFactory m_satQueueFactory;
|
||||
/// Ground station queues
|
||||
ObjectFactory m_gndDeviceFactory;
|
||||
|
||||
/// Satellite devices
|
||||
ObjectFactory m_satDeviceFactory;
|
||||
/// Ground station devices
|
||||
ObjectFactory m_gndQueueFactory;
|
||||
|
||||
/// Channel
|
||||
ObjectFactory m_channelFactory;
|
||||
|
||||
/// Propagation loss models
|
||||
ObjectFactory m_propagationLossFactory;
|
||||
//
|
||||
/// Propagation delay models
|
||||
ObjectFactory m_propagationDelayFactory;
|
||||
|
||||
/**
|
||||
* \brief Set the factory and attributes of the queue
|
||||
* \param factory queue factory
|
||||
* \param n1 name of an attribute of the factory
|
||||
* \param v1 value of an attribute of the factory
|
||||
* \param n2 name of an attribute of the factory
|
||||
* \param v2 value of an attribute of the factory
|
||||
* \param n3 name of an attribute of the factory
|
||||
* \param v3 value of an attribute of the factory
|
||||
* \param n4 name of an attribute of the factory
|
||||
* \param v4 value of an attribute of the factory
|
||||
*/
|
||||
void SetQueue (ObjectFactory &factory,
|
||||
std::string type,
|
||||
std::string n1, const AttributeValue &v1,
|
||||
|
@ -89,6 +211,17 @@ private:
|
|||
std::string n4, const AttributeValue &v4);
|
||||
|
||||
|
||||
/**
|
||||
* \brief Set the attributes of the link and propagation loss model
|
||||
* \param eirp EIRP
|
||||
* \param elevationAngle elevation angle of satellite beam
|
||||
* \param fspl free space loss
|
||||
* \param atmosphericLoss atmospheric loss
|
||||
* \param linkMargin link margin
|
||||
* \param dataRate data rate
|
||||
* \param rxGain receiver gain
|
||||
* \param rxLoss receiver loss
|
||||
*/
|
||||
void SetConstellationAttributes (double eirp,
|
||||
double elevationAngle,
|
||||
double fspl,
|
||||
|
|
|
@ -23,32 +23,82 @@
|
|||
#include "ns3/object.h"
|
||||
#include "ns3/waypoint.h"
|
||||
|
||||
/**
|
||||
* \file
|
||||
* \ingroup leo
|
||||
* Declares LeoWaypointInputFileStreamContainer
|
||||
*/
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace ns3
|
||||
{
|
||||
|
||||
/**
|
||||
* \ingroup leo
|
||||
* \brief Wrapper around a stream of Waypoint
|
||||
*/
|
||||
class LeoWaypointInputFileStreamContainer : public Object
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* \brief Get the type ID.
|
||||
* \return the object TypeId
|
||||
*/
|
||||
static TypeId GetTypeId (void);
|
||||
|
||||
/// constructor
|
||||
LeoWaypointInputFileStreamContainer ();
|
||||
/// destructor
|
||||
virtual ~LeoWaypointInputFileStreamContainer ();
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* \param filePath path to waypoints file
|
||||
* \param lastTime the time until which to read waypoints
|
||||
*/
|
||||
LeoWaypointInputFileStreamContainer (string filePath, Time lastTime);
|
||||
|
||||
/**
|
||||
* \brief Get next waypoint
|
||||
* \param [out] next waypoint
|
||||
* \return true iff there are more waypoints
|
||||
*/
|
||||
bool GetNextSample (Waypoint &sample);
|
||||
|
||||
/**
|
||||
* \brief Set the path to the waypoint file
|
||||
* \param path path to the waypoint file
|
||||
*/
|
||||
void SetFile (const string path);
|
||||
|
||||
/**
|
||||
* \brief Get the path to the waypoint file
|
||||
* \return path to the waypoint file
|
||||
*/
|
||||
string GetFile () const;
|
||||
|
||||
/**
|
||||
* \brief Set the path to the last time slot
|
||||
* \param lastTime last time slot
|
||||
*/
|
||||
void SetLastTime (const Time lastTime);
|
||||
|
||||
/**
|
||||
* \brief Get the last time slot
|
||||
* \return last time slot
|
||||
*/
|
||||
Time GetLastTime () const;
|
||||
|
||||
private:
|
||||
/// Path to the waypoints file
|
||||
string m_filePath;
|
||||
|
||||
/// Time of the last timestamp
|
||||
Time m_lastTime;
|
||||
|
||||
/// Waypoint file stream
|
||||
ifstream m_input;
|
||||
|
||||
};
|
||||
|
|
|
@ -28,19 +28,27 @@
|
|||
#include "ns3/leo-orbit.h"
|
||||
|
||||
/**
|
||||
* \brief Builds a node container of nodes with LEO positions using a list of
|
||||
* orbit definitions.
|
||||
*
|
||||
* Adds orbits with from a file for each node.
|
||||
* \file
|
||||
* \ingroup leo
|
||||
*/
|
||||
|
||||
namespace ns3
|
||||
{
|
||||
|
||||
/**
|
||||
* \ingroup leo
|
||||
* \brief Builds a node container of nodes with LEO positions using a list of
|
||||
* orbit definitions.
|
||||
*
|
||||
* Adds orbits with from a file for each node.
|
||||
*/
|
||||
class LeoOrbitNodeHelper
|
||||
{
|
||||
public:
|
||||
/// constructor
|
||||
LeoOrbitNodeHelper ();
|
||||
|
||||
/// destructor
|
||||
virtual ~LeoOrbitNodeHelper ();
|
||||
|
||||
/**
|
||||
|
@ -73,6 +81,7 @@ public:
|
|||
void SetAttribute (std::string name, const AttributeValue &value);
|
||||
|
||||
private:
|
||||
/// Factory for nodes
|
||||
ObjectFactory m_nodeFactory;
|
||||
};
|
||||
|
||||
|
|
|
@ -25,12 +25,34 @@
|
|||
#ifndef NDS_CACHE_HELPER_
|
||||
#define NDS_CACHE_HELPER_
|
||||
|
||||
/**
|
||||
* \file
|
||||
* \ingroup leo
|
||||
* Declares NdCacheHelper
|
||||
*/
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
/**
|
||||
* \ingroup leo
|
||||
* \brief Neighbor Cache helper fills the neighbor cache
|
||||
*/
|
||||
class NdCacheHelper
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* \brief Fill the cache of devices with addresses
|
||||
* \param devices devices
|
||||
* \param interfaces interfaces that have addresses
|
||||
*/
|
||||
void Install (NetDeviceContainer &devices, Ipv6InterfaceContainer &interfaces) const;
|
||||
|
||||
/**
|
||||
* \brief Fill the cache of devices with addresses
|
||||
* \param devicesSrc devices
|
||||
* \param devicesDst devices
|
||||
* \param interfaces interfaces that have addresses
|
||||
*/
|
||||
void Install (NetDeviceContainer &devicesSrc, NetDeviceContainer &devicesDst, Ipv6InterfaceContainer &interfaces) const;
|
||||
};
|
||||
|
||||
|
|
|
@ -27,38 +27,46 @@
|
|||
#include "ns3/leo-input-fstream-container.h"
|
||||
|
||||
/**
|
||||
* \brief Builds a node container with a waypoint mobility model
|
||||
*
|
||||
* Adds waypoints from file for each node.
|
||||
* The node satId must must correspond to the NORAD id from Celestrack.
|
||||
* \file
|
||||
* \ingroup leo
|
||||
*/
|
||||
|
||||
namespace ns3
|
||||
{
|
||||
|
||||
/**
|
||||
* \ingroup leo
|
||||
* \brief Builds a node container with a waypoint mobility model
|
||||
*
|
||||
* Adds waypoints from file for each node.
|
||||
* The node satId must must correspond to the NORAD id from Celestrack.
|
||||
*/
|
||||
class LeoSatNodeHelper
|
||||
{
|
||||
public:
|
||||
/// constructor
|
||||
LeoSatNodeHelper ();
|
||||
/// destructor
|
||||
virtual ~LeoSatNodeHelper ();
|
||||
|
||||
/**
|
||||
*
|
||||
* \brief Install the nodes
|
||||
* \param nodeIds paths to satellite to waypoint files
|
||||
* \returns a node container containing nodes using the specified attributes
|
||||
*/
|
||||
NodeContainer Install (std::vector<std::string> &wpFiles);
|
||||
|
||||
/**
|
||||
* Set an attribute for each node
|
||||
*
|
||||
* \brief Set an attribute for each node
|
||||
* \param name name of the attribute
|
||||
* \param value value of the attribute
|
||||
*/
|
||||
void SetAttribute (std::string name, const AttributeValue &value);
|
||||
|
||||
private:
|
||||
/// Satellite nodes
|
||||
ObjectFactory m_satNodeFactory;
|
||||
/// Stream of waypoints
|
||||
LeoWaypointInputFileStreamContainer m_fileStreamContainer;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue