Date: Thu, 28 Mar 2024 13:12:15 +0000 (UTC) Message-ID: <1016530541.759.1711631535818@ip-10-30-146-46.us-west-2.compute.internal> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_758_2094029016.1711631535815" ------=_Part_758_2094029016.1711631535815 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Yes! If there are questions and answers you think = should be added here please do. This is a wiki and you're welcome to = register for an account and start editing.
ONOS stands for "Open Network Operating System". We realize it's a bit c= onfusing, considering ON.Lab stands for "Open Networking Laborator= y"!
We currently actively support Ubuntu, CentOS, and OS X. ONOS works with= Oracle Java 1.8, but OpenJDK should work as well.
Please check our Jira to see what's in progress. If what = you are looking for isn't there, you can always help by contributing!
Thank you for = your interest! The Contributor Guide should give you the details of= what's involved.
You can find the latest documentation on the ONOS Documentation homepage. The tutorials and sample code c= an be found in Tutorials.
You're already off to a good start by reading this FAQ! First make sure =
you've read the FAQ and documentation on this wiki. Then you should check t=
he archives for the mailing li=
sts (particularly onos-discuss
) to see if someone else has run into =
a similar issue or has a similar question. If you still have questions, con=
sider posting to onos-discuss
or slack. Also, you ma=
y be able to find people within your organization who can help you with ONO=
S.
Confluence generates URLs based on a page's name, so renaming it changes= its URL. Sadly, Confluence doesn't do automatic redirects from the old URL= mbut luckily it automatically updates the links within the wiki, s= o you don't have to worry about links within the wiki breaking.
For linking to a page from emails, blogs, etc., Confluence recom= mends using a page's shortened URL, which remains stable across na= me changes. Press "k" on any page to bring up its shortened URL.
Why should I used shortened URLs for = links to this wiki from external sites?
As noted above, Confluence just isn't as smart as other wiki sof= tware and it doesn't automatically redirect links to pages whose n= ames have changed!!
Iff you used a shortened URL, then the link will continue to work even a= fter the page is renamed.
Although shortened URLs aren't as easy to read, they are shorter and can= be easier to type than lengthy paths based on page titles.
Go to the Tools dropdown and select&n= bsp;Link to this Page.... A window should pop up with both a regul= ar and a shortened URL. For example, for this page:
Of course, the result is more dramatic and useful for pages with longer = names.
Currently, pages can only be deleted by ONOS wiki administrators. For th= e time being, you can move your page under the Trashbin and then drop a line in the = #onos-docs channel or = onos-discuss to have your page removed.
Drag it to a new location using Browse&= gt;Space Operations>Pages>Tree View.
The default username/password is karaf
/karaf
.<=
/p>
This usually means ONOS did not start= up properly, so the ONOS services are not available even though the CLI co= mmands are loaded. Try looking in the ONOS log for exceptions or errors tha= t may indicate why ONOS did not start up.
Please first read the Flow= Rule Subsystem page to understand how flows are managed in ONOS. = The reason flows are stuck in PENDING_ADD state is because ONOS is unable t= o confirm that the flow is present on the dataplane.
If you are using OpenFlow, the provider periodically sends FLOW_STATS_RE= QUEST messages to the device and expects FLOW_STATS_REPLY messages in retur= n. One possible reason for flows being in PENDING_ADD state is the device d= oesn=E2=80=99t properly support sending FLOW_STATS_REPLY messages doesn=E2= =80=99t send the right information in the FLOW_STATS_REPLY.
Another possible reason could be that ONOS simply can=E2=80=99t match th= e flows in the FLOW_STATS_REPLY with the state in the flow store. The OpenF= low provider uses the FlowModBuilder to map ONOS constructs to OpenFlow, an= d the FlowEntryBuilder to map OpenFlow constructs back to ONOS constructs. = Often flows being stuck in PENDING_ADD means that these mappings are not pr= operly symmetric, i.e. the FlowEntryBuilder doesn=E2=80=99t map the flow st= ats to the same FlowRule object that was installed. This could be because a= new criterion/instruction was added, or a bug in the existing mappings.
This is generally a different symptom of the same problem as above (flow= s stuck in PENDING_ADD). If ONOS can=E2=80=99t match the returned flow stat= s with flow rules in the store, it will remove what it considers to be an e= xtraneous flow and install the flow in the store again. The solution to thi= s problem is to ensure that ONOS can match observed flows with its internal= flow store.
ONOS' dynamic host discovery works by observing packets sent by hosts on= the dataplane that come up to the controller (e.g. OpenFlow devices send p= ackets to the controller by using packet-ins). It looks at the source MAC a= ddress of the packets and creates host entries for these MAC addresses. In = some situations, packets may be observed by ONOS that are not sent by real = hosts in the network. In particular, when using Mininet to emulate a networ= k, sometimes extra hosts will be observed apart from the real hosts in the = Mininet network. This is simply an artifact of the way Mininet uses Linux t= o create networks - it is creating interfaces in Linux which the OS is send= ing packets out of, and these packets are observed by ONOS and appear as ho= sts. It is usually safe to simply ignore the extra hosts.
The ONOS log is located on disk at <KARAF_ROOT>/data/log/kar=
af.log
(e.g. this usually means it can be found at /opt/o=
nos/karaf/data/log/karaf.log
).
If you run ONOS locally using onos-karaf
you can use the to=
ol onos-local-log
to follow the log.
If you run ONOS remotely using onos-install
, you can use th=
e tool onos-log <instance>
(e.g. onos-log $OC1) to follow the log.
If you are using onos.py
, the log is also linked to /tmp/onos1/log (replace
onos1
with the name of the ONOS instance whose l=
og you wish to view)
If you are running multi instance onos cluster, you can fetch log files =
from all instances by onos-fetch-logs --cell.
You can also view the ONOS log in the ONOS/karaf console by using comman=
ds such as log:display
.
Often errors can be found in the log if something goes wrong. You can ei=
ther find the log file on disk and look in there (see above question) or fr=
om the ONOS shell you can view the log using log:display
.
log:exception-display
will show the last exception in the l=
og.
log:display | grep ERROR
will show any errors in the log.=
p>