Skip to content

Develop - #78

Merged
thediveo merged 96 commits into
mainfrom
develop
Nov 13, 2026
Merged

thediveo merged 96 commits into
mainfrom
develop

Conversation

@thediveo

Copy link
Copy Markdown
Collaborator

No description provided.

Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
…ing them into containers

feat: xsk rings and umem handling
feat: attaching an xdp program to a netdev
feat: discover XSKs
feat: manage XSKs in Go
feat: accessing netdev NETLINK family
refact: running functions in the context of a different network namespace
feat: rx/tx queue layout detection, sysfs guessing missing pieces
feat: lsnetdev CLI command for listing netdevs with their RX/TX queues, IRQ(s) and NAPI kthreads
chore: upgrade deps

Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
…nformation

Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
…overies

Signed-off-by: thediveo <thediveo@gmx.eu>
… incl. eBPF bee icons, resolves #71

Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
…re markers, mixed-project netns duplication, add VLAN wire styling and hover

Signed-off-by: thediveo <thediveo@gmx.eu>
…ge badge

Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
thediveo and others added 27 commits November 6, 2026 15:16
This includes network namespaces only kept alive by sockets, which lxkns
v0.49.0 now references in a usable way.

Signed-off-by: thediveo <thediveo@gmx.eu>
Network namespaces can legitimately vanish during discovery.

Signed-off-by: thediveo <thediveo@gmx.eu>
…hout processes

Read the socket tables via /proc/thread-self/net while switched into the
network namespace, instead of requiring an attached process.

Signed-off-by: thediveo <thediveo@gmx.eu>
…orkNamespaces

NewNetworkNamespaces gets the options WithSocketProcesses and
WithTapTunProcessors, replacing the unreleased
NewNetworkNamespacesWithSocketProcesses and undeprecating
NewNetworkNamespaces. TAP/TUN serving processes are now collected via the
lxkns fd scan callback instead of an own fdinfo scan, and the own socket
inode scan discoverAllSockInodes is gone; without the options,
NewNetworkNamespaces falls back to lxkns scans of its own.

Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
…odes

Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
…ure paths

Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Relative chapter links such as (tech) resolved against the current chapter's splat route under React Router 7, yielding /help/gw/tech and thus silently showing the first chapter. Absolute links are still prefixed with the router basename and thus work behind path-rewriting proxies.

Signed-off-by: thediveo <thediveo@gmx.eu>
The literal <a> element in About.mdx bypassed the SmartA router link mapping, so it pointed to /help/gw at the origin root, outside any proxy path prefix.

Signed-off-by: thediveo <thediveo@gmx.eu>
Automatic refreshing is intentionally off unless users opt in, so that they stay in control of when discoveries (and thus host load) happen.

Signed-off-by: thediveo <thediveo@gmx.eu>
…esh button

Render the content area as a main landmark and give the navigation drawer toggle and the app bar refresh button accessible names; the refresh tooltip only labelled its wrapper element.

Signed-off-by: thediveo <thediveo@gmx.eu>
Tests the production build served by vite preview, with the discovery API mocked using the existing mock data. Covers all views, the navigation drawer, settings, discovery failures, and all help chapters including their table of contents, prev/next navigation, deep links, and in-chapter links. Uncaught errors and console errors fail tests, as the app has no error boundary.

Additionally tests the production image together with well-known containers, checking branding, deep links served by the Go SPA handler, discovery of the containers, forwarded host ports, and the discovery engine version. Also emulates a path-rewriting ingress to check that discovery, help links, and navigation stay below the forwarded path prefix. Set GW_E2E_IMAGE to test an already built image instead.

Signed-off-by: thediveo <thediveo@gmx.eu>
Adds make targets e2e and e2e-live, and also lists help targets with digits in their names.

Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
…igator

The wiring view, the details view, and the containee navigator each
implemented their own, diverging containee filter logic:

- the wiring view showed all members of a composer project as soon as
  a single member matched, as project groups always referenced all
  discovered project network namespaces;
- the details view re-filtered project members by container names
  only, dropping members matching only by pod name;
- the wiring view applied the "show empty network namespaces" setting
  only inside the breadboard, after deciding that there were matches,
  resulting in a blank breadboard instead of the "no matches" notice;
- the navigator matched pods only by pod name, not by the names of
  their containers.

Introduce netnsMatchesFilter as the single source of truth: a network
namespace matches when the name of an attached container, process,
pod'ed container, pod, or its composer project matches. Filtering by
a composer project name thus reveals the complete project, even with
explicitly set container names.

sortedNetnsProjects now returns project groups restricted to the
network namespaces passed in, so that project cards show only the
matching members without consumers having to re-filter.

Document the filter semantics in the navigation drawer help chapter,
with cross-references from the wiring and details view chapters, and
add e2e tests and Storybook stories covering the filtering.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: thediveo <thediveo@gmx.eu>
Signed-off-by: thediveo <thediveo@gmx.eu>
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

The CNI plugin directory was created without sudo, which fails with
"Permission denied" on runner images where /usr/lib/cni doesn't exist.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: thediveo <thediveo@gmx.eu>
@thediveo
thediveo merged commit bfd5003 into main Nov 13, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants