A Discrete-Event Network Simulator
API
ofswitch13-internal-helper.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017 University of Campinas (Unicamp)
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation;
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  *
17  * Author: Luciano Jerez Chaves <ljerezchaves@gmail.com>
18  */
19 
20 #ifndef OFSWITCH13_INTERNAL_HELPER_H
21 #define OFSWITCH13_INTERNAL_HELPER_H
22 
23 #include <ns3/ofswitch13-helper.h>
24 
25 namespace ns3
26 {
27 
28 class Node;
29 class AttributeValue;
30 class OFSwitch13Controller;
31 class OFSwitch13LearningController;
32 
43 {
44  public:
47 
52  static TypeId GetTypeId();
53 
54  // Inherited from OFSwitch13Helper.
55  void CreateOpenFlowChannels() override;
56 
67  Ptr<Node> cNode,
68  Ptr<OFSwitch13Controller> controller =
69  CreateObject<OFSwitch13LearningController>());
70 
71  protected:
73  void DoDispose() override;
74 
84 
87 };
88 
89 } // namespace ns3
90 #endif /* OFSWITCH13_INTERNAL_HELPER_H */
holds a vector of ns3::Application pointers.
holds a vector of ns3::NetDevice pointers
keep track of a set of node pointers.
This is a base class that must be extended to create and configure an OpenFlow 1.3 network domain com...
This helper extends the base class and can be instantiated to create and configure an OpenFlow 1....
NodeContainer m_controlNodes
OF controller nodes.
void CreateOpenFlowChannels() override
This virtual method must interconnect all switches to all controllers installed by this helper and st...
OFSwitch13InternalHelper()
Default constructor.
void DoDispose() override
Destructor implementation.
NetDeviceContainer Connect(Ptr< Node > ctrl, Ptr< Node > swtch)
Create an individual connection between the switch and the controller node, using the already configu...
ApplicationContainer m_controlApps
OF controller apps.
Ptr< OFSwitch13Controller > InstallController(Ptr< Node > cNode, Ptr< OFSwitch13Controller > controller=CreateObject< OFSwitch13LearningController >())
This method installs the given controller application into the given controller node.
~OFSwitch13InternalHelper() override
Dummy destructor, see DoDispose.
static TypeId GetTypeId()
Register this type.
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:78
a unique identifier for an interface.
Definition: type-id.h:60
Every class exported by the ns3 library is enclosed in the ns3 namespace.