A Discrete-Event Network Simulator
API
ns3::QKDHelper Class Reference

Build a set of QKDNetDevice objects. More...

#include "qkd-helper.h"

+ Inheritance diagram for ns3::QKDHelper:
+ Collaboration diagram for ns3::QKDHelper:

Public Member Functions

 QKDHelper ()
 Create a QKDHelper to make life easier when creating point to point networks. More...
 
virtual ~QKDHelper ()
 
void AddGraph (Ptr< Node > node, Ptr< NetDevice > device)
 ADD QKDGraph. More...
 
void AddGraph (Ptr< Node > node, Ptr< NetDevice > device, std::string graphName)
 ADD QKDGraph. More...
 
void AddGraph (Ptr< Node > node, Ptr< NetDevice > device, std::string graphName, std::string graphType)
 ADD QKDGraph. More...
 
NetDeviceContainer Install (std::string aName, Ptr< Node > b)
 
NetDeviceContainer Install (std::string aNode, std::string bNode)
 
NetDeviceContainer InstallOverlayQKD (Ptr< NetDevice > IPa, Ptr< NetDevice > IPb, Ipv4InterfaceAddress da, Ipv4InterfaceAddress db, uint32_t Mmin, uint32_t Mthr, uint32_t Mmax, uint32_t Mcurrent, const std::string typeId)
 Install and setup OVERLAY QKD link between the nodes. More...
 
NetDeviceContainer InstallOverlayQKD (Ptr< NetDevice > IPa, Ptr< NetDevice > IPb, Ipv4InterfaceAddress da, Ipv4InterfaceAddress db, uint32_t Mmin, uint32_t Mthr, uint32_t Mmax, uint32_t Mcurrent)
 Install and setup OVERLAY QKD link between the nodes. More...
 
NetDeviceContainer InstallOverlayQKD (Ptr< NetDevice > a, Ptr< NetDevice > b)
 Help function used to install and set overlay QKD network using default settings and random values for QKDBuffers in OVERLAY NETWORK. More...
 
NetDeviceContainer InstallQKD (Ptr< NetDevice > IPa, Ptr< NetDevice > IPb, uint32_t Mmin, uint32_t Mthr, uint32_t Mmax, uint32_t Mcurrent)
 Install and setup SINGLE TCP/IP QKD link between the nodes. More...
 
NetDeviceContainer InstallQKD (Ptr< NetDevice > a, Ptr< NetDevice > b)
 Help function used to install and set overlay QKD network using default settings and random values for QKDBuffers in single TCP/IP network. More...
 
void InstallQKDManager (NodeContainer &n)
 Install QKDManager on the node. More...
 
void PrintGraphs ()
 Print QKDGraphs. More...
 
void SetChannelAttribute (std::string name, const AttributeValue &value)
 Set an attribute value to be propagated to each Channel created by the helper. More...
 
void SetDeviceAttribute (std::string name, const AttributeValue &value)
 Set an attribute value to be propagated to each NetDevice created by the helper. More...
 
void SetQueue (std::string type, std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue())
 Each point to point net device must have a queue to pass packets through. More...
 
void SetRoutingHelper (const Ipv4RoutingHelper &routing)
 Set routing protocol to be used in overlay QKDNetwork. More...
 
- Public Member Functions inherited from ns3::PcapHelperForDevice
 PcapHelperForDevice ()
 Construct a PcapHelperForDevice. More...
 
virtual ~PcapHelperForDevice ()
 Destroy a PcapHelperForDevice. More...
 
void EnablePcap (std::string prefix, Ptr< NetDevice > nd, bool promiscuous=false, bool explicitFilename=false)
 Enable pcap output the indicated net device. More...
 
void EnablePcap (std::string prefix, std::string ndName, bool promiscuous=false, bool explicitFilename=false)
 Enable pcap output the indicated net device using a device previously named using the ns-3 object name service. More...
 
void EnablePcap (std::string prefix, NetDeviceContainer d, bool promiscuous=false)
 Enable pcap output on each device in the container which is of the appropriate type. More...
 
