System interface is the part of OpenFlow protocol that provides service to other components in the system, or that relies on and invokes other components in the system. We identified the following system interfaces for OpenFlow.
TCP/TLS interface interacts with lower level protocols (TCP or TLV) in the protocol stack. It provides reliable stream oriented transmission between switch and controller that is used by transmitting any OpenFlow message between them.
Switch agent interface
Switch agent interface interacts with the system kernel of an OpenFlow switch. It forwards messages from controller, which has been validated, to switch's kernel for corresponding processings. It also accepts switches asynchronous messages and forward them to OpenFlow stack for processing and transmitting to controller.
Controller application interface
Controller application interface interacts with controller applications that run on top of OpenFlow stack. It accepts messages sent to switch by controller application and forward to OpenFlow stack for processing and transmission. It also forwards messages received from OpenFlow stack to controller application.
Configuration interface provides service to system operator to configure OpenFlow stack. OpenFlow contains certain number of parameters that can to be configured (e.g. controller IP addresses) by system operator before or during use. They are set or modified through the configuration interface.