GUI Overview
The ONOS GUI is a single-page web-application, providing a visual interface to the ONOS controller (or cluster of controllers).
For documentation on how applications running on ONOS can inject content to the GUI at runtime, see the Web UI tutorials.
For documentation on the design of the GUI, see Web UI Architecture in the Architecture Guide.
GUI Configuration Notes
- The onos-gui feature must be installed in ONOS.
- The GUI listens on port 8181.
- The base URL is /onos/ui; for example, to access the GUI on localhost, use: http://localhost:8181/onos/ui
- The GUI has been developed to work on Google Chrome. The GUI has been tested on Safari and Firefox and minor compatibility adjustments have been made; these and other browsers may work, but have not been extensively tested, and are not actively supported, at this time.
- The key bindings associated with any view will work on any keyboard. The "Cmd" (⌘) key on an Apple keyboard is bound to the same key as the "Windows" or "Alt" keys on Windows or other keyboards.
GUI Session Notes
Note that the current version of the GUI does not fully support the concept of individual user accounts, however, login credentials are required.
On launching the GUI you should see the login screen:
If ONOS has been run in local mode (typically used during development), the username and password karaf/karaf can be used to log into the UI.
If ONOS is running as a cluster using a 'test cell', the username and password should be defined in $ONOS_WEB_USER and $ONOS_WEB_PASS for that cell.
After a successful login, you should see a screen that looks something like this:
The gray bar at the top is the Masthead, which provides a location for general GUI controls. In the current version (1.4.0 "Emu") the masthead contains:
- the Navigation Menu Button
- the ONOS logo and title
- the logout link
(In future versions, the masthead may include session controls, such as user ID, user preferences, global search, etc.)
The remainder of the screen is the "view", which defaults to the Topology View when the GUI is first loaded – a cluster-wide view of the network topology.
- The ONOS Cluster Node Panel indicates the controllers in the cluster.
- The Summary Panel gives a brief summary of properties of the network topology.
- The Topology Toolbar (initially hidden) provides push-button / toggle-button actions that interact with the topology view.
For more detailed information about this view, see the Topology View page.
GUI Views
The GUI is capable of supporting multiple views. As new views are added to the base release, they will be documented here.
NOTE:
The capability of adding views to the GUI dynamically at run-time is also available to developers, allowing, for example, an ONOS App developer to create GUI content that works specifically with their application. The content will be injected dynamically into the GUI when the app is installed, and removed automatically from the GUI when the app is uninstalled. For more details on this feature, see the Web UI tutorials.
The views currently included in the base release are:
View | Description |
---|---|
Platform Category | |
Applications | The Application View* provides a listing of applications installed, as well as interaction with them on the network. |
Settings | The Settings View provides information about all configurable settings in the system. |
Cluster Nodes | The Cluster Node View* provides a top level listing of all the cluster nodes, (ONOS instances), in the network. |
Packet Processors | The Packet Processors View shows the currently configured components that participate in the processing of packets sent to the controller. |
Network Category | |
Topology | The Topology View provides an interactive visualization of the network topology, including an indication of which devices (switches) are mastered by each ONOS controller instance. |
Devices | The Device View* provides a top level listing of the devices in the network. |
**Flows | The Flow View* provides a top level listing of all flows for a selected device. (Note that this view is not on the navigation menu.) |
**Ports | The Port View* provides a top level listing of all ports for a selected device. (Note that this view is not on the navigation menu.) |
**Groups | The Group View* provides a top level listing of all groups for a selected device. (Note that this view is not on the navigation menu.) |
**Meters | The Meter View* provides a top level listing of all meters for a selected device. (Note that this view is not on the navigation menu.) |
Links | The Link View* provides a top level listing of all the links in the network. |
Hosts | The Host View* provides a top level listing of all the hosts in the network. |
Intents | The Intent View* provides a top level listing of all the intents in the network. |
Tunnels | The Tunnel View provides a top level listing of all tunnels defined in the network. |
*Tabular Views: The GUI has multiple "tabular views" that are similar in look and interaction, but display different information. For a general overview of tabular usage, see the Tabular View page. For specifics on each view, follow the links in the above table.
**Hidden Views: Some views (e.g. flows, ports, groups, meters) do not show up on the Navigation Menu, but are navigable from other views (e.g. the device view).
Web UI Applications
ONOS applications may contain Web UI components – either custom views, or topology overlay behaviors. For documentation on application-specific behavior, please see the Web UI Application Index.
Release Notes
This section provides a reverse-chronological summary of changes to the GUI for each release.
Goldeneye – 1.6.0
- <details in the future>
Falcon – 1.5.0
- <details coming soon>
Emu – 1.4.0
- Device View:
- Friendly name can be set on a device from the device detail panel.
- Intent View:
- Button added to navigate to Topology View and display the selected intent.
- Topology View:
- Traffic Overlay now selected as default.
- Topology overlays can now highlight devices and hosts with badges (small number/text/glyph).
- Topology overlays can invoke a dialog box to interact with the user.
- ONOS-Branded "Loading..." animation.
- Sample application (org.onosproject.uiref) featuring UI content injection techniques.
- GUI Archetypes (ui, uitab, uitopo) facilitating rapid development of applications with custom UI content.
Drake – 1.3.0
- Authentication Enabled by default (Login screen; logout action)
- More tabular views added:
- Settings
- Tunnels
- Changes to Topology View:
- Traffic re-implemented as an "overlay"
- Overlay mechanism now programmable from ONOS Apps
- highlighting/labeling topology links
- full control over summary panel content
- full control over details panel content
Cardinal – 1.2.0
- Websocket mechanism promoted to be framework-wide; a shared resource amongst the views.
- More tabular views added:
- Links
- Hosts
- Intents
- Applications
- Cluster Nodes
- Device Flows (hidden view)
- Device Ports (hidden view)
- Device Groups (hidden view)
- Changes to the Topology View:
- links are now selectable.
- toolbar added (note, keystroke commands still available)
- node layer buttons moved from masthead to toolbar
- sprite layer added
- user selection choices persisted across sessions
- summary and detail panels adjust size to window height
- Changes to the Device View:
- slide out details panel appears when a device is clicked on
- Navigation Menu changes:
- glyphs next to links for navigation
- views organized into categories
- Note that the legacy (Avocet) GUI has been deprecated, and that the (Angular-based) GUI loads by default.
Blackbird – 1.1.0
- GUI Framework migrated to use AngularJS.
- View-agnostic features refactored as Angular Services.
- Topology View refactored to be an Angular module.
- Topology source code broken out into multiple source files.
- Port Highlighting on links added.
- Device View added.
- Implemented as a simple table for now; one device per row, sortable by column header clicks.
- Sample View added.
- Skeletal example code.
- Light and Dark themes fully implemented.
- Press the 'T' key to toggle theme.
- Beginnings of UIExtension mechanism implemented
- Over future releases, this will facilitate the ability of Apps to inject their own content into the GUI.
- Over future releases, this will facilitate the ability of Apps to inject their own content into the GUI.
- Note that the new (Angular-based) GUI currently co-exists with the old (Avocet) GUI.
- By default, the Avocet GUI is launched; the base URL http://localhost:8181/onos/ui is mapped to http://localhost:8181/onos/ui/legacy/index.html#topo.
- The new Angular-based GUI can be launched by manually adjusting the URL to be: http://localhost:8181/onos/ui/index.html#topo, (that is, remove "legacy/").
Avocet – 1.0.0
- GUI implemented using a home-grown framework.
- Single view (Topology View) implemented, displaying network topology and providing a certain level of interaction to show traffic & flow information.
- Although the 'T' key-binding (toggle theme) is present, the "dark" theme has not been implemented.
Previous : The ONOS CLI
Next : Distributed ONOS