Skip to Main Content
We propose a method to control Packet-In messages in OpenFlow switches for reducing CPU and network utilization of switches and controllers. In OpenFlow network, controllers setup flow entries to switches in response to Packet-In messages from switches. When a host suddenly starts to send many packets of a flow without any negotiation in advance, like a video stream on UDP, the control traffic and CPU utilization of switches and controllers become high until the flow entries are inserted into switches, and this high utilization would make network control unstable. In this paper, we propose a method to filter out unimportant Packet-In messages to reduce CPU utilization and the control traffic in OpenFlow switches and controllers. We categorize Packet-In messages into three groups, State Change, Flow Setup and Forward. Controllers process these messages to change the internal state of controllers, to trigger inserting flow entries, and to forward packets to other switches, respectively. Forward type of messages are less important than State Change and Flow Setup messages in terms of network control, because State Change and Flow Setup messages change states of network such as flow entries but Forward messages do not. We propose a method to identify Forward messages in switches by recording the header of Flow Setup packets and by matching packets with recorded flows. We have implemented our method into Open vSwitch to limit the bandwidth of Forward type of messages, and our evaluation shows that our method can control Packet-In messages with little CPU utilization overhead in the switch.