Synopsis

Batchscanner is a script to batch-scan and/or query and/or configure multiple Siklu radios via their CLI (SSH) interface. It is built as four layers:

  1. A low-level CLI session manager for Siklu radios: sikssh.py, with main API class: SikCli. Instantiating this class creates an SSH session to a radio, and derives basic radio details via the SSH banner/prompt. Methods are provided to send commands, and to tunnel into remote radios (relevant for MultiHaul TG radios). Comprehensive logging is provided by default. For further information, refer to: SikCli: CLI manager.

  2. A CLI commander:sikcommander.py, with main API class: SikCommander. This is a wrapper for SikCli, providing additional functionality, such as:

    • parsing the output of the ‘show’ command

    • executing an action, such as setting the time of day, or executing a user script (list of commands).

    For further documentation, refer to: SikCommander: CLI commander.

  3. A batch engine: batchscan.py, with main API function: run_batch(). It batch-executes some action by invoking SikCommander across all devices in a user-defined IP address space. It also implements class WriteResults for saving the results into files. Refer to Batchscan: batch engine for additional information.

  4. A command-line launcher: __main__.py, which:

    1. Collects user-configurable parameters via:

      • command-line arguments

      • an optional TOML config file (to override default values)

      • a mandatory file specifying the network (range of IP addresses to scan and login credentials).

    2. Calls the main batch engine API: run_batch(), with the above parameters.

    Use of the command-line launcher is described in Quickstart.