| .. _Operations: |
| |
| Operate BBSim |
| ============= |
| |
| If you are testing basic functionality using BBSim no operator intervention is required. |
| |
| When you ``enable`` the device in VOLTHA the simulator will: |
| |
| - activate all the configured ONUs |
| - wait for the EAPOL flow for each Service that requires it and trigger the authentication state machine as soon as |
| it's received |
| - wait for the DHCP flow for each Service that requires it and trigger the DHCP state machine as soon as it's received |
| |
| BBSimCtl |
| -------- |
| |
| BBSim comes with a gRPC interface to control the internal state. This |
| interface can be queried using `bbsimctl` (the tool can be build with |
| `make build` and it's available inside the `bbsim` container): |
| |
| .. code:: bash |
| |
| $ ./bbsimctl --help |
| Usage: |
| bbsimctl [OPTIONS] <command> |
| |
| Global Options: |
| -c, --config=FILE Location of client config file [$BBSIMCTL_CONFIG] |
| -s, --server=SERVER:PORT IP/Host and port of XOS |
| -d, --debug Enable debug mode |
| |
| Help Options: |
| -h, --help Show this help message |
| |
| Available commands: |
| completion generate shell compleition |
| config generate bbsimctl configuration |
| log set bbsim log level |
| olt OLT Commands |
| onu ONU Commands |
| pon PON Commands |
| service Service Commands |
| |
| Access bbsimctl |
| +++++++++++++++ |
| |
| When running a test you can check the state of each ONU using ``BBSimCtl``. |
| |
| The easiest way to use ``bbsimctl`` is to ``exec`` inside the ``bbsim`` container: |
| |
| .. code:: bash |
| |
| kubectl -n voltha exec -it $(kubectl -n voltha get pods -l app=bbsim -o name) -- /bin/bash |
| |
| In case you prefer to run ``bbsimctl`` on your machine, |
| it can be configured via a config file such as: |
| |
| .. code:: bash |
| |
| $ cat ~/.bbsim/config |
| apiVersion: v1 |
| server: 127.0.0.1:50070 |
| grpc: |
| timeout: 10s |
| |
| Check the ONU Status |
| ++++++++++++++++++++ |
| |
| .. code:: bash |
| |
| $ bbsimctl onu list |
| PONPORTID ID PORTNO SERIALNUMBER OPERSTATE INTERNALSTATE |
| 0 1 0 BBSM00000001 up enabled |
| |
| Check the Service Status |
| ++++++++++++++++++++++++ |
| |
| .. code:: bash |
| |
| $ bbsimctl onu services BBSM00000001 |
| ONUSN INTERNALSTATE NAME HWADDRESS STAG CTAG NEEDSEAPOL NEEDSDHCP NEEDSIGMP GEMPORT EAPOLSTATE DHCPSTATE IGMPSTATE |
| BBSM00000001 initialized hsia 2e:60:00:00:01:00 900 900 false false false 1056 created created created |
| BBSM00000001 initialized voip 2e:60:00:00:01:01 333 444 false true false 1104 created dhcp_ack_received created |
| BBSM00000001 initialized vod 2e:60:00:00:01:02 555 55 false true true 1084 created dhcp_ack_received igmp_join_started |
| BBSM00000001 initialized MC 2e:60:00:00:01:03 550 55 false false false 0 created created created |
| |
| Advanced operations |
| +++++++++++++++++++ |
| |
| In certain cases you may want to execute operations on the BBSim ONUs. |
| |
| Here are the one currently supported, for more usage information use the following commands: |
| |
| .. code:: bash |
| |
| $ bbsimctl onu --help |
| Usage: |
| bbsimctl [OPTIONS] onu <command> |
| |
| Commands to query and manipulate ONU devices |
| |
| Global Options: |
| -c, --config=FILE Location of client config file [$BBSIMCTL_CONFIG] |
| -s, --server=SERVER:PORT IP/Host and port of XOS |
| -d, --debug Enable debug mode |
| |
| Help Options: |
| -h, --help Show this help message |
| |
| Available commands: |
| alarms |
| auth_restart |
| dhcp_restart |
| flows |
| get |
| igmp |
| invalidate_mds |
| list |
| poweron |
| services |
| shutdown |
| traffic_schedulers |
| |
| Enable ONUs |
| +++++++++++ |
| |
| ``BBSimCtl`` gives you the ability to control the device lifecycle, |
| for example you can turn ONUs on and off: |
| |
| .. code:: bash |
| |
| $ bbsimctl onu shutdown BBSM00000001 |
| [Status: 0] ONU BBSM00000001 successfully shut down. |
| |
| $ bbsimctl onu poweron BBSM00000001 |
| [Status: 0] ONU BBSM00000001 successfully powered on. |
| |
| Autocomplete |
| ++++++++++++ |
| |
| ``bbsimctl`` comes with autocomplete, just run: |
| |
| .. code:: bash |
| |
| source <(bbsimctl completion bash) |
| |
| Other APIS |
| ---------- |
| |
| .. toctree:: |
| :maxdepth: 1 |
| |
| api.rst |