This helper extends the base class and can be instantiated to create and configure an OpenFlow 1.3 network domain composed of one or more OpenFlow switches connected to a single external real OpenFlow controller. More...
#include "ofswitch13-external-helper.h"
Public Member Functions | |
OFSwitch13ExternalHelper () | |
Default constructor. More... | |
~OFSwitch13ExternalHelper () override | |
Dummy destructor, see DoDispose. More... | |
void | CreateOpenFlowChannels () override |
This virtual method must interconnect all switches to all controllers installed by this helper and starts the individual OpenFlow channel connections. More... | |
Ptr< NetDevice > | InstallExternalController (Ptr< Node > cNode) |
This method prepares the controller node so it can be used to connect internal simulated switches to an external OpenFlow controller running on the local machine over a TapBridge device. More... | |
void | SetChannelDataRate (DataRate rate) override |
Set the OpenFlow channel data rate used to create the connections between switches and controllers. More... | |
void | SetChannelType (ChannelType type) override |
Set the OpenFlow channel type used to create the connections between switches and controllers. More... | |
![]() | |
OFSwitch13Helper () | |
Default constructor. More... | |
~OFSwitch13Helper () override | |
Dummy destructor, see DoDispose. More... | |
void | EnableDatapathStats (std::string prefix="datapath", bool useNodeNames=false) |
Enable OpenFlow datapath statistics at OpenFlow switch devices configured by this helper. More... | |
void | EnableOpenFlowAscii (std::string prefix="ofchannel") |
Enable ASCII traces at OpenFlow channel between controller and switches. More... | |
void | EnableOpenFlowPcap (std::string prefix="ofchannel", bool promiscuous=true) |
Enable pacp traces at OpenFlow channel between controller and switches. More... | |
OFSwitch13DeviceContainer | InstallSwitch (NodeContainer &swNodes) |
This method creates and aggregates an OpenFlow device to each switch node in the container. More... | |
Ptr< OFSwitch13Device > | InstallSwitch (Ptr< Node > swNode) |
This method creates an OpenFlow device and aggregates it to the switch node. More... | |
Ptr< OFSwitch13Device > | InstallSwitch (Ptr< Node > swNode, NetDeviceContainer &swPorts) |
This method creates an OpenFlow device and aggregates it to the switch node. More... | |
void | SetDeviceAttribute (std::string n1, const AttributeValue &v1) |
Set an attribute on each OpenFlow device created by this helper. More... | |
![]() | |
Object () | |
Constructor. More... | |
~Object () override | |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose () |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. More... | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. More... | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. More... | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized () const |
Check if the object has been initialized. More... | |
![]() | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
Assignment operator. More... | |
void | Ref () const |
Increment the reference count. More... | |
void | Unref () const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Register this type. More... | |
![]() | |
static void | EnableDatapathLogs (std::string prefix="", bool explicitFilename=false) |
Enable OpenFlow datapath logs at all OpenFlow switch devices on the simulation. More... | |
static TypeId | GetTypeId () |
Register this type. More... | |
static void | SetAddressBase (Ipv4Address network, Ipv4Mask mask, Ipv4Address base="0.0.0.1") |
Set the IP network base address, used to assign IP addresses to switches and controllers during the CreateOpenFlowChannels () procedure. More... | |
![]() | |
static TypeId | GetTypeId () |
Register this type. More... | |
![]() | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Protected Member Functions | |
void | DoDispose () override |
Destructor implementation. More... | |
![]() | |
void | DoDispose () override |
Destructor implementation. More... | |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoInitialize () |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. More... | |
Private Attributes | |
Ipv4Address | m_controlAddr |
OF IP controller addr. More... | |
Ptr< Node > | m_controlNode |
OF controller node. More... | |
uint16_t | m_controlPort |
OF controller TCP port. More... | |
Ptr< CsmaChannel > | m_csmaChannel |
Common CSMA channel. More... | |
Additional Inherited Members | |
![]() | |
enum | ChannelType { SINGLECSMA = 0 , DEDICATEDCSMA = 1 , DEDICATEDP2P = 2 } |
OpenFlow channel type, used to create the connections. More... | |
![]() | |
bool | m_blocked |
Block this helper. More... | |
DataRate | m_channelDataRate |
OF channel data rate. More... | |
ChannelType | m_channelType |
OF channel type. More... | |
NetDeviceContainer | m_controlDevs |
OF channel ctrl devices. More... | |
CsmaHelper | m_csmaHelper |
Helper for CSMA links. More... | |
ObjectFactory | m_devFactory |
OF device factory. More... | |
InternetStackHelper | m_internet |
Helper for TCP/IP stack. More... | |
OFSwitch13DeviceContainer | m_openFlowDevs |
OF switch devices. More... | |
PointToPointHelper | m_p2pHelper |
Helper for P2P links. More... | |
NodeContainer | m_switchNodes |
OF switch nodes. More... | |
![]() | |
static Ipv4AddressHelper | m_ipv4helper |
Helper for IP address. More... | |
![]() | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
This helper extends the base class and can be instantiated to create and configure an OpenFlow 1.3 network domain composed of one or more OpenFlow switches connected to a single external real OpenFlow controller.
Introspection did not find any typical Config paths.
It brings methods for configuring the controller node for TapBridge usage and creating the OpenFlow channels.
DataRate
SingleCsma|DedicatedCsma|DedicatedP2p
No TraceSources are defined for this type.
Size of this type is 512 bytes (on a 64-bit architecture).
Definition at line 42 of file ofswitch13-external-helper.h.
ns3::OFSwitch13ExternalHelper::OFSwitch13ExternalHelper | ( | ) |
Default constructor.
|
override |
Dummy destructor, see DoDispose.
|
overridevirtual |
This virtual method must interconnect all switches to all controllers installed by this helper and starts the individual OpenFlow channel connections.
Implements ns3::OFSwitch13Helper.
|
overrideprotectedvirtual |
Destructor implementation.
Reimplemented from ns3::Object.
|
static |
Register this type.
This method prepares the controller node so it can be used to connect internal simulated switches to an external OpenFlow controller running on the local machine over a TapBridge device.
It installs the TCP/IP stack into controller node, attach it to the common CSMA channel and configure IP address for it.
cNode | The node to configure as the controller. |
|
overridevirtual |
Set the OpenFlow channel data rate used to create the connections between switches and controllers.
rate | The channel data rate to use. |
Reimplemented from ns3::OFSwitch13Helper.
|
overridevirtual |
Set the OpenFlow channel type used to create the connections between switches and controllers.
type | The ChannelType to use. |
Reimplemented from ns3::OFSwitch13Helper.
|
private |
OF IP controller addr.
Definition at line 79 of file ofswitch13-external-helper.h.
OF controller node.
Definition at line 77 of file ofswitch13-external-helper.h.
|
private |
OF controller TCP port.
Definition at line 78 of file ofswitch13-external-helper.h.
|
private |
Common CSMA channel.
Definition at line 76 of file ofswitch13-external-helper.h.