A helper to make it easier to instantiate an ns3::QKDAppApplication on a set of nodes. More...
#include "qkd-app-helper.h"
Collaboration diagram for ns3::QKDAppHelper:Private Member Functions | |
| ApplicationContainer | InstallPriv (Ptr< NetDevice > net1, Ptr< NetDevice > net2) const |
| Install an ns3::QKDAppApplication on the node configured with all the attributes set with SetAttribute. | |
Private Attributes | |
| ObjectFactory | m_factory_kms_app |
| Object factory. | |
| ObjectFactory | m_factory_lr_app |
| ObjectFactory | m_factory_postprocessing_app |
| Object factory. | |
| ObjectFactory | m_factory_qkd_app |
| Object factory. | |
| std::string | m_protocol |
Static Private Attributes | |
| static uint32_t | appCounter = 0 |
A helper to make it easier to instantiate an ns3::QKDAppApplication on a set of nodes.
Definition at line 37 of file qkd-app-helper.h.
| ns3::QKDAppHelper::QKDAppHelper | ( | ) |
Create an QKDAppHelper to make it easier to work with QKD Applications (KMS, Post-processing and other)
| protocol | the name of the protocol to use to send traffic by the applications. This string identifies the socket factory type used to create sockets for the applications. A typical value would be ns3::UdpSocketFactory. |
| address | the address of the remote node to send traffic to. |
Definition at line 28 of file qkd-app-helper.cc.
References ns3::Create(), ns3::Ipv4Address::GetAny(), m_factory_kms_app, m_factory_lr_app, m_factory_postprocessing_app, m_factory_qkd_app, and ns3::ObjectFactory::SetTypeId().
Here is the call graph for this function:| ns3::QKDAppHelper::QKDAppHelper | ( | std::string | protocol, |
| Address | address | ||
| ) |
| ns3::QKDAppHelper::QKDAppHelper | ( | std::string | protocol, |
| Ipv4Address | addressSrc, | ||
| Ipv4Address | addressDst, | ||
| uint32_t | keyRate | ||
| ) |
Definition at line 38 of file qkd-app-helper.cc.
References ns3::Create(), and SetSettings().
Here is the call graph for this function:| void ns3::QKDAppHelper::InstallKeyManager | ( | Ptr< Node > | node, |
| Ipv4Address | kmsAddress, | ||
| uint32_t | port, | ||
| Ptr< QKDControl > | controller | ||
| ) |
Install key manager.
| node | node to install KM |
| kmsAddress | KM Ipv4 address |
| port | listening port |
| controller | competent controller's node |
Definition at line 75 of file qkd-app-helper.cc.
References ns3::ObjectFactory::Create(), ns3::Create(), m_factory_kms_app, NS_LOG_FUNCTION, port, ns3::UUID::Sequential(), ns3::QKDKeyManagerSystemApplication::SetId(), and ns3::UUID::string().
Here is the call graph for this function:| void ns3::QKDAppHelper::InstallKeyManager | ( | Ptr< Node > | node, |
| Ipv4Address | kmsAddress, | ||
| uint32_t | port, | ||
| Ptr< QKDControl > | controller, | ||
| Ptr< QCenController > | cenController | ||
| ) |
Definition at line 90 of file qkd-app-helper.cc.
References ns3::ObjectFactory::Create(), ns3::Create(), m_factory_kms_app, NS_LOG_FUNCTION, port, ns3::UUID::Sequential(), ns3::QKDKeyManagerSystemApplication::SetId(), and ns3::UUID::string().
Here is the call graph for this function:| ApplicationContainer ns3::QKDAppHelper::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 | ||
| ) |
Definition at line 106 of file qkd-app-helper.cc.
References ns3::Create(), InstallPostProcessing(), and packetSize.
Here is the call graph for this function:| ApplicationContainer ns3::QKDAppHelper::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 | ||
| ) |
UDP Protocol is used for sifting (implementation detail)
Obtain KM addresses from the QKDN Controller!
Definition at line 136 of file qkd-app-helper.cc.
References ns3::ApplicationContainer::Add(), ns3::ObjectFactory::Create(), ns3::Create(), ns3::Socket::CreateSocket(), ns3::QKDControl::GetLocalKMNode(), ns3::Object::GetObject(), ns3::TypeId::LookupByName(), m_factory_postprocessing_app, NS_LOG_FUNCTION, packetSize, ns3::UUID::Sequential(), ns3::ObjectFactory::Set(), and ns3::UUID::string().
Referenced by InstallPostProcessing().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Install an ns3::QKDAppApplication on the node configured with all the attributes set with SetAttribute.
| node | The node on which an QKDAppApplication will be installed. |
| ApplicationContainer ns3::QKDAppHelper::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 | ||
| ) |
Install a pair of cryptographic applications to consume keys.
| node1 | master application node |
| node2 | slave application node |
| masterAddress | master application address |
| slaveAddress | slave application address |
| control1 | QKDN controller node at site of master application |
| control2 | QKDN controller node at site of slave application |
| connectionType | connection type |
| packetSize | the size of data packets |
| dataRate | data rate |
| applicationType | the type of the application (etsi014 or etsi004) |
Definition at line 272 of file qkd-app-helper.cc.
References ns3::Create(), InstallQKDApplication(), and packetSize.
Here is the call graph for this function:| ApplicationContainer ns3::QKDAppHelper::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.
| node1 | master application node |
| node2 | slave application node |
| masterAddress | master application address |
| slaveAddress | slave application address |
| control1 | QKDN controller node at site of master application |
| control2 | QKDN controller node at site of slave application |
| connectionType | connection type |
| packetSize | the size of data packets |
| dataRate | data rate |
| applicationType | the type of the application (etsi014 or etsi004) |
Obtain KM addresses from the QKDN Controller!
Create unique identifiers
Definition at line 303 of file qkd-app-helper.cc.
References ns3::Create(), ns3::QKDControl::GetLocalKMNode(), ns3::QKDControl::GetLocalKMNodeId(), ns3::Object::GetObject(), NS_LOG_FUNCTION, packetSize, ns3::UUID::Sequential(), and ns3::UUID::string().
Referenced by InstallQKDApplication().
Here is the call graph for this function:
Here is the caller graph for this function:| void ns3::QKDAppHelper::SetAttribute | ( | std::string | mFactoryName, |
| std::string | name, | ||
| const AttributeValue & | value | ||
| ) |
Helper function used to set the underlying application attributes, not the socket attributes.
| name | the name of the application attribute to set |
| value | the value of the application attribute to set |
Definition at line 63 of file qkd-app-helper.cc.
References ns3::Create(), m_factory_kms_app, m_factory_postprocessing_app, m_factory_qkd_app, ns3::ObjectFactory::Set(), and ns3::value().
Here is the call graph for this function:| void ns3::QKDAppHelper::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 attributes set with SetAttribute.
| c | NodeContainer of the set of nodes on which an QKDAppApplication will be installed. |
Definition at line 44 of file qkd-app-helper.cc.
References ns3::Create(), ns3::Ipv4Address::GetAny(), m_factory_kms_app, m_protocol, port, and ns3::ObjectFactory::SetTypeId().
Referenced by QKDAppHelper().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 186 of file qkd-app-helper.h.
|
private |
Object factory.
Definition at line 179 of file qkd-app-helper.h.
Referenced by QKDAppHelper(), InstallKeyManager(), InstallKeyManager(), SetAttribute(), and SetSettings().
|
private |
Definition at line 182 of file qkd-app-helper.h.
Referenced by QKDAppHelper().
|
private |
Object factory.
Definition at line 181 of file qkd-app-helper.h.
Referenced by QKDAppHelper(), InstallPostProcessing(), and SetAttribute().
|
private |
Object factory.
Definition at line 180 of file qkd-app-helper.h.
Referenced by QKDAppHelper(), and SetAttribute().
|
private |
Definition at line 184 of file qkd-app-helper.h.
Referenced by SetSettings().