arser. After attaining the packet_in msg, the job is to present it to all the working port using packet_out msg. A class named OFPAcionOutput works alongside packet_out message to mention the port number of the Layer 2 device from where you want to send your packet from. OFPP_FLOOD is used under the circumstance of giving it all or rather call broadcasting as the name suggests. OFPPAcket_Out class is responsible for the building of packet_in message from scratch. Now the switch and msg everything ready, all is left is to provide the path on which to carry using send_msg function with OpenFlow msg object, that enables controllers to create a packet and move it forward to the switch. This finishes the process of writing a Ryu application. (Sridhar Rao, 1994). As Ryu application is nothing more than a python script which runs on interpreter, the file can be easily saved with any name and extension. This hypothesis is put forward in the assumption that above code is named HeySwitch.py, the code to run this particular app is: %ryu-manager HeySwitch.py. Downloaded 4/15/2022 9:44:49 AM Nova Southeastern University IP Address: 137.52.76.29 The Heart and Brain of SDN Considering the open-source controllers like Ryu, it is comparatively a great piece as it has a huge set of features to choose from which is continuously in a growing state. Developers are instilling much more components and giving it high amount of abstractions and this area has been under research and is like a gold mine if highly researched. Ryu has also been used by commercial vendors, such as Pica8, in their solutions. Extremely big names in the face of controller business use Ryu. 3. POX It is also written in python. It supports OpenFlow v1.0. It is very easy to program and building prototypes of control programs. The drawback is that it has low performance level. Working of POX Controller Fire up Mininet on a terminal window using the following command. This starts a network emulation environment to emulate 1 switch with 3 hosts. The switch tries to co