The switch implementation could arbitrarily reorder the message sent from the controller to maximize its performance. So, if the controller wants to enforce the processing of the messages in order, then barrier messages are used. Barrier messages (OFPT_TABLE_STATUS
) are sent from the controller to the switch to ensure message ordering.
The switch should not reorder any messages across the barrier message. For example, if the controller is sending a group add message, followed by a flow add message referencing the group, then the message order should be preserved in the barrier message.
When the controller wants to send messages that are related to each other, it sends a barrier message between these messages. The switch should process these messages as follows:
- Messages before a barrier request should be processed fully before the barrier, including sending any resulting replies or errors.
- The barrier request message should then...