John Crispin dd6901c6c4 ucentral-schema: update to latest HEAD
34379aa cleanup: remove unused MDNS service schema (no-op service)
26ae111 cleanup: remove unused HTTP service template and schema
f080ab3 cleanup: remove unused rtty service template and schema
c0c1d97 cleanup: remove unused files
e142706 fix: restore missing admin_ui variable assignment and validation
25582fa fix: restore correct file path in quality_of_service.uc
b3da9da base/interface-ssid: fix certificates variable scoping for validation
41ae448 base/interface: comprehensive refactoring to new templating pattern
3ec4415 base/switch: refactor to new templating pattern
a4a6f08 base/spotfilter: refactor to new templating pattern
5cd9b66 base/interface-firewall: comprehensive refactoring to new templating pattern
0910040 base/interface-ssid: comprehensive refactoring to new templating pattern
1f7a122 base/interface-mesh: update to new templating pattern
146068d base/interface-ieee8021x: update to new templating pattern
c272931 base/interface-bridge-vlan: update to new templating pattern
ffd4c2c base/interface-captive: update to new templating pattern
696648b base/interface-ipv6: update to new templating pattern
7034597 base/interface-ipv4: update to new templating pattern
3ca71c1 base/interface-dhcp: update to new templating pattern
5626faa base/interface-common: update to new templating pattern
4d030b5 tests: remove example files and fix wpa2-radius.json comment issue
728a10b renderer: add shell.system() method and update captive template
b5ff4fd tests: remove vxlan and gre tests and improve failure reporting
097351f tests: standardize unit test inputs with minimal valid schema pattern
c2bd383 renderer: add math import and remove local requires for deterministic testing
5cc3039 tests: add deterministic math mock and fix copy-to-expected functionality
a0c03a2 tests: add getopt-style CLI and rename to clean executable
a5f15cc tests: improve debug output structure for integration tests
51375e6 tests: add silent debug output for integration tests
ff81174 tests: simplify directory structure by renaming integration/full to full
1ac83ce tests: consolidate duplicate filesystem imports
a50e8d1 tests: remove unnecessary global mock variable assignments
ce32b74 tests: standardize context creation pattern to eliminate mutation anti-patterns
ffb830b tests: add generic single test runner and shared process execution utilities
a79f8a5 tests: create generic single test runner and remove redundant code
4c5bda4 tests: create generic single test runner for both unit and integration tests
404e9ae tests: move integration/base tests to unit/base for proper override support
1018c6f tests: update integration test expected outputs for eap101 board
0f1bd51 tests: fix error handling to preserve stacktrace display for exceptions
49d94f4 tests: consolidate test framework execution and eliminate remaining duplication
91e71b6 tests: consolidate context creation and eliminate duplication patterns
6df4283 tests: consolidate helper utilities and eliminate code duplication
038a514 renderer: extract captive object to shared library and fix integration test mocking
2ae2590 renderer: extract routing_table object to shared library and fix mock files state
2b1bcfb tests: implement process isolation for integration tests to prevent file descriptor leaks
47b67e4 tests: add comprehensive integration testing for all example configurations
cd19590 tests: implement dynamic service discovery and fix MPSK mock
e16284a tests: implement dynamic board-specific wiphy and wifi device loading
5317dd2 tests: integrate wiphy library with real board wiphy data
901f177 renderer: extract wiphy object to shared library
8187b56 tests: use real board configuration files in mock filesystem
39470a0 tests: consolidate code between real and mock renderer
17448da tests: improve error reporting in test framework
a0d463e tests: extract UCI helpers to shared library and update test outputs
3f2f3e3 renderer: minor fixes found while testing on real HW
383bf8e renderer: extract ethernet object to shared library
84cd3db schema: generate updated files
4b426c8 tests: fix integration test framework missing functions
5adba79 tests: implement full configuration integration test framework
dcf2ef8 tests: enhance board test context with dynamic wiphy mock
7a17791 tests: enhance test runner reporting for unit vs integration tests
21fb3c6 base/base: update to new templating pattern
b96def9 tests: implement board-specific integration test framework
4b78b03 renderer: move board.json loading to global scope
81041b3 renderer/templates: remove redundant fs require calls
3231152 renderer/templates/base: remove redundant fs import
bc961e0 base/ethernet: update to new templating pattern
8afa7ae renderer/templates: merge poe.uc into ethernet.uc
62eaa5e tests: add ethernet base template test cases (Step 1)
7e1d756 renderer/templates/ethernet: fix missing boolean wrappers
c82a7a9 schema: validate timeouts field descriptions
f5f6c43 base/timeout: update to new templating pattern
ae504fa tests: add timeout base template test cases (Step 1)
02f6fa9 renderer/templates/timeout: fix syntax error with extra closing tag
0748776 schema: validate unit field descriptions
355ad67 base/unit: update to new templating pattern
ec1b712 renderer/templates/unit: refactor to use helper functions (Step 2)
f3dcc79 tests: add unit base template test cases (Step 1)
12fc839 tests: add mock shell object for password management functions
2ae69f4 docs: update TESTING.md to reflect new test framework architecture
8e1eb31 tests: add support for base template testing infrastructure
0173636 schema: validate admin_ui field descriptions
49fb411 services/admin_ui: update to new templating pattern
b6b298a tests: add admin_ui test cases
b3bcd80 tests: refactor test runner to import-based architecture with individual test counts
0906e81 tests: consolidate test framework and eliminate code duplication
437df91 schema: validate wifi_scan metrics field descriptions
7f83f39 metrics/wifi_scan: update to new templating pattern
9cdc01c tests: add wifi_scan metrics test cases
b5964e5 schema: validate wifi_frames metrics field descriptions
dc96fdf metrics/wifi_frames: update to new templating pattern
8530e1e tests: add wifi_frames metrics test cases
a96f4d8 schema: validate telemetry metrics field descriptions
050ac26 metrics/telemetry: update to new templating pattern
ee43cdb tests: add telemetry metrics test cases
5a5721d schema: validate statistics metrics field descriptions
66ecd0d metrics/statistics: update to new templating pattern
eab7543 tests: add statistics metrics test cases
107a562 schema: enhance realtime metrics documentation
6fe7857 metric/realtime: refactor to new templating patterns
7c5775d tests: add realtime metrics template test cases
ee67163 schema: regenerate the files
3d4da1f schema: validate health metrics field descriptions
7c13c52 metrics/health: update to new templating pattern
d1f2169 tests: add health metric test cases
90f6e60 tests: fix mock renderer to extract metrics variables
4ea8eec schema: validate dhcp_snooping metrics field descriptions
1b3fb93 metrics/dhcp_snooping: update to new templating pattern
ce1582c tests: add dhcp_snooping metric test cases
5bbe42e docs: extend REFACTOR.md to cover metric templates
0994c85 schema: validate rrm field descriptions
00b0079 services/rrm: update to new templating pattern
0f7fa1c tests: add rrm test cases
c7b7130 services/radius_proxy: enhance schema documentation
237c0b3 services/radius_proxy: update to new templating pattern
6185a5a tests: add radius_proxy test cases
569d14a services/radius_gw_proxy: update to new templating pattern
2893469 schema: validate quality_of_service field descriptions
4535634 services/quality_of_service: update to new templating pattern
435744e tests: add quality_of_service test cases
c6c89b5 tests: enhance mock-renderer with QoS JSON support
bd054a5 schema: enhance online-check service documentation
b83b9ac services/online_check: refactor to new templating pattern
59c4a07 tests: add online_check test cases
8abc697 schema: validate gps field descriptions
ed33d61 services/gps: update to new templating pattern
59dca34 tests: add gps test cases
2c6b87f schema: validate fingerprint field descriptions
8d58237 services/fingerprint: update to new templating pattern
5f8be0c tests: add fingerprint test cases
5f1dcff services/dhcp_snooping: update to new templating pattern
e6cfd5f tests: add dhcp_snooping test cases
acf3763 tests: enhance mock-renderer with lookup_by_interface_vlan function
9313004 schema: validate airtime_fairness field descriptions
9a483c9 services/airtime_fairness: update to new templating pattern
bcd446f tests: add airtime_fairness test cases
157f7cf captive: enhance schema documentation and examples
d0388e7 services/captive: update to new templating pattern
1c8c736 tests: add captive test cases
db3d220 tests: enhance mock-renderer with SSID-based interface lookup
5799615 schema: validate dhcp_relay field descriptions
f58a2b3 services/dhcp_relay: update to new templating pattern
21f1d72 tests: add dhcp_relay test cases
0c96e96 schema: validate dhcp_inject field descriptions
670c57f services/dhcp_inject: update to new templating pattern
d7895a2 tests: add dhcp_inject test cases
9925450 tests: enhance mock-renderer with SSID and ethernet port lookups
4adc799 docs: update REFACTOR.md with NTP service example
79a9dcc services/ntp: update to new templating pattern
1f3c2ea tests: add ntp test cases
dc99ee6 schema: validate mdns field descriptions
56cede4 services/mdns: update to new templating pattern
3f86a6d tests: add mdns test cases
2aef7f6 docs: add refactoring guidelines
b42e3cd services/ssh: update to new templating pattern
37ca498 tests: add ssh test cases
c005ec3 tests: add proper mockup service for the files module
962a961 services/ieee8021x: update to new templating pattern
2a6a151 tests: add ieee8021x test cases
faaa0ba services/lldp: update to new templating pattern
b9fdbb0 services/log: update to new templating pattern
f9dbf48 tests: add unit test harness
8851342 add new template guidelines and helper functions
5e88dcb .gitignore: update docs/ filtering
3c822a5 ipcalc: split the implementation out into a library
f7f3937 ip-collide: start using the log module
54dd256 health.uc: refactor the code
3cd8d1f state: split code up into modules and add try/catch block around everything

