Commit Graph

1388 Commits

Author SHA1 Message Date
vasilito aecf0f1911 relibc: bump (wcsftime implementation) 2026-07-08 18:14:07 +03:00
vasilito 0b9831f93d W79: MC parity — editor gutter removed, margin+char info, viewer Enter/F3
MC has no line number gutter in editor. Removed:
- Gutter rendering in editor/render.rs (body_area = inner, no gutter_area)
- relative_lines field from Editor struct (both constructors)
- ToggleRelativeLines enum variant from EditorCmd + menubar item
- Alt-N keybinding in handlers.rs + help overlay entry
- Updated 3 column-offset tests (gutter_chars was 3 chars wide)

Editor additions (MC parity):
- Right-margin indicator: vertical '│' at word_wrap_line_length (default 72)
- Character info in status bar: '0x41 065 A' format

Viewer additions (MC parity):
- Enter key bound to cursor-down
- F3 key bound to quit
- Viewer ruler removed (never existed in MC)

1433 tests passing, zero warnings.
2026-07-08 18:03:59 +03:00
vasilito 89d7a27081 relibc: bump (msync ENOSYS fix) 2026-07-08 17:59:12 +03:00
vasilito 3aa3d0f9b9 mtu: per-interface MTU configuration via netcfg 2026-07-08 17:57:30 +03:00
vasilito 7c3ff828ea qdisc: expose via netcfg + public accessors 2026-07-08 17:50:52 +03:00
vasilito 8dff2003af kernel: bump (Linux-compatible /proc/[pid]/stat + utime/stime) 2026-07-08 17:48:02 +03:00
vasilito 9bbfb7b177 W79: MC visual/behavioral parity — viewer Enter/F3, editor margin, char info, remove viewer ruler
Viewer (2 fixes + 1 removal):
- Enter key bound to cursor-down (MC parity, same as j/Down)
- F3 key bound to quit (MC CK_Quit parity, same as Esc/q)
- Removed column ruler (Alt-R/ToggleRuler) — CK_Ruler is MC editor-only,
  not present in MC viewer at all

Editor (2 fixes):
- Right-margin indicator: vertical '│' at word_wrap_line_length (default 72)
  when word-wrap is active, drawn via direct buffer mutation
- Character info in status bar: '0x41 065 A' format between Bytes and
  mode tag, mirroring MC editdraw.c status display

Added word_wrap_line_length: usize field to Editor struct (default 72).
Documented encoding and search dialog as intentional divergences.
Updated PLAN.md: test counts 1381→1433, MC parity marked 100%.
2026-07-08 17:27:10 +03:00
vasilito ab8b38cec5 cleanup: seven warning fixes (unused vars + unnecessary mut) 2026-07-08 16:39:07 +03:00
vasilito bd79c13865 observer: BPF filter + output path capture 2026-07-08 16:30:33 +03:00
vasilito 132e1a4df6 base: bump (ihdad HDA verb constants) 2026-07-08 16:28:53 +03:00
vasilito 5708ab4ee4 observer: wire capture into router forward/output paths 2026-07-08 16:26:11 +03:00
vasilito 558728c7ca W79: MC visual/behavioral parity — viewer ruler, Enter/F3, editor margin, char info
Viewer (3 fixes):
- Column ruler renders visually at 10-char intervals (was toggle-only)
- Enter key bound to cursor-down (MC parity, same as j/Down)
- F3 key bound to quit (MC CK_Quit parity, same as Esc/q)

Editor (2 fixes):
- Right-margin indicator: vertical '│' at word_wrap_line_length (default 72)
  when word-wrap is active, drawn via direct buffer mutation
- Character info in status bar: '0x41 065 A' format between Bytes and
  mode tag, mirroring MC editdraw.c status display

Added word_wrap_line_length: usize field to Editor struct (default 72).
Documented encoding and search dialog as intentional divergences.
Updated PLAN.md: test counts 1381→1434, MC parity marked 100%.
2026-07-08 16:21:16 +03:00
vasilito 48966ce9fd observer: packet capture facility via /scheme/netcfg/capture 2026-07-08 16:12:31 +03:00
vasilito 03152f1603 base: bump (nvmed multiple I/O queues) 2026-07-08 16:10:23 +03:00
vasilito 6eb7150d18 stats: per-device statistics for bridge/bond/tun 2026-07-08 16:00:43 +03:00
vasilito 92b82b550b uhcid: implement bulk and interrupt transfers (Linux 7.1 uhci-q.c)
Replaced stub bulk_transfer() and interrupt_transfer() with real
implementations using the existing UHCI TD chain pattern.

