Objectives
Version 2 (Isaac Wilder, 10/20/2013 09:31 pm)
1 | 1 | Pau Escrich | h1. Objectives |
---|---|---|---|
2 | 1 | Pau Escrich | |
3 | 1 | Pau Escrich | h2. Main characteristics |
4 | 1 | Pau Escrich | |
5 | 1 | Pau Escrich | * Suitable for rapid deployments as well as for stable community networks |
6 | 1 | Pau Escrich | * Ability to scale to thousands of nodes connecting different network clouds |
7 | 1 | Pau Escrich | * Complete auto-configuration, with the option for different levels of manual tunning #5 |
8 | 1 | Pau Escrich | * Roaming within network clouds |
9 | 1 | Pau Escrich | * Automatic Internet access detection and sharing |
10 | 1 | Pau Escrich | * Dual stack IPv6/IPv4 |
11 | 1 | Pau Escrich | * Dynamic global and local hostname resolution |
12 | 1 | Pau Escrich | * Decentralized network mapping and monitoring #6 |
13 | 1 | Pau Escrich | * Based on OpenWRT |
14 | 1 | Pau Escrich | * Free Software |
15 | 1 | Pau Escrich | |
16 | 1 | Pau Escrich | h3. Agreements |
17 | 1 | Pau Escrich | |
18 | 1 | Pau Escrich | * Use Lua whenever possible instead of shell scripts |
19 | 1 | Pau Escrich | * Guarantee a minimal mtu of 1350 |
20 | 1 | Pau Escrich | * Do not go over 0.64Mbit/s of routing overhead (we are estimating this should scale to 5k nodes with an average of 4 neighbors per node, considering an overhead of 4byte/s per node added to the net). |
21 | 1 | Pau Escrich | * Roaming should maintain persistent connections where possible |
22 | 1 | Pau Escrich | * The firmware should be structured as feed for OpenWRT |
23 | 1 | Pau Escrich | |
24 | 1 | Pau Escrich | h3. Firmware components: |
25 | 1 | Pau Escrich | |
26 | 1 | Pau Escrich | * Auto-config scripts (base config, gateway mode, etc.) |
27 | 1 | Pau Escrich | * Manual configuration web interface (LUCI-based) |
28 | 1 | Pau Escrich | * Safe config testing with revert-on-failure capability |
29 | 1 | Pau Escrich | * Shell tools for node management ("qmpcontrol") |
30 | 1 | Pau Escrich | * Tools to measure and monitor the network (aggregated data (like byte count) push/pull, more something like netflow (push only) ?) |
31 | 1 | Pau Escrich | ** Antenna alignment tools |
32 | 1 | Pau Escrich | ** Bandwidth measurement tool (actual tools rely on userspace programs, it would be better to find an in kernel solution ( seems ubiquity have a proprietary in kernel solution already ) because of limited CPU on devices; investigate arbitrary routing loops for throughput testing) |
33 | 1 | Pau Escrich | ** Wireless and network info (spectral analysis, signal, noise... both Push (with the agent) and Pull (via luci uhttpd) ?) |
34 | 1 | Pau Escrich | * Splash screen/captive portal |
35 | 1 | Pau Escrich | * Simple upgrade system |
36 | 1 | Pau Escrich | * Regulatory domain unlocker |
37 | 1 | Pau Escrich | * Versatile ping watchdog (watchping) |
38 | 1 | Pau Escrich | * Internet sharing control and configuration (some openwisp components?) |
39 | 1 | Pau Escrich | |
40 | 1 | Pau Escrich | h3. Associated tools and projects |
41 | 1 | Pau Escrich | |
42 | 2 | Isaac Wilder | * Decentralized network map (altermap, b6m) |
43 | 1 | Pau Escrich | * Mesh tunnel broker for IPv6 provision (librenet6) |
44 | 1 | Pau Escrich | * Tinc VPN for remote node management (synctincvpn) #15 |
45 | 1 | Pau Escrich | * Remote configuration administration and history (ruci + web/gui) |
46 | 1 | Pau Escrich | * Firmware customization and build tools (chef, qmpfw?) |
47 | 1 | Pau Escrich | * LUPI, a Lua API for OpenWRT #3 |
48 | 1 | Pau Escrich | * route validity checking (similar to eigenNet's babeld-route-share) |