Q2NS dev
ns-3 module
Loading...
Searching...
No Matches
q2ns::EntanglementSwapHelper Class Reference

#include <q2ns-swap-helper.h>

Collaboration diagram for q2ns::EntanglementSwapHelper:

Public Member Functions

EntanglementSwapHelperSetNetController (NetController *nc)
 
EntanglementSwapHelperSetPortBase (uint16_t base)
 
EntanglementSwapHelperSetPolicy (std::unique_ptr< ISwapPolicy > policy)
 
EntanglementSwapHelperSetNodes (const std::map< std::string, ns3::Ptr< q2ns::QNode > > &nodes)
 
void Install (const SwapTopologySpec &spec, const ns3::ClassicalNetworkBuilder::NetworkHandle &net, bool useIpv6, uint32_t ctrlPayloadBytes=16)
 

Private Member Functions

uint16_t AllocatePort (uint64_t sessionId) const
 
void BindAppsOnProvidedNodes (const SwapTopologySpec &spec)
 
void BuildQuantum (const SwapTopologySpec &spec)
 
void InstallUnifiedApps (const SwapTopologySpec &spec, const std::vector< SwapSessionSpec > &planned, const ns3::ClassicalNetworkBuilder::NetworkHandle &net, bool useIpv6, uint32_t ctrlPayloadBytes)
 

Private Attributes

uint16_t m_portBase {7000}
 
NetControllerm_nc {nullptr}
 
std::unique_ptr< ISwapPolicym_policy
 
std::unordered_map< std::string, ns3::Ptr< q2ns::QNode > > m_name2node
 
std::unordered_map< std::string, ns3::Ptr< SwapApp > > m_appByNode
 

Detailed Description

Definition at line 91 of file q2ns-swap-helper.h.

Member Function Documentation

◆ AllocatePort()

uint16_t q2ns::EntanglementSwapHelper::AllocatePort ( uint64_t  sessionId) const
private

Definition at line 92 of file q2ns-swap-helper.cc.

References m_portBase.

Referenced by InstallUnifiedApps().

Here is the caller graph for this function:

◆ BindAppsOnProvidedNodes()

void q2ns::EntanglementSwapHelper::BindAppsOnProvidedNodes ( const SwapTopologySpec spec)
private

Definition at line 108 of file q2ns-swap-helper.cc.

References m_appByNode, m_name2node, m_nc, and q2ns::SwapTopologySpec::nodes.

Referenced by Install().

Here is the caller graph for this function:

◆ BuildQuantum()

void q2ns::EntanglementSwapHelper::BuildQuantum ( const SwapTopologySpec spec)
private

Definition at line 128 of file q2ns-swap-helper.cc.

References q2ns::NetController::InstallQuantumLink(), m_name2node, m_nc, and q2ns::SwapTopologySpec::quantumEdges.

Referenced by Install().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Install()

void q2ns::EntanglementSwapHelper::Install ( const SwapTopologySpec spec,
const ns3::ClassicalNetworkBuilder::NetworkHandle net,
bool  useIpv6,
uint32_t  ctrlPayloadBytes = 16 
)

Definition at line 69 of file q2ns-swap-helper.cc.

References BindAppsOnProvidedNodes(), BuildQuantum(), InstallUnifiedApps(), m_nc, m_policy, and q2ns::ISwapPolicy::PlanSessions().

Here is the call graph for this function:

◆ InstallUnifiedApps()

void q2ns::EntanglementSwapHelper::InstallUnifiedApps ( const SwapTopologySpec spec,
const std::vector< SwapSessionSpec > &  planned,
const ns3::ClassicalNetworkBuilder::NetworkHandle net,
bool  useIpv6,
uint32_t  ctrlPayloadBytes 
)
private

Definition at line 141 of file q2ns-swap-helper.cc.

References AllocatePort(), m_appByNode, m_name2node, q2ns::SwapApp::Next, ns3::ClassicalNetworkBuilder::NetworkHandle::nodes, q2ns::SwapApp::Prev, q2ns::SwapApp::Repeater, and q2ns::SwapApp::SessionConfig::sid.

Referenced by Install().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetNetController()

EntanglementSwapHelper & q2ns::EntanglementSwapHelper::SetNetController ( NetController nc)

Definition at line 55 of file q2ns-swap-helper.cc.

References m_nc.

◆ SetNodes()

EntanglementSwapHelper & q2ns::EntanglementSwapHelper::SetNodes ( const std::map< std::string, ns3::Ptr< q2ns::QNode > > &  nodes)

Definition at line 100 of file q2ns-swap-helper.cc.

References m_name2node.

◆ SetPolicy()

EntanglementSwapHelper & q2ns::EntanglementSwapHelper::SetPolicy ( std::unique_ptr< ISwapPolicy policy)

Definition at line 63 of file q2ns-swap-helper.cc.

References m_policy.

◆ SetPortBase()

EntanglementSwapHelper & q2ns::EntanglementSwapHelper::SetPortBase ( uint16_t  base)

Definition at line 59 of file q2ns-swap-helper.cc.

References m_portBase.

Member Data Documentation

◆ m_appByNode

std::unordered_map<std::string, ns3::Ptr<SwapApp> > q2ns::EntanglementSwapHelper::m_appByNode
private

Definition at line 106 of file q2ns-swap-helper.h.

Referenced by BindAppsOnProvidedNodes(), and InstallUnifiedApps().

◆ m_name2node

std::unordered_map<std::string, ns3::Ptr<q2ns::QNode> > q2ns::EntanglementSwapHelper::m_name2node
private

◆ m_nc

NetController* q2ns::EntanglementSwapHelper::m_nc {nullptr}
private

◆ m_policy

std::unique_ptr<ISwapPolicy> q2ns::EntanglementSwapHelper::m_policy
private

Definition at line 104 of file q2ns-swap-helper.h.

Referenced by Install(), and SetPolicy().

◆ m_portBase

uint16_t q2ns::EntanglementSwapHelper::m_portBase {7000}
private

Definition at line 102 of file q2ns-swap-helper.h.

Referenced by AllocatePort(), and SetPortBase().


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