Skip to content

Network Topology & Multi Bearer Mesh

riteshrajas edited this page Aug 31, 2026 · 1 revision

Network Topology & Multi-Bearer Mesh

Core Philosophy: Pure Peer-to-Peer (P2P) Sovereign Swarm — Zero Master/Slave Hierarchy, Protocol-Agnostic Multi-Bearer Bridging.


1. Fundamental Principles

Rule 1: No Master / Slave Hierarchy

  • Pure Symmetric Peer-to-Peer (P2P): There are no masters, no slaves, no central routers, and no single points of failure.
  • Every node possesses a unique 16-bit Node ID (0x0001–0xFFFE).
  • Every node is sovereign — any node can broadcast telemetry, listen to events, send targeted unicast commands, or act as a multi-hop packet relay.

Rule 2: Network Membership Bound to Network UUID

  • Network isolation and membership is strictly governed by a 128-bit Network UUID (e.g. "f47ac10b-58cc-4372-a567-0e02b2c3d479").
  • The 32-bit hash (net_hash) of the UUID is embedded in every 12-byte mesh envelope header (lux_mesh_envelope_t).
  • Any node with matching Network UUID automatically joins the swarm, discovering all neighbor nodes without manual pairing.

Rule 3: Protocol-Agnostic Multi-Bearer Bridging

Nodes in a Lux mesh do not need to share the same physical hardware transport protocol. Multi-radio nodes (such as ESP32, Adafruit CLUE, or gateway bridges) dynamically relay and translate packets across heterogeneous physical media:

┌────────────────────────┐                               ┌────────────────────────┐
│     BBC micro:bit      │                               │       ESP32 Node       │
│     (Nordic 2.4GHz)    │                               │       (ESP-NOW)        │
└───────────┬────────────┘                               └───────────┬────────────┘
            │                                                        │
            │ (Nordic RF)                                            │ (ESP-NOW)
            ▼                                                        ▼
┌─────────────────────────────────────────────────────────────────────────────────┐
│                           PYINTEL LUX UNIFIED MESH FABRIC                       │
│                     (Bound by Common 128-Bit Network UUID)                      │
└─────────────────────────────────────────────────────────────────────────────────┘
            ▲                                                        ▲
            │ (BLE / Nordic RF)                                      │ (Wi-Fi UDP / Serial)
            │                                                        │
┌───────────┴────────────┐                               ┌───────────┴────────────┐
│     Adafruit CLUE      │                               │   PC / Web Dashboard   │
│     (BLE / nRF52)      │                               │  (USB Serial / UDP)    │
└────────────────────────┘                               └────────────────────────┘

2. Mesh Relay Algorithm & Packet Ingestion

When a Lux mesh node receives a frame:

  1. Ingestion: Frame is received from any physical bearer (Serial UART, ESP-NOW, BLE, UDP, nRF Radio, CAN).
  2. UUID Verification: Verify envelope.net_hash == local_net_hash. Discard if non-matching.
  3. Deduplication: Check the 32-entry circular packet hash cache (seq_num + src_node). If already processed, drop frame to prevent loops.
  4. Local Dispatch: If dst_node == local_node_id or dst_node == 0xFFFF (Broadcast), dispatch frame to local application callbacks.
  5. Multi-Bearer Relay (Flooding): If hop_count > 1, decrement hop_count by 1 and re-emit the packet across all active transport interfaces except the incoming interface.

Clone this wiki locally