An eBPF-Powered Programmable Data Plane for Edge Service Mesh.
Edge nodes lose their link to the cloud control plane often and unpredictably. Standard service mesh sidecars (Envoy-class proxies) are too heavy for that environment — they burn CPU and memory doing userspace packet processing on hardware that doesn't have much of either to spare.
EdgeMesh-Extended is a localized, zero-sidecar edge service mesh: routing decisions happen in kernel space via eBPF (XDP on ingress, TC on egress), and a Raft consensus group scoped to each edge LAN keeps those routing rules consistent across nodes even when the link to the cloud is down.
cloud control plane (K8s API / KubeEdge CloudCore, optional)
│
tunnel │ (may be partitioned — the zone keeps working without it)
│
┌── edge zone (LAN) ──────────────────────────────────────────┐
│ │
│ edgemesh-agent (node A) edgemesh-agent (node B) │
│ ┌────────────────┐ raft RPC ┌────────────────┐ │
│ │ Raft FSM │◄─────────────►│ Raft FSM │ ... │
│ │ │ │ │ │ │ │
│ │ ▼ │ │ ▼ │ │
│ │ reconcile loop │ │ reconcile loop │ │
│ │ │ │ │ │ │ │
│ │ ▼ │ │ ▼ │ │
│ │ cilium/ebpf mgr │ │ cilium/ebpf mgr │ │
│ │───────┼─────────│ │───────┼─────────│ │
│ │kernel ▼ │ │kernel ▼ │ │
│ │ XDP + TC │ │ XDP + TC │ │
│ │ maps + ringbuf │ │ maps + ringbuf │ │
│ └────────────────┘ └────────────────┘ │
└───────────────────────────────────────────────────────────────┘
(Coming soon)
See CONTRIBUTING.md for details on how to run tests and contribute.
Apache 2.0