Skip to content

Local-Connectivity-Lab/lcl-cli

Repository files navigation

Logo

LCL CLI

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.

Build

Dev version

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.

Release version

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.

Usage

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.

Examples

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

Features

  • 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.

Platform Support

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.

Contributing

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.

License

LCL CLI is released under Apache License. See LICENSE for more details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •