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: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 | |
Public Attributes | |
| bool | m_useRealStorages |
Private Member Functions | |
| std::vector< std::pair< uint32_t, uint32_t > > | DijkstraSP (std::vector< std::vector< std::pair< uint32_t, uint32_t > > > adjList, uint32_t start) |
| uint32_t | GetColumn (uint32_t nodeId) |
| uint32_t | ReverseColumn (uint32_t position) |
Private Attributes | |
| std::vector< std::vector< std::pair< uint32_t, uint32_t > > > | m_adjList |
| Ptr< QCenController > | m_cen_controller |
| Centralized control for rerouting. | |
| std::map< uint32_t, Ptr< QKDControl > > | m_controllers |
| std::vector< uint32_t > | m_indexToKmNodeId |
| std::unordered_map< uint32_t, uint32_t > | m_kmNodeIdToIndex |
| ObjectFactory | m_qkdbufferFactory |
| Device Factory. | |
Build a set of QKDNetDevice objects such as QKD buffers QKD encryptors and QKD graphs.
Definition at line 43 of file qkd-link-helper.h.
| ns3::QKDLinkHelper::QKDLinkHelper | ( | ) |
Create a QKDLinkHelper to make life easier when creating point to point networks.
Definition at line 30 of file qkd-link-helper.cc.
References m_adjList, m_controllers, and m_useRealStorages.
|
inlinevirtual |
Definition at line 52 of file qkd-link-helper.h.
ADD QKDGraph.
Definition at line 123 of file qkd-link-helper.cc.
References AddGraph().
Referenced by AddGraph(), and AddGraph().
Here is the call graph for this function:
Here is the caller graph for this function:ADD QKDGraph.
Definition at line 137 of file qkd-link-helper.cc.
References AddGraph(), and ns3::Create().
Here is the call graph for this function:| void ns3::QKDLinkHelper::AddGraph | ( | Ptr< Node > | srcKMSNode, |
| Ptr< Node > | dstKmsNode, | ||
| std::string | graphName, | ||
| std::string | graphType | ||
| ) |
ADD QKDGraph.
| Ptr<QKDControl> | QKDControl |
| Ptr<Node> | src |
| Ptr<Node> | dst |
| std::string | graphName |
| std::string | graphType |
Definition at line 154 of file qkd-link-helper.cc.
References ns3::Create(), ns3::QKDGraphManager::CreateGraphForBuffer(), ns3::QKDGraphManager::getInstance(), NS_ASSERT, and NS_LOG_FUNCTION.
Here is the call graph for this function:| void ns3::QKDLinkHelper::AddGraphs | ( | ) |
ADD QKDGraph.
Definition at line 43 of file qkd-link-helper.cc.
References ns3::Create(), ns3::QKDGraphManager::CreateGraphForBuffer(), ns3::QKDGraphManager::getInstance(), ns3::NodeList::GetNNodes(), ns3::NodeList::GetNode(), ns3::SBuffer::LOCAL_SBUFFER, NS_LOG_FUNCTION, ns3::SBuffer::RELAY_SBUFFER, and ns3::SBuffer::STREAM_SBUFFER.
Here is the call graph for this function:| void ns3::QKDLinkHelper::ConfigureQBuffers | ( | std::vector< Ptr< QKDControl > > | controllers, |
| uint32_t | Mmin, | ||
| uint32_t | Mthr, | ||
| uint32_t | Mmax, | ||
| uint32_t | defaultKeySize | ||
| ) |
Configure all Q buffers(default conf).
Mandatory function!
| controllers | vector of all QKDN controllers |
| Mmin | minimum amount(bits) of key material QKD buffer should maintain |
| Mthr | thresold amount(bits) of key material |
| Mmax | maximum amount(bits) of key material QKD buffer can store |
Definition at line 229 of file qkd-link-helper.cc.
References ConfigureQBuffers(), ns3::Create(), and NS_LOG_FUNCTION.
Here is the call graph for this function:| void ns3::QKDLinkHelper::ConfigureQBuffers | ( | std::vector< Ptr< QKDControl > > | controllers, |
| uint32_t | Mmin, | ||
| uint32_t | Mthr, | ||
| uint32_t | Mmax, | ||
| uint32_t | Mcurr, | ||
| uint32_t | defaultKeySize | ||
| ) |
Configure all Q buffers(default conf).
Mandatory function!
| controllers | vector of all QKDN controllers |
| Mmin | minimum amount(bits) of key material QKD buffer should maintain |
| Mmax | maximum amount(bits) of key material QKD buffer can store |
| Mthr | thresold amount(bits) of key material |
| Mcurr | current amount(bits) of key material QKD buffer maintain |
| defaultKeysize | default size of stored keys |
Definition at line 242 of file qkd-link-helper.cc.
References ns3::Create(), and NS_LOG_FUNCTION.
Referenced by ConfigureQBuffers().
Here is the call graph for this function:
Here is the caller graph for this function:| void ns3::QKDLinkHelper::ConfigureRSBuffers | ( | std::vector< Ptr< QKDControl > > | controllers, |
| uint32_t | Mmin, | ||
| uint32_t | Mthr, | ||
| uint32_t | Mmax, | ||
| uint32_t | defaultKeySize | ||
| ) |
Definition at line 272 of file qkd-link-helper.cc.
References ConfigureRSBuffers(), and ns3::Create().
Here is the call graph for this function:| void ns3::QKDLinkHelper::ConfigureRSBuffers | ( | std::vector< Ptr< QKDControl > > | controllers, |
| uint32_t | Mmin, | ||
| uint32_t | Mthr, | ||
| uint32_t | Mmax, | ||
| uint32_t | Mcurr, | ||
| uint32_t | defaultKeySize | ||
| ) |
Definition at line 258 of file qkd-link-helper.cc.
References ns3::Create().
Referenced by ConfigureRSBuffers().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
create an object from its TypeId and aggregates it to the node
| node | the node |
| typeId | the object TypeId |
Definition at line 284 of file qkd-link-helper.cc.
References ns3::Create(), and ns3::ObjectFactory::SetTypeId().
Here is the call graph for this function:| void ns3::QKDLinkHelper::CreateTopologyGraph | ( | std::vector< Ptr< QKDControl > > | controllers, |
| uint32_t | reroute = 0 |
||
| ) |
Definition at line 317 of file qkd-link-helper.cc.
References ns3::Create(), GetColumn(), m_adjList, m_cen_controller, m_controllers, NS_ASSERT, and NS_LOG_FUNCTION.
Here is the call graph for this function:
|
private |
Definition at line 364 of file qkd-link-helper.cc.
References ns3::Create().
Referenced by PopulateRoutingTables().
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 293 of file qkd-link-helper.cc.
References ns3::Create(), and m_controllers.
Referenced by CreateTopologyGraph(), and PopulateRoutingTables().
Here is the call graph for this function:
Here is the caller graph for this function:| Ptr< QCenController > ns3::QKDLinkHelper::InstallQCenController | ( | Ptr< Node > | node | ) |
Definition at line 211 of file qkd-link-helper.cc.
References ns3::Create(), m_cen_controller, NS_LOG_FUNCTION, and ns3::ObjectFactory::SetTypeId().
Here is the call graph for this function:| Ptr< QKDControl > ns3::QKDLinkHelper::InstallQKDNController | ( | Ptr< Node > | node | ) |
Install QKDN controller on node.
| node | smart pointer on node |
Definition at line 195 of file qkd-link-helper.cc.
References ns3::Create(), NS_LOG_FUNCTION, and ns3::ObjectFactory::SetTypeId().
Here is the call graph for this function:| void ns3::QKDLinkHelper::PopulateRoutingTables | ( | ) |
Definition at line 416 of file qkd-link-helper.cc.
References ns3::Create(), DijkstraSP(), GetColumn(), m_adjList, m_controllers, NS_LOG_FUNCTION, and ReverseColumn().
Here is the call graph for this function:| void ns3::QKDLinkHelper::PrintGraphs | ( | ) |
Print QKDGraphs.
Definition at line 186 of file qkd-link-helper.cc.
References ns3::QKDGraphManager::getInstance(), NS_LOG_FUNCTION, and ns3::QKDGraphManager::PrintGraphs().
Here is the call graph for this function:Definition at line 307 of file qkd-link-helper.cc.
References ns3::Create(), m_controllers, and NS_LOG_ERROR.
Referenced by PopulateRoutingTables().
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 157 of file qkd-link-helper.h.
Referenced by QKDLinkHelper(), CreateTopologyGraph(), and PopulateRoutingTables().
|
private |
Centralized control for rerouting.
Definition at line 153 of file qkd-link-helper.h.
Referenced by CreateTopologyGraph(), and InstallQCenController().
|
private |
Definition at line 155 of file qkd-link-helper.h.
Referenced by QKDLinkHelper(), CreateTopologyGraph(), GetColumn(), PopulateRoutingTables(), and ReverseColumn().
|
private |
Definition at line 142 of file qkd-link-helper.h.
Definition at line 140 of file qkd-link-helper.h.
|
private |
Device Factory.
Definition at line 159 of file qkd-link-helper.h.
| bool ns3::QKDLinkHelper::m_useRealStorages |
Definition at line 128 of file qkd-link-helper.h.
Referenced by QKDLinkHelper().