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.
- Public Member Functions inherited from ns3::Object
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Dispose (void)
void AggregateObject (Ptr< Object > other)
AggregateIterator GetAggregateIterator (void) const
void Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount (const SimpleRefCount &o)
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
uint32_t GetReferenceCount (void) const
- Public Member Functions inherited from ns3::ObjectBase
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

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 Member Functions inherited from ns3::Object
virtual void NotifyNewAggregate (void)
virtual void DoStart (void)
virtual void DoDispose (void)
 Object (const Object &o)

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  )
inlinestatic

This method returns the TypeId associated to ns3::Object.

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 
)
inlinevirtual

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.

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.

Parameters:
cbThe callback data.

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