The OpFlex project seeks to provide reference implementations of the OpFlex protocol, which is a protocol for implementing a distributed control system based on a declarative policy model. In the OpFlex protocol, some number of policy elements locally enforce policy that is provided by a logically centralized policy repository. The protocol represents this policy as a tree of managed objects.
There are three main pieces that we currently provide:
libopflex - a library for interacting with managed objects over the opflex protocol, resolving policy and subscribing to updates.
genie - a code generation framework for converting a generic model into a model library suitable for use with libopflex
agent-ovs - an policy agent that works with OVS to enforce a group-based policy networking model with locally attached virtual machines or containers. The policy agent is designed to work well with orchestration tools like OpenStack.