-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor Into Plugin Architecture #512
Conversation
It compiles!
Conflicts: async/Frenetic_NetKAT_Controller.ml async/Frenetic_OpenFlow0x01_Controller.mli lib/Frenetic_NetKAT.ml lib/Frenetic_NetKAT.mli lib/Frenetic_NetKAT_Json.ml lib/Frenetic_NetKAT_Json.mli lib/Frenetic_NetKAT_SDN_Json.ml lib/Frenetic_NetKAT_SDN_Json.mli lib/Frenetic_OpenFlow.ml lib/Frenetic_OpenFlow.mli lib/frenetic.mldylib lib/frenetic.mllib lib/frenetic.odocl setup.ml
The failing checks are caused by a breaking change in OcamlGraph that was released 13 days ago on OPAM. I'm tempted to pin the version back because the breakage is in Frenetic_Network, which is not used by Frenetic proper. |
@craig-riecke: See #513 |
I would rather not wait for all the above questions to be answered before merging, since I'm going to be gone in 4 days and I don't want Issue #507 or Pull Request #517 to be held up. I added Compiler Option setting to plugin signatures, since this is required for the Gates SDN app (http://github.com/coscin/gates) to work. The others are not critical, as far as I know. |
Huh? This is the whole point. There are now no references to OpenFlow0x01 in Frenetic_NetKAT_Controller. |
I was looking at the master branch instead of the plugin branch. On Wed, Jul 20, 2016 at 10:35 PM, Nate Foster [email protected]
Shrutarshi Basu |
Is there a straightforward way to extend this upwards? For an interesting P4 backend you would want to have custom actions (eg., |
In the current version of Frenetic, there's too much coupling between the internals and OpenFlow 1.0. Introduce a plugin module type into
Frenetic_NetKAT_Controller
, and make theFrenetic_OpenFlow0x01_Controller
fit the new plugin architecture. This paves the way for an easier transition to OpenFlow 1.3, P4, etc. by making the main internals protocol-independent.All of the code in the Frenetic Programmers Manual has been tested against the refactoring, and works as advertised.
The following are changes in behavior or functionality, which may or may not be solved in this release:
/query/name
wherename
was not specified in the latest installed NetKAT policy used to generate an error. Now Frenetic simply sends back 0's.