egisters itself for the 3 scenarios (as said above): registers_handlers ("Openflow_datapaths_join_event", handle datapaths_join); registers handlers ("Openflow_datapath_leave_event", handle datapath leave) ; registers handlers ("ofp_packet_in", handle_packet_in) The appropriate stand is taken by the event handlers methods. The first two methods modify the mac-table entries accordingly. The message-in (appropriately packet-in) does the function of grasping the media access control address and inserting it into the flow table. Table 2 is the table that deals with application programming interfaces used in this particular event handler. Table 2. API for NOX operations Operation Packet from the Event assert_cast<const v1::ofp_packet_in*>(ofe.msg) Message Obtain Packet Information v1::ofp_match flow; flow.from_packet(pi.in_port(),pi.packet()); Create Flow mod v1::ofp_flow_mod()..buffer_id(pi.buffer_id()).cookie(0).command(v1::ofp_flow_ mod::OFPFC_ADD).timeouts... Set action in the flowmod v1::ofp_action_output().port(out_port); Send packet Openflow_datapath& dp =ofe.dp;dp->send0) Downloaded 4/15/2022 9:44:49 AM Nova Southeastern University IP Address: 137.52.76.29 The Heart and Brain of SDN void install(); What all is to be done by the install function is completely related to the app which is going to utilize it. The switch app mentioned earlier has no function in the install operation. Otherwise any other app could start up a process or build internal structure directories etc. To be precise and clear, this controller is free (open source), which gives a comfortable, easy as well as an uncomplicated platform for building network control software in C++. 2. RYU The discussion of certain characteristics of the Controller is a must before knowing its functions:- Ryu is written in Python It supports OpenFlow v1.0, v1.2, v1.3 and various Nicira modules. It also supports OpenStack (It is a set of software tools which are used for cloud computing i.e. think of it as the future of Cloud) The disadvantage stands at its perfo