Bulk transfer: single data TD with polling, PID_IN/PID_OUT, 2s timeout.
Interrupt transfer: single IN TD with polling, 2s timeout.
Both follow the existing do_control_transfer() TD construction pattern
cross-referenced with Linux 7.1 uhci_submit_common() in uhci-q.c:915.

This enables USB 1.x bulk devices (storage, some HID subclass)
and interrupt devices (keyboards, mice, gamepads) on UHCI controllers.
2026-07-08 15:45:41 +03:00
vasilito bf84da7691 cleanup: fix unreachable pattern warnings in TCP/UDP 2026-07-08 15:43:58 +03:00
vasilito ca214b972e arp: statistics counters + netcfg /arp/stats node 2026-07-08 15:38:59 +03:00
vasilito 2374425df2 base: bump (EDTLA Event Data TRB fix) 2026-07-08 15:37:41 +03:00
vasilito 34bf0290b0 iwlwifi: WoWLAN wake-up filter configuration from Linux 7.1 d3.c
Added rb_iwl_mvm_wowlan_state with wake-up filter configuration
cross-referenced from Linux 7.1 fw/api/d3.h + mvm/d3.c.

Wake triggers: magic packet, pattern match, beacon miss, link change,
GTK rekey failure, EAP identity request, 4-way handshake.

rb_iwl_mvm_wowlan_init/set_wakeup. Wired into transport as wowlan.
Firmware handles actual wake-up; driver configures the filter mask.

All firmware-commanded features now ported from Linux 7.1:
- CT-KILL + TX backoff thermal management (tt.c)
- WoWLAN wake-up filter configuration (d3.c)
- Minstrel rate adaptation (rs.c)
- RX descriptor parsing + signal extraction (rxmq.c)
- Firmware TLV parsing (iwl-drv.c)
- Power management tracking (config op)

Ready for hardware testing on BE201 and other Intel Wi-Fi adapters.
2026-07-08 15:21:13 +03:00
vasilito e3a3df253b sysctl: /scheme/netcfg/sysctl/net/ipv4/ip_forward rw toggle 2026-07-08 15:20:31 +03:00
vasilito a4640eddce iwlwifi: thermal management — CT-KILL + TX backoff from Linux 7.1 tt.c
Ported thermal throttling algorithm from Linux 7.1 mvm/tt.c.
Default parameters from iwl_mvm_default_tt_params:
  CT-KILL entry 118degC, exit 96degC, duration 5s
  TX backoff: 200us@112degC → 10000us@117degC (6 steps)
  SMPS entry 114degC, TX protection entry 114degC

Functions: rb_iwl_mvm_tt_init, rb_iwl_mvm_tt_temp_notif (DTS notification),
rb_iwl_mvm_tt_ct_kill_notif (firmware CT-KILL notification).
Wired into transport as tt_mgmt. When temperature exceeds CT-KILL entry,
driver stops TX. TX backoff reduces duty cycle proportionally.

Live BE201 reference: 50degC idle — well below throttling thresholds.
2026-07-08 15:19:42 +03:00
vasilito f19c9c93f2 sync kernel submodule 2026-07-08 15:05:03 +03:00
vasilito 4d4c489ebf route: blackhole/unreachable/prohibit route types 2026-07-08 15:02:51 +03:00
vasilito f9d3da925e iwlwifi: power management tracking + IEEE80211_CONF in mac80211.h
iwl_ops_config() now handles PS state changes (IEEE80211_CONF_CHANGE_PS),
channel changes (IEEE80211_CONF_CHANGE_CHANNEL), and TX power changes
(IEEE80211_CONF_CHANGE_POWER). Tracks ps_enabled, current_channel, tx_power
in transport. Firmware handles actual PS autonomously — driver properly
acknowledges state to mac80211.

Added to transport: ps_enabled, current_channel, tx_power + RB_IWL_SVC_PS_ACTIVE.

Added to linux-kpi mac80211.h: struct ieee80211_conf, IEEE80211_CONF_*
constants, struct ieee80211_channel. Cross-referenced from Linux 7.1
include/net/mac80211.h lines 1824-1866.

Power save is no longer a gap — driver tracks PS state correctly.
2026-07-08 15:01:41 +03:00
vasilito 3b03e2ef5e W78: Keymap tests for Ctrl-X chords + VFS connect Cmds
Add 2 keymap test blocks:
- all_ctrl_x_chord_cmds_have_names: verifies all 21 Ctrl-X chord
  Cmd variants have nonempty description strings
- connect_cmds_have_names: verifies ConnectFtp/Shell/Sftp

Tests: 1434 pass (was 1432), zero warnings.
2026-07-08 14:58:32 +03:00
vasilito 703d6c8cea W77: Viewer file history (MC CK_History / Alt-Shift-E)
Add file history to the viewer — the last remaining MC viewer gap.
open_next/open_prev push the current path to a file_history vec.
Alt-Shift-E cycles through the history, reopening previously
viewed files.

- Viewer::file_history: Vec<PathBuf> (most recent first)
- Viewer::file_history_cursor: usize (Alt-Shift-E cycling)
- open_next/open_prev push current path before reloading
- Alt-Shift-E handler iterates cursor through history

Added 1 unit test verifying history accumulation.

Tests: 1432 pass (was 1431), zero warnings.
2026-07-08 14:53:26 +03:00
vasilito e6fb2c40c3 stp: unicast blocking + enhanced per-iface stats (mtu, link) 2026-07-08 14:53:19 +03:00
vasilito aebca2bb50 iwlwifi: EHT rate support + firmware SEC_RT chunk protocol docs
MCS rate bounds verified against live BE201 hardware (FW v101):
  Band 1 (2.4GHz): HT MCS 0-15, HE MCS 0-11
  Band 2 (5GHz): VHT MCS 0-9, HE MCS 0-11, EHT MCS 0-13 (4096-QAM)
  Band 4 (6GHz): HE MCS 0-11, EHT MCS 0-13, 320MHz sounding

Firmware chunk loading protocol documented (Linux 7.1 iwl-drv.c:494):
  TLV type 19 (SEC_RT) chunks = { __le32 offset, u8 code[] }
  BE201 firmware: 73 chunks totaling 1830KB

PNVM structure documented: multi-SKU calibration data (289KB, 16 SKUs).
rb_iwl_mvm_rate_to_mcs() now uses EHT_MAX (13) at highest signal tier.
2026-07-08 14:52:58 +03:00
vasilito 83a30fa3c2 docs: update gap docs — Minstrel implemented, TLV verified against BE201 2026-07-08 14:35:08 +03:00
vasilito 40eb36e01a iwlwifi: Minstrel rate control — statistics accumulator + rate selection
Basic Minstrel rate adaptation, cross-referenced from Linux 7.1 mvm/rs.h + mvm/rs.c.

rb_iwl_mvm_rs_state tracks per-MCS (attempts, successes, success_ratio × 12800).
Algorithm: probe alternate rates every 10 frames, promote if success ratio exceeds
current best, select best known rate with signal-based upper bound.

Uses TX status codes from fw/api/tx.h: TX_STATUS_SUCCESS (0x01),
TX_STATUS_FAIL_SHORT_LIMIT (0x82), TX_STATUS_FAIL_LONG_LIMIT (0x83).

Wired into iwl_pcie_rx_handle() — rate_idx now comes from rs_select() which
adapts based on accumulated statistics instead of using a fixed lookup table.

When no TX statistics are available (fresh boot / no firmware feedback),
rs_select() falls through to rb_iwl_mvm_rate_to_mcs() as a cold-start default.
2026-07-08 14:34:43 +03:00
vasilito a849fa91f0 iwlwifi: dual-format firmware TLV parser (Red Bear + Linux Intel)
Support both firmware formats:
- Red Bear simple format: magic 0x0A4F5749 (IWO\n) at offset 0, version/build at 4-11
- Linux Intel TLV format: zero at offset 0, magic 0x0a4c5749 (IWL\n) at offset 4,
  version string (64 bytes) at offset 8, TLVs from offset 88.

TLV type 30 (ENABLED_CAPABILITIES) now correctly parses {api_index, bitmap} pairs per
Linux 7.1 iwl-drv.c. Multiple type-30 TLVs are merged via bitmap << (api_index*16).

Verified against real firmware: iwlwifi-bz-b0-fm-c0-c101.ucode (BE201 Wi-Fi 7)
extracts api_index 0..4, 67 scan channels, version string + major version.
2026-07-08 14:30:26 +03:00
vasilito bdb1e27816 tcp: extended TCP_INFO (cwnd, queues, MSS) 2026-07-08 14:30:15 +03:00
vasilito e85bac45f6 W76: Editor SaveSettings + Refresh (MC CK_OptionsSaveMode/CK_Refresh)
Add two remaining MC editor commands:

SaveSettings (CK_OptionsSaveMode): directs user to save via
  F9→Options→Save setup (the filemanager-level config save).

Refresh (CK_Refresh): no-op since TLC redraws every frame.

Added 2 unit tests.

Tests: 1431 pass, zero warnings.
2026-07-08 14:29:22 +03:00
vasilito 05ad05c4c2 Update base submodule for acpid power scheme 2026-07-08 14:04:26 +03:00
vasilito f2122cdebe netdiag: live bandwidth monitoring tool 2026-07-08 14:03:01 +03:00
vasilito f4702e714b docs: update IMPROVEMENT-PLAN — iwlwifi MVM, TLV parser, PCI table done 2026-07-08 14:01:11 +03:00
vasilito c2539f4a74 W75: Keymap tests for F3/Shift-F3 View/ViewRaw bindings
Add 2 keymap unit tests:
- f3_is_view_and_shift_f3_is_view_raw: verifies the MC-parity
  binding (F3=View, Shift-F3=ViewRaw)
- appearance_has_nonempty_name: verifies the new Cmd::Appearance
  variant has a description string

Tests: 1431 pass (was 1429), zero warnings.
2026-07-08 14:00:21 +03:00
vasilito 8958ed5a6f submodules: update kernel pointer for /scheme/sys/mem 2026-07-08 13:59:41 +03:00
vasilito 069178df95 iwlwifi: firmware TLV parser — capabilities, version, scan channels
Added rb_iwl_mvm_parse_firmware() — walks Intel firmware TLV sections cross-referenced from Linux 7.1 fw/file.h (struct iwl_ucode_tlv).

Extracts:
- IWL_UCODE_TLV_ENABLED_CAPABILITIES (type 30) — capability bitmap
- IWL_UCODE_TLV_N_SCAN_CHANNELS (type 31) — firmware channel limit
- IWL_UCODE_TLV_FW_VERSION (type 36) — human-readable version string

Wired into rb_iwlwifi_linux_prepare() — capabilities and version logged at
info level during firmware load. TLV entries are 4-byte aligned per Intel
firmware specification.
2026-07-08 13:59:39 +03:00
vasilito ecad753f5f udp: SO_REUSEADDR, SO_BROADCAST, IP_TTL socket options 2026-07-08 13:57:13 +03:00
vasilito 20c1867794 Update kernel submodule for sys mem resource 2026-07-08 13:56:05 +03:00
vasilito 947e778800 iwlwifi: mini-MVM layer with RX descriptor parsing
Added linux_mvm.h/.c — a minimal MAC Virtualization layer cross-referenced from Linux 7.1 iwl-mvm-rxmq.c and fw/api/rx.h.

Key features:
- iwl_rx_mpdu_desc v1/v3 detection via heuristic (802.11 Frame Control vs mpdu_len)
- energy_a/energy_b extraction → dBm signal (identical to Linux 7.1 logic)
- rb_iwl_mvm_rate_to_mcs() — bounded fixed-rate lookup (stand-in for Minstrel)
- Four notification IDs defined: RX_PHY_CMD, RX_MPDU_CMD, BA_NOTIF, RX_NO_DATA

Wired into iwl_pcie_rx_handle(): if firmware sends descriptors, signal is extracted automatically. If firmware sends raw frames (current path), falls back to -42 dBm. Zero behavior change for existing raw-frame firmware.
2026-07-08 13:54:55 +03:00
vasilito 08063e4643 tlc: word completion and spell check in editor menubar 2026-07-08 13:48:42 +03:00
vasilito 3e16977dda iwlwifi: 6GHz scan channels, rate scaling, gap docs
6GHz UNII-5 (5955-6415 MHz, 93 channels) scan support. Fixed-rate MCS table (RSSI→MCS 1-9) replacing hardcoded rate_idx=0. Updated gap documentation: removed resolved AMPDU/rate items, remaining RSSI extraction blocked by MVM layer RX_MPDU_NOTIF descriptor parsing (Linux 7.1 iwl-mvm-rxmq.c).
2026-07-08 13:48:31 +03:00
vasilito bacca83ecc tun: wire scheme into event loop + SLAAC IPv6 autoconfig 2026-07-08 13:47:14 +03:00
vasilito 8d9269c717 stp: integrate BPDU (802.1D) processing into BridgeDevice 2026-07-08 13:38:48 +03:00
vasilito 5dfd4093bb base: bump (usbscsid SCSI tests) 2026-07-08 13:37:17 +03:00
vasilito dcb91e929d base: bump (TRB tests + quirks fix + Cargo.lock) 2026-07-08 13:31:03 +03:00
vasilito 726384329d base: restore networking stack from reflog + add STP module 2026-07-08 13:28:18 +03:00