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):
$ ./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:
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:
$ cat ~/.bbsim/config
apiVersion: v1
server: 127.0.0.1:50070
grpc:
timeout: 10s
Check the ONU Status¶
$ bbsimctl onu list
PONPORTID ID PORTNO SERIALNUMBER OPERSTATE INTERNALSTATE
0 1 0 BBSM00000001 up enabled
Check the Service Status¶
$ 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:
$ 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:
$ bbsimctl onu shutdown BBSM00000001
[Status: 0] ONU BBSM00000001 successfully shut down.
$ bbsimctl onu poweron BBSM00000001
[Status: 0] ONU BBSM00000001 successfully powered on.