void EnablePcap (std::string prefix, NodeContainer n, bool promiscuous=false)
 Enable pcap output on each device (which is of the appropriate type) in the nodes provided in the container. More...
 
void EnablePcap (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool promiscuous=false)
 Enable pcap output on the device specified by a global node-id (of a previously created node) and associated device-id. More...
 
void EnablePcapAll (std::string prefix, bool promiscuous=false)
 Enable pcap output on each device (which is of the appropriate type) in the set of all nodes created in the simulation. More...
 
- Public Member Functions inherited from ns3::AsciiTraceHelperForDevice
 AsciiTraceHelperForDevice ()
 Construct an AsciiTraceHelperForDevice. More...
 
virtual ~AsciiTraceHelperForDevice ()
 Destroy an AsciiTraceHelperForDevice. More...
 
void EnableAscii (std::string prefix, Ptr< NetDevice > nd, bool explicitFilename=false)
 Enable ascii trace output on the indicated net device. More...
 
void EnableAscii (Ptr< OutputStreamWrapper > stream, Ptr< NetDevice > nd)
 Enable ascii trace output on the indicated net device. More...
 
void EnableAscii (std::string prefix, std::string ndName, bool explicitFilename=false)
 Enable ascii trace output the indicated net device using a device previously named using the ns-3 object name service. More...
 
void EnableAscii (Ptr< OutputStreamWrapper > stream, std::string ndName)
 Enable ascii trace output the indicated net device using a device previously named using the ns-3 object name service. More...
 
void EnableAscii (std::string prefix, NetDeviceContainer d)
 Enable ascii trace output on each device in the container which is of the appropriate type. More...
 
void EnableAscii (Ptr< OutputStreamWrapper > stream, NetDeviceContainer d)
 Enable ascii trace output on each device in the container which is of the appropriate type. More...
 
void EnableAscii (std::string prefix, NodeContainer n)
 Enable ascii trace output on each device (which is of the appropriate type) in the nodes provided in the container. More...
 
void EnableAscii (Ptr< OutputStreamWrapper > stream, NodeContainer n)
 Enable ascii trace output on each device (which is of the appropriate type) in the nodes provided in the container. More...
 
void EnableAscii (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename)
 Enable ascii trace output on the device specified by a global node-id (of a previously created node) and associated device-id. More...
 
void EnableAscii (Ptr< OutputStreamWrapper > stream, uint32_t nodeid, uint32_t deviceid)
 Enable ascii trace output on the device specified by a global node-id (of a previously created node) and associated device-id. More...
 
void EnableAsciiAll (std::string prefix)
 Enable ascii trace output on each device (which is of the appropriate type) in the set of all nodes created in the simulation. More...
 
void EnableAsciiAll (Ptr< OutputStreamWrapper > stream)
 Enable ascii trace output on each device (which is of the appropriate type) in the set of all nodes created in the simulation. 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...
 

Private Member Functions

virtual void EnableAsciiInternal (Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< NetDevice > nd, bool explicitFilename)
 Enable ascii trace output on the indicated net device. More...
 
virtual void EnablePcapInternal (std::string prefix, Ptr< NetDevice > nd, bool promiscuous, bool explicitFilename)
 Enable pcap output the indicated net device. More...
 

Private Attributes

ObjectFactory m_channelFactory
 Channel Factory. More...
 
uint32_t m_channelID
 
uint32_t m_counter
 
ObjectFactory m_deviceFactory
 Device Factory. More...
 
uint32_t m_portOverlayNumber
 
Ptr< QKDCryptom_QCrypto
 
const Ipv4RoutingHelperm_routing
 IPv4 routing helper. More...
 
uint32_t m_supportQKDL4
 
ObjectFactory m_tcpFactory
 TCP objects factory. More...
 
bool m_useRealStorages
 

Detailed Description

Build a set of QKDNetDevice objects.

