This is an archive of the ONOS 1.1 wiki. For the current ONOS wiki, look here.

Intent Framework 2015 Roadmap

February Release

  • New Intent Type: "Tunnels"

    • Maybe use cases require these; will mitigate need for / make conflict resolution easier

  • Intent Manager Performance

    • Consider batching or asynchronous reads (as we already do for writes)

  • Intent Statistics

    • Provide API to query statistics for a given intent (likely using the group id)

  • Introduce explicit dependencies for Intents and batches (from implicit, app-based ones)
  • Refactor interface with flow rule services (eliminate future polling)
  • Investigation of IP-RAN and spring uses cases

  • Intent Compilers / Installers

    • Favor existing resources in the compilers when selecting paths

    • Bi-directional path selection

    • Implement replace mechanism for our intent installers to optimize flow rule updates

  • Intent Recovery and Distributed Testing

    • There are a lot of edge cases that have not been adequately tested (including control plane and data plane failures)

  • Resource Manager

    • Introduce more types of resources (i.e. T-port and queues)

    • Improve distributed implementation

  • Objective Tracker Enhancements

    • Listen and respond to devices and host events

    • Listen and respond to flow rule events (requires use of group id in flow rule)

    • Do a better job of failover (including pulling state and replaying missed events)

  • Single point to multi-point intents

    • Useful for broadcast or multicast

June-ish

  • Conflict Detection

    • Provide a way to detect and mitigate conflict between intents

    • (it may be possible to roll this into the work on composition)

  • Application and Intent-based composition

    • Provide a mechanism to compose intents within and/or across application(s)

    • (Hopefully in conjunction with Jennifer Rexford's group and Josh Reich from AT&T. This work should be started in early 2015.)

  • Batch update scheduling

    • Improved scheduling algorithms for decided batch order and increasing parallelism

    • There are some papers that describe mechanisms for this.

  • Security

    • Require certains roles to provision various types of intents

  • Packet layer constraints

    • Mechanism for latency and bandwidth guarantees

  • Other types of policy

    • We currently support forwarding, but we can make the abstraction more general by providing: (point)+ to (point)+ intents.

    • Introduce traffic (or other) policy, configuration, data collection

      • Active (rather than passive) data collection is an interesting

December-ish

  • Introduce a more generic/powerful language for expressing intents

    • (like Frentic/Pyretic)

  • Optimization/Reuses across intents

    • We have talked for a long time now about reusing flow rules or tunnels across intents. This will help in reacting to network failures as well as conserving data plane resources.

  • Global Optimization / Defragmentation

    • "It works, now make it better."

    • We don't consider recomputing/rerouting intents when better paths become available.

    • Perhaps we can also leverage the group table

  • Consistent updates / Update rounds

    • When doing TE or other optimizations, care needs to be taken to ensure

  • Virtual Resources

    • Provide intents as resources to other applications

    • Enable apps to use virtual resources that have been provisioned (through intents) by other apps

    • Allow applications to impose policy on the intents of other applications
  • No labels