====== ICONA ======
===== Installation =====
==== Installation of ICONA ====
The following has been tested on ICONA version 1.9.0 and 1.9.2
ICONA is part of onos-sample-apps. In addition to the core ONOS system and applications, the ONOS project has created sample applications ("ONOS Sample Apps") which provide additional features and can also serve as instructional code or as something that you can extend and modify into a full-featured application.
ONOS sample apps repo :
git clone https://gerrit.onosproject.org/onos-app-samples
cd /opt/onos-app-samples/icona
mvn compile #compile and check potential errors
mvn install #install .oar files
find -name *.oar #find the oar files generated
Copy the *.oar files generated on your local machine and go to ONOS GUI>Applications>Upload and upload them.
NB: You might need to restart ONOS before doing that.
In karaf CLI:
apps -s | grep icona
should give
157 org.onosproject.icona.domainmgr 1.9.0.SNAPSHOT Inter Cluster Onos Network App
158 org.onosproject.icona.domainprovider 1.9.0.SNAPSHOT Inter Cluster Onos Network App/provider
app activate org.onosproject.icona.domainmgr
app activate org.onosproject.icona.domainprovider
==== Communication between controllers through Southbound API ====
TODO : Explain why you should prefer one protocol to another
=== BGP-LS ===
BGP-LS is a plugin used as a provider on ONOS.
Enable BPG-LS plugin:
app activate org.onosproject.bgp
Check BGP configuration:
curl -u "onos:password" -X GET http://192.168.103.143:8181/onos/v1/applications/org.onosproject.bgp
=== MPLS-TP ===
TODO
===== How it works =====
For Inter-Cluster Communications, ICONA uses LLDP (Link Layer Discovery Protocol). It announces every Inter-Cluster Link to all of its cluster by adding the following metrics :
* link delay
* brandwidth
* number of flows crossing the link
Each cluster shares info about End Point (EP) regarding link delay, brandwidth, ...
ICONA is composed of two parted:
* ICONA domain manager
* ICONA domain provider
__TOREAD :__
* [[https://groups.google.com/a/onosproject.org/forum/#!topic/onos-dev/t-cpEekwuaU]]
* [[https://wiki.onosproject.org/display/ONOS/Southbound%3A+Protocol%2C+Providers%2C+Drivers]]
===== Use case =====
==== Clusterization ====
ONOS cluster are not just a concept. They are implemented and means joining two controllers together.
To create a cluster of two machines
/opt/onos/onos-form-cluster $IP1 $IP2
====== Sources ======
* [1] [[https://wiki.onosproject.org/display/ONOS/Building+the+ONOS+Sample+Apps]]
* [2] //ICONA: Inter Cluster ONOS Network Application//, Matteo Gerola, Michele Santuari, Elio Salvadori, Stefano Salsano,Mauro Campanella, Pier Luigi Ventre, Ali Al-Shabibi, William Snow