Red Bear OS
c015a375b1
mtu: per-interface MTU configuration via netcfg
...
LinkDevice trait gains set_mtu(mtu) with default no-op.
EthernetLink stores mtu in field, clamped to 576-9000 (RFC 791 min/max).
netcfg/ifaces/eth0/mtu becomes rw:
cat /scheme/netcfg/ifaces/eth0/mtu → '1500' (default)
echo 1400 > .../mtu → VPN MTU
echo 9000 > .../mtu → jumbo frames
Clamped to [576, 9000]:
- 576: minimum for IPv4 (RFC 791)
- 9000: standard jumbo frame MTU
Useful for VPNs (MTU 1400 to avoid fragmentation through tunnel overhead),
jumbo frames (MTU 9000 on datacenter networks), and constrained paths.
2026-07-08 17:57:16 +03:00
Red Bear OS
c1cfee3bea
qdisc: expose traffic shaping info via netcfg and LinkDevice trait
...
LinkDevice gains qdisc_info() → String defaulting to 'none'.
EthernetLink reports current qdisc configuration:
none / token_bucket rate=N burst=N tokens=N / priority_queue len=N max=N
TokenBucket and PriorityQueue gain public accessor methods:
rate(), burst(), tokens() / max_len()
netcfg exposes at /scheme/netcfg/ifaces/eth0/qdisc:
cat /scheme/netcfg/ifaces/eth0/qdisc → 'none' (default)
Enables monitoring tools to discover current traffic shaping.
Future: wo node for configuring qdisc type + parameters.
2026-07-08 17:50:31 +03:00
Red Bear OS
e185e03d88
observer: add BPF-style filter + output path capture
...
Capture filter supports tcpdump-like expressions:
echo tcp > /scheme/netcfg/capture/filter
echo udp port 53 > /scheme/netcfg/capture/filter
echo icmp > /scheme/netcfg/capture/filter
echo tcp port 80 > /scheme/netcfg/capture/filter
cat /scheme/netcfg/capture/filter → reads current filter
Filter matches IP header protocol field + TCP/UDP port fields.
Parses IPv4 and IPv6 headers. Non-IP packets captured always.
Output path capture: dispatch() now captures packets going
to devices (outbound locally-generated traffic).
Full capture coverage: input (forward_packets) + output (dispatch).
2026-07-08 16:30:13 +03:00
Red Bear OS
ff66b96266
observer: packet capture facility (tcpdump-like) via netcfg
...
Adds packet observer with ring buffer (256 packets default):
- Observer::capture(packet) hooks into forwarding/output paths
- AtomicBool enable/disable toggle (no capture overhead when off)
- capture/count: live stats (total captured, buffered, enabled)
- capture/read: drain hex dump of buffered packets
- capture/enable|disable: toggle capture on/off
Usage:
echo > /scheme/netcfg/capture/enable # start capture
cat /scheme/netcfg/capture/read # dump captured packets (hex)
cat /scheme/netcfg/capture/count # stats
echo > /scheme/netcfg/capture/disable # stop
Mirrors Linux AF_PACKET + tcpdump facility.
2026-07-08 16:12:15 +03:00
Red Bear OS
27f8e351e6
arp: add statistics counters and netcfg exposure
...
EthernetLink gains per-interface ARP counters:
- arp_requests: ARP requests sent (incremented in send_arp)
- arp_replies: ARP replies received (incremented on cache insert)
- arp_cache_hits: successful neighbor cache lookups
- arp_cache_misses: cache misses (vacant or expired entries)
LinkDevice trait gains arp_stats() → String method.
EthernetLink implementation: 'requests=N replies=N hits=N misses=N entries=N'
netcfg exposes at /scheme/netcfg/ifaces/eth0/arp/stats:
echo /scheme/netcfg/ifaces/eth0/arp/stats
→ requests=5 replies=3 hits=142 misses=8 entries=4
Existing arp/list (MAC→IP) and arp/flush (clear) are unchanged.
Useful for monitoring ARP churn, detecting ARP storms, and debugging
neighbor discovery issues.
2026-07-08 15:38:49 +03:00
Red Bear OS
ba5a7cd3fc
sysctl: add /scheme/netcfg/sysctl tree with ip_forward toggle
...
Router gains Rc<Cell<bool>> ip_forward flag (default: true).
When false, forward_packets() returns immediately — no packets forwarded
between interfaces. Security best practice for non-router hosts.
netcfg scheme gains sysctl subtree:
/scheme/netcfg/sysctl/net/ipv4/ip_forward (rw: 0 or 1)
Read: echo /scheme/netcfg/sysctl/net/ipv4/ip_forward → 1
Write: echo 0 > /scheme/netcfg/sysctl/net/ipv4/ip_forward (disable)
Restore: echo 1 > /scheme/netcfg/sysctl/net/ipv4/ip_forward
Mirrors Linux /proc/sys/net/ipv4/ip_forward.
Shared via Rc<Cell<bool>> between Router and NetCfgScheme.
2026-07-08 15:20:21 +03:00
Red Bear OS
107e3b6851
stp: enforce blocking on unicast send + enhanced stats display
...
BridgeDevice STP hardening:
- send(): check STP blocking before unicast forwarding (host-originated)
- recv(): check STP blocking before unicast forwarding (switched frames)
- Previously only flood() checked STP; unicast forwarding bypassed it.
A blocked port must never forward any traffic — STP semantics now correct.
netcfg stats enhancement:
- Per-interface stats now include mtu= and link= fields alongside counters
- Applies to both eth0 and loopback
- Enables bandwidth monitoring tools to self-discover MTU/link state
2026-07-08 14:53:08 +03:00
Red Bear OS
0baceb0ef6
tcp: extend TcpInfo with send/recv queue, congestion window, MSS
...
TCP_INFO socket option now returns real-time connection metrics:
- tcpi_snd_queuelen: bytes queued for transmission
- tcpi_rcv_queuelen: bytes waiting in receive buffer
- tcpi_snd_cwnd: send capacity (congestion window proxy)
- tcpi_rcv_wnd: receive capacity (advertised window proxy)
- tcpi_snd_mss: maximum segment size (1460 for Ethernet)
- tcpi_state, tcpi_rto preserved from prior version
Struct layout: #[repr(C)] 28 bytes, compatible with Linux TCP_INFO consumers.
2026-07-08 14:30:05 +03:00
Red Bear OS
bb3e36e4e0
restore: networking stack files from reflog (Phases 1-6)
...
Recovered from reflog commits 1c80937e and d0ecc067 after force-push data loss.
Includes: filter/, icmp_error.rs, slaac.rs, bond.rs, bridge.rs, gre.rs, ipip.rs,
qdisc.rs, tun.rs, vlan.rs, vxlan.rs, netfilter.rs, tun.rs, conntrack.rs, nat.rs,
rule.rs, table.rs, redbear-ufw/, dhcpv6d/, netdiag/ — 39 files total.
2026-07-08 13:27:49 +03:00
Red Bear OS
cb1c326645
netcfg: add sockets/list node for active connection count
2026-07-08 09:42:03 +03:00
Red Bear OS
dd08b76a39
Red Bear OS base baseline from 0.1.0 pre-patched archive
2026-06-27 09:21:43 +03:00