Skip to content

Fs55 ethernet integration#72

Merged
adybag14-cyber merged 3 commits intomainfrom
fs55-ethernet-integration
Mar 21, 2026
Merged

Fs55 ethernet integration#72
adybag14-cyber merged 3 commits intomainfrom
fs55-ethernet-integration

Conversation

@adybag14-cyber
Copy link
Owner

@adybag14-cyber adybag14-cyber commented Mar 21, 2026

Summary by CodeRabbit

Release Notes

  • New Features

    • Extended E1000 network driver protocol support to include DHCP, DNS, HTTP POST, and HTTPS POST capabilities alongside existing ARP, IPv4, UDP, and TCP protocols.
  • Tests

    • Added comprehensive baremetal validation probe scripts for E1000 networking across DHCP, DNS, tool-service, HTTP, and HTTPS transports.
    • Added E1000-specific test variants for HTTPS flows with TLS handshake validation.
  • Documentation

    • Updated project roadmap and phase checklist to reflect expanded E1000 protocol validation coverage and closure status.

@adybag14-cyber adybag14-cyber merged commit b1b588f into main Mar 21, 2026
16 checks passed
@coderabbitai
Copy link

coderabbitai bot commented Mar 21, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: f0e6cc8a-64e9-44a5-8db9-eee216d39c20

📥 Commits

Reviewing files that changed from the base of the PR and between 9de4e7f and 8ccfeeb.

📒 Files selected for processing (16)
  • .github/workflows/release-preview.yml
  • .github/workflows/zig-ci.yml
  • README.md
  • build.zig
  • docs/zig-port/FS5_5_HARDWARE_DRIVERS_SYSTEMS.md
  • docs/zig-port/PHASE_CHECKLIST.md
  • docs/zig-port/PORT_PLAN.md
  • docs/zig-port/ZAR_VS_ZIGOS_E1000_SLICE_PLAN.md
  • scripts/baremetal-qemu-e1000-dhcp-probe-check.ps1
  • scripts/baremetal-qemu-e1000-dns-probe-check.ps1
  • scripts/baremetal-qemu-e1000-http-post-probe-check.ps1
  • scripts/baremetal-qemu-e1000-https-post-probe-check.ps1
  • scripts/baremetal-qemu-e1000-tool-service-probe-check.ps1
  • src/baremetal/e1000.zig
  • src/baremetal_main.zig
  • src/pal/net.zig

📝 Walkthrough

Walkthrough

This PR extends bare-metal E1000 network validation by introducing five new QEMU probe scripts (DHCP, DNS, HTTP POST, HTTPS POST, tool-service) with corresponding build options, GitHub Actions workflow steps, and documentation updates. It also enhances E1000 descriptor management with improved memory ordering and TX completion tracking, plus adds HTTPS pre-TLS stage tracking and backend-agnostic test helpers to the networking PAL.

Changes

Cohort / File(s) Summary
GitHub Actions Workflows
.github/workflows/release-preview.yml, .github/workflows/zig-ci.yml
Added five new optional bare-metal E1000 probe steps for DHCP, DNS, tool-service, HTTP POST, and HTTPS POST validation, each invoking corresponding PowerShell scripts; inserted after existing E1000 TCP probe.
Documentation
README.md, docs/zig-port/FS5_5_HARDWARE_DRIVERS_SYSTEMS.md, docs/zig-port/PHASE_CHECKLIST.md, docs/zig-port/PORT_PLAN.md, docs/zig-port/ZAR_VS_ZIGOS_E1000_SLICE_PLAN.md
Expanded E1000 networking validation scope to include DHCP and DNS alongside existing ARP/IPv4/UDP/TCP; documented new HTTP/HTTPS POST and tool-service probe coverage as closed deliverables; updated referenced script paths and protocol reuse checklist.
Build Configuration
build.zig
Added five new boolean build options (baremetal-e1000-dhcp-probe, baremetal-e1000-dns-probe, baremetal-e1000-http-post-probe, baremetal-e1000-https-post-probe, baremetal-e1000-tool-service-probe) defaulting to false, wired into baremetal module options.
Probe Scripts
scripts/baremetal-qemu-e1000-dhcp-probe-check.ps1, scripts/baremetal-qemu-e1000-dns-probe-check.ps1, scripts/baremetal-qemu-e1000-http-post-probe-check.ps1, scripts/baremetal-qemu-e1000-https-post-probe-check.ps1, scripts/baremetal-qemu-e1000-tool-service-probe-check.ps1
Five new PowerShell probe scripts that conditionally build and run E1000 baremetal artifacts under QEMU with configurable timeout and build skip; each resolves toolchain dependencies, emits structured status outputs, validates exit codes, and reports pass/fail with captured logs/diagnostics.
E1000 Driver
src/baremetal/e1000.zig
Increased TX/RX descriptor ring sizes from 8 to 64; added tx_next_to_clean tracking; introduced memory ordering barriers (compilerFence(), flushMmio()) around MMIO updates; replaced direct completion polling with reclaimTxCompletions() for TX space management; added volatile descriptor accessors.
Networking PAL
src/pal/net.zig
Added exported HttpsPreTlsStage enum and lastHttpsPreTlsStage() accessor to track HTTPS connection milestones; introduced backend-agnostic test helpers (testEnableMockDeviceForCurrentBackend, testInstallMockSendHookForCurrentBackend, injectProbeReceiveForCurrentBackend); added E1000 variants of multiple HTTPS-related tests with backend selection.

Possibly related issues

Possibly related PRs

Poem

🐰 Hops with glee through network stacks so deep,
DHCP queries, DNS lookups to reap,
E1000's descriptors dance swift and true,
HTTP/HTTPS now proven through and through,
Tool-service hopping—proof at last for you! 🌐✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fs55-ethernet-integration

Comment @coderabbitai help to get the list of available commands and usage tips.

Tip

CodeRabbit can generate a title for your PR based on the changes with custom instructions.

Set the reviews.auto_title_instructions setting to generate a title for your PR based on the changes in the PR with custom instructions.

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