17#include "ns3/object-factory.h"
18#include "ns3/net-device-container.h"
19#include "ns3/node-container.h"
20#include "ns3/trace-helper.h"
21#include "ns3/ipv4-interface-address.h"
22#include "ns3/core-module.h"
23#include "ns3/network-module.h"
24#include "ns3/internet-module.h"
27#include "ns3/qcen-control.h"
29#include "ns3/qkd-graph-manager.h"
148 std::vector< std::pair<uint32_t, uint32_t> >
DijkstraSP(
149 std::vector< std::vector<std::pair<uint32_t, uint32_t> > >
adjList,
157 std::vector< std::vector<std::pair<uint32_t, uint32_t> > >
m_adjList;
Instantiate subclasses of ns3::Object.
Smart pointer class similar to boost::intrusive_ptr.
Build a set of QKDNetDevice objects such as QKD buffers QKD encryptors and QKD graphs.
void ConfigureRSBuffers(std::vector< Ptr< QKDControl > > controllers, uint32_t Mmin, uint32_t Mthr, uint32_t Mmax, uint32_t Mcurr, uint32_t defaultKeySize)
uint32_t GetColumn(uint32_t nodeId)
void AddGraph(Ptr< Node > src, Ptr< Node > dst)
ADD QKDGraph.
Ptr< QCenController > m_cen_controller
Centralized control for rerouting.
std::map< uint32_t, Ptr< QKDControl > > m_controllers
void PrintGraphs()
Print QKDGraphs.
std::vector< std::vector< std::pair< uint32_t, uint32_t > > > m_adjList
void AddGraphs()
ADD QKDGraph.
uint32_t ReverseColumn(uint32_t position)
Ptr< QKDControl > InstallQKDNController(Ptr< Node > node)
Install QKDN controller on node.
std::vector< std::pair< uint32_t, uint32_t > > DijkstraSP(std::vector< std::vector< std::pair< uint32_t, uint32_t > > > adjList, uint32_t start)
void CreateTopologyGraph(std::vector< Ptr< QKDControl > > controllers, uint32_t reroute=0)
std::vector< uint32_t > m_indexToKmNodeId
static void CreateAndAggregateObjectFromTypeId(Ptr< Node > node, const std::string typeId)
create an object from its TypeId and aggregates it to the node
void PopulateRoutingTables()
QKDLinkHelper()
Create a QKDLinkHelper to make life easier when creating point to point networks.
std::unordered_map< uint32_t, uint32_t > m_kmNodeIdToIndex
Ptr< QCenController > InstallQCenController(Ptr< Node > node)
void 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).
ObjectFactory m_qkdbufferFactory
Device Factory.
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.