OPENFLOW OMNET++
OPENFLOW OMNET++ is the promising area of future internet technology. OpenFlow has as great potential for enhancing current internet with new functionalities with better scheme.OpenFlow OMNeT++ code for enabling new smarter application to be created.
Behavior of controller:
- Forwarding behavior.
- Switch behavior.
Types of openflow nodes:
- Utility modules.
- Spanning tree module.
- Openflow nodes.
- Openflow controller.
- Openflow switch.
Control plane functionalities in OPENFLOW:
- Handling of controller-to-switch messages.
- Handling of unmatched packets.
- Communication with controller.
Download Sample Source Code for OMNeT++ OpenFlow
[code lang="js"]
void OFA_controller::handleMessage(cMessage *msg)
{
if (msg->isSelfMessage())
{
cMessage *data_msg = (cMessage *) msg->getContextPointer();
delete msg;
processQueuedMsg(data_msg);
if (msg_list.empty())
{
busy = false;
}
else
{
cMessage *msgfromlist = msg_list.front();
msg_list.pop_front();
char buf[80];
sprintf(buf, " %d pakets in queue", msg_list.size());
getParentModule()->getDisplayString().setTagArg("t", 0, buf);
std::list<cMessage *>::iterator i = msg_list.begin();
while (i!=msg_list.end())
{
EV << (*i)->getFullPath() << endl; i++; } cMessage *event = new cMessage("event"); event->setContextPointer(msgfromlist);
scheduleAt(simTime()+serviceTime, event);
}
}
else
{
if (busy) {
msg_list.push_back(msg);
}
else
{
busy = true;
cMessage *event = new cMessage("event");
event->setContextPointer(msg);
scheduleAt(simTime()+serviceTime, event);
}
}
}
[/code]

