frenetic-lang/frenetic — pull request #337 by seliopou (2014-08-28 21:42:42+00:00)
Title: sync_pol: use the last policy update as the current policy

The controller must keep track of the current, authoritative policy for the network. While there may be delay in actually implementing that policy on the network, that delay should be minimized.

Prior to this commit the controller used the current policy for the application it was running to determine the current, authoritative policy for the network. But when the user specifies a non-zero `policy_queue_size`, the application's current policy may differ greatly from the one installed on the network, and that difference may persist for quite some time. The result is that many packets sent to the controller will be subject to a policy that is significantly different from the network policy that forwarded them to the controller in the first place.

This commit changes the bookkeeping of the current policy so that the current policy is determined when the controller begins to install the latest policy update on the network.