Versions Compared

Key

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

...

Since the POM hierarchy reflects the logical organization of ONOS, it is used as the reference for this page. 

Project Layout

The following is the rough layout of the project. The indentation level reflects directory level depth for directory names. For example, "calendar" is onos-next/apps/calendar/.

Similarly, the bundle names correspond to the POM files for the project modules; all bundles indented under a bundle may be built by building the latter, using its POM file. For example, if one wishes to build just the OpenFlow subsystem components:

Code Block
languagetext
cd onos-next/providers/openflow && mvn clean install
Section
Column
200px
width250px

Directory name

  • onos-next
    • apps
      • calendar
      • config
      • demo
      • foo
      • fwd
      • ifwd
      • metrics
      • mobility
      • oecfg
      • optical
      • proxyarp
      • sdnip
      • tvue
    • cli
    • core
      • api
      • json
      • net
      • store
      • trivial
    • docs
    • features
    • net
      • api
      • core
    • of
      • api
      • ctl
      • drivers
    • openflow
      • api
      • ctl
      • drivers
    • providers
      • host
      • lldp
      • of
      • openflow
    • tools
      • build
      • dev
      • package
      • test
    • utils
      • junit
      • misc
      • netty
      • nio
      • osgi
      • rest
      • thirdparty
    • web
      • api
      • gui

 

Column
width500px

Description

  • Open Networking Operating System root project
  • ONOS sample applications
  • ONOS simple calendaring REST interface for intents
  • ONOS simple network configuration reader
  • ONOS demo app bundle
  • ONOS application for miscellaneous experiments
  • ONOS simple reactive forwarding app
  • ONOS simple reactive forwarding app that uses intent service
  • ONOS metrics applications
  • ONOS simple Mobility app
  • Utility for converting ONOS JSON config to OE-Linc JSON config
  • ONOS application for packet/optical deployments
  • ONOS simple proxy arp module
  • SDN-IP peering application
  • ONOS simple topology viewer
  • ONOS administrative console command-line extensions
  • ONOS Core root project
  • ONOS network control API
  • ONOS JSON encode/decode facilities
  • ONOS network control core subsystems
  • ONOS Core Store subsystem
  • -
  • ONOS Java API documentation
  • ONOS Apache Karaf feature definitions
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • ONOS OpenFlow Protocol subsystem
  • ONOS OpenFlow controller subsystem API
  • ONOS OpenFlow controller subsystem API
  • ONOS OpenFlow switch drivers & factory
  • ONOS information providers & control/management protocol adapter
  • ONOS host tracking provider
  • ONOS LLDP Link Discovery
  • -
  • ONOS OpenFlow protocol adapters
  • -
  • -
  • -
  • -
  • -
  • Domain agnostic ON.Lab utilities
  • ON.Lab JUnit test utilities
  • Miscellaneous ON.Lab utilities
  • Network I/O using Netty framework
  • Fast network I/O using Java NIO
  • ON.Lab OSGI utilities
  • ON.Lab JAX-RS utilities
  • ONLab third-party dependencies
  • ONOS web root project
  • ONOS REST API
  • ONOS Web GUI

 

Column

Bundle Name

  • onos

The project root directory
Domain-agnostic and third-party utilities
Unit testing
ONOS data types, graph representations, etc.
Asynchronous messaging 
I/O loop handling
Wrappers for leveraging OSGi
Basis for JAX-RS web resources
API, network model, clustering, etc. 
North- and south-bound API definitions
Managers
Distributed Stores
Single-instance Stores
GUI & REST API
REST API resources
ONOS GUI reosurces
Karaf CLI extensions for ONOS commands
Protocol-specific providers
Applications - demos, samples, and use cases
OpenFlow libraries & IO loop 
OpenFlow provider/switch - related APIs
Controller and switch object implementations
Developer/test utilities and configuration files
Developer utilities - IDE settings, bash aliases, etc.
Build tools and configurations for Jenkins, Sonar, etc.
Configurations used for packaging
ONOS scripts, cell definitions, Mininet topologies, etc. 
target directory for Javadocs

Column
  • -
    • onos-apps
      • onos-app-calendar
      • onos-app-config
      • onos-app-demo
      • onos-app-foo
      • onos-app-fwd
      • onos-app-ifwd
      • onos-app-metrics
      • onos-app-mobility
      • onos-app-oecfg
      • onos-app-optical
      • onos-app-proxyarp
      • onos-app-sdnip
      • onos-app-tvue
    • onos-cli
    • onos-core
      • onos-api
      • onos-json
      • onos-core-net
      • onos-core-store
      • -
    • onos-docs
    • onos-features
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • onos-of
      • onos-of-api
      • onos-of-ctl
      • onos-of-drivers
    • onos-providers
      • onos-host-provider
      • onos-lldp-provider
      • -
      • onos-of-providers
    • -
    • -
    • -
    • -
    • -
    • onlab-utils
      • onlab-junit
      • onlab-misc
      • onlab-netty
      • onlab-nio
      • onlab-osgi
      • onlab-rest
      • onlab-thirdparty
    • onos-web
      • onos-rest
      • onos-gui