Skip to content

feat: Add network bonding configuration page - #28

Open
kcirtapfromspace wants to merge 3 commits into
turing-machines:mainfrom
kcirtapfromspace:feature/network-bonding-ui
Open

feat: Add network bonding configuration page#28
kcirtapfromspace wants to merge 3 commits into
turing-machines:mainfrom
kcirtapfromspace:feature/network-bonding-ui

Conversation

@kcirtapfromspace

Copy link
Copy Markdown

Summary

Add a Network Settings page to configure NIC link aggregation (bonding) on the Turing Pi BMC.

Changes

New Files

  • src/routes/_tabLayout/network.lazy.tsx - Network bonding configuration page
  • src/components/skeletons/network.tsx - Loading skeleton for network page

Modified Files

  • src/components/navigation-links.tsx - Added Network link to navigation
  • src/lib/api/get.ts - Added useNetworkConfigQuery hook
  • src/lib/api/set.ts - Added useNetworkConfigMutation hook
  • src/locale/en.ts - Added network-related translations
  • Other locale files - Added network navigation key

Features

  • Toggle to enable/disable bonding
  • Dropdown to select bonding mode with descriptions
  • Status display showing bonding state and slave interfaces
  • Visual indicators for modes that require switch configuration

API Endpoints

  • GET /api/bmc?opt=get&type=network_config
  • GET /api/bmc?opt=set&type=network_config&enabled=1&mode=802.3ad&apply=1

Related PRs

🤖 Generated with Claude Code

kcirtapfromspace and others added 3 commits January 11, 2026 21:06
Add Network tab for configuring link aggregation (bonding) between ge0 and ge1.

Features:
- Enable/disable bonding via toggle switch
- Select bonding mode from dropdown (7 modes supported)
- Display current bonding status (active/inactive, mode, slaves)
- Mode descriptions and switch requirement indicators
- Apply button to save and apply changes

Supported bonding modes:
- active-backup: Failover only (no switch config needed)
- balance-rr: Round-robin (requires switch aggregate)
- balance-xor: XOR hash (requires switch aggregate)
- broadcast: All slaves transmit
- 802.3ad: IEEE LACP (requires switch LACP)
- balance-tlb: Transmit load balancing
- balance-alb: Adaptive load balancing

API endpoints used:
- GET /api?cmd=network_config - Retrieve current config
- GET /api?cmd=network_config&enabled=X&mode=X&apply=X - Set config

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add 'network' navigation key to de, es, nl, pl, zh-Hans locales
- Add label prop to SelectTrigger for accessibility
- Regenerate route types for TanStack Router

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Change network config API calls to use the standard bmcd endpoint format:
- GET /bmc?opt=get&type=network_config
- SET /bmc?opt=set&type=network_config&enabled=...&mode=...&apply=...

The axios client has baseURL="/api", so these become /api/bmc endpoints
which matches how bmcd routes are configured in main.rs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.

1 participant