Commit Graph
7784 Commits
Author SHA1 Message Date
YueGuobin 58b97b4ce5 fix(controller): don't push the synthetic suspend filter to kernel links
update_suspend() piggybacks on the filter system: get_active_filters()
returns {"frequency_drop": [-1]} while a link is suspended so relay-based
node types drop all traffic at the uBridge filter. Kernel-datapath links
implement suspend natively via interface carrier, and pushing the
synthetic filter tripped the compute-side guard, making suspend fail
with 409 on every kernel link (and leaving controller/kernel state torn).
_get_node_filters() now returns empty filters for kernel links.
2026-10-06 00:21:07 +08:00
YueGuobin 37d7b9121e feat(docker): wire Docker-to-Docker links through a kernel bridge
Eligible links (both endpoints Docker, same compute, no filters/markers,
stopped nodes, no unix-socket NIO containers) are wired as veth pairs
enslaved into a per-link Linux kernel bridge (gns3 + 11 hex of the link
id, filling IFNAMSIZ) instead of the uBridge UDP relay, so frames flow
entirely in the kernel.

- NIOBridge NIO type: the controller decides the datapath in
  UDPLink._prepare and both computes enslave their deterministic gv*/gc*
  veth pair via uBridge's docker/brctl modules
- carrier/suspend = host-end admin state; both endpoints race-safely
  create/delete the bridge (EEXIST/EBUSY/ENOENT tolerated)
- veth adapters can still attach relay (UDP) links on a running node:
  lazy relay bridge over AF_PACKET on the host end (add_nio_ethernet)
- filters/markers/capture are rejected with explicit errors on this
  datapath (they live in the uBridge relay); vendor unix-socket
  containers are excluded; Server.enable_kernel_datapath is the
  kill-switch (default on)
- host-end veths survive container death and are removed on stop plus
  swept by name on the next start (crash/stale recovery)