Normally we eschew multiple inheritance, however, the classes PcapUserHelperForDevice and AsciiTraceUserHelperForDevice are "mixins".

Definition at line 52 of file qkd-helper.h.

Constructor & Destructor Documentation

ns3::QKDHelper::QKDHelper ( )

Create a QKDHelper to make life easier when creating point to point networks.

Definition at line 49 of file qkd-helper.cc.

References m_channelID, m_counter, m_deviceFactory, m_portOverlayNumber, m_QCrypto, m_routing, m_supportQKDL4, m_tcpFactory, m_useRealStorages, and ns3::ObjectFactory::SetTypeId().

+ Here is the call graph for this function:

virtual ns3::QKDHelper::~QKDHelper ( )
inlinevirtual

Member Function Documentation

void ns3::QKDHelper::AddGraph ( Ptr< Node node,
Ptr< NetDevice device 
)

ADD QKDGraph.

Parameters
Ptr<Node>sourceNode
Ipv4AddressdestinationAddress

Definition at line 224 of file qkd-helper.cc.

Referenced by AddGraph(), Ratio(), and ~QKDHelper().

+ Here is the caller graph for this function:

void ns3::QKDHelper::AddGraph ( Ptr< Node node,
Ptr< NetDevice device,
std::string  graphName 
)

ADD QKDGraph.

Parameters
Ptr<Node>sourceNode
Ipv4AddressdestinationAddress
std::stringgraphName

Definition at line 236 of file qkd-helper.cc.

References AddGraph().

+ Here is the call graph for this function:

void ns3::QKDHelper::AddGraph ( Ptr< Node node,
Ptr< NetDevice device,
std::string  graphName,
std::string  graphType 
)

ADD QKDGraph.

Parameters
Ptr<Node>sourceNode
Ipv4AddresssourceAddress
std::stringgraphName
std::stringgraphType

Definition at line 248 of file qkd-helper.cc.

References ns3::Node::GetId(), ns3::QKDGraphManager::getInstance(), ns3::Object::GetObject(), NS_ASSERT, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

void ns3::QKDHelper::CreateAndAggregateObjectFromTypeId ( Ptr< Node node,
const std::string  typeId 
)
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.

Parameters
nodethe node
typeIdthe object TypeId
Ptr<Node>node
conststd::string typeID

Definition at line 313 of file qkd-helper.cc.

References ns3::Object::AggregateObject(), ns3::ObjectFactory::Create(), and ns3::ObjectFactory::SetTypeId().

Referenced by InstallOverlayQKD(), InstallQKD(), and ~QKDHelper().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::QKDHelper::EnableAsciiInternal ( Ptr< OutputStreamWrapper stream,
std::string  prefix,
Ptr< NetDevice nd,
bool  explicitFilename 
)
privatevirtual

Enable ascii trace output on the indicated net device.

Enable ASCII recording.

NetDevice-specific implementation mechanism for hooking the trace and writing to the trace file.

Parameters
streamThe output stream object to use when logging ascii traces.
prefixFilename prefix to use for ascii trace files.
ndNet device for which you want to enable tracing.
explicitFilenameTreat the prefix as an explicit filename if true

Implements ns3::AsciiTraceHelperForDevice.

Definition at line 109 of file qkd-helper.cc.

