Topology 2 is a "region aware" view of the topology, where the administrator can configure the network into regions and sub-regions.

In its default state (where no "regions" or "layouts" are defined), it should look and behave similarly to the "classic" Topology view.


Note that this view is currently "experimental".


The ONOS model of the network includes Region objects which can be configured with a collection of Devices (switches) "belonging" to that region. 

Regions can be configured using a number of CLI commands:


To add a region to the model, the region-add command can be used..

region-add <region-id> <region-name> <region-type> <lat/Y> <long/X> <locType> <region-master>


A couple of examples:

region-add rUK "United Kingdom" COUNTRY 52.206035 -1.310384 geo " /"
region-add rRack1 "Primary Rack" RACK 15.0 20.0 grid

Note that CLI commands are scriptable. One way of doing this is as follows:

onos ${host} <<-EOF
region-add rUK "United Kingdom" COUNTRY 52.206035 -1.310384 geo ${host}
region-add rIT "Italy"   COUNTRY 44.447951  11.093161 geo ${host}
region-add rFR "France"  COUNTRY 47.066264  2.711458 geo ${host}


Devices can be assigned to regions with the region-add-devices command:

region-add-devices <region-id> <dev1> <dev2> ... <dev-n>


For example:

region-add-devices rUK \
    of:0000000000000001 \
    of:0000000000000002 \    


Note that regions do not have any notion of hierarchy; they are simply "collections of devices". The hierarchy is expressed using Layouts


A Layout is a "UI construct" that has an associated region "backing" it. Layouts can define a specific layout as a parent, to construct a hierarchy.

This could be pictured as follows:


Layouts can be added to the model with the layout-add command.

layout-add <layout-id> <bg-ref> <region-id> <parent-layout-id> <scale> <offset-x> <offset-y>


Some examples:

layout-add root @europe . . 4.66 -2562.93 -412.56
layout-add lUK @europe rUK root 11.63 -6652.54 -938.04
layout-add lIT @europe rIT root 7.15 -4818.73 -1330.36
layout-add lFR @europe rFR root 8.98 -5378.99 -1334.77

layout-add lMilan +segmentRouting rMilan lIT 0.86 68.58 54.71