11#ifndef QKD_APP_HELPER_H
12#define QKD_APP_HELPER_H
16#include "ns3/object-factory.h"
17#include "ns3/address.h"
18#include "ns3/attribute.h"
19#include "ns3/net-device.h"
20#include "ns3/net-device-container.h"
21#include "ns3/node-container.h"
22#include "ns3/application-container.h"
23#include "ns3/qkd-postprocessing-application.h"
25#include "ns3/qcen-control.h"
26#include "ns3/qkd-app-014.h"
27#include "ns3/qkd-app-004.h"
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.
ApplicationContainer InstallQKDApplication(Ptr< Node > node1, Ptr< Node > node2, Address masterAddress, Address slaveAddress, Ptr< Node > control1, Ptr< Node > control2, std::string connectionType, uint32_t packetSize, DataRate dataRate, std::string applicationType, std::string masterUUID, std::string slaveUUID)
Install a pair of cryptographic applications to consume keys.
ObjectFactory m_factory_postprocessing_app
Object factory.
ObjectFactory m_factory_qkd_app
Object factory.
void InstallKeyManager(Ptr< Node > node, Ipv4Address kmsAddress, uint32_t port, Ptr< QKDControl > controller)
Install key manager.
void SetAttribute(std::string mFactoryName, std::string name, const AttributeValue &value)
Helper function used to set the underlying application attributes, not the socket attributes.
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_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...
ApplicationContainer InstallPostProcessing(Ptr< Node > node1, Ptr< Node > node2, Address masterAddress, Address slaveAddress, Ptr< Node > control1, Ptr< Node > control2, uint32_t keySize, DataRate keyRate, uint32_t packetSize, DataRate dataRate, std::string masterUUID, std::string slaveUUID)
QKDAppHelper(std::string protocol, Address address)
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
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static unsigned int value(char c)
static const uint32_t packetSize
Packet size generated at the AP.