References ns3::Config::Connect(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::AsciiTraceHelper::DefaultDequeueSinkWithContext(), ns3::AsciiTraceHelper::DefaultDropSinkWithContext(), ns3::AsciiTraceHelper::DefaultEnqueueSinkWithContext(), ns3::AsciiTraceHelper::DefaultReceiveSinkWithContext(), ns3::Packet::EnablePrinting(), ns3::AsciiTraceHelper::GetFilenameFromDevice(), ns3::QKDNetDevice::GetQueue(), ns3::AsciiTraceHelper::HookDefaultDequeueSinkWithoutContext(), ns3::AsciiTraceHelper::HookDefaultDropSinkWithoutContext(), ns3::AsciiTraceHelper::HookDefaultEnqueueSinkWithoutContext(), ns3::AsciiTraceHelper::HookDefaultReceiveSinkWithoutContext(), ns3::MakeBoundCallback(), and NS_LOG_INFO.

+ Here is the call graph for this function:

void ns3::QKDHelper::EnablePcapInternal ( std::string  prefix,
Ptr< NetDevice nd,
bool  promiscuous,
bool  explicitFilename 
)
privatevirtual

Enable pcap output the indicated net device.

Enable Pcap recording.

NetDevice-specific implementation mechanism for hooking the trace and writing to the trace file.

Parameters
prefixFilename prefix to use for pcap files.
ndNet device for which you want to enable tracing.
promiscuousIf true capture all possible packets available at the device.
explicitFilenameTreat the prefix as an explicit filename if true

Implements ns3::PcapHelperForDevice.

Definition at line 73 of file qkd-helper.cc.

References ns3::PcapHelper::CreateFile(), ns3::PcapHelper::DLT_RAW, anonymous_namespace{print-introspected-doxygen.cc}::file, ns3::PcapHelper::GetFilenameFromDevice(), ns3::PcapHelper::HookDefaultSink(), and NS_LOG_INFO.

+ Here is the call graph for this function:

NetDeviceContainer ns3::QKDHelper::Install ( std::string  aName,
Ptr< Node b 
)
Parameters
aNameName of first node
bsecond node
Returns
a NetDeviceContainer for nodes

Saves you from having to construct a temporary NodeContainer.

Referenced by ~QKDHelper().

+ Here is the caller graph for this function:

NetDeviceContainer ns3::QKDHelper::Install ( std::string  aNode,
std::string  bNode 
)
Parameters
aNodeName of first node
bNodeName of second node
Returns
a NetDeviceContainer for nodes

Saves you from having to construct a temporary NodeContainer.

NetDeviceContainer ns3::QKDHelper::InstallOverlayQKD ( Ptr< NetDevice IPa,
Ptr< NetDevice IPb,
Ipv4InterfaceAddress  IPQKDaddressA,
Ipv4InterfaceAddress  IPQKDaddressB,
uint32_t  Mmin,
uint32_t  Mthr,
uint32_t  Mmax,
uint32_t  Mcurrent,
const std::string  typeId 
)

Install and setup OVERLAY QKD link between the nodes.

Parameters
afirst node
bsecond node
Returns
a NetDeviceContainer for nodes

Saves you from having to construct a temporary NodeContainer. Also, if MPI is enabled, for distributed simulations, appropriate remote QKD channels are created.

Parameters
Ptr<NetDevice>IPa
Ptr<NetDevice>IPb
Ipv4InterfaceAddressIPQKDaddressA
Ipv4InterfaceAddressIPQKDaddressB
uint32_tMmin
uint32_tMthr
uint32_tMmmax
uint32_tMcurrent
std::stringUnderlying protocol type

Initial load in QKD Buffers : Currently buffers do not whole real data due to reduction of simlation time and computation complexity. Instead, they only keep the number of current amount of key material, but not the real key material in memory

Definition at line 437 of file qkd-helper.cc.

References ns3::NetDeviceContainer::Add(), ns3::Node::AddDevice(), ns3::QKDL4TrafficControlHelper::AddInternalQueues(), ns3::TrafficControlHelper::AddInternalQueues(), ns3::Object::AggregateObject(), ns3::Mac48Address::Allocate(), ns3::Socket::Bind(), ns3::Socket::BindToNetDevice(), ns3::Socket::Connect(), ns3::QKDManager::ConnectionFailed(), ns3::QKDManager::ConnectionSucceeded(), ns3::Ipv4RoutingHelper::Create(), ns3::ObjectFactory::Create(), CreateAndAggregateObjectFromTypeId(), ns3::Socket::CreateSocket(), ns3::Node::GetId(), ns3::Ipv4InterfaceAddress::GetLocal(), ns3::Object::GetObject(), ns3::QKDManager::HandleAccept(), ns3::QKDL4TrafficControlHelper::Install(), ns3::TrafficControlHelper::Install(), ns3::Socket::Listen(), ns3::TypeId::LookupByName(), m_channelID, m_deviceFactory, m_portOverlayNumber, m_QCrypto, m_routing, m_supportQKDL4, m_tcpFactory, m_useRealStorages, ns3::MakeCallback(), ns3::MakeNullCallback(), NS_ASSERT, NS_LOG_FUNCTION, packetSize, ns3::QKDL4TrafficControlLayer::Send(), ns3::VirtualIpv4L3Protocol::Send(), ns3::Socket::SetAcceptCallback(), ns3::Socket::SetConnectCallback(), ns3::Socket::SetRecvCallback(), ns3::QKDL4TrafficControlHelper::SetRootQueueDisc(), ns3::TrafficControlHelper::SetRootQueueDisc(), ns3::Socket::ShutdownRecv(), ns3::Socket::ShutdownSend(), ns3::TrafficControlHelper::Uninstall(), ns3::QKDManager::VirtualReceive(), and ns3::QKDManager::VirtualSendOverlay().

Referenced by InstallOverlayQKD(), Ratio(), and ~QKDHelper().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

NetDeviceContainer ns3::QKDHelper::InstallOverlayQKD ( Ptr< NetDevice IPa,
Ptr< NetDevice IPb,
Ipv4InterfaceAddress  IPQKDaddressA,
Ipv4InterfaceAddress  IPQKDaddressB,
uint32_t  Mmin,
uint32_t  Mthr,
uint32_t  Mmax,
uint32_t  Mcurrent 
)

Install and setup OVERLAY QKD link between the nodes.

Parameters
Ptr<NetDevice>IPa
Ptr<NetDevice>IPb
Ipv4InterfaceAddressIPQKDaddressA
Ipv4InterfaceAddressIPQKDaddressB
uint32_tMmin
uint32_tMthr
uint32_tMmmax
uint32_tMcurrent

Definition at line 401 of file qkd-helper.cc.

References InstallOverlayQKD().

+ Here is the call graph for this function:

NetDeviceContainer ns3::QKDHelper::InstallOverlayQKD ( Ptr< NetDevice a,
Ptr< NetDevice b 
)

Help function used to install and set overlay QKD network using default settings and random values for QKDBuffers in OVERLAY NETWORK.

Usefull for testing

Parameters
Ptr<NetDevice>a
Ptr<NetDevice>b

Definition at line 356 of file qkd-helper.cc.

References first::address, InstallOverlayQKD(), and m_counter.

+ Here is the call graph for this function:

NetDeviceContainer ns3::QKDHelper::InstallQKD ( Ptr< NetDevice IPa,
Ptr< NetDevice IPb,
uint32_t  Mmin,
uint32_t  Mthr,
uint32_t  Mmax,
uint32_t  Mcurrent 
)

Install and setup SINGLE TCP/IP QKD link between the nodes.

Parameters
ca set of nodes
Returns
a NetDeviceContainer for nodes

This method creates a ns3::QKDChannel with the attributes configured by QKDHelper::SetChannelAttribute, then, for each node in the input container, we create a ns3::QKDNetDevice with the requested attributes, a queue for this ns3::NetDevice, and associate the resulting ns3::NetDevice with the ns3::Node and ns3::QKDChannel.

Parameters
afirst node
bsecond node
Returns
a NetDeviceContainer for nodes

Saves you from having to construct a temporary NodeContainer. Also, if MPI is enabled, for distributed simulations, appropriate remote QKD channels are created.

Parameters
afirst node
bNamename of second node
Returns
a NetDeviceContainer for nodes

Saves you from having to construct a temporary NodeContainer.

Parameters
Ptr<NetDevice>IPa
Ptr<NetDevice>IPb
uint32_tMmin
uint32_tMthr
uint32_tMmmax
uint32_tMcurrent

ONLY FOR SINGLE TCP/IP STACK NETWORK (not overlay)

QKDManager sits between NetDevice and TrafficControlLayer Therefore, we need unregister existing callbacks and create new callbakcs to QKDManager

QKDManager sits between NetDevice and TrafficControlLayer Therefore, we need unregister existing callbacks and create new callbakcs to QKDManager

Initial load in QKD Buffers : Currently buffers do not whole real data due to reduction of simlation time and computation complexity. Instead, they only keep the number of current amount of key material, but not the real key material in memory

Definition at line 794 of file qkd-helper.cc.

References ns3::NetDeviceContainer::Add(), ns3::QKDL4TrafficControlHelper::AddInternalQueues(), ns3::TrafficControlHelper::AddInternalQueues(), CreateAndAggregateObjectFromTypeId(), ns3::Node::GetId(), ns3::Ipv4InterfaceAddress::GetLocal(), ns3::Object::GetObject(), ns3::QKDL4TrafficControlHelper::Install(), ns3::TrafficControlHelper::Install(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_channelID, m_portOverlayNumber, m_QCrypto, m_supportQKDL4, m_useRealStorages, ns3::MakeCallback(), NS_ASSERT, NS_LOG_FUNCTION, packetSize, ns3::ArpL3Protocol::PROT_NUMBER, ns3::Ipv4L3Protocol::PROT_NUMBER, ns3::TrafficControlLayer::Receive(), ns3::Node::RegisterProtocolHandler(), ns3::QKDL4TrafficControlLayer::Send(), ns3::QKDL4TrafficControlHelper::SetRootQueueDisc(), ns3::TrafficControlHelper::SetRootQueueDisc(), ns3::TrafficControlHelper::Uninstall(), ns3::Node::UnregisterProtocolHandler(), and ns3::QKDManager::VirtualReceiveSimpleNetwork().

Referenced by InstallQKD(), Ratio(), and ~QKDHelper().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

NetDeviceContainer ns3::QKDHelper::InstallQKD ( Ptr< NetDevice a,
Ptr< NetDevice b 
)

Help function used to install and set overlay QKD network using default settings and random values for QKDBuffers in single TCP/IP network.

Usefull for testing

Parameters
Ptr<NetDevice>a
Ptr<NetDevice>b

Definition at line 328 of file qkd-helper.cc.

References ns3::UniformRandomVariable::GetValue(), and InstallQKD().

+ Here is the call graph for this function:

void ns3::QKDHelper::InstallQKDManager ( NodeContainer n)

Install QKDManager on the node.

Parameters
NodeContainer&n

Definition at line 281 of file qkd-helper.cc.

References ns3::Object::AggregateObject(), ns3::ObjectFactory::Create(), ns3::NodeContainer::Get(), ns3::NodeContainer::GetN(), ns3::Object::GetObject(), m_useRealStorages, and ns3::ObjectFactory::SetTypeId().

Referenced by Ratio(), and ~QKDHelper().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::QKDHelper::PrintGraphs ( )

Print QKDGraphs.

Definition at line 270 of file qkd-helper.cc.

References ns3::QKDGraphManager::getInstance(), and ns3::QKDGraphManager::PrintGraphs().

Referenced by Ratio(), and ~QKDHelper().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::QKDHelper::SetChannelAttribute ( std::string  name,
const AttributeValue value 
)

Set an attribute value to be propagated to each Channel created by the helper.

Parameters
namethe name of the attribute to set
valuethe value of the attribute to set

Set these attribute on each ns3::QKDChannel created by QKDHelper::Install

Referenced by ~QKDHelper().

+ Here is the caller graph for this function:

void ns3::QKDHelper::SetDeviceAttribute ( std::string  name,
const AttributeValue value 
)

Set an attribute value to be propagated to each NetDevice created by the helper.

Parameters
namethe name of the attribute to set
valuethe value of the attribute to set

Set these attributes on each ns3::QKDNetDevice created by QKDHelper::Install

Definition at line 64 of file qkd-helper.cc.

References m_deviceFactory, and ns3::ObjectFactory::Set().

Referenced by ~QKDHelper().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::QKDHelper::SetQueue ( std::string  type,
std::string  n1 = "",
const AttributeValue v1 = EmptyAttributeValue(),
std::string  n2 = "",
const AttributeValue v2 = EmptyAttributeValue(),
std::string  n3 = "",
const AttributeValue v3 = EmptyAttributeValue(),
std::string  n4 = "",
const AttributeValue v4 = EmptyAttributeValue() 
)

Each point to point net device must have a queue to pass packets through.

This method allows one to set the type of the queue that is automatically created when the device is created and attached to a node.

Parameters
typethe type of queue
n1the name of the attribute to set on the queue
v1the value of the attribute to set on the queue
n2the name of the attribute to set on the queue
v2the value of the attribute to set on the queue
n3the name of the attribute to set on the queue
v3the value of the attribute to set on the queue
n4the name of the attribute to set on the queue
v4the value of the attribute to set on the queue

Set the type of queue to create and associated to each QKDNetDevice created through QKDHelper::Install.

Referenced by ~QKDHelper().

+ Here is the caller graph for this function:

void ns3::QKDHelper::SetRoutingHelper ( const Ipv4RoutingHelper routing)

Set routing protocol to be used in overlay QKDNetwork.

Parameters
routinga new routing helper

Set the routing helper to use during Install. The routing helper is really an object factory which is used to create an object of type ns3::Ipv4RoutingProtocol per node. This routing object is then associated to a single ns3::Ipv4 object through its ns3::Ipv4::SetRoutingProtocol.

Parameters
Ipv4RoutingHelper&routing

Definition at line 301 of file qkd-helper.cc.

References ns3::Ipv4RoutingHelper::Copy(), and m_routing.

Referenced by Ratio(), and ~QKDHelper().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

ObjectFactory ns3::QKDHelper::m_channelFactory
private

Channel Factory.

Definition at line 293 of file qkd-helper.h.

uint32_t ns3::QKDHelper::m_channelID
private

Definition at line 252 of file qkd-helper.h.

Referenced by InstallOverlayQKD(), InstallQKD(), and QKDHelper().

uint32_t ns3::QKDHelper::m_counter
private

Definition at line 258 of file qkd-helper.h.

Referenced by InstallOverlayQKD(), and QKDHelper().

ObjectFactory ns3::QKDHelper::m_deviceFactory
private

Device Factory.

Definition at line 294 of file qkd-helper.h.

Referenced by InstallOverlayQKD(), QKDHelper(), and SetDeviceAttribute().

uint32_t ns3::QKDHelper::m_portOverlayNumber
private

Definition at line 250 of file qkd-helper.h.

Referenced by InstallOverlayQKD(), InstallQKD(), and QKDHelper().

Ptr<QKDCrypto> ns3::QKDHelper::m_QCrypto
private

Definition at line 256 of file qkd-helper.h.

Referenced by InstallOverlayQKD(), InstallQKD(), and QKDHelper().

const Ipv4RoutingHelper* ns3::QKDHelper::m_routing
private

IPv4 routing helper.

Definition at line 248 of file qkd-helper.h.

Referenced by InstallOverlayQKD(), QKDHelper(), and SetRoutingHelper().

uint32_t ns3::QKDHelper::m_supportQKDL4
private

Definition at line 260 of file qkd-helper.h.

Referenced by InstallOverlayQKD(), InstallQKD(), and QKDHelper().

ObjectFactory ns3::QKDHelper::m_tcpFactory
private

TCP objects factory.

Definition at line 243 of file qkd-helper.h.

Referenced by InstallOverlayQKD(), and QKDHelper().

bool ns3::QKDHelper::m_useRealStorages
private

Definition at line 254 of file qkd-helper.h.

Referenced by InstallOverlayQKD(), InstallQKD(), InstallQKDManager(), and QKDHelper().


The documentation for this class was generated from the following files: