Build a set of QKDNetDevice objects such as QKD buffers QKD encryptors and QKD graphs. More...
#include "qkd-link-helper.h"
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().
|
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().
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().
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.
|
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().
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.
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 openflow-switch::container, ns3::NodeContainer::Get(), ns3::NodeContainer::GetN(), and InstallQKDControl().
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().
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 openflow-switch::container, ns3::NodeContainer::Get(), ns3::NodeContainer::GetN(), and InstallQKDEncryptor().
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().
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().
|
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().