blob: 88856bd842acc00c622b756825aabb81726ea88a [file] [log] [blame]
.. _BBSim Reflector:
BBSim Reflector
===============
BBR (a.k.a BBSim Reflector) is a tool designed to scale test BBSim. It
is responsible to emulate ONOS and VOLTHA in order to quickly reply to
any message that BBSim sends.
Here is a graph of the measuraments of BBSim performance captured over
10 runs with different PON Layout
.. figure:: ./_static/bbr_runs.png
:alt: BBSim Performances
BBSim Performances
Run BBR
-------
To run ``bbr`` you need to have a ``bbsim`` instance running.
You can start ``bbsim`` locally with:
.. code:: bash
$ DOCKER_RUN_ARGS="-onu 16 -pon 4" make docker-run
Once ``bbsim`` is up and running youll see this on the console:
.. code:: bash
docker run -p 50070:50070 -p 50060:50060 --privileged --rm --name bbsim """"bbsim:0.0.2-dev /app/bbsim -onu 16 -pon 4
time="2019-10-18T00:24:46Z" level=info msg="BroadBand Simulator is on" NumNniPerOlt=1 NumOnuPerPon=16 NumPonPerOlt=4 OltID=0
time="2019-10-18T00:24:46Z" level=debug msg=CreateOLT ID=0 NumNni=1 NumOnuPerPon=16 NumPon=4 module=OLT
time="2019-10-18T00:24:46Z" level=info msg="Successfully activated DHCP Server" module=NNI
time="2019-10-18T00:24:46Z" level=debug msg="Created OLT with id: 0"
time="2019-10-18T00:24:46Z" level=debug msg="Started APIService"
time="2019-10-18T00:24:46Z" level=debug msg="APIServer Listening on 0.0.0.0:50070"
time="2019-10-18T00:24:46Z" level=debug msg="OLT Listening on 0.0.0.0:50060" module=OLT
At this point you can start ``bbr`` (note that you need to pass the same
number of ONUs and PON Ports to the two processes):
.. code:: bash
$ ./bbr -onu 16 -pon 4
``bbr`` will run to completion and output the time it took to bring all
the ONUs to the ``dhcp_ack`` state. If the ``bbr`` process doesnt exit,
it means something went wrong.
Debugging and issue reporting
-----------------------------
If you are experiencing issues with ``bbr`` please capture: - ``bbr``
logs - ``bbsim`` logs - ``bbsimctl onu list`` output
You can use these commands to capture ``bbsim`` and ``bbr`` logs during
execution:
.. code:: bash
$ DOCKER_RUN_ARGS="-onu 16 -pon 4" make docker-run 2>&1 | tee bbsim.logs
.. code:: bash
$ ./bbr -onu 16 -pon 4 2>&1 | tee bbr.logs
And this command to retrieve the list of onus in the system (run this
command once ``bbr`` is hanging but before terminating ``bbsim``):
.. code:: bash
docker exec bbsim bbsimctl onu list > onu.list