zhiqiand dd2b485b00 Follow-up on stats aggregation (#96)
* fix some comments from Jerrey

Signed-off-by: zhiqiand <zhiqian@fb.com>

* fix some comments

Signed-off-by: zhiqiand <zhiqian@fb.com>

Signed-off-by: zhiqiand <zhiqian@fb.com>
2022-10-10 15:59:04 -07:00
2022-10-10 15:59:04 -07:00
2022-06-02 17:16:30 -07:00
2022-08-17 21:36:15 -07:00
2022-08-31 14:16:17 -04:00
2022-06-02 17:16:30 -07:00
2022-09-13 18:04:38 -04:00

OpenWiFi RRM Service

OpenWiFi uCentral-based radio resource management (RRM) service, providing a cloud-based Wi-Fi RRM layer for APs running the OpenWiFi SDK.

This service collects data from OpenWiFi APs (e.g. Wi-Fi scans, stats, capabilities) via the uCentral Gateway and Kafka, and integrates with the OpenWiFi Provisioning service to perform optimization across configured "venues". It pushes new device configuration parameters to APs after RRM algorithms are run (manually or periodically).

Requirements

Building

$ mvn package [-DskipTests]

This will build a runnable JAR located at target/openwifi-rrm.jar.

Alternatively, Docker builds can be launched using the provided Dockerfile.

Testing

$ mvn test

Unit tests are written using JUnit 5.

Usage

$ java -jar openwifi-rrm.jar [-h]

To start the service, use the run command while providing configuration via either environment variables (--config-env) or a static JSON file (--config-file, default settings.json). The following data is required:

  • Service configuration
    • Env: SERVICECONFIG_PRIVATEENDPOINT, SERVICECONFIG_PUBLICENDPOINT
    • JSON: serviceConfig structure
  • Kafka broker URL
    • Env: KAFKACONFIG_BOOTSTRAPSERVER
    • JSON: kafkaConfig structure
  • MySQL database credentials
    • Env: DATABASECONFIG_SERVER, DATABASECONFIG_USER, DATABASECONFIG_PASSWORD
    • JSON: databaseConfig structure

OpenAPI

This service provides an OpenAPI HTTP interface on the port specified in the service configuration (moduleConfig.apiServerParams). An auto-generated OpenAPI 3.0 document is hosted at the endpoints /openapi.{yaml,json} and is written to openapi.yaml during the Maven "compile" phase.

For Developers

See IMPLEMENTATION.md for service architecture details and ALGORITHMS.md for descriptions of the RRM algorithms.

Code is auto-formatted using Spotless with a custom Eclipse style config (see spotless/eclipse-java-formatter.xml). This can be applied via Maven (but is not enforced at build time):

$ mvn spotless:apply

License

See LICENSE.

Description
No description provided
Readme BSD-3-Clause 5.8 MiB
Latest
2023-01-03 21:57:16 +00:00
Languages
JavaScript 73.3%
Java 26.5%
HTML 0.1%