Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Override operator (|>): Each controller x provides ONOS with a member policy specifying how x wants the network to process packets. The policy x |> T attempts to apply x's member policy to any incoming packet t. If x's policy does not specify how to handle t, then T is used as a default. For example, suppose one controller x is running an elephant flow routing application and another controller y is running an infrastructure routing application. If we want x to override y for elephant flow packets, y to route all regular traffic, and any packet not covered by either policy to be dropped, we use the policy x |> (y |> drop).

Component

Components

The implementation will include several components which will be contained in an experimental package on the master branch.

Policy Interface DefinitionInterface: This component exposes an API for the network admin to configure the composition policy. It interprets the composition policy and configures ONOS to perform composition based on the policy.

Flow Rule Management: This component FlowRuleService Implementation: The existing FlowRuleManager receives flow rules from each application. It maintains a policy tree to remember all the flow tables of each application and intermediate nodes. applications and maintains a flow table for each switch, where the primary partition resides on the same instance as the switch's master. The FlowRuleManager component will be copied and extended to include the following:

  • Implement the policy interface specified above, and maintain the policy tree
  • Distribute the policy via the ComponentConfigService
  • Maintain a flow table for each application and intermediate node in the policy tree (Note: The root of the tree contains the flow table to be programmed on the switch.)
  • Provide the policy to the composition library and use the library to update intermediate tables when flow rules are added to "application" flow tables
  • Rebuild and reprogram the intermediate and root flow tables when policy is changed

Composition Library: This stateless library (adapted from CoVisor) has access to the application and intermediate flow tables as well as the policy of the switch.

Switch Rule Installation: This component installs OpenFlow rules to physical switches, sends barrier request messages, and receives barrier reply messages. Since a rule from an application may generate multiple rules for a physical switch, we send confirmation to the application until we receive barrier reply messages for all the generated rules.

API

createPolicy(String policy): We use a string to represent the policy. It will be interpreted by ONOS and is used to configure the composition. Example: createPolicy("Monitor + Router").

...