ns-3
|
An interface for a Controller of OpenFlowSwitchNetDevices. More...
#include <openflow-interface.h>
Public Member Functions | |
virtual void | AddSwitch (Ptr< OpenFlowSwitchNetDevice > swtch) |
virtual void | ReceiveFromSwitch (Ptr< OpenFlowSwitchNetDevice > swtch, ofpbuf *buffer) |
void | StartDump (StatsDumpCallback *cb) |
Starts a callback-based, reliable, possibly multi-message reply to a request made by the controller. | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::Object. | |
Protected Types | |
typedef std::set< Ptr < OpenFlowSwitchNetDevice > > | Switches_t |
Protected Member Functions | |
virtual void | SendToSwitch (Ptr< OpenFlowSwitchNetDevice > swtch, void *msg, size_t length) |
ofp_flow_mod * | BuildFlow (sw_flow_key key, uint32_t buffer_id, uint16_t command, void *acts, size_t actions_len, int idle_timeout, int hard_timeout) |
uint8_t | GetPacketType (ofpbuf *buffer) |
Protected Attributes | |
Switches_t | m_switches |
The collection of switches registered to this controller. |
An interface for a Controller of OpenFlowSwitchNetDevices.
Follows the OpenFlow specification for a controller.
virtual void ns3::ofi::Controller::AddSwitch | ( | Ptr< OpenFlowSwitchNetDevice > | swtch | ) | [virtual] |
Adds a switch to the controller.
swtch | The switch to register. |
static TypeId ns3::ofi::Controller::GetTypeId | ( | void | ) | [inline, static] |
This method returns the TypeId associated to ns3::Object.
This object is accessible through the following paths with Config::Set and Config::Connect:
No Attributes defined for this type.
No TraceSources defined for this type.
Reimplemented from ns3::Object.
Reimplemented in ns3::ofi::LearningController.
References ns3::TypeId::SetParent().
virtual void ns3::ofi::Controller::ReceiveFromSwitch | ( | Ptr< OpenFlowSwitchNetDevice > | swtch, |
ofpbuf * | buffer | ||
) | [inline, virtual] |
A switch calls this method to pass a message on to the Controller.
swtch | The switch the message was received from. |
buffer | The message. |
Reimplemented in ns3::ofi::LearningController, and ns3::ofi::DropController.
void ns3::ofi::Controller::StartDump | ( | StatsDumpCallback * | cb | ) |
Starts a callback-based, reliable, possibly multi-message reply to a request made by the controller.
If an incoming request needs to have a reliable reply that might require multiple messages, it can use StartDump() to set up a callback that will be called as buffer space for replies.
A stats request made by the controller is processed by the switch, the switch then calls this method to tell the controller to start asking for information. By default (it can be overridden), the controller stops all work to run through the callback. ReceiveFromSwitch must be defined appropriately to handle the status reply messages generated by the switch, or otherwise the status reply messages will be sent and discarded.
cb | The callback data. |