Build a set of QKDNetDevice objects such as QKD buffers QKD encryptors and QKD graphs. More...
#include "qkd-link-helper.h"
Collaboration diagram for ns3::QKDLinkHelper:Public Member Functions | |
| QKDLinkHelper () | |
| Constructor. More... | |
| virtual | ~QKDLinkHelper () |
| Destructor. More... | |
| void | AddGraph (Ptr< Node > src, Ptr< Node > dst) |
| Add a graph. More... | |
| void | AddGraph (Ptr< Node > src, Ptr< Node > dst, std::string graphName) |
| Add a graph. More... | |
| void | AddGraph (Ptr< Node > src, Ptr< Node > dst, std::string graphName, std::string graphType) |
| Add a graph. More... | |
| std::string | CreateQKDLink (Ptr< QKDControl > control, Ptr< Node > alice, Ptr< Node > bob, Ptr< Node > aliceKMS, Ptr< Node > bobKMS, uint32_t Mmin, uint32_t Mthr, uint32_t Mmax, uint32_t Mcurrent) |
| Create a QKD link. More... | |
| QKDControlContainer | InstallQKDControl (NodeContainer &n) |
| Install the QKD controll on nodes within a given container. More... | |
| Ptr< QKDControl > | InstallQKDControl (Ptr< Node > node) |
| Install the QKD control on a node. More... | |
| QKDEncryptorContainer | InstallQKDEncryptor (NodeContainer &n) |
| Install QKD encryptor on nodes within a given container. More... | |
| Ptr< QKDEncryptor > | InstallQKDEncryptor (Ptr< Node > node) |
| Install QKD encryptor on a node. More... | |
| void | PrintGraphs () |
| Print graphs. More... | |
Static Public Member Functions | |
| static void | CreateAndAggregateObjectFromTypeId (Ptr< Node > node, const std::string typeId) |
| Create an object from its TypeId and aggregates it to the node. More... | |
Public Attributes | |
| bool | m_useRealStorages |
| Wheater to use real key file storage (still in development). More... | |
Private Attributes | |
| ObjectFactory | m_qkdbufferFactory |
| Device Factory. More... | |
Build a set of QKDNetDevice objects such as QKD buffers QKD encryptors and QKD graphs.
Definition at line 55 of file qkd-link-helper.h.
| ns3::QKDLinkHelper::QKDLinkHelper | ( | ) |
Constructor.
Create a QKDLinkHelper to make life easier when creating point to point networks.
Definition at line 41 of file qkd-link-helper.cc.
References m_qkdbufferFactory, m_useRealStorages, and ns3::ObjectFactory::SetTypeId().
Here is the call graph for this function:
|
inlinevirtual |
Destructor.
Definition at line 70 of file qkd-link-helper.h.
Add a graph.
ADD QKDGraph.
Definition at line 53 of file qkd-link-helper.cc.
Referenced by AddGraph().
Here is the caller graph for this function:Add a graph.
ADD QKDGraph.
| src | The source node. |
| dst | The destination node. |
| graphName | The graph name. |
| Ptr<Node> | src |
| Ptr<Node> | dst |
| std::string | graphName |
Definition at line 67 of file qkd-link-helper.cc.
References AddGraph().
Here is the call graph for this function:| void ns3::QKDLinkHelper::AddGraph | ( | Ptr< Node > | src, |
| Ptr< Node > | dst, | ||
| std::string | graphName, | ||
| std::string | graphType | ||
| ) |
Add a graph.
ADD QKDGraph.
| src | The source node. |
| dst | The destination node. |
| graphName | The graph name. |
| graphType | The graph type. |
| Ptr<QKDControl> | QKDControl |
| Ptr<Node> | src |
| Ptr<Node> | dst |
| std::string | graphName |
| std::string | graphType |
Definition at line 83 of file qkd-link-helper.cc.
References ns3::QKDGraphManager::AddQKDBuffer(), ns3::QKDGraphManager::getInstance(), ns3::Object::GetObject(), NS_ASSERT, and NS_LOG_FUNCTION.
Here is the call graph for this function:
|
static |
Create an object from its TypeId and aggregates it to the node.
Help function used to aggregate protocols to the node such as virtual-tcp, virtual-udp, virtual-ipv4-l3.
Definition at line 185 of file qkd-link-helper.cc.
References ns3::Object::AggregateObject(), ns3::ObjectFactory::Create(), and ns3::ObjectFactory::SetTypeId().
Here is the call graph for this function:| std::string ns3::QKDLinkHelper::CreateQKDLink | ( | Ptr< QKDControl > | centralControler, |
| Ptr< Node > | alice, | ||
| Ptr< Node > | bob, | ||
| Ptr< Node > | aliceKMS, | ||
| Ptr< Node > | bobKMS, | ||
| uint32_t | Mmin, | ||
| uint32_t | Mthr, | ||
| uint32_t | Mmax, | ||
| uint32_t | Mcurrent | ||
| ) |
Create a QKD link.
Create and setup QKD link between two nodes.
| control | The QKD control. |
| alice | The source node. |
| bob | The destination node. |
| aliceKMS | The source KMS node. |
| bobKMS | The destination KMS node. |
| Mmin | The lower threshold value. |
| Mthr | The threshold value, |
| Mmax | The maximum capacity. |
| Mcurrent | The current amount of key material in bits. |
It notifies LKMS (Local QKD Manager about the connection).
QKDControl passed as parameter is the central control entity which is not currently used.
| Ptr<QKDControl> | QKDControl |
| Ptr<Node> | alice |
| Ptr<Node> | alice |
| uint32_t | Mmin |
| uint32_t | Mthr |
| uint32_t | Mmmax |
| uint32_t | Mcurrent |
Definition at line 209 of file qkd-link-helper.cc.
References ns3::Node::GetId(), ns3::Object::GetObject(), InstallQKDControl(), ns3::QKDControl::QKDLink::keyAssociationId, m_useRealStorages, and NS_LOG_FUNCTION.
Here is the call graph for this function:| QKDControlContainer ns3::QKDLinkHelper::InstallQKDControl | ( | NodeContainer & | n | ) |
Install the QKD controll on nodes within a given container.
Install QKDControl on the node.
| n | The node container. |
| NodeContainer& | n |
Definition at line 138 of file qkd-link-helper.cc.
References ns3::QKDControlContainer::Add(), ns3::NodeContainer::Get(), ns3::NodeContainer::GetN(), and InstallQKDControl().
Here is the call graph for this function:| Ptr< QKDControl > ns3::QKDLinkHelper::InstallQKDControl | ( | Ptr< Node > | n | ) |
Install the QKD control on a node.
Install QKDControl on the node.
| node | The node. |
| NodeContainer& | n |
Definition at line 120 of file qkd-link-helper.cc.
References ns3::Object::AggregateObject(), ns3::ObjectFactory::Create(), ns3::Object::GetObject(), and ns3::ObjectFactory::SetTypeId().
Referenced by CreateQKDLink(), and InstallQKDControl().
Here is the call graph for this function:
Here is the caller graph for this function:| QKDEncryptorContainer ns3::QKDLinkHelper::InstallQKDEncryptor | ( | NodeContainer & | n | ) |
Install QKD encryptor on nodes within a given container.
Install QKDEncryptor on the node.
| n | The node container. |
| NodeContainer& | n |
Definition at line 168 of file qkd-link-helper.cc.
References ns3::QKDEncryptorContainer::Add(), ns3::NodeContainer::Get(), ns3::NodeContainer::GetN(), and InstallQKDEncryptor().
Here is the call graph for this function:| Ptr< QKDEncryptor > ns3::QKDLinkHelper::InstallQKDEncryptor | ( | Ptr< Node > | n | ) |
Install QKD encryptor on a node.
Install QKDEncryptor on the node.
| node | The node. |
| NodeContainer& | n |
Definition at line 154 of file qkd-link-helper.cc.
References ns3::Object::AggregateObject(), ns3::ObjectFactory::Create(), and ns3::ObjectFactory::SetTypeId().
Referenced by InstallQKDEncryptor().
Here is the call graph for this function:
Here is the caller graph for this function:| void ns3::QKDLinkHelper::PrintGraphs | ( | ) |
Print graphs.
Print QKDGraphs.
Definition at line 109 of file qkd-link-helper.cc.
References ns3::QKDGraphManager::getInstance(), and ns3::QKDGraphManager::PrintGraphs().
Here is the call graph for this function:
|
private |
| bool ns3::QKDLinkHelper::m_useRealStorages |
Wheater to use real key file storage (still in development).
Definition at line 152 of file qkd-link-helper.h.
Referenced by QKDLinkHelper(), and CreateQKDLink().