Signed-off-by: John Crispin <john@phrozen.org>
2025-10-19 00:00:00 +02:00
2022-01-31 07:01:31 +01:00
2021-05-04 13:51:23 +02:00
2023-10-03 07:22:31 +02:00
2024-02-29 08:48:14 -08:00
2022-10-19 17:04:14 -07:00

OpenWiFi AP NOS

OpenWrt-based access point network operating system (AP NOS) for TIP OpenWiFi. Read more at openwifi.tip.build.

Building

Setting up your build machine

Building requires a recent Linux installation. Older systems without Python 3.7 will have trouble. See this guide for details: https://openwrt.org/docs/guide-developer/toolchain/beginners-build-guide

Install build packages on Debian/Ubuntu (or see above guide for other systems):

sudo apt install build-essential libncurses5-dev gawk git libssl-dev gettext zlib1g-dev swig unzip time rsync python3 python3-setuptools python3-yaml

Doing a native build on Linux

Use ./build.sh <target>, or follow the manual steps below:

  1. Clone and set up the tree. This will create an openwrt/ directory.
./setup.py --setup    # for subsequent builds, use --rebase instead
  1. Select the profile and base package selection. This setup will install the feeds and packages and generate the .config file.
cd openwrt
./scripts/gen_config.py linksys_ea8300
  1. Build the tree (replace -j 8 with the number of cores to use).
make -j 8 V=s

Build output

The build results are located in the openwrt/bin/ directory:

Type Path
Firmware images openwrt/bin/targets/<target>/<subtarget>/
Kernel modules openwrt/bin/targets/<target>/<subtarget>/packages/
Package binaries openwrt/bin/packages/<platform>/<feed>/

Developer Notes

Branching model

  • main - Stable dev branch
  • next - Integration branch
  • staging-* - Feature/bug branches
  • release/v#.#.# - Release branches (major.minor.patch)

Repository structure

Build files:

  • Makefile - Calls Docker environment per target
  • dock-run.sh - Dockerized build environment
  • docker/Dockerfile - Dockerfile for build image
  • build.sh - Build script
  • setup.py - Clone and set up the tree
  • config.yml - Specifies OpenWrt version and patches to apply

Directories:

  • feeds/ - OpenWiFi feeds
  • patches/ - OpenWiFi patches applied during builds
  • profiles/ - Per-target kernel configs, packages, and feeds

uCentral packages

AP-NOS packages implementing the uCentral protocol include the following repositories (refer to the ucentral feed for a full list):

Description
No description provided
Readme BSD-3-Clause 209 MiB
Latest
2025-10-17 17:44:48 +00:00
Languages
C 85.9%
Shell 5.6%
Makefile 3.3%
Roff 1.8%
UnrealScript 1.6%
Other 1.6%