LCL CLI is a cross-platform cli tool written in Swift. It is designed to measure the network performance and latency through LCL's cellular network measurement testbed. While this tool is design for Local Connectivity Lab researchers and Seattle Community Network volunteers and users, everyone is welcome to use this tool to measure their network performance.
To contribute to the tool, make sure you have docker installed.
Run
make dev
to drop into the toolchain coontainer, which includes all the dependencies required by the tool.
To build the debug version, simply run swift build
or make build-test
. The debug binary will be placed under .build/debug
directory.
To build the release version of the tool, make sure you have docker installed.
On Linux, make sure the systemd service is running. Then run:
./scripts/build_release.sh ubuntu
(or debian or macos, depending on your system).
When the build is complete, go into the "release" folder and run the executable as instructed. For example:
./lcl-cli-1.0.4-x86_64-ubuntu
will print out the help text for arguments that can be added.
OVERVIEW: A command-line tool from Local Connectivity Lab @UWCSE
USAGE: lcl <subcommand>
OPTIONS:
-h, --help Show help information.
SUBCOMMANDS:
register Register with SCN server to report test data.
ping Run Ping Latency and Reachability Test.
speedtest Run speedtest using the NDT test infrastructure.
measure Run SCN test suite and optionally report the measurement result to SCN.
interfaces List available network interfaces on the machine.
cellular-sites Get info on SCN cellular sites
See 'lcl help <subcommand>' for detailed help.
Run the following to do an icmp ping test (may not work on some linux systems due to permissioning):
./lcl-cli-1.0.4-x86_64-ubuntu ping icmp --host 1.1.1.1
Run the following to do a HTTP-based test:
./lcl-cli-1.0.4-x86_64-ubuntu ping http --url https://www.google.com
Run the following to do a download speedtest (upload and both ul/dl are possible):
./lcl-cli-1.0.4-x86_64-ubuntu speedtest --type download
- ICMP and HTTP test with
Server-Timing
support. - Speedtest on top of NDT7 protocol with TCP-level and Application-level measurement
- Automatically upload test result to SCN's backend server (this option is available to SCN users and volunteers).
- Check available interfaces on the machine.
LCL CLI is designed to support various platforms that Swift supports, including Linux (Debian and Ubuntu), macOS. Those who are interested in other platforms can download and compile the binary from the source.
Any contribution and pull requests are welcome! However, before you plan to implement some features or try to fix an uncertain issue, it is recommended to open a discussion first. You can also join our Discord channel, or visit our website.
LCL CLI is released under Apache License. See LICENSE for more details.