2026-10-06 00:21:07 +08:00
Jeremy Grossmann 65c858d455 Merge pull request #2942 from markparonyan/ruff/pr03-fstrings
refactor: use f-strings
2026-10-05 14:35:56 +02:00
Mark Paronyan b3b1ba0d4e Merge branch '3.1' into ruff/pr03-fstrings 2026-10-04 20:56:13 +03:00
Jeremy Grossmann 9f9be983cd Merge pull request #2939 from markparonyan/patch-1
fix: bump asyncssh - at least 2.24.1 for CVE-2026-62949 fixes
2026-10-04 18:15:03 +02:00
Mark Paronyan 1c5c3d1f76 fix: bump asyncssh - at least 2.24.1 for CVE-2026-62949 fixes
Updated asyncssh version to 2.24.1 in requirements.
2026-10-04 19:01:30 +03:00
Jeremy Grossmann 38cc7cc0a0 Merge pull request #2938 from markparonyan/ruff/pr02-unused-imports
Ruff/pr02 unused imports
2026-10-03 19:33:45 +02:00
Mark Paronyan 7e1bc67be2 chore(ruff): drop UP032 from the ignore baseline 2026-10-03 19:44:02 +03:00
Mark Paronyan 3135c8b7e3 refactor: use f-strings in remaining modules, scripts and tests 2026-10-03 19:44:02 +03:00
Mark Paronyan be943fcdf3 refactor: use f-strings in controller tests 2026-10-03 19:44:02 +03:00
Mark Paronyan bee6b3f8b1 refactor: use f-strings in compute tests 2026-10-03 19:44:01 +03:00
Mark Paronyan 7a9c600f54 refactor: use f-strings in controller modules 2026-10-03 19:44:01 +03:00
Mark Paronyan 552c0ca3e0 refactor: use f-strings in remaining compute modules 2026-10-03 19:44:01 +03:00
Mark Paronyan bbebf20825 refactor: use f-strings in dynamips manager 2026-10-03 19:44:01 +03:00
Mark Paronyan c458459626 refactor: use f-strings in dynamips NIO modules 2026-10-03 19:44:01 +03:00
Mark Paronyan fba3ecc5fc refactor: use f-strings in dynamips nodes 2026-10-03 19:44:00 +03:00
Mark Paronyan a5d2bca921 refactor: use f-strings in dynamips router node 2026-10-03 19:44:00 +03:00
Mark Paronyan 97f6805d0a refactor: use f-strings in iou compute modules 2026-10-03 19:44:00 +03:00
Mark Paronyan d5ad4c67c6 refactor: use f-strings in qemu compute modules 2026-10-03 19:44:00 +03:00
Mark Paronyan 7f2c0c7e9c refactor: use f-strings in docker compute modules 2026-10-03 19:44:00 +03:00
Mark Paronyan 72fae7a1ce refactor: declare new image sync models in the public API 2026-10-03 19:43:59 +03:00
Mark Paronyan d5e2832649 chore(ruff): drop F401 from the ignore baseline 2026-10-03 19:43:59 +03:00
Mark Paronyan b622ccae7b refactor: declare explicit public API in package __init__ modules 2026-10-03 19:43:59 +03:00
Mark Paronyan 01d890bc40 style: tidy import block after unused-import removal 2026-10-03 19:43:59 +03:00
Mark Paronyan 306d8fbde4 refactor: remove unused imports 2026-10-03 19:43:58 +03:00
Jeremy Grossmann 084004586c Merge pull request #2934 from markparonyan/ruff/pr01-imports
refactor: ruff fixes
2026-10-03 17:20:41 +02:00
Mark Paronyan 1ed8320e31 Merge branch '3.1' into ruff/pr01-imports 2026-10-03 14:21:22 +03:00
grossmj 64e2a62a04 fix: improve warning message for missing mtools in config disk creation. Ref #2778 2026-10-02 16:08:38 +02:00
Mark Paronyan b78672a8ca style: sort imports in the new image management modules 2026-10-02 12:43:26 +03:00
Mark Paronyan a64379cb78 chore(ruff): drop I001 from the ignore baseline 2026-10-02 12:43:26 +03:00
Mark Paronyan 83e7fbe63b style: sort imports in remaining tests and scripts 2026-10-02 12:43:26 +03:00
Mark Paronyan 6d16d923c7 style: sort imports in compute and controller tests 2026-10-02 12:43:26 +03:00
Mark Paronyan b46b9a1d26 style: sort imports in api tests 2026-10-02 12:43:26 +03:00
Mark Paronyan 55df230864 style: sort imports in controller 2026-10-02 12:43:26 +03:00
Mark Paronyan 61caa20524 style: sort imports in agent and remaining compute modules 2026-10-02 12:43:26 +03:00
Mark Paronyan 3b993b464f style: sort imports in schemas 2026-10-02 12:43:26 +03:00
Mark Paronyan 634189d443 style: sort imports in api and utils modules 2026-10-02 12:43:26 +03:00
Mark Paronyan 4ebc941951 style: sort imports in controller API routes 2026-10-02 12:43:26 +03:00
Mark Paronyan b9cdac487c style: sort imports in compute, db and services modules 2026-10-02 12:43:26 +03:00
Mark Paronyan 38e9ddca09 style: sort imports in compute node modules 2026-10-02 12:43:26 +03:00
Jeremy Grossmann 7f8d9c2f54 Merge pull request #2933 from markparonyan/ruff/trivia-fixups
refactor: ruff fixes
2026-10-01 23:18:29 +02:00
Mark Paronyan a77e06b907 Merge branch '3.1' into ruff/trivia-fixups 2026-10-01 19:58:02 +03:00
Mark Paronyan 269e7aaa67 chore(ruff): drop resolved trivia rules from the ignore baseline 2026-10-01 19:57:47 +03:00
Mark Paronyan 74943b4c74 refactor: convert remaining percent formatting in log messages 2026-10-01 19:57:47 +03:00
Mark Paronyan 95ada23395 refactor: replace percent formatting with format specifiers 2026-10-01 19:57:47 +03:00
Mark Paronyan 06899c92fc refactor: use iterable unpacking instead of concatenation 2026-10-01 19:57:46 +03:00
Mark Paronyan 2dc7479d11 style: remove f-strings without placeholders 2026-10-01 19:57:46 +03:00
Mark Paronyan c9416d2569 style: remove quotes from type annotations 2026-10-01 19:57:45 +03:00
Mark Paronyan fdb8d87a64 style: drop useless object inheritance 2026-10-01 19:57:45 +03:00
Mark Paronyan 396407827e style: drop redundant open mode arguments 2026-10-01 19:57:44 +03:00