ns-3
ns3::ofi::Controller Class Reference

An interface for a Controller of OpenFlowSwitchNetDevices. More...

#include <openflow-interface.h>

Inheritance diagram for ns3::ofi::Controller:
Collaboration diagram for ns3::ofi::Controller:

List of all members.

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.

Detailed Description

An interface for a Controller of OpenFlowSwitchNetDevices.

Follows the OpenFlow specification for a controller.


Member Function Documentation

virtual void ns3::ofi::Controller::AddSwitch ( Ptr< OpenFlowSwitchNetDevice swtch) [virtual]

Adds a switch to the controller.

Parameters:
swtchThe 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:

  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy

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.

Parameters:
swtchThe switch the message was received from.
bufferThe message.

Reimplemented in ns3::ofi::LearningController, and ns3::ofi::DropController.

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.

Parameters:
cbThe callback data.

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