NS-3
ns3::ofi::LearningController Class Reference

#include <openflow-interface.h>

Inheritance diagram for ns3::ofi::LearningController:
Collaboration diagram for ns3::ofi::LearningController:

List of all members.

Classes

struct  LearnedState

Public Member Functions

void ReceiveFromSwitch (Ptr< OpenFlowSwitchNetDevice > swtch, ofpbuf *buffer)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::Object.

Protected Types

typedef std::map< Mac48Address,
LearnedState
LearnState_t

Protected Attributes

Time m_expirationTime
 Time it takes for learned MAC state entry/created flow to expire.
LearnState_t m_learnState
 Learned state data.

Detailed Description

Demonstration of a Learning controller. When a connected switch passes it a packet the switch doesn't recognize, the controller delves into its learned states and figures out if we know what port the packet is supposed to go to, flooding if unknown, and adjusts the switch's flow table accordingly.


Member Function Documentation

static TypeId ns3::ofi::LearningController::GetTypeId ( void  ) [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::BaseStationNetDevice/BsIpcsPacketClassifier
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/LinkManager
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/SSManager
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/ServiceFlowManager
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/NoiseModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/PropagationModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Phy
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Transducer
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/LinkManager
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/SSManager
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/ServiceFlowManager
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/NoiseModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/PropagationModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/NoiseModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/PropagationModel

No Attributes defined for this type.
No TraceSources defined for this type.

Reimplemented from ns3::ofi::Controller.

void ns3::ofi::LearningController::ReceiveFromSwitch ( Ptr< OpenFlowSwitchNetDevice swtch,
ofpbuf *  buffer 
) [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 from ns3::ofi::Controller.


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