21 #ifndef QKD_APP_HELPER_H
22 #define QKD_APP_HELPER_H
26 #include "ns3/object-factory.h"
27 #include "ns3/address.h"
28 #include "ns3/attribute.h"
29 #include "ns3/net-device.h"
30 #include "ns3/net-device-container.h"
31 #include "ns3/node-container.h"
32 #include "ns3/application-container.h"
33 #include "ns3/qkd-postprocessing-application.h"
157 uint32_t keySizeInBits,
a polymophic address class
holds a vector of ns3::Application pointers.
Hold a value for an Attribute.
Class for representing data rates.
Ipv4 addresses are stored in host order in this class.
Instantiate subclasses of ns3::Object.
Smart pointer class similar to boost::intrusive_ptr.
A helper to make it easier to instantiate an ns3::QKDAppApplication on a set of nodes.
void ConnectKMSToSDN(Ptr< Node > kmsNode, Ipv4Address sdnAddress, uint32_t port)
ObjectFactory m_factory_postprocessing_app
Object factory.
ObjectFactory m_factory_qkd_app
Object factory.
ApplicationContainer InstallPostProcessing(Ptr< Node > node1, Ptr< Node > node2, Address masterAddress, Address slaveAddress, Address masterKMSAddress, Address slaveKMSAddress, uint32_t keySizeInBits, DataRate keyRate, uint32_t packetSize, DataRate dataRate)
Install an ns3::QKDPostprocessingApplication on the node configured with all the attributes set with ...
void InstallSDN(Ptr< Node > node, Ipv4Address sdnAddress) const
Install an ns3::QKDKeyManagmentSystem on the node configured with all the attributes set with SetAttr...
void SetAttribute(std::string mFactoryName, std::string name, const AttributeValue &value)
Helper function used to set the underlying application attributes, not the socket attributes.
ApplicationContainer InstallQKDApp(Ptr< Node > node) const
Install an ns3::QKDApp on the node configured with all the attributes set with SetAttribute.
void SetSettings(std::string protocol, Ipv4Address master, Ipv4Address slave, uint32_t keyRate)
Install an ns3::QKDAppApplication on each node of the input container configured with all the attribu...
ObjectFactory m_factory_sdn_app
Object factory.
Ptr< QKDKeyManagerSystemApplication > InstallKMS(Ptr< Node > node, Ipv4Address kmsAddress) const
Install an ns3::QKDKeyManagmentSystem on the node configured with all the attributes set with SetAttr...
ObjectFactory m_factory_kms_app
Object factory.
ObjectFactory m_factory_lr_app
QKDAppHelper()
Create an QKDAppHelper to make it easier to work with QKD Applications (KMS, Post-processing and othe...
QKDAppHelper(std::string protocol, Address address)
Constructor.
ApplicationContainer InstallPriv(Ptr< NetDevice > net1, Ptr< NetDevice > net2) const
Install an ns3::QKDAppApplication on the node configured with all the attributes set with SetAttribut...
static uint32_t appCounter
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static const uint32_t packetSize