hashgraph / hashgraph/solo-weaver

Epic TS_3 — BN traffic-shaper monitor (solo-provisioner-daemon)

Open
#736 0 comments 0 reactions 1 assignee Claimed by @brunodam View on GitHub
BN Epic order: core P0
Dominant language
Go
Stars
3
Forks
0
Avg merge
3d 2h
Merged PRs (30d)
46

Description

Design: [v4 design](https://github.com/automa-saga/traffic-shaper/blob/main/docs/bn-qos-multiclass-priority-design-v4-nft-priority.md) §8.1, §8.5.

Implement the `traffic_shaper` monitor inside the per-host `solo-provisioner-daemon` (a systemd-managed Linux service, daemonkit-supervised — **NOT** a Kubernetes DaemonSet). It owns the dynamic plane: pod-driven `$VETH` qdiscs and statusz-driven nft set membership.

**Scope:**
- Monitor skeleton: `daemon.yaml` enablement, `daemonkit.SupervisedMonitor`, `GET /block_node/traffic_shaper/status`.
- Pod-lifecycle watcher: resolve host-side veth, install `$VETH` HTB on pod create via a privileged `block node tc-attach` exec, rebind on `ContainersReady`.
- statusz poll loop (5 s): map statusz categories to policy names internally, diff vs live nft sets, apply via `network policy set --cidrs --name`.
- Privilege model: runs unprivileged as `weaver`; privileged ops exec `sudo solo-provisioner` (sudoers-restricted).

Consumes the `network` command family (TS_1).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.