diff --git a/Cargo.lock b/Cargo.lock
index 612e10adce..5e7f2918c2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -529,6 +529,7 @@ dependencies = [
"ax-runtime",
"ax-sync",
"ax-task",
+ "axpoll",
]
[[package]]
@@ -738,7 +739,6 @@ dependencies = [
"ax-kspin",
"ax-log",
"ax-net",
- "ax-net-ng",
"ax-runtime",
"ax-sync",
"ax-task",
@@ -972,36 +972,16 @@ dependencies = [
[[package]]
name = "ax-net"
-version = "0.5.17"
-dependencies = [
- "ax-errno 0.6.0",
- "ax-hal",
- "ax-io",
- "ax-lazyinit",
- "ax-net-ng",
- "ax-sync",
- "ax-task",
- "cfg-if",
- "log",
- "smoltcp 0.13.1",
- "spin 0.12.0",
-]
-
-[[package]]
-name = "ax-net-ng"
version = "0.7.2"
dependencies = [
"async-channel",
"async-trait",
- "ax-config",
"ax-errno 0.6.0",
- "ax-fs-ng",
"ax-hal",
"ax-io",
"ax-kspin",
"ax-sync",
"ax-task",
- "axfs-ng-vfs",
"axpoll",
"bitflags 2.13.0",
"cfg-if",
@@ -1164,6 +1144,7 @@ dependencies = [
"ax-runtime",
"ax-sync",
"ax-task",
+ "axpoll",
"bindgen 0.72.1",
"flatten_objects",
"scope-local",
@@ -1198,11 +1179,11 @@ dependencies = [
"ax-memory-addr",
"ax-mm",
"ax-net",
- "ax-net-ng",
"ax-percpu",
"ax-plat",
"ax-task",
"axbacktrace",
+ "axfs-ng-vfs",
"axklib",
"axpanic",
"cfg-if",
@@ -3937,9 +3918,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "http"
-version = "1.4.1"
+version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8be7462df143984c4598a256ef469b251d7d7f9e271135073e78fc535414f3d0"
+checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425"
dependencies = [
"bytes",
"itoa",
@@ -4554,13 +4535,12 @@ dependencies = [
[[package]]
name = "js-sys"
-version = "0.3.99"
+version = "0.3.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11"
+checksum = "f2025f20d7a4fa7785846e7b63d10a76d3f1cee98ee5cb79ea59703f95e42162"
dependencies = [
"cfg-if",
"futures-util",
- "once_cell",
"wasm-bindgen",
]
@@ -6512,9 +6492,9 @@ dependencies = [
[[package]]
name = "regex"
-version = "1.12.3"
+version = "1.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
+checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba"
dependencies = [
"aho-corasick",
"memchr",
@@ -6541,9 +6521,9 @@ checksum = "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973"
[[package]]
name = "regex-syntax"
-version = "0.8.10"
+version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
+checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
[[package]]
name = "rend"
@@ -7671,7 +7651,7 @@ dependencies = [
"ax-memory-addr",
"ax-memory-set",
"ax-mm",
- "ax-net-ng",
+ "ax-net",
"ax-page-table-multiarch",
"ax-percpu",
"ax-runtime",
@@ -8917,9 +8897,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "uuid"
-version = "1.23.2"
+version = "1.23.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d258b83ceec21034727ecee8c382cfa6c3e133699b0742c64571814fb420c9f7"
+checksum = "144d6b123cef80b301b8f72a9e2ca4370ddec21950d0a103dd22c437006d2db7"
dependencies = [
"atomic",
"getrandom 0.4.2",
@@ -9094,9 +9074,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen"
-version = "0.2.122"
+version = "0.2.123"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409"
+checksum = "a254a4b10c19a76f09a27640e7ffbf9bc30bf67e16a3bf28aaefa4920fe81563"
dependencies = [
"cfg-if",
"once_cell",
@@ -9107,9 +9087,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.72"
+version = "0.4.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9473dbd2991ae90b6291c3c32c30c6187ac49aa32f9905d1cce280ec1e110b0f"
+checksum = "54568702fabf5d4849ce2b90fadfa64168a097eaf4b351ce9df8b687a0086aaf"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -9117,9 +9097,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.122"
+version = "0.2.123"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6"
+checksum = "24a40fc75b0ec6f3746ceb10d36f53a93dcd68a93b11b6445983945d79eba0dc"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -9127,9 +9107,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.122"
+version = "0.2.123"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e"
+checksum = "908f34bd9b9ce3d4caf07b72dfab63d61504d156856c6bd3cd87fa350cf3985b"
dependencies = [
"bumpalo",
"proc-macro2",
@@ -9140,9 +9120,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.122"
+version = "0.2.123"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437"
+checksum = "7acbf7616c27b194bbb550bf77ed0c2c3e5b7fd1260a93082b95fb7f47959b92"
dependencies = [
"unicode-ident",
]
@@ -9202,9 +9182,9 @@ checksum = "dba9c05687e501b2710833fbe2cc7ff8cc24411fb0d81967498ca44598942f88"
[[package]]
name = "web-sys"
-version = "0.3.99"
+version = "0.3.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d621441cfc37b84979402712047321980c178f299193a3589d05b99e8763436"
+checksum = "6e0871acf327f283dc6da28a1696cdc64fb355ba9f935d052021fa77f35cce69"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -9941,18 +9921,18 @@ checksum = "2fe21bcc34ca7fe6dd56cc2cb1261ea59d6b93620215aefb5ea6032265527784"
[[package]]
name = "zerocopy"
-version = "0.8.50"
+version = "0.8.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b065d4f0e55f82fae73202e189638116a87c55ab6b8e6c2721e13dd9d854ad1"
+checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
-version = "0.8.50"
+version = "0.8.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b631b19d36a892ab55420c92dbc83ccd79274f25be714855d3074aa71cab639"
+checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930"
dependencies = [
"proc-macro2",
"quote",
diff --git a/Cargo.toml b/Cargo.toml
index 58bb484171..72ace28e66 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -98,8 +98,7 @@ members = [
"os/arceos/modules/axipi",
"os/arceos/modules/axlog",
"os/arceos/modules/axmm",
- "os/arceos/modules/axnet",
- "os/arceos/modules/axnet-ng",
+ "net/ax-net",
"os/arceos/modules/axruntime",
"os/arceos/modules/axsync",
"os/arceos/modules/axtask",
@@ -171,8 +170,8 @@ ax-memory-addr = { version = "0.6.9", path = "memory/memory_addr" }
ax-memory-set = { version = "0.6.10", path = "memory/memory_set" }
axpanic = { version = "0.1.0", path = "components/axpanic" }
ax-mm = { version = "0.5.18", path = "os/arceos/modules/axmm" }
-ax-net = { version = "0.5.17", path = "os/arceos/modules/axnet" }
-ax-net-ng = { version = "0.7.2", path = "os/arceos/modules/axnet-ng" }
+ax-net = { version = "0.7.2", path = "net/ax-net" }
+axnet = { version = "0.7.2", package = "ax-net", path = "net/ax-net" }
ax-page-table-entry = { version = "0.8.10", path = "memory/page_table_entry" }
ax-page-table-multiarch = { version = "0.8.12", path = "memory/page_table_multiarch" }
ax-percpu = { version = "0.4.13", path = "components/percpu/percpu" }
diff --git a/apps/arceos/build-aarch64-unknown-none-softfloat.toml b/apps/arceos/build-aarch64-unknown-none-softfloat.toml
index 8ee6bef94f..975af06170 100644
--- a/apps/arceos/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/arceos/build-aarch64-unknown-none-softfloat.toml
@@ -1,7 +1,4 @@
features = []
log = "Info"
max_cpu_num = 1
-
-[env]
-AX_GW = "10.0.2.2"
-AX_IP = "10.0.2.15"
+plat_dyn = true
diff --git a/apps/arceos/build-loongarch64-unknown-none-softfloat.toml b/apps/arceos/build-loongarch64-unknown-none-softfloat.toml
index 8ee6bef94f..5d5face970 100644
--- a/apps/arceos/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/arceos/build-loongarch64-unknown-none-softfloat.toml
@@ -1,7 +1,3 @@
features = []
log = "Info"
max_cpu_num = 1
-
-[env]
-AX_GW = "10.0.2.2"
-AX_IP = "10.0.2.15"
diff --git a/apps/arceos/build-riscv64gc-unknown-none-elf.toml b/apps/arceos/build-riscv64gc-unknown-none-elf.toml
index 8ee6bef94f..975af06170 100644
--- a/apps/arceos/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/arceos/build-riscv64gc-unknown-none-elf.toml
@@ -1,7 +1,4 @@
features = []
log = "Info"
max_cpu_num = 1
-
-[env]
-AX_GW = "10.0.2.2"
-AX_IP = "10.0.2.15"
+plat_dyn = true
diff --git a/apps/arceos/build-x86_64-unknown-none.toml b/apps/arceos/build-x86_64-unknown-none.toml
index 8fe1bac6b9..cb4597745e 100644
--- a/apps/arceos/build-x86_64-unknown-none.toml
+++ b/apps/arceos/build-x86_64-unknown-none.toml
@@ -2,7 +2,4 @@ features = [
]
log = "Info"
max_cpu_num = 1
-
-[env]
-AX_GW = "10.0.2.2"
-AX_IP = "10.0.2.15"
+plat_dyn = true
diff --git a/apps/starry/claw-code/build-x86_64-unknown-none.toml b/apps/starry/claw-code/build-x86_64-unknown-none.toml
index d12678d4ad..a8c92b85d8 100644
--- a/apps/starry/claw-code/build-x86_64-unknown-none.toml
+++ b/apps/starry/claw-code/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = {}
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/codex-cli/build-x86_64-unknown-none.toml b/apps/starry/codex-cli/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/codex-cli/build-x86_64-unknown-none.toml
+++ b/apps/starry/codex-cli/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/deepseek-tui/build-x86_64-unknown-none.toml b/apps/starry/deepseek-tui/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/deepseek-tui/build-x86_64-unknown-none.toml
+++ b/apps/starry/deepseek-tui/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/diffutils/build-aarch64-unknown-none-softfloat.toml b/apps/starry/diffutils/build-aarch64-unknown-none-softfloat.toml
index b725f4f36c..12b7fd01b2 100644
--- a/apps/starry/diffutils/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/diffutils/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"qemu",
"ax-driver/virtio-blk",
diff --git a/apps/starry/diffutils/build-riscv64gc-unknown-none-elf.toml b/apps/starry/diffutils/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/diffutils/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/diffutils/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/diffutils/build-x86_64-unknown-none.toml b/apps/starry/diffutils/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/diffutils/build-x86_64-unknown-none.toml
+++ b/apps/starry/diffutils/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/ebpf/build-aarch64-unknown-none-softfloat.toml b/apps/starry/ebpf/build-aarch64-unknown-none-softfloat.toml
index 15ed3acfa4..884aa834c1 100644
--- a/apps/starry/ebpf/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/ebpf/build-aarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "aarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"qemu",
diff --git a/apps/starry/ebpf/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/ebpf/build-loongarch64-unknown-none-softfloat.toml
index b6e12457d5..6ed865c6e1 100644
--- a/apps/starry/ebpf/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/ebpf/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/ebpf/build-riscv64gc-unknown-none-elf.toml b/apps/starry/ebpf/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/ebpf/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/ebpf/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/ebpf/build-x86_64-unknown-none.toml b/apps/starry/ebpf/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/ebpf/build-x86_64-unknown-none.toml
+++ b/apps/starry/ebpf/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/ffmpeg/build-x86_64-unknown-none.toml b/apps/starry/ffmpeg/build-x86_64-unknown-none.toml
index b29523b215..bdde0232f4 100644
--- a/apps/starry/ffmpeg/build-x86_64-unknown-none.toml
+++ b/apps/starry/ffmpeg/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/gcc/build-aarch64-unknown-none-softfloat.toml b/apps/starry/gcc/build-aarch64-unknown-none-softfloat.toml
index 98eba6163b..6773b54f09 100644
--- a/apps/starry/gcc/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/gcc/build-aarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "aarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"qemu",
diff --git a/apps/starry/gcc/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/gcc/build-loongarch64-unknown-none-softfloat.toml
index 407544ec74..f41e75fa04 100644
--- a/apps/starry/gcc/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/gcc/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/defplat",
diff --git a/apps/starry/gcc/build-riscv64gc-unknown-none-elf.toml b/apps/starry/gcc/build-riscv64gc-unknown-none-elf.toml
index 47fc49ef0c..bc50e20fcb 100644
--- a/apps/starry/gcc/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/gcc/build-riscv64gc-unknown-none-elf.toml
@@ -1,5 +1,4 @@
target = "riscv64gc-unknown-none-elf"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-feat/display",
diff --git a/apps/starry/gcc/build-x86_64-unknown-none.toml b/apps/starry/gcc/build-x86_64-unknown-none.toml
index 80320306b0..0ec3bfe5eb 100644
--- a/apps/starry/gcc/build-x86_64-unknown-none.toml
+++ b/apps/starry/gcc/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/gdb-smoke/build-riscv64gc-unknown-none-elf.toml b/apps/starry/gdb-smoke/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/gdb-smoke/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/gdb-smoke/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/git/build-aarch64-unknown-none-softfloat.toml b/apps/starry/git/build-aarch64-unknown-none-softfloat.toml
index 15ed3acfa4..884aa834c1 100644
--- a/apps/starry/git/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/git/build-aarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "aarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"qemu",
diff --git a/apps/starry/git/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/git/build-loongarch64-unknown-none-softfloat.toml
index b6e12457d5..6ed865c6e1 100644
--- a/apps/starry/git/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/git/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/git/build-riscv64gc-unknown-none-elf.toml b/apps/starry/git/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/git/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/git/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/git/build-x86_64-unknown-none.toml b/apps/starry/git/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/git/build-x86_64-unknown-none.toml
+++ b/apps/starry/git/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/glibc-dynamic-smoke/build-aarch64-unknown-none-softfloat.toml b/apps/starry/glibc-dynamic-smoke/build-aarch64-unknown-none-softfloat.toml
index 10f1dae198..647fdbe086 100755
--- a/apps/starry/glibc-dynamic-smoke/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/glibc-dynamic-smoke/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-hal/aarch64-qemu-virt",
"qemu",
diff --git a/apps/starry/glibc-dynamic-smoke/build-riscv64gc-unknown-none-elf.toml b/apps/starry/glibc-dynamic-smoke/build-riscv64gc-unknown-none-elf.toml
index 3307976592..083a7b18f4 100755
--- a/apps/starry/glibc-dynamic-smoke/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/glibc-dynamic-smoke/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-hal/riscv64-qemu-virt",
"qemu",
diff --git a/apps/starry/glibc-dynamic-smoke/build-x86_64-unknown-none.toml b/apps/starry/glibc-dynamic-smoke/build-x86_64-unknown-none.toml
index ce6e4f2435..48a1da9258 100755
--- a/apps/starry/glibc-dynamic-smoke/build-x86_64-unknown-none.toml
+++ b/apps/starry/glibc-dynamic-smoke/build-x86_64-unknown-none.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-driver/virtio-blk",
"ax-driver/virtio-net",
diff --git a/apps/starry/jcode/build-x86_64-unknown-none.toml b/apps/starry/jcode/build-x86_64-unknown-none.toml
index 80320306b0..0ec3bfe5eb 100644
--- a/apps/starry/jcode/build-x86_64-unknown-none.toml
+++ b/apps/starry/jcode/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/k230-kpu-nncase/build-riscv64gc-unknown-none-elf.toml b/apps/starry/k230-kpu-nncase/build-riscv64gc-unknown-none-elf.toml
index d2ef9de242..29a0a535dd 100644
--- a/apps/starry/k230-kpu-nncase/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/k230-kpu-nncase/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {}
features = [
"k230",
]
diff --git a/apps/starry/k230-qemu/qemu-k230/build-riscv64gc-unknown-none-elf.toml b/apps/starry/k230-qemu/qemu-k230/build-riscv64gc-unknown-none-elf.toml
index d2ef9de242..29a0a535dd 100644
--- a/apps/starry/k230-qemu/qemu-k230/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/k230-qemu/qemu-k230/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {}
features = [
"k230",
]
diff --git a/apps/starry/llama-cpp/build-aarch64-unknown-none-softfloat.toml b/apps/starry/llama-cpp/build-aarch64-unknown-none-softfloat.toml
index b725f4f36c..12b7fd01b2 100644
--- a/apps/starry/llama-cpp/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/llama-cpp/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"qemu",
"ax-driver/virtio-blk",
diff --git a/apps/starry/llama-cpp/build-riscv64gc-unknown-none-elf.toml b/apps/starry/llama-cpp/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/llama-cpp/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/llama-cpp/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/llama-cpp/build-x86_64-unknown-none.toml b/apps/starry/llama-cpp/build-x86_64-unknown-none.toml
index ce6e4f2435..48a1da9258 100644
--- a/apps/starry/llama-cpp/build-x86_64-unknown-none.toml
+++ b/apps/starry/llama-cpp/build-x86_64-unknown-none.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-driver/virtio-blk",
"ax-driver/virtio-net",
diff --git a/apps/starry/mariadb/build-aarch64-unknown-none-softfloat.toml b/apps/starry/mariadb/build-aarch64-unknown-none-softfloat.toml
index 2c8e762859..c24f016c30 100644
--- a/apps/starry/mariadb/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/mariadb/build-aarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "aarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
axconfig_overrides = ["plat.phys-memory-size=0x4000_0000"]
log = "Warn"
features = [
diff --git a/apps/starry/mariadb/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/mariadb/build-loongarch64-unknown-none-softfloat.toml
index d03318eee1..b6dcf0bca3 100644
--- a/apps/starry/mariadb/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/mariadb/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
axconfig_overrides = ["plat.phys-memory-size=0x4000_0000"]
log = "Warn"
features = [
diff --git a/apps/starry/mariadb/build-riscv64gc-unknown-none-elf.toml b/apps/starry/mariadb/build-riscv64gc-unknown-none-elf.toml
index 5216787caa..c9578b6481 100644
--- a/apps/starry/mariadb/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/mariadb/build-riscv64gc-unknown-none-elf.toml
@@ -1,5 +1,4 @@
target = "riscv64gc-unknown-none-elf"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
axconfig_overrides = ["plat.phys-memory-size=0x4000_0000"]
log = "Warn"
features = [
diff --git a/apps/starry/mariadb/build-x86_64-unknown-none.toml b/apps/starry/mariadb/build-x86_64-unknown-none.toml
index 6ebd6d0533..e55fc3122e 100644
--- a/apps/starry/mariadb/build-x86_64-unknown-none.toml
+++ b/apps/starry/mariadb/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
axconfig_overrides = ["plat.phys-memory-size=0x4000_0000"]
log = "Warn"
features = [
diff --git a/apps/starry/mosquitto/build-x86_64-unknown-none.toml b/apps/starry/mosquitto/build-x86_64-unknown-none.toml
index b29523b215..bdde0232f4 100644
--- a/apps/starry/mosquitto/build-x86_64-unknown-none.toml
+++ b/apps/starry/mosquitto/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/musl-dynamic-smoke/build-aarch64-unknown-none-softfloat.toml b/apps/starry/musl-dynamic-smoke/build-aarch64-unknown-none-softfloat.toml
index 10f1dae198..647fdbe086 100755
--- a/apps/starry/musl-dynamic-smoke/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/musl-dynamic-smoke/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-hal/aarch64-qemu-virt",
"qemu",
diff --git a/apps/starry/musl-dynamic-smoke/build-riscv64gc-unknown-none-elf.toml b/apps/starry/musl-dynamic-smoke/build-riscv64gc-unknown-none-elf.toml
index 3307976592..083a7b18f4 100755
--- a/apps/starry/musl-dynamic-smoke/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/musl-dynamic-smoke/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-hal/riscv64-qemu-virt",
"qemu",
diff --git a/apps/starry/musl-dynamic-smoke/build-x86_64-unknown-none.toml b/apps/starry/musl-dynamic-smoke/build-x86_64-unknown-none.toml
index ce6e4f2435..48a1da9258 100755
--- a/apps/starry/musl-dynamic-smoke/build-x86_64-unknown-none.toml
+++ b/apps/starry/musl-dynamic-smoke/build-x86_64-unknown-none.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-driver/virtio-blk",
"ax-driver/virtio-net",
diff --git a/apps/starry/mysql/build-x86_64-unknown-none.toml b/apps/starry/mysql/build-x86_64-unknown-none.toml
index 4a682203c7..b60a4f3f0b 100644
--- a/apps/starry/mysql/build-x86_64-unknown-none.toml
+++ b/apps/starry/mysql/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
axconfig_overrides = ["plat.phys-memory-size=0x8000_0000"]
log = "Warn"
features = [
diff --git a/apps/starry/nginx/build-riscv64gc-unknown-none-elf.toml b/apps/starry/nginx/build-riscv64gc-unknown-none-elf.toml
index 6dc05b7e2a..261f418c20 100644
--- a/apps/starry/nginx/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/nginx/build-riscv64gc-unknown-none-elf.toml
@@ -1,5 +1,4 @@
target = "riscv64gc-unknown-none-elf"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-feat/rtc",
diff --git a/apps/starry/nginx/build-x86_64-unknown-none.toml b/apps/starry/nginx/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/nginx/build-x86_64-unknown-none.toml
+++ b/apps/starry/nginx/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/openrc/build-aarch64-unknown-none-softfloat.toml b/apps/starry/openrc/build-aarch64-unknown-none-softfloat.toml
index 15ed3acfa4..884aa834c1 100644
--- a/apps/starry/openrc/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/openrc/build-aarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "aarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"qemu",
diff --git a/apps/starry/openrc/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/openrc/build-loongarch64-unknown-none-softfloat.toml
index b6e12457d5..6ed865c6e1 100644
--- a/apps/starry/openrc/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/openrc/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/openrc/build-riscv64gc-unknown-none-elf.toml b/apps/starry/openrc/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/openrc/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/openrc/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/openrc/build-x86_64-unknown-none.toml b/apps/starry/openrc/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/openrc/build-x86_64-unknown-none.toml
+++ b/apps/starry/openrc/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/openssh/build-aarch64-unknown-none-softfloat.toml b/apps/starry/openssh/build-aarch64-unknown-none-softfloat.toml
index 15ed3acfa4..884aa834c1 100644
--- a/apps/starry/openssh/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/openssh/build-aarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "aarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"qemu",
diff --git a/apps/starry/openssh/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/openssh/build-loongarch64-unknown-none-softfloat.toml
index b6e12457d5..6ed865c6e1 100644
--- a/apps/starry/openssh/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/openssh/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/openssh/build-riscv64gc-unknown-none-elf.toml b/apps/starry/openssh/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/openssh/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/openssh/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/openssh/build-x86_64-unknown-none.toml b/apps/starry/openssh/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/openssh/build-x86_64-unknown-none.toml
+++ b/apps/starry/openssh/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/orangepi-5-plus-uvc-rknn/build-aarch64-unknown-none-softfloat.toml b/apps/starry/orangepi-5-plus-uvc-rknn/build-aarch64-unknown-none-softfloat.toml
index 07e2858783..50d7a48504 100644
--- a/apps/starry/orangepi-5-plus-uvc-rknn/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/orangepi-5-plus-uvc-rknn/build-aarch64-unknown-none-softfloat.toml
@@ -1,6 +1,5 @@
# Build-time config for the Orange Pi 5 Plus UVC + RKNN Starry example.
target = "aarch64-unknown-none-softfloat"
-env = {}
features = [
"ax-driver/irq",
"ax-driver/list-pci-devices",
diff --git a/apps/starry/orangepi-5-plus-uvc/build-aarch64-unknown-none-softfloat.toml b/apps/starry/orangepi-5-plus-uvc/build-aarch64-unknown-none-softfloat.toml
index 8616f1ec7e..0da97fe4fe 100644
--- a/apps/starry/orangepi-5-plus-uvc/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/orangepi-5-plus-uvc/build-aarch64-unknown-none-softfloat.toml
@@ -1,6 +1,5 @@
# Build-time config for the Orange Pi 5 Plus UVC Starry example.
target = "aarch64-unknown-none-softfloat"
-env = {}
features = [
"ax-driver/rockchip-soc",
"ax-driver/rockchip-dwc-xhci",
diff --git a/apps/starry/picoclaw-cli/build-x86_64-unknown-none.toml b/apps/starry/picoclaw-cli/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/picoclaw-cli/build-x86_64-unknown-none.toml
+++ b/apps/starry/picoclaw-cli/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/pip/build-x86_64-unknown-none.toml b/apps/starry/pip/build-x86_64-unknown-none.toml
index b29523b215..bdde0232f4 100644
--- a/apps/starry/pip/build-x86_64-unknown-none.toml
+++ b/apps/starry/pip/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/postgresql/build-aarch64-unknown-none-softfloat.toml b/apps/starry/postgresql/build-aarch64-unknown-none-softfloat.toml
index 5a7fcb70db..7e0725c456 100644
--- a/apps/starry/postgresql/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/postgresql/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
axconfig_overrides = ["plat.phys-memory-size=0x4000_0000"]
features = [
"ax-feat/display",
diff --git a/apps/starry/postgresql/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/postgresql/build-loongarch64-unknown-none-softfloat.toml
index 1124d2b986..b6dcf0bca3 100644
--- a/apps/starry/postgresql/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/postgresql/build-loongarch64-unknown-none-softfloat.toml
@@ -1,6 +1,5 @@
target = "loongarch64-unknown-none-softfloat"
axconfig_overrides = ["plat.phys-memory-size=0x4000_0000"]
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/postgresql/build-riscv64gc-unknown-none-elf.toml b/apps/starry/postgresql/build-riscv64gc-unknown-none-elf.toml
index abd6d94a32..b7089e91a3 100644
--- a/apps/starry/postgresql/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/postgresql/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
axconfig_overrides = ["plat.phys-memory-size=0x4000_0000"]
features = [
"ax-feat/rtc",
diff --git a/apps/starry/postgresql/build-x86_64-unknown-none.toml b/apps/starry/postgresql/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/postgresql/build-x86_64-unknown-none.toml
+++ b/apps/starry/postgresql/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/qemu/build-aarch64-unknown-none-softfloat.toml b/apps/starry/qemu/build-aarch64-unknown-none-softfloat.toml
index fb1048e7ca..dd9dd08903 100644
--- a/apps/starry/qemu/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/qemu/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/qemu/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/qemu/build-loongarch64-unknown-none-softfloat.toml
index b6e12457d5..6ed865c6e1 100644
--- a/apps/starry/qemu/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/qemu/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/qemu/build-riscv64gc-unknown-none-elf.toml b/apps/starry/qemu/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/qemu/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/qemu/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/qemu/build-x86_64-unknown-none.toml b/apps/starry/qemu/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/qemu/build-x86_64-unknown-none.toml
+++ b/apps/starry/qemu/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/qemu/memtrack-backtrace/build-aarch64-unknown-none-softfloat.toml b/apps/starry/qemu/memtrack-backtrace/build-aarch64-unknown-none-softfloat.toml
index 4d00b64263..f6bd588bb6 100644
--- a/apps/starry/qemu/memtrack-backtrace/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/qemu/memtrack-backtrace/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,4 @@
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2", BACKTRACE = "y" }
+env = { BACKTRACE = "y" }
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/qemu/memtrack-backtrace/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/qemu/memtrack-backtrace/build-loongarch64-unknown-none-softfloat.toml
index 491b54f0ec..ab8e94993f 100644
--- a/apps/starry/qemu/memtrack-backtrace/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/qemu/memtrack-backtrace/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,5 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2", BACKTRACE = "y" }
+env = { BACKTRACE = "y" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/qemu/memtrack-backtrace/build-riscv64gc-unknown-none-elf.toml b/apps/starry/qemu/memtrack-backtrace/build-riscv64gc-unknown-none-elf.toml
index 8779aff25c..968281ecd8 100644
--- a/apps/starry/qemu/memtrack-backtrace/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/qemu/memtrack-backtrace/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,4 @@
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2", BACKTRACE = "y" }
+env = { BACKTRACE = "y" }
features = [
"ax-feat/rtc",
"ax-driver/serial",
diff --git a/apps/starry/qemu/memtrack-backtrace/build-x86_64-unknown-none.toml b/apps/starry/qemu/memtrack-backtrace/build-x86_64-unknown-none.toml
index 146a373dee..f798169ce7 100644
--- a/apps/starry/qemu/memtrack-backtrace/build-x86_64-unknown-none.toml
+++ b/apps/starry/qemu/memtrack-backtrace/build-x86_64-unknown-none.toml
@@ -1,5 +1,5 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2", BACKTRACE = "y" }
+env = { BACKTRACE = "y" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/qemu/nvme/build-aarch64-unknown-none-softfloat.toml b/apps/starry/qemu/nvme/build-aarch64-unknown-none-softfloat.toml
index 8631960bfa..438276140c 100644
--- a/apps/starry/qemu/nvme/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/qemu/nvme/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"qemu",
"ax-driver/plat-dyn",
diff --git a/apps/starry/qemu/nvme/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/qemu/nvme/build-loongarch64-unknown-none-softfloat.toml
index 396d5f286c..43e94f48e7 100644
--- a/apps/starry/qemu/nvme/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/qemu/nvme/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = {}
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/qemu/nvme/build-riscv64gc-unknown-none-elf.toml b/apps/starry/qemu/nvme/build-riscv64gc-unknown-none-elf.toml
index 6c667bf956..f0781cfd59 100644
--- a/apps/starry/qemu/nvme/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/qemu/nvme/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/qemu/nvme/build-x86_64-unknown-none.toml b/apps/starry/qemu/nvme/build-x86_64-unknown-none.toml
index 4e39100ff0..4220987b96 100644
--- a/apps/starry/qemu/nvme/build-x86_64-unknown-none.toml
+++ b/apps/starry/qemu/nvme/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = {}
log = "Warn"
features = [
"ax-driver/nvme",
diff --git a/apps/starry/redis/build-aarch64-unknown-none-softfloat.toml b/apps/starry/redis/build-aarch64-unknown-none-softfloat.toml
index 15ed3acfa4..884aa834c1 100644
--- a/apps/starry/redis/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/redis/build-aarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "aarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"qemu",
diff --git a/apps/starry/redis/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/redis/build-loongarch64-unknown-none-softfloat.toml
index b6e12457d5..6ed865c6e1 100644
--- a/apps/starry/redis/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/redis/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/redis/build-riscv64gc-unknown-none-elf.toml b/apps/starry/redis/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/redis/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/redis/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/redis/build-x86_64-unknown-none.toml b/apps/starry/redis/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/redis/build-x86_64-unknown-none.toml
+++ b/apps/starry/redis/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/selfhost/build-riscv64gc-unknown-none-elf.toml b/apps/starry/selfhost/build-riscv64gc-unknown-none-elf.toml
index 388ceb47f5..4308fc2c70 100644
--- a/apps/starry/selfhost/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/selfhost/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-hal/riscv64-qemu-virt",
"qemu",
diff --git a/apps/starry/static-pie-test/build-riscv64gc-unknown-none-elf.toml b/apps/starry/static-pie-test/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/static-pie-test/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/static-pie-test/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/stress/git-https/build-aarch64-unknown-none-softfloat.toml b/apps/starry/stress/git-https/build-aarch64-unknown-none-softfloat.toml
index 431e312793..dd9dd08903 100644
--- a/apps/starry/stress/git-https/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/git-https/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/stress/git-https/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/stress/git-https/build-loongarch64-unknown-none-softfloat.toml
index b6e12457d5..6ed865c6e1 100644
--- a/apps/starry/stress/git-https/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/git-https/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/stress/git-https/build-riscv64gc-unknown-none-elf.toml b/apps/starry/stress/git-https/build-riscv64gc-unknown-none-elf.toml
index f619bb86c2..7f8820d785 100644
--- a/apps/starry/stress/git-https/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/stress/git-https/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
features = [
"ax-feat/rtc",
"ax-driver/serial",
diff --git a/apps/starry/stress/git-https/build-x86_64-unknown-none.toml b/apps/starry/stress/git-https/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/stress/git-https/build-x86_64-unknown-none.toml
+++ b/apps/starry/stress/git-https/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/stress/git-remote/build-aarch64-unknown-none-softfloat.toml b/apps/starry/stress/git-remote/build-aarch64-unknown-none-softfloat.toml
index 6af6b78417..6bb466c3a3 100644
--- a/apps/starry/stress/git-remote/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/git-remote/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/stress/git-remote/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/stress/git-remote/build-loongarch64-unknown-none-softfloat.toml
index b6e12457d5..6ed865c6e1 100644
--- a/apps/starry/stress/git-remote/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/git-remote/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/stress/git-remote/build-riscv64gc-unknown-none-elf.toml b/apps/starry/stress/git-remote/build-riscv64gc-unknown-none-elf.toml
index 3e88e013ff..22558d5741 100644
--- a/apps/starry/stress/git-remote/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/stress/git-remote/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
features = [
"ax-feat/rtc",
"ax-driver/rtc",
diff --git a/apps/starry/stress/git-remote/build-x86_64-unknown-none.toml b/apps/starry/stress/git-remote/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/stress/git-remote/build-x86_64-unknown-none.toml
+++ b/apps/starry/stress/git-remote/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/stress/git-rename/build-aarch64-unknown-none-softfloat.toml b/apps/starry/stress/git-rename/build-aarch64-unknown-none-softfloat.toml
index cace6e7cee..098b0b21c4 100644
--- a/apps/starry/stress/git-rename/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/git-rename/build-aarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "aarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-feat/display",
diff --git a/apps/starry/stress/git-rename/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/stress/git-rename/build-loongarch64-unknown-none-softfloat.toml
index b6e12457d5..6ed865c6e1 100644
--- a/apps/starry/stress/git-rename/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/git-rename/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/stress/git-rename/build-riscv64gc-unknown-none-elf.toml b/apps/starry/stress/git-rename/build-riscv64gc-unknown-none-elf.toml
index c0ef9e5b72..b29f512a4f 100644
--- a/apps/starry/stress/git-rename/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/stress/git-rename/build-riscv64gc-unknown-none-elf.toml
@@ -1,5 +1,4 @@
target = "riscv64gc-unknown-none-elf"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-feat/display",
diff --git a/apps/starry/stress/git-rename/build-x86_64-unknown-none.toml b/apps/starry/stress/git-rename/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/stress/git-rename/build-x86_64-unknown-none.toml
+++ b/apps/starry/stress/git-rename/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/stress/git/build-aarch64-unknown-none-softfloat.toml b/apps/starry/stress/git/build-aarch64-unknown-none-softfloat.toml
index cace6e7cee..098b0b21c4 100644
--- a/apps/starry/stress/git/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/git/build-aarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "aarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-feat/display",
diff --git a/apps/starry/stress/git/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/stress/git/build-loongarch64-unknown-none-softfloat.toml
index b6e12457d5..6ed865c6e1 100644
--- a/apps/starry/stress/git/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/git/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/stress/git/build-riscv64gc-unknown-none-elf.toml b/apps/starry/stress/git/build-riscv64gc-unknown-none-elf.toml
index c0ef9e5b72..b29f512a4f 100644
--- a/apps/starry/stress/git/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/stress/git/build-riscv64gc-unknown-none-elf.toml
@@ -1,5 +1,4 @@
target = "riscv64gc-unknown-none-elf"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-feat/display",
diff --git a/apps/starry/stress/git/build-x86_64-unknown-none.toml b/apps/starry/stress/git/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/stress/git/build-x86_64-unknown-none.toml
+++ b/apps/starry/stress/git/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/stress/openssl-loongarch/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/stress/openssl-loongarch/build-loongarch64-unknown-none-softfloat.toml
index b6e12457d5..6ed865c6e1 100644
--- a/apps/starry/stress/openssl-loongarch/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/openssl-loongarch/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/stress/sqlite3-deep/build-aarch64-unknown-none-softfloat.toml b/apps/starry/stress/sqlite3-deep/build-aarch64-unknown-none-softfloat.toml
index 32979da0d3..16b9bb29e0 100644
--- a/apps/starry/stress/sqlite3-deep/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/sqlite3-deep/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"qemu",
"ax-driver/virtio-blk",
diff --git a/apps/starry/stress/sqlite3-deep/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/stress/sqlite3-deep/build-loongarch64-unknown-none-softfloat.toml
index c86176a471..5e68eb70d5 100644
--- a/apps/starry/stress/sqlite3-deep/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/sqlite3-deep/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/stress/sqlite3-deep/build-riscv64gc-unknown-none-elf.toml b/apps/starry/stress/sqlite3-deep/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/stress/sqlite3-deep/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/stress/sqlite3-deep/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/stress/sqlite3-deep/build-x86_64-unknown-none.toml b/apps/starry/stress/sqlite3-deep/build-x86_64-unknown-none.toml
index 996d3ab1ca..0fe30c8506 100644
--- a/apps/starry/stress/sqlite3-deep/build-x86_64-unknown-none.toml
+++ b/apps/starry/stress/sqlite3-deep/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/stress/sqlite3-smoke/build-aarch64-unknown-none-softfloat.toml b/apps/starry/stress/sqlite3-smoke/build-aarch64-unknown-none-softfloat.toml
index 32979da0d3..16b9bb29e0 100644
--- a/apps/starry/stress/sqlite3-smoke/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/sqlite3-smoke/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"qemu",
"ax-driver/virtio-blk",
diff --git a/apps/starry/stress/sqlite3-smoke/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/stress/sqlite3-smoke/build-loongarch64-unknown-none-softfloat.toml
index c86176a471..5e68eb70d5 100644
--- a/apps/starry/stress/sqlite3-smoke/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/sqlite3-smoke/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-hal/loongarch64-qemu-virt",
diff --git a/apps/starry/stress/sqlite3-smoke/build-riscv64gc-unknown-none-elf.toml b/apps/starry/stress/sqlite3-smoke/build-riscv64gc-unknown-none-elf.toml
index 9ebd00007d..61c1214bfa 100644
--- a/apps/starry/stress/sqlite3-smoke/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/stress/sqlite3-smoke/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
features = [
"ax-feat/display",
"ax-feat/rtc",
diff --git a/apps/starry/stress/sqlite3-smoke/build-x86_64-unknown-none.toml b/apps/starry/stress/sqlite3-smoke/build-x86_64-unknown-none.toml
index 996d3ab1ca..0fe30c8506 100644
--- a/apps/starry/stress/sqlite3-smoke/build-x86_64-unknown-none.toml
+++ b/apps/starry/stress/sqlite3-smoke/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/apps/starry/stress/stress-ng-0/build-aarch64-unknown-none-softfloat.toml b/apps/starry/stress/stress-ng-0/build-aarch64-unknown-none-softfloat.toml
index 5a7fcb70db..7e0725c456 100644
--- a/apps/starry/stress/stress-ng-0/build-aarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/stress-ng-0/build-aarch64-unknown-none-softfloat.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
axconfig_overrides = ["plat.phys-memory-size=0x4000_0000"]
features = [
"ax-feat/display",
diff --git a/apps/starry/stress/stress-ng-0/build-loongarch64-unknown-none-softfloat.toml b/apps/starry/stress/stress-ng-0/build-loongarch64-unknown-none-softfloat.toml
index d03318eee1..b6dcf0bca3 100644
--- a/apps/starry/stress/stress-ng-0/build-loongarch64-unknown-none-softfloat.toml
+++ b/apps/starry/stress/stress-ng-0/build-loongarch64-unknown-none-softfloat.toml
@@ -1,5 +1,4 @@
target = "loongarch64-unknown-none-softfloat"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
axconfig_overrides = ["plat.phys-memory-size=0x4000_0000"]
log = "Warn"
features = [
diff --git a/apps/starry/stress/stress-ng-0/build-riscv64gc-unknown-none-elf.toml b/apps/starry/stress/stress-ng-0/build-riscv64gc-unknown-none-elf.toml
index abd6d94a32..b7089e91a3 100644
--- a/apps/starry/stress/stress-ng-0/build-riscv64gc-unknown-none-elf.toml
+++ b/apps/starry/stress/stress-ng-0/build-riscv64gc-unknown-none-elf.toml
@@ -1,4 +1,3 @@
-env = {AX_IP = "10.0.2.15", AX_GW = "10.0.2.2"}
axconfig_overrides = ["plat.phys-memory-size=0x4000_0000"]
features = [
"ax-feat/rtc",
diff --git a/apps/starry/stress/stress-ng-0/build-x86_64-unknown-none.toml b/apps/starry/stress/stress-ng-0/build-x86_64-unknown-none.toml
index e8902193fc..a8c92b85d8 100644
--- a/apps/starry/stress/stress-ng-0/build-x86_64-unknown-none.toml
+++ b/apps/starry/stress/stress-ng-0/build-x86_64-unknown-none.toml
@@ -1,5 +1,4 @@
target = "x86_64-unknown-none"
-env = { AX_IP = "10.0.2.15", AX_GW = "10.0.2.2" }
log = "Warn"
features = [
"ax-driver/virtio-blk",
diff --git a/docs/blog/2026/05-12-april-2026-retrospective/april-2026-retrospective.md b/docs/blog/2026/05-12-april-2026-retrospective/april-2026-retrospective.md
index 1632dab325..fee76ab7ce 100644
--- a/docs/blog/2026/05-12-april-2026-retrospective/april-2026-retrospective.md
+++ b/docs/blog/2026/05-12-april-2026-retrospective/april-2026-retrospective.md
@@ -115,7 +115,7 @@ Rootfs 处理也经历了模块化重构。我们将共享的 rootfs 辅助函
4 月初最重大的工程是将整个工作区中所有 crate 的名称统一到 `ax-*` 前缀规范下,在 4 月 7-8 日集中完成。此次重命名覆盖了 ArceOS 所有核心模块,涉及数百个文件中的引用更新:
- 内核基础设施:`axhal` → `ax-hal`、`axtask` → `ax-task`、`axmm` → `ax-mm`、`axsync` → `ax-sync`、`axdma` → `ax-dma`
-- 驱动与设备:`axdriver` → `ax-driver`、`axnet` → `ax-net`、`axnet-ng` → `ax-net-ng`、`axinput` → `ax-input`、`axdisplay` → `ax-display`
+- 驱动与设备:`axdriver` → `ax-driver`、`axnet` → `ax-net`、`axnet` → `ax-net`、`axinput` → `ax-input`、`axdisplay` → `ax-display`
- 文件系统:`axfs` → `ax-fs`、`axfs-ng` → `ax-fs-ng`
- 运行时与配置:`axruntime` → `ax-runtime`、`axconfig` → `ax-config`、`axplat` → `ax-plat`
- 标准库与 POSIX:`axstd` → `ax-std`、`axlibc` → `ax-libc`、`arceos_api` → `ax-api`、`arceos_posix_api` → `ax-posix-api`
diff --git a/docs/blog/2026/06-01-may-2026-retrospective/may-2026-retrospective.md b/docs/blog/2026/06-01-may-2026-retrospective/may-2026-retrospective.md
index 4be1c86701..a74f88f727 100644
--- a/docs/blog/2026/06-01-may-2026-retrospective/may-2026-retrospective.md
+++ b/docs/blog/2026/06-01-may-2026-retrospective/may-2026-retrospective.md
@@ -112,10 +112,10 @@ ArceOS 本月继续加强运行时错误发现能力。lockdep 扩展了 task-he
### 网络栈与 POSIX 行为
-网络栈方面,`ax-net` 迁移到 crates.io 版本的 smoltcp,并在后续同步到 smoltcp 0.13.1。`ax-net-ng` 新增 ICMP raw socket 支持,并修复 TCP send 后未轮询接口导致 epoll waiter 无法被及时唤醒的问题。随后,socket option、ARP pending queue、SIOCGIFINDEX/FIONREAD 等行为也继续向 Linux 兼容语义靠拢。
+网络栈方面,`ax-net` 迁移到 crates.io 版本的 smoltcp,并在后续同步到 smoltcp 0.13.1。`ax-net` 新增 ICMP raw socket 支持,并修复 TCP send 后未轮询接口导致 epoll waiter 无法被及时唤醒的问题。随后,socket option、ARP pending queue、SIOCGIFINDEX/FIONREAD 等行为也继续向 Linux 兼容语义靠拢。
- [PR #410](https://github.com/rcore-os/tgoskits/pull/410) — `ax-net` 迁移到 crates.io smoltcp(周睿)
-- [PR #368](https://github.com/rcore-os/tgoskits/pull/368) — `ax-net-ng` ICMP raw socket 支持(sunhaosheng)
+- [PR #368](https://github.com/rcore-os/tgoskits/pull/368) — `ax-net` ICMP raw socket 支持(sunhaosheng)
- [PR #485](https://github.com/rcore-os/tgoskits/pull/485) — TCP send 后轮询接口以唤醒 epoll waiter(CharlieV)
- [PR #884](https://github.com/rcore-os/tgoskits/pull/884) — `SO_TYPE`、`SO_PROTOCOL`、`SO_DOMAIN` socket option 支持(取地址符)
- [PR #911](https://github.com/rcore-os/tgoskits/pull/911) — ARP pending queue drain 与 cache TTL/capacity 调整(Feiran Qin)
diff --git a/docs/docs/architecture/arceos.md b/docs/docs/architecture/arceos.md
index da40281ba0..6fd36811e8 100644
--- a/docs/docs/architecture/arceos.md
+++ b/docs/docs/architecture/arceos.md
@@ -93,8 +93,7 @@ ArceOS 的 17 个模块按重要性分为两类:四个必选模块构成最小
| `ax-driver` | `ax-driver` | 设备探测与驱动初始化(virtio、AHCI、SDMMC 等) |
| `ax-fs` | `fs` | 文件系统(FAT、ramfs、ext4) |
| `ax-fs-ng` | `fs-ng` | 下一代文件系统(FAT、ext4,带 LRU 缓存) |
-| `ax-net` | `net` | 网络栈(基于 smoltcp) |
-| `ax-net-ng` | `net-ng` | 下一代网络栈(异步感知,基于 smoltcp) |
+| `ax-net` | `net` | 统一网络栈(TCP/UDP/raw/Unix/vsock/DNS/DHCP,基于 smoltcp) |
| `ax-display` | `display` | 图形显示(帧缓冲) |
| `ax-input` | `input` | 输入设备管理 |
| `ax-dma` | `dma` | DMA 内存分配与管理(依赖 `paging`) |
@@ -114,11 +113,10 @@ ArceOS 的 17 个模块按重要性分为两类:四个必选模块构成最小
| `ax-sync` | `modules/axsync` | mutex 等同步原语 | `ax-task`、任意并发模块 |
| `ax-driver` | `modules/axdriver` | 设备探测与驱动初始化 | `ax-fs`、`ax-net`、`ax-display` |
| `ax-fs` | `modules/axfs` | 文件系统挂载、文件/目录 API | `ax-driver` |
-| `ax-net` | `modules/axnet` | 网络栈、socket 抽象 | `ax-driver` |
+| `ax-net` | `net/ax-net` | 统一网络栈、socket 抽象 | `rd-net`、`rdif-vsock`、`smoltcp` |
| `axconfig` | `modules/axconfig` | 构建期常量与目标参数 | 所有模块 |
| `ax-log` | `modules/axlog` | 多级日志与格式化输出 | 所有模块 |
| `ax-fs-ng` | `modules/axfs-ng` | 下一代文件系统 | `ax-driver` |
-| `ax-net-ng` | `modules/axnet-ng` | 下一代网络栈 | `ax-driver` |
| `ax-dma` | `modules/axdma` | DMA 内存分配与管理 | `ax-runtime`、`ax-mm` |
| `ax-ipi` | `modules/axipi` | 处理器间中断管理 | `ax-hal` |
| `ax-input` | `modules/axinput` | 输入设备管理与事件分发 | `ax-driver` |
diff --git a/docs/docs/architecture/rdrive-rdif.md b/docs/docs/architecture/rdrive-rdif.md
index ae55321fea..2a01665ff5 100644
--- a/docs/docs/architecture/rdrive-rdif.md
+++ b/docs/docs/architecture/rdrive-rdif.md
@@ -69,7 +69,7 @@ flowchart TB
subgraph Consumers["消费方"]
Runtime["ax-runtime"]
Fs["ax-fs / ax-fs-ng"]
- Net["ax-net / ax-net-ng"]
+ Net["ax-net / ax-net"]
Starry["starry-kernel"]
Axvisor["axvisor"]
end
@@ -351,7 +351,7 @@ Phase 3: block volume service
Phase 4: NET / NET-NG 硬切
-- `ax-net` / `ax-net-ng` 从 `AxNetDevice` 切到 `rd-net` 或 net service。
+- `ax-net` / `ax-net` 从 `AxNetDevice` 切到 `rd-net` 或 net service。
- DHCP/static IP policy 留在 net service 或 NET/NET-NG,不回到 platform glue。
Phase 5: display / input / vsock 硬切
@@ -388,7 +388,7 @@ yarn build
cargo xtask clippy --package rdrive
cargo xtask clippy --package ax-runtime
cargo xtask clippy --package ax-fs-ng
-cargo xtask clippy --package ax-net-ng
+cargo xtask clippy --package ax-net
cargo xtask clippy --package starry-kernel
cargo xtask clippy --package axvisor
```
@@ -406,6 +406,6 @@ rg "rdrive::get_|rdrive::get_one|rdrive::get_list" os/arceos/modules os/StarryOS
- StarryOS QEMU smoke。
- ext4 rootfs 启动与读写。
-- `net-ng` / DHCP。
+- `net` / DHCP。
- aarch64 QEMU 动态平台配置。
- Axvisor QEMU / GIC / `rdif-intc` 路径。
diff --git a/docs/docs/components/crates/ax-errno.md b/docs/docs/components/crates/ax-errno.md
index 4f1c18c55b..263aa9e08f 100644
--- a/docs/docs/components/crates/ax-errno.md
+++ b/docs/docs/components/crates/ax-errno.md
@@ -67,7 +67,7 @@ flowchart TD
### 使用场景
- `AxErrorKind` / `AxError`:在 `ax-alloc`、`ax-mm`、`ax-net`、`ax-fs`、`ax-task` 等模块里高频使用。
-- `LinuxError`:在 `ax-libc`、`ax-posix-api`、`ax-net-ng` 的 POSIX 兼容路径中直接使用。
+- `LinuxError`:在 `ax-libc`、`ax-posix-api`、`ax-net` 的 POSIX 兼容路径中直接使用。
- `ax_err!` / `ax_err_type!`:在 `axvisor`、`ax-net`、`ax-std`、`ax-task` 等代码里广泛出现。
- `canonicalize()`:适合把兼容层传回来的 Linux 错误重新折叠到内核内部语义。
@@ -86,7 +86,7 @@ graph LR
ax_errno --> ax-allocator["ax-allocator"]
ax_errno --> axio["ax-io"]
ax_errno --> ax-mm["ax-mm"]
- ax_errno --> ax-net["ax-net/ax-net-ng"]
+ ax_errno --> ax-net["ax-net/ax-net"]
ax_errno --> ax-api["ax-api"]
ax_errno --> arceos_posix["ax-posix-api"]
ax_errno --> starry_kernel["starry-kernel"]
diff --git a/docs/docs/components/crates/ax-fs-ng.md b/docs/docs/components/crates/ax-fs-ng.md
index 0aa3365ff6..6bce6a4b36 100644
--- a/docs/docs/components/crates/ax-fs-ng.md
+++ b/docs/docs/components/crates/ax-fs-ng.md
@@ -41,7 +41,7 @@ graph LR
current --> axpoll["axpoll"]
current --> ax-sync["ax-sync"]
ax_feat["ax-feat"] --> current
- ax_net_ng["ax-net-ng"] --> current
+ ax_net["ax-net"] --> current
ax_runtime["ax-runtime"] --> current
starry_kernel["starry-kernel"] --> current
```
@@ -74,7 +74,7 @@ graph LR
### 3.3 被依赖情况
- `ax-feat`
-- `ax-net-ng`
+- `ax-net`
- `ax-runtime`
- `starry-kernel`
diff --git a/docs/docs/components/crates/ax-io.md b/docs/docs/components/crates/ax-io.md
index 43a614d5eb..eb4e3a022d 100644
--- a/docs/docs/components/crates/ax-io.md
+++ b/docs/docs/components/crates/ax-io.md
@@ -52,7 +52,7 @@
- `IoBuf::remaining()`:当前还剩多少字节可读
- `IoBufMut::remaining_mut()`:当前还剩多少空间可写
-这不是新的 I/O 模型,而是给通用 trait 层补上一点对内核路径很实用的容量语义。`ax-net-ng` 的发送/接收接口、部分文件与缓冲区适配器都会消费这类信息。
+这不是新的 I/O 模型,而是给通用 trait 层补上一点对内核路径很实用的容量语义。`ax-net` 的发送/接收接口、部分文件与缓冲区适配器都会消费这类信息。
### 1.5 `alloc` feature 的边界
@@ -93,7 +93,7 @@
1. `ax_std::io` 直接重导出 `axio` 的 trait 与类型,把它包装成 ArceOS 应用看到的 `std::io` 风格接口。
2. `ax-fs`、`ax-fs-ng` 的文件对象实现 `Read` / `Write` / `Seek`,复用统一的缓冲器和默认读写逻辑。
-3. `ax-net`、`ax-net-ng` 以及更上层 socket 封装使用 `axio` 作为同步收发 trait 的公共接口。
+3. `ax-net`、`ax-net` 以及更上层 socket 封装使用 `axio` 作为同步收发 trait 的公共接口。
4. `ax-api`、`ax-posix-api`、StarryOS 的 `FileLike`/用户缓冲访问对象通过 `axio` 收敛系统调用读写路径。
### 2.3 `PollState` 的实际使用位置
@@ -130,7 +130,7 @@
- `ax-std`、`ax-libc`
- `ax-api`、`ax-posix-api`
- `ax-fs`、`ax-fs-ng`
-- `ax-net`、`ax-net-ng`
+- `ax-net`、`ax-net`
- StarryOS 的文件、网络、pipe、用户态缓冲访问和系统调用包装层
### 3.3 跨层关系
diff --git a/docs/docs/components/crates/ax-lazyinit.md b/docs/docs/components/crates/ax-lazyinit.md
index 243540c811..796cce052a 100644
--- a/docs/docs/components/crates/ax-lazyinit.md
+++ b/docs/docs/components/crates/ax-lazyinit.md
@@ -75,7 +75,7 @@ graph LR
ax_lazyinit --> ax-mm["ax-mm"]
ax_lazyinit --> ax-ipi["ax-ipi"]
ax_lazyinit --> ax-fs["ax-fs / ax-fs-ng"]
- ax_lazyinit --> ax-net["ax-net / ax-net-ng"]
+ ax_lazyinit --> ax-net["ax-net / ax-net"]
ax_lazyinit --> ax-display["ax-display"]
ax_lazyinit --> ax-input["ax-input"]
ax_lazyinit --> axplat["多个 axplat 平台 crate"]
diff --git a/docs/docs/components/crates/ax-net-ng.md b/docs/docs/components/crates/ax-net-ng.md
deleted file mode 100644
index 5bd6b0da83..0000000000
--- a/docs/docs/components/crates/ax-net-ng.md
+++ /dev/null
@@ -1,153 +0,0 @@
-# `ax-net-ng`
-
-> 路径:`os/arceos/modules/axnet-ng`
-> 类型:库 crate
-> 分层:ArceOS 层 / ArceOS 内核模块
-> 版本:`0.5.0`
-> 文档依据:当前仓库源码、`Cargo.toml` 与 未检测到 crate 层 README
-
-`ax-net-ng` 的核心定位是:ArceOS network module
-
-## 架构设计
-- 目录角色:ArceOS 内核模块
-- crate 形态:库 crate
-- 工作区位置:子工作区 `os/arceos`
-- feature 视角:主要通过 `vsock` 控制编译期能力装配。
-- 关键数据结构:可直接观察到的关键数据结构/对象包括 `ListenTableEntryInner`、`ListenTable`、`UnixCredentials`、`Rule`、`RouteTable`、`Router`、`GetSocketOption`、`SetSocketOption`、`SocketAddrEx`、`Shutdown` 等(另有 8 个关键类型/对象)。
-
-### 模块结构
-- `consts`:内部子模块
-- `device`:设备抽象、枚举与访问封装
-- `general`:内部子模块
-- `listen_table`:内部子模块
-- `options`:内部子模块
-- `router`:内部子模块
-- `service`:内部子模块
-- `socket`:socket 状态机与收发接口
-
-### 核心机制
-- socket 状态机与连接管理
-- 虚拟 socket 通道管理
-
-## 核心功能
-- 功能定位:ArceOS network module
-- 对外接口:从源码可见的主要公开入口包括 `init_network`、`init_vsock`、`poll_interfaces`、`new`、`nonblocking`、`reuse_address`、`send_timeout`、`recv_timeout`、`ListenTableEntryInner`、`ListenTable` 等(另有 11 个公开入口)。
-- 典型使用场景:主要作为仓库中的专用支撑 crate 被上层组件调用。
-- 关键调用链示例:按当前源码布局,常见入口/初始化链可概括为 `init_network()` -> `init_vsock()` -> `poll_interfaces()` -> `register_waker()` -> `new()`。
-
-## 依赖关系
-```mermaid
-graph LR
- current["ax-net-ng"]
- current --> axconfig["ax-config"]
- current --> ax-driver["ax-driver"]
- current --> ax_errno["ax-errno"]
- current --> axfs_ng["ax-fs-ng"]
- current --> axfs_ng_vfs["axfs-ng-vfs"]
- current --> ax-hal["ax-hal"]
- current --> axio["ax-io"]
- current --> axpoll["axpoll"]
- ax_runtime["ax-runtime"] --> current
- starry_kernel["starry-kernel"] --> current
-```
-
-### 直接依赖
-- `axconfig`
-- `ax-driver`
-- `ax-errno`
-- `ax-fs-ng`
-- `axfs-ng-vfs`
-- `ax-hal`
-- `axio`
-- `axpoll`
-- `ax-sync`
-- `ax-task`
-- `smoltcp`
-
-### 间接依赖
-- `ax-arm-pl031`
-- `axaddrspace`
-- `ax-alloc`
-- `axallocator`
-- `axbacktrace`
-- `ax-config-gen`
-- `ax-config-macros`
-- `ax-cpu`
-- `ax-dma`
-- `rdrive`
-- `rd-net`
-- 另外还有 `38` 个同类项未在此展开
-
-### 3.3 被依赖情况
-- `ax-runtime`
-- `starry-kernel`
-
-### 被依赖情况
-- `arceos-affinity`
-- `arceos-display`
-- `arceos-exception`
-- `arceos-fs-shell`
-- `arceos-irq`
-- `arceos-memtest`
-- `arceos-net-echoserver`
-- `arceos-net-httpclient`
-- `arceos-net-httpserver`
-- `arceos-net-udpserver`
-- `arceos-parallel`
-- `arceos-priority`
-- 另外还有 `17` 个同类项未在此展开
-
-### 外部依赖
-- `async-channel`
-- `async-trait`
-- `bitflags`
-- `cfg-if`
-- `enum_dispatch`
-- `event-listener`
-- `hashbrown`
-- `lazy_static`
-- `log`
-- `ringbuf`
-- `spin`
-
-## 开发指南
-### 接入方式
-```toml
-[dependencies]
-ax-net-ng = { workspace = true }
-
-# 如果在仓库外独立验证,也可以显式绑定本地路径:
-# ax-net-ng = { path = "os/arceos/modules/axnet-ng" }
-```
-
-### 初始化
-1. 在 `Cargo.toml` 中接入该 crate,并根据需要开启相关 feature。
-2. 若 crate 暴露初始化入口,优先调用 `init`/`new`/`build`/`start` 类函数建立上下文。
-3. 在最小消费者路径上验证公开 API、错误分支与资源回收行为。
-
-### API 使用
-- 优先关注函数入口:`init_network`、`init_vsock`、`poll_interfaces`、`new`、`nonblocking`、`reuse_address`、`send_timeout`、`recv_timeout` 等(另有 23 项)。
-- 上下文/对象类型通常从 `ListenTableEntryInner`、`ListenTable`、`UnixCredentials`、`Rule`、`RouteTable`、`Router` 等(另有 7 项) 等结构开始。
-
-## 测试
-### 测试覆盖
-- 当前 crate 目录中未发现显式 `tests/`/`benches/`/`fuzz/` 入口,更可能依赖上层系统集成测试或跨 crate 回归。
-
-### 单元测试
-- 建议覆盖公开 API、状态转换和异常分支。
-
-### 集成测试
-- 建议补充最小消费者路径,验证该 crate 在真实调用链中可用。
-
-### 覆盖率
-- 覆盖率建议:公开 API、边界条件和关键错误处理路径需要显式覆盖。
-
-## 跨项目定位
-### ArceOS
-`ax-net-ng` 直接位于 `os/arceos/` 目录树中,是 ArceOS 工程本体的一部分,承担 ArceOS 内核模块。
-
-### StarryOS
-`ax-net-ng` 不在 StarryOS 目录内部,但被 `starry-kernel` 等 StarryOS crate 直接依赖,说明它是该系统的共享构件或底层服务。
-
-### Axvisor
-`ax-net-ng` 主要通过 `axvisor` 等上层 crate 被 Axvisor 间接复用,通常处于更底层的公共依赖层。
diff --git a/docs/docs/components/crates/ax-net.md b/docs/docs/components/crates/ax-net.md
index 034fc6f93e..7475040d4c 100644
--- a/docs/docs/components/crates/ax-net.md
+++ b/docs/docs/components/crates/ax-net.md
@@ -1,222 +1,92 @@
# `ax-net`
-> 路径:`os/arceos/modules/axnet`
+> 路径:`net/ax-net`
> 类型:库 crate
-> 分层:ArceOS 层 / 第一代 IP 网络模块
-> 版本:`0.3.0-preview.3`
-> 文档依据:`Cargo.toml`、`src/lib.rs`、`src/smoltcp_impl/mod.rs`、`src/smoltcp_impl/tcp.rs`、`src/smoltcp_impl/udp.rs`、`src/smoltcp_impl/dns.rs`、`src/smoltcp_impl/listen_table.rs`、`src/smoltcp_impl/bench.rs`、`os/arceos/modules/axruntime/src/lib.rs`、`os/arceos/api/ax-api/src/imp/net.rs`、`os/arceos/api/arceos_posix_api/src/imp/net.rs`
+> 分层:根目录通用网络子系统
+> 版本:`0.7.1`
+> 文档依据:`net/ax-net/Cargo.toml`、`net/ax-net/src/lib.rs`、`net/ax-net/src/socket.rs`、`net/ax-net/src/tcp.rs`、`net/ax-net/src/udp.rs`、`net/ax-net/src/raw.rs`、`net/ax-net/src/unix/*`、`net/ax-net/src/vsock/*`、`net/ax-net/src/service.rs`、`net/ax-net/src/router.rs`
-`ax-net` 是 ArceOS 老一代网络封装层。它围绕 `smoltcp` 构建一个全局、单接口、同步阻塞风格的 IP socket API,把 TCP、UDP 和 DNS 能力接到 ArceOS 运行时与 API 层上。它关心的是“把一块 NIC 和一份 `smoltcp` 实例变成可用的系统网络能力”,而不是构建跨地址族、跨设备、跨等待模型的通用 socket 服务框架。
-
-最核心的边界是:`ax-net` 只是第一代 IP 网络包装层,不是统一 socket 服务层。它的重点是 TCP/UDP/DNS over IP,而不是 Unix domain socket、vsock、复杂路由服务或细粒度事件管理。
+`ax-net` 是仓库唯一的网络栈 crate。它位于根目录 `net/ax-net`,同时服务 ArceOS、StarryOS 以及后续其他系统。旧的 ArceOS-local 网络实现已经不再作为可用入口存在;所有网络 feature 都收敛到 `net`。
## 架构设计
-### 设计定位
-
-`ax-net` 的设计目标非常直接:把 `smoltcp` 变成 ArceOS 可直接消费的同步网络 API。当前实现采用三层收敛:
-
-- 设备层:从 `ax-driver` 取出一个 `AxNetDevice`,直接适配成 `smoltcp::phy::Device`
-- 接口层:使用单个全局 `InterfaceWrapper` 管理唯一网络接口 `eth0`
-- socket 层:提供同步的 `TcpSocket`、`UdpSocket` 和 `dns_query()`
-
-这是一种典型的早期内核集成模型:单 NIC、全局状态、围绕一个 `smoltcp::Interface` 运转。
-
-### 模块结构
-
-`ax-net` 的主要实现集中在 `smoltcp_impl`:
-
-| 模块 | 作用 |
-| --- | --- |
-| `mod.rs` | 全局接口、`SocketSet`、设备适配、轮询主线 |
-| `tcp.rs` | TCP socket 的同步封装、连接、监听、接受 |
-| `udp.rs` | UDP socket 的绑定、连接、收发与轮询 |
-| `dns.rs` | 基于 `smoltcp::socket::dns` 的同步 DNS 查询 |
-| `listen_table.rs` | TCP 监听队列表,在首个 SYN 到来时预创建 socket |
-| `bench.rs` | 原始帧发送/接收吞吐基准入口 |
-| `addr.rs` | 地址类型辅助 |
-
-### 1.3 初始化模型与全局对象
-
-`src/lib.rs` 暴露的入口非常少,但已经把整个设计说透了:
-
-- `init_network(net_devs)`:从设备容器里取第一个 NIC 作为 `eth0`
-- `poll_interfaces()`:推动底层 `smoltcp` 协议栈前进
-- `TcpSocket` / `UdpSocket` / `dns_query()`:供上层实际使用
-- `bench_transmit()` / `bench_receive()`:导出带宽基准路径
-
-内部关键全局对象包括:
-
-- `ETH0`:唯一网络接口
-- `SOCKET_SET`:全局 `smoltcp::SocketSet`
-- `LISTEN_TABLE`:监听端口到 SYN 队列的映射
-
-这组对象共同说明:`ax-net` 不是多实例、按命名空间拆分的服务,而是一个单体式全局网络模块。
-
-### 1.4 设备与接口模型
+`ax-net` 内部分成五层:
-`smoltcp_impl/mod.rs` 中的 `DeviceWrapper` 直接把 `AxNetDevice` 适配给 `smoltcp`,并把介质类型固定为 `Medium::Ethernet`。这意味着:
-
-- `smoltcp` 直接面对以太网设备,不经过更高一级的路由器抽象
-- 发包、收包、tx/rx buffer 回收都由驱动对象承担
-- 接口地址和默认网关依赖 `AX_IP` / `AX_GW` 环境变量
-- 默认 DNS 服务器写死为 `8.8.8.8`
-
-这一模型足够简单,也正因此不承担多设备转发、loopback 独立建模或更复杂的路由策略。
-
-### 1.5 TCP 监听队列的特别设计
-
-`listen_table.rs` 与 `RxToken::preprocess()` 组合出 `ax-net` 最有代表性的实现细节:当底层收到首个 TCP SYN 时,`snoop_tcp_packet()` 会提前在 `SocketSet` 中创建一个监听对应的新 socket,并把 handle 塞入端口对应的 SYN 队列。等上层 `accept()` 时,再从队列中取出已经建立连接的 handle。
-
-这不是额外的协议实现,而是为了在保持同步 `accept()` 语义的同时,适配 `smoltcp` 原生 socket 集合工作方式。
-
-### 1.6 与 `ax-net-ng` 的代际差异
-
-| 维度 | `ax-net` | `ax-net-ng` |
+| 层次 | 主要模块 | 职责 |
| --- | --- | --- |
-| 总体定位 | 第一代同步 IP 网络模块 | 第二代统一 socket 服务层 |
-| 地址族 | IP/TCP/UDP/DNS | IP + Unix domain + vsock |
-| 设备视图 | `smoltcp` 直接面对 Ethernet 设备 | `Router`/`Device` 先做路由、loopback、ARP,再把 IP 包交给 `smoltcp` |
-| readiness 语义 | `ax_io::PollState` | `axpoll::IoEvents` |
-| 等待方式 | 轮询接口并 `yield_now()` | `poll_io` + waker + timeout |
-| 主要消费者 | `ax-api`、`ax-posix-api`、老一代 ArceOS 路径 | `ax-runtime net-ng` 与 StarryOS 主 socket 层 |
-
-所以,`ax-net` 不是“`ax-net-ng` 的轻量别名”,而是更早一代、边界更窄的 IP 网络封装。
-
-## 核心功能
-
-### 功能概览
-
-- 初始化单个网络接口并配置 IP / 默认网关
-- 提供同步 `TcpSocket` 与 `UdpSocket`
-- 提供同步 `dns_query()` 能力
-- 通过 `poll_interfaces()` 驱动 `smoltcp` 协议栈前进
-- 提供原始帧吞吐基准入口,供系统级性能验证使用
-
-### 2.2 同步阻塞模型
-
-`ax-net` 的阻塞语义不是建立在独立事件层之上,而是建立在“反复推动协议栈 + 让出 CPU”之上:
-
-1. 先调用 `smoltcp` 的 nonblocking socket API
-2. 若当前不可完成,则返回 `AxError::WouldBlock`
-3. 在 blocking 模式下,循环调用 `poll_interfaces()` 并穿插 `ax-task::yield_now()`
-4. 条件满足后再返回真实结果
+| public facade | `lib.rs` | 暴露初始化、轮询、socket、设备和状态查询 API |
+| socket abstraction | `socket.rs`、`options.rs`、`general.rs` | 定义 `Socket`、`SocketOps`、`SocketAddrEx`、socket option、nonblocking/timeout 等公共语义 |
+| address-family implementations | `tcp.rs`、`udp.rs`、`raw.rs`、`unix/`、`vsock/` | 实现 TCP、UDP、raw ICMP、Unix domain socket 和可选 vsock |
+| protocol service | `service.rs`、`router.rs`、`wrapper.rs`、`listen_table.rs`、`state.rs` | 管理 smoltcp interface、SocketSet、路由、DHCP/DNS 状态和 waker |
+| device adaptation | `device/` | 将 `rd-net` / `rdif-vsock` 设备接入网络栈,不包含具体硬件驱动 |
-这意味着 `ax-net` 的“阻塞”本质上是一种同步轮询式阻塞,而不是基于 `axpoll` 的等待/唤醒模型。
+`router`、`service`、`wrapper`、`listen_table`、`state` 默认保持 crate-private,外部系统不应绑定这些内部实现细节。
-### 2.3 上层调用关系
+## Public API
-仓库里的主要调用链很明确:
+运行时初始化入口:
-- `ax-runtime` 在启用老一代 `net` 路径时调用 `axnet::init_network(all_devices.net)`
-- `ax-api` 直接导出 TCP、UDP、DNS 与 `ax_poll_interfaces()`
-- `ax-posix-api` 用它实现 socket、`select`、`epoll` 等 POSIX 兼容接口
-- `ax-std` 再经由更高层 API 把网络能力暴露给 ArceOS 应用
+- `init_network(net_devs)`:由 `ax-runtime` 调用,接入 Ethernet 设备、loopback、router、smoltcp service,并完成静态网络或 DHCP 初始化。
+- `init_vsock(vsock_devs)`:在 `vsock` feature 下启用,由 `ax-runtime` 调用。
+- `poll_interfaces()`:推动收包、发包、协议状态机和 readiness 更新。
-与之相对,当运行时选择 `net-ng` 时,初始化入口会切换到 `axnet_ng::init_network()`,这正好体现了两代实现的并存关系。
+socket 入口:
-### 2.4 与带宽基准工具的关系
+- `tcp::TcpSocket`
+- `udp::UdpSocket`
+- `raw`
+- `unix`
+- `vsock`(可选)
+- `Socket`、`SocketOps`、`SocketAddrEx`、`SendOptions`、`RecvOptions`、`Shutdown`
+- `options::{Configurable, GetSocketOption, SetSocketOption, TcpInfo, UnixCredentials}`
-`bench_transmit()` / `bench_receive()` 直接走 `DeviceWrapper` 中的原始帧收发基准逻辑:
+设备与状态查询:
-- 发送侧会构造固定 1500 字节帧,并把 EtherType 置为 IPv4
-- 接收侧只统计收到的字节数
+- `EthernetDeviceList`、`EthernetDriver`、`RdNetDriver` 等设备适配类型。
+- `arp_entries()`:查询 ARP 状态。
+- `dns_query(name)`:基于 smoltcp DNS socket 的正式 DNS 查询 API。
+- `dns_servers()`:只读查询当前 DNS server 列表。
-它们不是普通 socket API,而是给系统带宽基准使用的专门入口,设计上就是为了和宿主机侧 `bwbench-client` 配对验证吞吐。
+## 网络配置
-### 2.5 关键边界
+`ax-net` 支持静态网络和 DHCP:
-- `ax-net` 不重新实现 TCP/IP 协议状态机,真正的协议引擎仍然是 `smoltcp`
-- `ax-net` 不提供 Unix domain socket、vsock 或统一地址族抽象
-- `ax-net` 不提供细粒度事件注册机制;它只向上暴露 `PollState`
-- `ax-net` 不是应用级 HTTP/DNS 客户端库,而是更低层的网络原语层
+- 当 `AX_IP` 和 `AX_GW` 都存在时,使用静态 IP / 网关配置。
+- 否则启用 DHCP。
+- DNS server 优先使用 DHCP 下发值;其次使用静态 `AX_DNS`。
+- 如果没有 DNS server,`dns_query()` 返回错误,不硬编码默认 DNS。
## 依赖关系
-### 直接依赖
+直接依赖:
| 依赖 | 作用 |
| --- | --- |
-| `ax-driver` | 提供 NIC 设备对象 |
-| `ax-hal` | 提供时间接口,驱动 `smoltcp::Instant` |
-| `axio` | 提供 `PollState` 与通用 I/O trait |
-| `ax-sync` / `spin` / `ax-lazyinit` | 管理全局接口、`SocketSet` 与监听表 |
-| `ax-task` | blocking 路径中的 `yield_now()` 与任务协作 |
-| `smoltcp` | 真正的 TCP/UDP/DNS/IP 协议实现 |
-
-### 3.2 主要直接消费者
-
-| 消费者 | 使用方式 |
-| --- | --- |
-| `ax-runtime` | 在老一代 `net` 路径中初始化网络子系统 |
-| `ax-api` | 暴露 ArceOS 级 TCP/UDP/DNS 接口 |
-| `ax-posix-api` | 实现 POSIX 风格 socket 与多路复用路径 |
-| `ax-feat` | 通过 feature 传播把网络能力装入最终镜像 |
-
-### 3.3 与样例程序的关系
-
-虽然 `arceos-httpclient`、`arceos-httpserver` 不直接依赖 `ax-net` 的源码 API,但它们经由 `ax-std`、`ax-api`、`ax-runtime` 间接走的正是这条网络装配链。因此,这些示例更适合作为 `ax-net` 的系统行为样例,而不是 `ax-net` 自身的 API 示例。
-
-## 开发指南
-
-### 4.1 依赖方式
-
-```toml
-[dependencies]
-axnet = { workspace = true }
-```
-
-在实际系统镜像里,更常见的接入方式不是手动直接依赖,而是通过 `ax-runtime` / `ax-feat` / `ax-api` 的 feature 传播把它装进系统。
-
-### 4.2 修改时必须同步检查的前提
-
-1. 当前实现只取第一个 NIC 作为 `eth0`。
-2. 接口地址和网关来自 `AX_IP` / `AX_GW`。
-3. `smoltcp` 看到的是 `Medium::Ethernet` 设备,而不是更高层 IP 设备。
-4. 监听队列依赖 `RxToken::preprocess()` 对首个 SYN 进行预处理。
-5. DNS 服务器默认固定为 `8.8.8.8`。
-
-只要改动触碰这些前提,就已经不是简单 bugfix,而是在改变整个一代网络模块的边界。
-
-### 4.3 高风险改动点
-
-- `listen_table.rs`:直接影响 `accept()` 是否能拿到正确连接
-- TCP/UDP 的 blocking 路径:影响 blocking / nonblocking 行为和 CPU 让出策略
-- `dns.rs`:当前是同步轮询实现,容易受 socket 生命周期与超时处理影响
-- `bench.rs`:与宿主机基准工具的口径绑定较紧,不能按普通 socket 功能随意改
-
-## 测试
-
-### 5.1 当前测试现状
-
-`ax-net` 目录内没有独立的 crate 内 `tests/`。它的正确性主要依赖系统级验证:
-
-- `ax-api` / `ax-posix-api` 的网络调用路径
-- 启用 `net` 的 ArceOS 示例与应用
-- 宿主机侧网络连通和吞吐验证
-
-### 5.2 建议重点
-
-- 至少验证一条 TCP client、一条 TCP server、一条 UDP 收发和一条 DNS 查询
-- 修改监听或接收路径时,必须覆盖 `listen` / `accept` / `shutdown` 回归
-- 修改带宽基准相关逻辑时,要同时验证与 `bwbench-client` 的对端行为
-
-### 5.3 推荐集成验证
-
-- 用 `arceos-httpclient` / `arceos-httpserver` 验证 TCP 主路径
-- 用 POSIX socket 调用路径验证 `ax-posix-api`
-- 用 `bench_transmit` / `bench_receive` + `bwbench-client` 验证吞吐基准路径
-
-## 跨项目定位
-
-### ArceOS
-
-`ax-net` 是 ArceOS 老一代网络装配链的重要组成部分。它直接服务 `ax-api`、`ax-posix-api` 和运行时 `net` 路径,是早期同步 IP 网络能力的核心封装。
-
-### StarryOS
-
-当前仓库中的 StarryOS 并不直接使用这个 `ax-net` crate。相反,`os/StarryOS/Cargo.toml` 与 `os/StarryOS/kernel/Cargo.toml` 都把依赖名 `ax-net` 绑定到了 `package = "ax-net-ng"`,说明 StarryOS 已经切换到第二代网络层。
-
-### Axvisor
-
-当前没有看到 Axvisor 直接消费 `ax-net` 的证据。即便存在间接复用,也更可能经由 ArceOS 公共 API 层,而不是把这个老一代同步网络模块当成独立基础设施。
+| `smoltcp` | TCP/IP、DHCP、DNS 等协议核心 |
+| `axpoll` | readiness、waker 与 `Pollable` 语义 |
+| `ax-task` | 阻塞等待、超时、后台任务 |
+| `ax-sync` / `ax-kspin` | 锁与同步 |
+| `ax-io` | I/O buffer 与读写抽象 |
+| `ax-errno` | `AxError` / `AxResult` |
+| `ax-config` | `AX_IP`、`AX_GW`、`AX_DNS` 等构建期配置 |
+| `ax-hal` | 时间等底层能力 |
+| `ax-fs-ng` / `axfs-ng-vfs` | Unix domain socket 路径绑定 |
+| `rd-net` | Ethernet queue/DMA 设备抽象 |
+| `rdif-vsock` | 可选 vsock 设备抽象 |
+
+主要消费者:
+
+- `ax-runtime`:网络和 vsock 初始化。
+- `ax-feat`:`net` / `vsock` feature 装配。
+- `ax-api`、`ax-posix-api`:ArceOS 网络 API 和 POSIX socket 路径。
+- `ax-std`、`ax-libc`:通过上层 API 间接消费网络能力。
+- `starry-kernel`:Linux syscall socket 底层实现。
+
+具体网卡驱动、VirtIO/PCI 探测和 DMA 策略仍属于 `drivers/` 与 `ax-driver`;StarryOS 的 `AF_PACKET`、`AF_NETLINK`、Linux sockaddr 编解码和 ioctl 细节仍属于 StarryOS Linux ABI 层。
+
+## 测试建议
+
+- `cargo xtask clippy --package ax-net`
+- ArceOS TCP/UDP/DNS 示例与测试。
+- StarryOS TCP/UDP、epoll、AF_UNIX、raw ICMP、vsock build 测试。
+- DHCP/QEMU user networking 场景,确认 `eth0`、默认路由和 DNS server 获取正常。
diff --git a/docs/docs/components/crates/ax-sync.md b/docs/docs/components/crates/ax-sync.md
index cbd89ac0ae..36b5203919 100644
--- a/docs/docs/components/crates/ax-sync.md
+++ b/docs/docs/components/crates/ax-sync.md
@@ -117,7 +117,7 @@ graph LR
ax-sync --> ax-posix-api["ax-posix-api"]
ax-sync --> ax-display["ax-display"]
ax-sync --> ax-input["ax-input"]
- ax-sync --> ax-net["ax-net / ax-net-ng"]
+ ax-sync --> ax-net["ax-net / ax-net"]
ax-sync --> starry_kernel["starry-kernel"]
```
@@ -130,7 +130,7 @@ graph LR
### 主要消费者
- `ax-api`:在 `multitask` 路径下把 `RawMutex` 作为公开类型再导出。
- `ax-posix-api`:用于 pipe、fs、net、pthread mutex 等路径。
-- `ax-net` / `ax-net-ng`、`ax-input`、`ax-display`、`ax-fs-ng`:用 `Mutex` 保护全局状态或共享对象。
+- `ax-net` / `ax-net`、`ax-input`、`ax-display`、`ax-fs-ng`:用 `Mutex` 保护全局状态或共享对象。
- `starry-kernel`:大量复用 `ax-sync::Mutex`,同时与 `spin::SpinNoIrq` 并存。
### 3.3 间接消费者
diff --git a/docs/docs/components/crates/ax-task.md b/docs/docs/components/crates/ax-task.md
index cd177a3191..2a152a3e16 100644
--- a/docs/docs/components/crates/ax-task.md
+++ b/docs/docs/components/crates/ax-task.md
@@ -149,7 +149,7 @@ graph LR
- `ax-sync`:基于 `ax-task` 的阻塞/唤醒机制构建锁和同步原语。
- `ax-api`、`ax-posix-api`:把任务、睡眠、等待队列等能力对外暴露。
- `starry-kernel`:在 Linux 兼容线程模型上直接复用 `ax-task`。
-- `ax-net`、`ax-net-ng`:在网络栈阻塞/异步路径上复用调度与等待能力。
+- `ax-net`、`ax-net`:在网络栈阻塞/异步路径上复用调度与等待能力。
## 开发指南
### 接入方式
diff --git a/docs/docs/components/crates/axfs-ng-vfs.md b/docs/docs/components/crates/axfs-ng-vfs.md
index 7a9e606401..ca5cf1bdb7 100644
--- a/docs/docs/components/crates/axfs-ng-vfs.md
+++ b/docs/docs/components/crates/axfs-ng-vfs.md
@@ -4,7 +4,7 @@
> 类型:库 crate
> 分层:组件层 / 可复用基础组件
> 版本:`0.1.1`
-> 文档依据:`Cargo.toml`、`src/lib.rs`、`src/fs.rs`、`src/mount.rs`、`src/node/mod.rs`、`src/node/dir.rs`、`src/node/file.rs`、`src/path.rs`、`src/types.rs`、`os/arceos/modules/axfs-ng/src/highlevel/file.rs`、`os/arceos/modules/axnet-ng/src/unix/mod.rs`、`os/StarryOS/kernel/src/pseudofs/mod.rs`
+> 文档依据:`Cargo.toml`、`src/lib.rs`、`src/fs.rs`、`src/mount.rs`、`src/node/mod.rs`、`src/node/dir.rs`、`src/node/file.rs`、`src/path.rs`、`src/types.rs`、`os/arceos/modules/axfs-ng/src/highlevel/file.rs`、`net/ax-net/src/unix/mod.rs`、`os/StarryOS/kernel/src/pseudofs/mod.rs`
`axfs-ng-vfs` 是新文件系统栈真正的核心抽象层。它不是老 `axfs_vfs` 那种“只有一组 trait 的薄接口”,而是完整拥有 `Filesystem`、`Mountpoint`、`Location`、`DirEntry`、元数据模型、目录项缓存、挂载图与路径语义的对象模型库。
@@ -16,7 +16,7 @@
- 对具体文件系统实现者:提供 `FilesystemOps`、`DirNodeOps`、`FileNodeOps` 三组 trait,作为 ext4、FAT、tmpfs、devfs、procfs 等后端的落点。
- 对高层文件接口:提供 `Location`、`Mountpoint`、`Metadata`、`NodeFlags`、`Path`/`PathBuf` 等“有状态对象”,让上层不必自己重新维护挂载树或路径解析。
-- 对跨项目消费者:ArceOS 的 `ax-fs-ng`、`ax-net-ng` 的 Unix socket、StarryOS 的 pseudofs 都可以在同一套节点语义上工作。
+- 对跨项目消费者:ArceOS 的 `ax-fs-ng`、`ax-net` 的 Unix socket、StarryOS 的 pseudofs 都可以在同一套节点语义上工作。
### 模块结构
- `src/fs.rs`:定义 `FilesystemOps`、`Filesystem` 和 `StatFs`。这是“一个文件系统实例”的外部门面。
@@ -61,7 +61,7 @@ graph TD
`DirEntry::user_data()`/`Location::user_data()` 暴露了一个 `TypeMap`。这不是装饰性接口:
- `ax_fs_ng::CachedFile` 会把共享页缓存状态挂在这里。
-- `ax-net-ng` 的 Unix socket 会把 `BindSlot` 挂在 socket 节点上。
+- `ax-net` 的 Unix socket 会把 `BindSlot` 挂在 socket 节点上。
也就是说,它是新栈跨层协作的重要扩展点。
@@ -91,7 +91,7 @@ graph TD
### 使用场景
- `ax-fs-ng` 用它组织 ext4/FAT 根文件系统、任务局部 cwd 与页缓存共享。
-- `ax-net-ng` 用它把 Unix socket 地址映射到文件节点。
+- `ax-net` 用它把 Unix socket 地址映射到文件节点。
- StarryOS 用它实现 `tmpfs`、`devfs`、`procfs`、`sysfs` 一类 pseudofs,并支撑文件系统调用层。
## 依赖关系
@@ -101,7 +101,7 @@ graph LR
axpoll["axpoll"] --> current
current --> axfs_ng["ax-fs-ng"]
- current --> ax-net_ng["ax-net-ng"]
+ current --> ax-net_ng["ax-net"]
current --> starry_pseudofs["StarryOS pseudofs / file layer"]
```
@@ -112,7 +112,7 @@ graph LR
### 主要消费者
- `ax-fs-ng`:最主要的高层消费者。
-- `ax-net-ng`:把 socket 地址空间接到文件系统对象模型里。
+- `ax-net`:把 socket 地址空间接到文件系统对象模型里。
- StarryOS:在 pseudofs、文件描述符层和设备节点模型中大量使用。
### 3.3 关键边界关系
diff --git a/docs/docs/components/crates/axpoll.md b/docs/docs/components/crates/axpoll.md
index d74e25856b..a7a85ea5c0 100644
--- a/docs/docs/components/crates/axpoll.md
+++ b/docs/docs/components/crates/axpoll.md
@@ -85,7 +85,7 @@
当前仓库中直接依赖 `axpoll` 的关键路径包括:
- `ax-task`:把同步 nonblocking I/O 封装成可等待 future
-- `ax-net-ng`:为 TCP、UDP、Unix domain socket、vsock、loopback 设备提供统一 readiness 语义
+- `ax-net`:为 TCP、UDP、Unix domain socket、vsock、loopback 设备提供统一 readiness 语义
- `ax-fs-ng` / `axfs-ng-vfs`:为文件节点暴露可轮询事件
- StarryOS 内核:为 `FileLike`、pipe、TTY、socket、eventfd、epoll 等对象复用同一套等待协议
@@ -122,7 +122,7 @@
| 消费者 | 使用方式 |
| --- | --- |
| `ax-task` | 通过 `poll_io()`、IRQ waker 等机制消费 `Pollable` 与 `PollSet` |
-| `ax-net-ng` | 为不同地址族 socket 与设备统一事件位和 waker 注册 |
+| `ax-net` | 为不同地址族 socket 与设备统一事件位和 waker 注册 |
| `ax-fs-ng` | 让文件节点支持统一 readiness 协议 |
| StarryOS 内核 | 作为 fd 世界底层的 readiness glue 层 |
@@ -140,7 +140,7 @@ axpoll = { workspace = true }
1. `poll()` 中只读当前状态,不要在这里阻塞或睡眠。
2. `register()` 中只保存/转发 waker;真正的 `wake()` 必须发生在状态变化点。
3. 如果对象有不同类型的唤醒源,优先按读、写、关闭、异常分开组织 `PollSet`。
-4. 如果对象本身有 IRQ 或设备事件来源,可参考 `ax-task` 与 `ax-net-ng` 的做法,把底层事件桥接到 `PollSet`。
+4. 如果对象本身有 IRQ 或设备事件来源,可参考 `ax-task` 与 `ax-net` 的做法,把底层事件桥接到 `PollSet`。
### 4.3 修改实现时的风险点
@@ -175,7 +175,7 @@ cargo test -p axpoll
### ArceOS
-在 ArceOS 中,`axpoll` 处在同步 nonblocking I/O 与任务等待之间,是 `ax-task`、`ax-net-ng`、`ax-fs-ng` 的公共 readiness glue 层。
+在 ArceOS 中,`axpoll` 处在同步 nonblocking I/O 与任务等待之间,是 `ax-task`、`ax-net`、`ax-fs-ng` 的公共 readiness glue 层。
### StarryOS
diff --git a/docs/docs/components/crates/bwbench-client.md b/docs/docs/components/crates/bwbench-client.md
index 70afe36fd6..608eaf9b7c 100644
--- a/docs/docs/components/crates/bwbench-client.md
+++ b/docs/docs/components/crates/bwbench-client.md
@@ -4,7 +4,7 @@
> 类型:二进制 crate
> 分层:ArceOS 层 / 宿主机配套工具
> 版本:`0.1.0`
-> 文档依据:`Cargo.toml`、`README.md`、`src/main.rs`、`src/device.rs`、`os/arceos/modules/ax-net/src/smoltcp_impl/bench.rs`
+> 文档依据:`Cargo.toml`、`README.md`、`src/main.rs`、`src/device.rs`
`bwbench-client` 是一个运行在 Linux 宿主机上的原始以太网带宽对测工具。它通过 `AF_PACKET` raw socket 直接向指定网卡或 tap 设备发送/接收帧,并按秒输出吞吐统计。它不是 ArceOS 镜像里的应用,也不是可复用网络库;它的真实定位是给 ArceOS 网络基准路径提供一个宿主机侧对端。
@@ -76,14 +76,9 @@
### 2.3 与 ArceOS 侧基准的关系
-`README.md` 明确把它描述成与 ArceOS 带宽基准配对使用的宿主工具,并给出了 tap 设备示例。当前仓库中,能直接对上的客体侧入口是:
+`README.md` 明确把它描述成与 ArceOS 带宽基准配对使用的宿主工具,并给出了 tap 设备示例。当前统一网络栈不再把网络设备 benchmark 入口作为 `ax-net` public API 暴露;如果后续仍需要客体侧带宽基准,应放到独立工具或测试套件中,而不是重新放回核心网络栈。
-- `ax-net::bench_transmit()`
-- `ax-net::bench_receive()`
-
-也就是说,这个工具真正的使命是充当这些基准入口的宿主机对端。
-
-需要特别说明的是:`README.md` 里提到的 `make A=apps/net/bwbench ...` 来自更早期的应用组织方式;在当前仓库快照里,直接能对应上的仍是 `ax-net` 中的基准函数,而不是独立存在于同目录的 ArceOS 应用源码。
+需要特别说明的是:`README.md` 里提到的 `make A=apps/net/bwbench ...` 来自更早期的应用组织方式;在当前仓库快照里,它只能作为宿主机侧 raw frame 工具保留。
### 2.4 关键边界
@@ -105,7 +100,7 @@
`bwbench-client` 没有直接依赖仓库内其他 crate。它与仓库的关系主要体现在“测试配对”上:
- 宿主机侧:`bwbench-client`
-- 客体侧:`ax-net::bench_transmit()` / `bench_receive()`
+- 客体侧:独立 benchmark 应用或测试套件,当前不属于 `ax-net` public API
### 3.3 跨层关系
@@ -113,7 +108,7 @@
| --- | --- |
| `bwbench-client` | 宿主机 raw socket 基准工具 |
| Linux raw socket | 提供二层帧收发能力 |
-| ArceOS `ax-net` 基准入口 | 提供客体侧发送/接收对端 |
+| ArceOS benchmark 应用或测试套件 | 提供客体侧发送/接收对端 |
## 开发指南
diff --git a/docs/docs/components/crates/smoltcp-fuzz.md b/docs/docs/components/crates/smoltcp-fuzz.md
index 523095324f..57dc158cad 100644
--- a/docs/docs/components/crates/smoltcp-fuzz.md
+++ b/docs/docs/components/crates/smoltcp-fuzz.md
@@ -90,7 +90,7 @@
### 2.3 关键边界
-- `smoltcp-fuzz` 不验证 `ax-net` / `ax-net-ng` 的系统 socket 语义
+- `smoltcp-fuzz` 不验证 `ax-net` / `ax-net` 的系统 socket 语义
- `smoltcp-fuzz` 不负责系统级连通性回归
- `smoltcp-fuzz` 主要关注解析健壮性、repr/emit 一致性以及部分协议状态机面对畸形输入时的鲁棒性
diff --git a/docs/docs/components/crates/smoltcp.md b/docs/docs/components/crates/smoltcp.md
index ec1722d5b2..79df2fa99d 100644
--- a/docs/docs/components/crates/smoltcp.md
+++ b/docs/docs/components/crates/smoltcp.md
@@ -6,7 +6,7 @@
> 版本:`0.13.0`(crates.io)
> 文档依据:`Cargo.toml`、`README.md`、`src/lib.rs`、`tests/netsim.rs`、`examples/*`、`benches/bench.rs`、`fuzz/fuzz_targets/*`
-`smoltcp` 是仓库中引入并维护的一份独立 TCP/IP 协议栈源码。它提供的是事件驱动的协议状态机、接口层、设备抽象和报文表示,而不是 ArceOS/StarryOS 直接面向系统调用或应用的网络模块。在本仓库里,真正把它接到驱动、等待模型、地址族抽象和系统接口上的,是 `ax-net` 与 `ax-net-ng`。
+`smoltcp` 是仓库中引入并维护的一份独立 TCP/IP 协议栈源码。它提供的是事件驱动的协议状态机、接口层、设备抽象和报文表示,而不是 ArceOS/StarryOS 直接面向系统调用或应用的网络模块。在本仓库里,真正把它接到驱动、等待模型、地址族抽象和系统接口上的,是 `ax-net` 与 `ax-net`。
最关键的边界是:`smoltcp` 负责协议与报文,不负责操作系统策略。路由装配、阻塞/非阻塞等待、超时、Unix socket、vsock、文件描述符映射与系统调用兼容,都不属于它的职责。
@@ -49,7 +49,7 @@
### 1.4 在本仓库中的实际启用方式
-`ax-net` 和 `ax-net-ng` 都没有使用 `smoltcp` 的默认 feature,而是显式打开了一组更贴近内核场景的能力:
+`ax-net` 和 `ax-net` 都没有使用 `smoltcp` 的默认 feature,而是显式打开了一组更贴近内核场景的能力:
- `alloc`
- `log`
@@ -66,7 +66,7 @@
这说明在本仓库里,`smoltcp` 的定位不是 host-side 演示库,而是内核内 IP/TCP/UDP 协议引擎。
-### 1.5 与 `ax-net` / `ax-net-ng` 的边界
+### 1.5 与 `ax-net` / `ax-net` 的边界
在 ArceOS / StarryOS 中,`smoltcp` 的职责到以下范围为止:
@@ -76,7 +76,7 @@
- 不提供 `bind` / `accept4` / `sendmsg` 一类系统接口语义
- 不理解 `axpoll`、`ax-task`、`ax-fs-ng`、Unix socket、vsock 这些系统层概念
-因此,`ax-net` / `ax-net-ng` 不是“薄薄一层壳”,而是在把协议栈本体接到操作系统语义上。
+因此,`ax-net` / `ax-net` 不是“薄薄一层壳”,而是在把协议栈本体接到操作系统语义上。
## 核心功能
@@ -93,9 +93,9 @@
本仓库中的真实调用链可以概括为:
1. `ax-driver` 暴露 NIC 或更高层网络设备
-2. `ax-net` / `ax-net-ng` 将其适配成 `smoltcp::phy::Device`
+2. `ax-net` / `ax-net` 将其适配成 `smoltcp::phy::Device`
3. `smoltcp::iface::Interface` 与 `SocketSet` 负责推进协议状态机
-4. `ax-net` / `ax-net-ng` 把 `smoltcp` socket 封装成系统友好的同步 socket 接口
+4. `ax-net` / `ax-net` 把 `smoltcp` socket 封装成系统友好的同步 socket 接口
5. `ax-api`、`ax-posix-api`、StarryOS socket 子系统继续向上暴露用户可见语义
### 2.3 质量保障资产也是实现的一部分
@@ -135,7 +135,7 @@
| 消费者 | 使用方式 |
| --- | --- |
| `ax-net` | 第一代 IP socket 封装 |
-| `ax-net-ng` | 第二代统一 socket 服务层中的 IP 协议引擎 |
+| `ax-net` | 第二代统一 socket 服务层中的 IP 协议引擎 |
| `smoltcp-fuzz` | 直接针对本仓库这份协议栈源码做 fuzz 验证 |
### 3.3 与上层模块的职责边界
@@ -144,7 +144,7 @@
| --- | --- |
| `smoltcp` | 协议状态机、报文解析/构造、接口轮询模型 |
| `ax-net` | 把 `smoltcp` 封装成第一代同步 TCP/UDP/DNS 接口 |
-| `ax-net-ng` | 在 `smoltcp` 之上实现统一 socket 语义、路由、Unix/vsock、poll/waker |
+| `ax-net` | 在 `smoltcp` 之上实现统一 socket 语义、路由、Unix/vsock、poll/waker |
## 开发指南
@@ -157,7 +157,7 @@
smoltcp = { version = "0.12", default-features = false, features = ["alloc"] }
```
-但在本仓库中,更常见的做法不是让业务代码直接依赖 `smoltcp`,而是通过 `ax-net` / `ax-net-ng` 间接消费。
+但在本仓库中,更常见的做法不是让业务代码直接依赖 `smoltcp`,而是通过 `ax-net` / `ax-net` 间接消费。
### 4.2 修改前先判断自己在动哪一层
@@ -192,7 +192,7 @@ smoltcp = { version = "0.12", default-features = false, features = ["alloc"] }
- 协议或报文层改动优先补单元测试与 fuzz corpus
- 接口层改动至少跑一条 netsim 回归
- 修改编译期参数或 feature 时,同时检查默认组合与 ArceOS 实际使用组合
-- 若变更会影响 `ax-net` / `ax-net-ng`,还必须补系统级回归
+- 若变更会影响 `ax-net` / `ax-net`,还必须补系统级回归
### 5.3 推荐验证命令
@@ -207,11 +207,11 @@ cargo test -p smoltcp --test netsim --features _netsim
### ArceOS
-在 ArceOS 中,`smoltcp` 不是用户直接面对的网络 API,而是 `ax-net` / `ax-net-ng` 下方的协议引擎。它决定 TCP/UDP/DNS/IP 行为,但不直接决定系统调用或应用接口语义。
+在 ArceOS 中,`smoltcp` 不是用户直接面对的网络 API,而是 `ax-net` / `ax-net` 下方的协议引擎。它决定 TCP/UDP/DNS/IP 行为,但不直接决定系统调用或应用接口语义。
### StarryOS
-StarryOS 同样不会把 `smoltcp` 直接暴露给上层,而是通过 `ax-net-ng` 间接使用它。对 StarryOS 来说,`smoltcp` 是主 socket 子系统下方的协议核心,而不是 socket 子系统本身。
+StarryOS 同样不会把 `smoltcp` 直接暴露给上层,而是通过 `ax-net` 间接使用它。对 StarryOS 来说,`smoltcp` 是主 socket 子系统下方的协议核心,而不是 socket 子系统本身。
### Axvisor
diff --git a/docs/docs/components/crates/starry-kernel.md b/docs/docs/components/crates/starry-kernel.md
index 8e460dc944..3897ba8491 100644
--- a/docs/docs/components/crates/starry-kernel.md
+++ b/docs/docs/components/crates/starry-kernel.md
@@ -120,7 +120,7 @@ graph LR
ax-task["ax-task"] --> starry
ax-mm["ax-mm"] --> starry
ax-fs["ax-fs-ng / axfs-ng-vfs"] --> starry
- ax-net["ax-net-ng"] --> starry
+ ax-net["ax-net"] --> starry
starry_process["starry-process"] --> starry
starry_signal["starry-signal"] --> starry
starry_vm["starry-vm"] --> starry
@@ -130,11 +130,11 @@ graph LR
```
### 直接依赖
-- `ax-feat`:把 `uspace`、`multitask`、`sched-rr`、`fs-ng-ext4`、`net-ng` 等能力一次性装配到内核。
+- `ax-feat`:把 `uspace`、`multitask`、`sched-rr`、`fs-ng-ext4`、`net` 等能力一次性装配到内核。
- `ax-hal`:用户态上下文、页表、trap、时间与控制台基础能力。
- `ax-task`:底层线程调度、`TaskExt` 和阻塞/唤醒机制。
- `ax-fs-ng`、`axfs-ng-vfs`:文件系统与路径解析。
-- `ax-net-ng`:网络与 socket 路径的底层支撑。
+- `ax-net`:网络与 socket 路径的底层支撑。
- `starry-process`、`starry-signal`、`starry-vm`:分别承接进程模型、信号模型和用户内存安全访问。
### 主要消费者
diff --git a/docs/docs/components/layers.md b/docs/docs/components/layers.md
index 16333ec8a9..7e1aad72af 100644
--- a/docs/docs/components/layers.md
+++ b/docs/docs/components/layers.md
@@ -27,10 +27,10 @@ flowchart TB
L12["层级 12
堆叠层(依赖更底层 crate)
`ax-runtime`"]
classDef ls12 fill:#e1bee7,stroke:#6a1b9a,stroke-width:2px,color:#000
class L12 ls12
- L11["层级 11
堆叠层(依赖更底层 crate)
`ax-net-ng`"]
+ L11["层级 11
堆叠层(依赖更底层 crate)
`ax-net`"]
classDef ls11 fill:#ffe0b2,stroke:#ef6c00,stroke-width:2px,color:#000
class L11 ls11
- L10["层级 10
堆叠层(依赖更底层 crate)
`ax-display`、`ax-fs`、`ax-fs-ng`、`ax-input`、`ax-net`"]
+ L10["层级 10
堆叠层(依赖更底层 crate)
`ax-display`、`ax-fs`、`ax-fs-ng`、`ax-input`"]
classDef ls10 fill:#fff9c4,stroke:#f9a825,stroke-width:2px,color:#000
class L10 ls10
L9["层级 9
堆叠层(依赖更底层 crate)
`ax-driver`"]
@@ -178,8 +178,7 @@ flowchart TB
| 10 | 堆叠层 | ArceOS 层 | `ax-fs` | `0.5.0` | `os/arceos/modules/axfs` |
| 10 | 堆叠层 | ArceOS 层 | `ax-fs-ng` | `0.5.0` | `os/arceos/modules/axfs-ng` |
| 10 | 堆叠层 | ArceOS 层 | `ax-input` | `0.5.0` | `os/arceos/modules/axinput` |
-| 10 | 堆叠层 | ArceOS 层 | `ax-net` | `0.5.0` | `os/arceos/modules/axnet` |
-| 11 | 堆叠层 | ArceOS 层 | `ax-net-ng` | `0.5.0` | `os/arceos/modules/axnet-ng` |
+| 11 | 堆叠层 | 组件层 | `ax-net` | `0.7.1` | `net/ax-net` |
| 12 | 堆叠层 | ArceOS 层 | `ax-runtime` | `0.5.0` | `os/arceos/modules/axruntime` |
| 13 | 堆叠层 | ArceOS 层 | `ax-feat` | `0.5.0` | `os/arceos/api/axfeat` |
| 14 | 堆叠层 | ArceOS 层 | `ax-api` | `0.5.0` | `os/arceos/api/arceos_api` |
@@ -227,7 +226,7 @@ flowchart TB
| 8 | 2 | `ax-dma` `ax-sync` |
| 9 | 1 | `ax-driver` |
| 10 | 5 | `ax-display` `ax-fs` `ax-fs-ng` `ax-input` `ax-net` |
-| 11 | 1 | `ax-net-ng` |
+| 11 | 1 | `ax-net` |
| 12 | 1 | `ax-runtime` |
| 13 | 1 | `ax-feat` |
| 14 | 3 | `ax-api` `ax-posix-api` `starry-kernel` |
@@ -264,7 +263,7 @@ flowchart TB
| `ax-allocator` | 1 | Various allocator algorithms in a unified interfa… | `ax-errno` `bitmap-allocator` | `ax-alloc` `ax-dma` |
| `ax-api` | 14 | Public APIs and types for ArceOS modules | `ax-alloc` `ax-config` `ax-display` `ax-dma` `ax-driver` `ax-errno` `ax-feat` `ax-fs` `ax-hal` `ax-io` `ax-ipi` `ax-log` `ax-mm` `ax-net` `ax-runtime` `ax-sync` `ax-task` | `ax-std` |
| `ax-cap-access` | 0 | Provide basic capability-based access control to … | — | `ax-fs` |
-| `ax-config` | 2 | Platform-specific constants and parameters for Ar… | `ax-config-macros` | `ax-api` `ax-dma` `ax-driver` `ax-feat` `ax-hal` `ax-ipi` `ax-net-ng` `ax-posix-api` `ax-runtime` `ax-task` `axvisor` `starry-kernel` |
+| `ax-config` | 2 | Platform-specific constants and parameters for Ar… | `ax-config-macros` | `ax-api` `ax-dma` `ax-driver` `ax-feat` `ax-hal` `ax-ipi` `ax-net` `ax-posix-api` `ax-runtime` `ax-task` `axvisor` `starry-kernel` |
| `ax-config-gen` | 0 | A TOML-based configuration generation tool for Ar… | — | `ax-config-macros` |
| `ax-config-macros` | 1 | Procedural macros for converting TOML format conf… | `ax-config-gen` | `ax-config` `ax-plat-loongarch64-qemu-virt` `axplat-dyn` |
| `ax-cpu` | 3 | Privileged instruction and structure abstractions… | `ax-lazyinit` `ax-memory-addr` `ax-page-table-entry` `ax-page-table-multiarch` `ax-percpu` `axbacktrace` | `ax-hal` `ax-plat-loongarch64-qemu-virt` `axplat-dyn` `starry-signal` |
@@ -275,15 +274,15 @@ flowchart TB
| `ax-ctor-bare-macros` | 0 | Macros for registering constructor functions for … | — | `ax-ctor-bare` |
| `ax-display` | 10 | ArceOS graphics module | `ax-driver` `ax-lazyinit` `ax-sync` | `ax-api` `ax-feat` `ax-runtime` `starry-kernel` |
| `ax-dma` | 8 | ArceOS global DMA allocator | `ax-alloc` `ax-allocator` `ax-config` `ax-hal` `ax-kspin` `ax-memory-addr` `ax-mm` | `ax-api` `ax-driver` |
-| `ax-driver` | 9 | ArceOS device drivers | `anyhow` `ax-alloc` `ax-crate-interface` `ax-dma` `ax-errno` `ax-kernel-guard` `ax-kspin` `axklib` `dma-api` `mmio-api` `rdrive` `rd-net` `rdif-*` `virtio-drivers` | `ax-api` `ax-display` `ax-feat` `ax-fs` `ax-fs-ng` `ax-input` `ax-net` `ax-net-ng` `ax-runtime` `starry-kernel` |
-| `ax-errno` | 0 | Generic error code representation. | — | `arm_vcpu` `arm_vgic` `ax-alloc` `ax-allocator` `ax-api` `ax-driver` `ax-fs` `ax-fs-ng` `ax-fs-vfs` `ax-io` `ax-libc` `ax-memory-set` `ax-mm` `ax-net` `ax-net-ng` `ax-page-table-multiarch` `ax-posix-api` `ax-std` `ax-task` `axaddrspace` `axdevice` `axdevice_base` `axfs-ng-vfs` `axhvc` `axklib` `axplat-dyn` `axvcpu` `axvisor` `axvm` `axvmconfig` `riscv_vcpu` `riscv_vplic` `starry-kernel` `starry-vm` `x86_vcpu` `x86_vlapic` |
+| `ax-driver` | 9 | ArceOS device drivers | `anyhow` `ax-alloc` `ax-crate-interface` `ax-dma` `ax-errno` `ax-kernel-guard` `ax-kspin` `axklib` `dma-api` `mmio-api` `rdrive` `rd-net` `rdif-*` `virtio-drivers` | `ax-api` `ax-display` `ax-feat` `ax-fs` `ax-fs-ng` `ax-input` `ax-net` `ax-net` `ax-runtime` `starry-kernel` |
+| `ax-errno` | 0 | Generic error code representation. | — | `arm_vcpu` `arm_vgic` `ax-alloc` `ax-allocator` `ax-api` `ax-driver` `ax-fs` `ax-fs-ng` `ax-fs-vfs` `ax-io` `ax-libc` `ax-memory-set` `ax-mm` `ax-net` `ax-net` `ax-page-table-multiarch` `ax-posix-api` `ax-std` `ax-task` `axaddrspace` `axdevice` `axdevice_base` `axfs-ng-vfs` `axhvc` `axklib` `axplat-dyn` `axvcpu` `axvisor` `axvm` `axvmconfig` `riscv_vcpu` `riscv_vplic` `starry-kernel` `starry-vm` `x86_vcpu` `x86_vlapic` |
| `ax-feat` | 13 | Top-level feature selection for ArceOS | `ax-alloc` `ax-config` `ax-display` `ax-driver` `ax-fs` `ax-fs-ng` `ax-hal` `ax-input` `ax-ipi` `ax-kspin` `ax-log` `ax-net` `ax-runtime` `ax-sync` `ax-task` `axbacktrace` | `ax-api` `ax-libc` `ax-posix-api` `ax-std` `starry-kernel` `starryos` `starryos-test` |
| `ax-fs` | 10 | ArceOS filesystem module | `ax-cap-access` `ax-driver` `ax-errno` `ax-fs-devfs` `ax-fs-ramfs` `ax-fs-vfs` `ax-hal` `ax-io` `ax-lazyinit` `rsext4` | `ax-api` `ax-feat` `ax-posix-api` `ax-runtime` |
| `ax-fs-devfs` | 2 | Device filesystem used by ArceOS | `ax-fs-vfs` | `ax-fs` |
-| `ax-fs-ng` | 10 | ArceOS filesystem module | `ax-alloc` `ax-driver` `ax-errno` `ax-hal` `ax-io` `ax-kspin` `ax-sync` `axfs-ng-vfs` `axpoll` `scope-local` | `ax-feat` `ax-net-ng` `ax-runtime` `starry-kernel` |
+| `ax-fs-ng` | 10 | ArceOS filesystem module | `ax-alloc` `ax-driver` `ax-errno` `ax-hal` `ax-io` `ax-kspin` `ax-sync` `axfs-ng-vfs` `axpoll` `scope-local` | `ax-feat` `ax-net` `ax-runtime` `starry-kernel` |
| `ax-fs-ramfs` | 2 | RAM filesystem used by ArceOS | `ax-fs-vfs` | `arceos-fs-shell` `ax-fs` |
| `ax-fs-vfs` | 1 | Virtual filesystem interfaces used by ArceOS | `ax-errno` | `arceos-fs-shell` `ax-fs` `ax-fs-devfs` `ax-fs-ramfs` |
-| `ax-hal` | 6 | ArceOS hardware abstraction layer, provides unifi… | `ax-alloc` `ax-config` `ax-cpu` `ax-kernel-guard` `ax-memory-addr` `ax-page-table-multiarch` `ax-percpu` `ax-plat` `ax-plat-loongarch64-qemu-virt` `axplat-dyn` | `ax-api` `ax-dma` `ax-driver` `ax-feat` `ax-fs` `ax-fs-ng` `ax-ipi` `ax-mm` `ax-net` `ax-net-ng` `ax-posix-api` `ax-runtime` `ax-task` `axvisor` `starry-kernel` |
+| `ax-hal` | 6 | ArceOS hardware abstraction layer, provides unifi… | `ax-alloc` `ax-config` `ax-cpu` `ax-kernel-guard` `ax-memory-addr` `ax-page-table-multiarch` `ax-percpu` `ax-plat` `ax-plat-loongarch64-qemu-virt` `axplat-dyn` | `ax-api` `ax-dma` `ax-driver` `ax-feat` `ax-fs` `ax-fs-ng` `ax-ipi` `ax-mm` `ax-net` `ax-net` `ax-posix-api` `ax-runtime` `ax-task` `axvisor` `starry-kernel` |
| `ax-handler-table` | 0 | A lock-free table of event handlers | — | `ax-plat` |
| `arceos-helloworld` | 16 | ArceOS 示例程序 | `ax-std` | — |
| `arceos-helloworld-myplat` | 16 | ArceOS 示例程序 | `ax-plat-loongarch64-qemu-virt` `ax-std` | — |
@@ -291,7 +290,7 @@ flowchart TB
| `arceos-httpserver` | 16 | Simple HTTP server. Benchmark with Apache HTTP se… | `ax-std` | — |
| `ax-input` | 10 | Input device management for ArceOS | `ax-driver` `ax-lazyinit` `ax-sync` | `ax-feat` `ax-runtime` `starry-kernel` |
| `ax-int-ratio` | 0 | The type of ratios represented by two integers. | — | — |
-| `ax-io` | 1 | `std::io` for `no_std` environment | `ax-errno` | `ax-api` `ax-fs` `ax-fs-ng` `ax-libc` `ax-net` `ax-net-ng` `ax-posix-api` `ax-std` `starry-kernel` |
+| `ax-io` | 1 | `std::io` for `no_std` environment | `ax-errno` | `ax-api` `ax-fs` `ax-fs-ng` `ax-libc` `ax-net` `ax-net` `ax-posix-api` `ax-std` `starry-kernel` |
| `ax-ipi` | 7 | ArceOS IPI management module | `ax-config` `ax-hal` `ax-kspin` `ax-lazyinit` `ax-percpu` | `ax-api` `ax-feat` `ax-runtime` |
| `ax-kernel-guard` | 1 | RAII wrappers to create a critical section with l… | `ax-crate-interface` | `ax-hal` `ax-kspin` `ax-percpu` `ax-task` `axvisor` `starry-kernel` |
| `ax-kspin` | 2 | Spinlocks used for kernel space that can disable … | `ax-kernel-guard` | `ax-alloc` `ax-dma` `ax-feat` `ax-fs-ng` `ax-ipi` `ax-log` `ax-mm` `ax-plat` `ax-plat-loongarch64-qemu-virt` `ax-std` `ax-sync` `ax-task` `axvisor` `starry-kernel` `starry-process` `starry-signal` |
@@ -302,8 +301,7 @@ flowchart TB
| `ax-memory-addr` | 0 | Wrappers and helper functions for physical and vi… | — | `arm_vgic` `ax-alloc` `ax-cpu` `ax-dma` `ax-hal` `ax-memory-set` `ax-mm` `ax-page-table-entry` `ax-page-table-multiarch` `ax-plat` `ax-task` `axaddrspace` `axdevice` `axklib` `axplat-dyn` `axvcpu` `axvisor` `axvisor_api` `axvm` `riscv_vcpu` `starry-kernel` `x86_vcpu` `x86_vlapic` |
| `ax-memory-set` | 1 | Data structures and operations for managing memor… | `ax-errno` `ax-memory-addr` | `ax-mm` `axaddrspace` `starry-kernel` |
| `ax-mm` | 7 | ArceOS virtual memory management module | `ax-alloc` `ax-errno` `ax-hal` `ax-kspin` `ax-lazyinit` `ax-memory-addr` `ax-memory-set` `ax-page-table-multiarch` | `ax-api` `ax-dma` `ax-runtime` `starry-kernel` |
-| `ax-net` | 10 | ArceOS network module | `ax-driver` `ax-errno` `ax-hal` `ax-io` `ax-lazyinit` `ax-sync` `ax-task` `smoltcp` | `ax-api` `ax-feat` `ax-posix-api` `ax-runtime` |
-| `ax-net-ng` | 11 | ArceOS network module | `ax-config` `ax-driver` `ax-errno` `ax-fs-ng` `ax-hal` `ax-io` `ax-sync` `ax-task` `axfs-ng-vfs` `axpoll` `smoltcp` | `ax-runtime` `starry-kernel` |
+| `ax-net` | 11 | Unified network stack | `ax-config` `ax-errno` `ax-fs-ng` `ax-hal` `ax-io` `ax-sync` `ax-task` `axfs-ng-vfs` `axpoll` `rd-net` `smoltcp` | `ax-api` `ax-feat` `ax-posix-api` `ax-runtime` `starry-kernel` |
| `ax-page-table-entry` | 1 | Page table entry definition for various hardware … | `ax-memory-addr` | `ax-cpu` `ax-page-table-multiarch` `ax-plat-loongarch64-qemu-virt` `axaddrspace` `axvisor` `axvm` `riscv_vcpu` `x86_vcpu` |
| `ax-page-table-multiarch` | 2 | Generic page table structures for various hardwar… | `ax-errno` `ax-memory-addr` `ax-page-table-entry` | `ax-cpu` `ax-hal` `ax-mm` `axaddrspace` `axvisor` `axvm` `starry-kernel` |
| `ax-percpu` | 2 | Define and access per-CPU data structures | `ax-kernel-guard` `ax-percpu-macros` | `arm_vcpu` `ax-alloc` `ax-cpu` `ax-hal` `ax-ipi` `ax-plat` `ax-runtime` `ax-task` `axplat-dyn` `axvcpu` `axvisor` `axvm` `scope-local` `starry-kernel` |
@@ -313,23 +311,23 @@ flowchart TB
| `ax-plat-macros` | 1 | Procedural macros for the `axplat` crate | `ax-crate-interface` | `ax-plat` |
| `ax-posix-api` | 14 | POSIX-compatible APIs for ArceOS modules | `ax-alloc` `ax-config` `ax-errno` `ax-feat` `ax-fs` `ax-hal` `ax-io` `ax-log` `ax-net` `ax-runtime` `ax-sync` `ax-task` `scope-local` | `ax-libc` |
| `ax-riscv-plic` | 0 | RISC-V platform-level interrupt controller (PLIC)… | — | — |
-| `ax-runtime` | 12 | Runtime library of ArceOS | `ax-alloc` `ax-config` `ax-crate-interface` `ax-ctor-bare` `ax-display` `ax-driver` `ax-fs` `ax-fs-ng` `ax-hal` `ax-input` `ax-ipi` `ax-log` `ax-mm` `ax-net` `ax-net-ng` `ax-percpu` `ax-plat` `ax-task` `axbacktrace` `axklib` | `ax-api` `ax-feat` `ax-posix-api` `starry-kernel` |
+| `ax-runtime` | 12 | Runtime library of ArceOS | `ax-alloc` `ax-config` `ax-crate-interface` `ax-ctor-bare` `ax-display` `ax-driver` `ax-fs` `ax-fs-ng` `ax-hal` `ax-input` `ax-ipi` `ax-log` `ax-mm` `ax-net` `ax-net` `ax-percpu` `ax-plat` `ax-task` `axbacktrace` `axklib` | `ax-api` `ax-feat` `ax-posix-api` `starry-kernel` |
| `ax-sched` | 1 | Various scheduler algorithms in a unified interfa… | `ax-linked-list-r4l` | `ax-task` |
| `arceos-shell` | 16 | ArceOS 示例程序 | `ax-std` | — |
| `ax-std` | 15 | ArceOS user library with an interface similar to … | `ax-api` `ax-errno` `ax-feat` `ax-io` `ax-kspin` `ax-lazyinit` | `arceos-affinity` `arceos-display` `arceos-exception` `arceos-fs-shell` `arceos-irq` `arceos-memtest` `arceos-net-echoserver` `arceos-net-httpclient` `arceos-net-httpserver` `arceos-net-udpserver` `arceos-parallel` `arceos-priority` `arceos-sleep` `arceos-tls` `arceos-wait-queue` `arceos-yield` `arceos-helloworld` `arceos-helloworld-myplat` `arceos-httpclient` `arceos-httpserver` `arceos-shell` `axvisor` |
-| `ax-sync` | 8 | ArceOS synchronization primitives | `ax-kspin` `ax-task` | `ax-api` `ax-display` `ax-feat` `ax-fs-ng` `ax-input` `ax-net` `ax-net-ng` `ax-posix-api` `starry-kernel` |
-| `ax-task` | 7 | ArceOS task management module | `ax-config` `ax-cpumask` `ax-crate-interface` `ax-errno` `ax-hal` `ax-kernel-guard` `ax-kspin` `ax-lazyinit` `ax-memory-addr` `ax-percpu` `ax-sched` `ax-timer-list` `axpoll` | `ax-api` `ax-feat` `ax-net` `ax-net-ng` `ax-posix-api` `ax-runtime` `ax-sync` `starry-kernel` |
+| `ax-sync` | 8 | ArceOS synchronization primitives | `ax-kspin` `ax-task` | `ax-api` `ax-display` `ax-feat` `ax-fs-ng` `ax-input` `ax-net` `ax-net` `ax-posix-api` `starry-kernel` |
+| `ax-task` | 7 | ArceOS task management module | `ax-config` `ax-cpumask` `ax-crate-interface` `ax-errno` `ax-hal` `ax-kernel-guard` `ax-kspin` `ax-lazyinit` `ax-memory-addr` `ax-percpu` `ax-sched` `ax-timer-list` `axpoll` | `ax-api` `ax-feat` `ax-net` `ax-net` `ax-posix-api` `ax-runtime` `ax-sync` `starry-kernel` |
| `ax-timer-list` | 0 | A list of timed events that will be triggered seq… | — | `ax-task` `axvisor` |
| `axaddrspace` | 3 | ArceOS-Hypervisor guest address space management … | `ax-errno` `ax-lazyinit` `ax-memory-addr` `ax-memory-set` `ax-page-table-entry` `ax-page-table-multiarch` | `arm_vcpu` `arm_vgic` `axdevice` `axdevice_base` `axvcpu` `axvisor` `axvisor_api` `axvm` `riscv_vcpu` `riscv_vplic` `x86_vcpu` `x86_vlapic` |
| `axbacktrace` | 0 | Backtrace for ArceOS | — | `ax-alloc` `ax-cpu` `ax-feat` `ax-runtime` `starry-kernel` |
| `axbuild` | 2 | An OS build lib toolkit used by arceos | `axvmconfig` | `axvisor` `starryos` `tg-xtask` |
| `axdevice` | 6 | A reusable, OS-agnostic device abstraction layer … | `arm_vgic` `ax-errno` `ax-memory-addr` `axaddrspace` `axdevice_base` `axvmconfig` `riscv_vplic` | `axvisor` `axvm` |
| `axdevice_base` | 4 | Basic traits and structures for emulated devices … | `ax-errno` `axaddrspace` `axvmconfig` | `arm_vcpu` `arm_vgic` `axdevice` `axvisor` `axvm` `riscv_vplic` `x86_vcpu` `x86_vlapic` |
-| `axfs-ng-vfs` | 1 | Virtual filesystem layer for ArceOS | `ax-errno` `axpoll` | `ax-fs-ng` `ax-net-ng` `starry-kernel` |
+| `axfs-ng-vfs` | 1 | Virtual filesystem layer for ArceOS | `ax-errno` `axpoll` | `ax-fs-ng` `ax-net` `starry-kernel` |
| `axhvc` | 1 | AxVisor HyperCall definitions for guest-hyperviso… | `ax-errno` | `axvisor` |
| `axklib` | 1 | Small kernel-helper abstractions used across the … | `ax-errno` `ax-memory-addr` | `ax-runtime` `axplat-dyn` `axvisor` |
| `axplat-dyn` | 4 | A dynamic platform module for ArceOS, providing r… | `ax-cpu` `ax-driver` `ax-errno` `ax-memory-addr` `ax-percpu` `ax-plat` `axklib` `rdrive` `somehal` | `ax-driver` `ax-hal` |
-| `axpoll` | 0 | A library for polling I/O events and waking up ta… | — | `ax-fs-ng` `ax-net-ng` `ax-task` `axfs-ng-vfs` `starry-kernel` |
+| `axpoll` | 0 | A library for polling I/O events and waking up ta… | — | `ax-fs-ng` `ax-net` `ax-task` `axfs-ng-vfs` `starry-kernel` |
| `axvcpu` | 5 | Virtual CPU abstraction for ArceOS hypervisor | `ax-errno` `ax-memory-addr` `ax-percpu` `axaddrspace` `axvisor_api` | `arm_vcpu` `axvisor` `axvm` `riscv_vcpu` `x86_vcpu` |
| `axvisor` | 16 | A lightweight type-1 hypervisor based on ArceOS | `ax-config` `ax-cpumask` `ax-crate-interface` `ax-errno` `ax-hal` `ax-kernel-guard` `ax-kspin` `ax-lazyinit` `ax-memory-addr` `ax-page-table-entry` `ax-page-table-multiarch` `ax-percpu` `ax-std` `ax-timer-list` `axaddrspace` `axbuild` `axdevice` `axdevice_base` `axhvc` `axklib` `axvcpu` `axvisor_api` `axvm` `riscv_vcpu` `riscv_vplic` | — |
| `axvisor_api` | 4 | Basic API for components of the Hypervisor on Arc… | `ax-cpumask` `ax-crate-interface` `ax-memory-addr` `axaddrspace` `axvisor_api_proc` | `arm_vcpu` `arm_vgic` `axvcpu` `axvisor` `axvm` `riscv_vcpu` `riscv_vplic` `x86_vcpu` `x86_vlapic` |
@@ -351,9 +349,9 @@ flowchart TB
| `riscv_vplic` | 5 | RISCV Virtual PLIC implementation. | `ax-errno` `axaddrspace` `axdevice_base` `axvisor_api` `riscv-h` | `axdevice` `axvisor` |
| `rsext4` | 0 | A lightweight ext4 file system. | — | `ax-fs` |
| `scope-local` | 3 | Scope local storage | `ax-percpu` | `ax-fs-ng` `ax-posix-api` `starry-kernel` |
-| `smoltcp` | 0 | A TCP/IP stack designed for bare-metal, real-time… | — | `ax-net` `ax-net-ng` `smoltcp-fuzz` |
+| `smoltcp` | 0 | A TCP/IP stack designed for bare-metal, real-time… | — | `ax-net` `ax-net` `smoltcp-fuzz` |
| `smoltcp-fuzz` | 1 | 可复用基础组件 | `smoltcp` | — |
-| `starry-kernel` | 14 | A Linux-compatible OS kernel built on ArceOS unik… | `ax-alloc` `ax-config` `ax-display` `ax-driver` `ax-errno` `ax-feat` `ax-fs-ng` `ax-hal` `ax-input` `ax-io` `ax-kernel-guard` `ax-kspin` `ax-log` `ax-memory-addr` `ax-memory-set` `ax-mm` `ax-net-ng` `ax-page-table-multiarch` `ax-percpu` `ax-runtime` `ax-sync` `ax-task` `axbacktrace` `axfs-ng-vfs` `axpoll` `scope-local` `starry-process` `starry-signal` `starry-vm` | `starryos` `starryos-test` |
+| `starry-kernel` | 14 | A Linux-compatible OS kernel built on ArceOS unik… | `ax-alloc` `ax-config` `ax-display` `ax-driver` `ax-errno` `ax-feat` `ax-fs-ng` `ax-hal` `ax-input` `ax-io` `ax-kernel-guard` `ax-kspin` `ax-log` `ax-memory-addr` `ax-memory-set` `ax-mm` `ax-net` `ax-page-table-multiarch` `ax-percpu` `ax-runtime` `ax-sync` `ax-task` `axbacktrace` `axfs-ng-vfs` `axpoll` `scope-local` `starry-process` `starry-signal` `starry-vm` | `starryos` `starryos-test` |
| `starry-process` | 3 | Process management for Starry OS | `ax-kspin` `ax-lazyinit` | `starry-kernel` |
| `starry-signal` | 4 | Signal management library for Starry OS | `ax-cpu` `ax-kspin` `starry-vm` | `starry-kernel` |
| `starry-vm` | 1 | Virtual memory management library for Starry OS | `ax-errno` | `starry-kernel` `starry-signal` |
diff --git a/docs/docs/components/overview.md b/docs/docs/components/overview.md
index 077f0b8e9b..4ecfb76710 100644
--- a/docs/docs/components/overview.md
+++ b/docs/docs/components/overview.md
@@ -150,8 +150,7 @@ flowchart TB
| `ax-memory-addr` | 组件层 | `memory/memory_addr` | 0 | 24 | [查看](crates/ax-memory-addr) |
| `ax-memory-set` | 组件层 | `memory/memory_set` | 2 | 3 | [查看](crates/ax-memory-set) |
| `ax-mm` | ArceOS 层 | `os/arceos/modules/axmm` | 8 | 4 | [查看](crates/ax-mm) |
-| `ax-net` | ArceOS 层 | `os/arceos/modules/axnet` | 8 | 4 | [查看](crates/ax-net) |
-| `ax-net-ng` | ArceOS 层 | `os/arceos/modules/axnet-ng` | 11 | 2 | [查看](crates/ax-net-ng) |
+| `ax-net` | 组件层 | `net/ax-net` | 11 | 6 | [查看](crates/ax-net) |
| `ax-page-table-entry` | 组件层 | `memory/page_table_entry` | 1 | 12 | [查看](crates/ax-page-table-entry) |
| `ax-page-table-multiarch` | 组件层 | `memory/page_table_multiarch` | 3 | 7 | [查看](crates/ax-page-table-multiarch) |
| `ax-percpu` | 组件层 | `components/percpu/percpu` | 2 | 17 | [查看](crates/ax-percpu) |
diff --git a/docs/docs/debug/lock-usage-followups.md b/docs/docs/debug/lock-usage-followups.md
index 0a49079a67..ce2140c410 100644
--- a/docs/docs/debug/lock-usage-followups.md
+++ b/docs/docs/debug/lock-usage-followups.md
@@ -53,7 +53,7 @@ sidebar_label: "锁使用问题跟踪"
| `os/StarryOS/kernel/src/pseudofs/dev/loop_block.rs` | loop block cache blocks 使用 `SpinNoIrq`。 | 当前临界区主要是 bounded memory copy,风险可控;但它处在 ext4 block-device 回调路径上,不能在锁内做 VFS writeback 或分配。 | 继续保持锁内只做内存拷贝。若以后增加 writeback、动态扩容或 VFS 调用,必须重新设计。 |
| `os/StarryOS/kernel/src/pseudofs/dev/tty/terminal/mod.rs` | `window_size`、`termios` 使用 `SpinNoIrq`;job-control `session` / `foreground` 已合并为一个短状态锁。 | ioctl 路径先完成用户内存访问,再短暂持锁更新值;job-control 不再存在 `foreground -> session` 和 `session -> foreground` 的相反加锁顺序。 | 保持“copy user 在锁外,锁内只拷贝小对象”的规则。job-control 复合状态继续用单锁保护,`PollSet::wake()` 放在锁外执行。 |
| `os/StarryOS/kernel/src/pseudofs/dev/tty/pty.rs` | PTY producer 使用 `SpinNoIrq`。 | 当前只在锁内 `push_slice` 到 4 KiB ring buffer,wake 在锁外。风险较低。 | 保持短临界区。若未来 writer 可从 IRQ 直接进入或 buffer 需要扩容,应重新评估。 |
-| `os/arceos/modules/axnet-ng/src/unix/mod.rs` | 已调整为从 VFS `user_data` 中 clone `Arc` 后释放 guard,再调用 transport。 | 旧问题是持 VFS `SpinNoIrq` guard 调用 socket transport,内部再拿 sleepable socket mutex。 | 保持现有边界。新增 path socket 操作时禁止把 transport callback 放在 VFS user_data guard 内执行。 |
+| `net/ax-net/src/unix/mod.rs` | 已调整为从 VFS `user_data` 中 clone `Arc` 后释放 guard,再调用 transport。 | 旧问题是持 VFS `SpinNoIrq` guard 调用 socket transport,内部再拿 sleepable socket mutex。 | 保持现有边界。新增 path socket 操作时禁止把 transport callback 放在 VFS user_data guard 内执行。 |
| `os/StarryOS/kernel/src/file/netlink.rs` 和 `os/StarryOS/kernel/src/file/packet.rs` | 已调整为锁内取出消息或包,锁外 copy 到用户缓冲区。 | 旧问题是持 `SpinNoIrq` 时写用户内存,page fault 路径要求 IRQ enabled。 | 保持“队列状态锁内移动数据,用户内存访问锁外执行”的规则。 |
| `os/arceos/modules/axfs-ng/src/highlevel/file.rs` | 仍有 `spin::RwLock`,包括 `GLOBAL_CACHED_FILES` 和 `append_lock`。 | `spin::RwLock` 仍不属于 lockdep-aware `ax-kspin` / `ax-sync` 路径。`append_lock` 是历史记录中明确延期的 RwLock 设计问题。 | 近期不引入新 RwLock。先确认是否必须读写分离;不必须的点评估 mutex 化,必须的点保留并记录风险。 |
| `os/StarryOS/kernel/src/file/mod.rs`、`task/mod.rs`、`task/ops.rs` 等 | 仍有若干 `spin::RwLock`;`file/signalfd.rs` 的 signal mask 已改成 `SpinNoIrq`。 | 剩余 RwLock 还不在 lockdep 统一可见范围内,且可能参与 FD table、task 状态等运行时路径。signalfd mask 只是单个可拷贝 bitset,当前不需要外部 `spin::RwLock`。 | 按运行时重要性分批审计:能 mutex 化的先 mutex 化;不能 mutex 化的先冻结新增使用,不把 RwLock 作为近期替换目标。后续若实现项目自有、lockdep-aware 的 RwLock,再评估 signalfd mask 是否值得恢复读写分离。 |
diff --git a/docs/docs/development/arceos.md b/docs/docs/development/arceos.md
index b0a38af732..7ce855d7c4 100644
--- a/docs/docs/development/arceos.md
+++ b/docs/docs/development/arceos.md
@@ -50,13 +50,11 @@ sudo apt install qemu-system-arm qemu-system-riscv64 qemu-system-x86
```
os/arceos/
-├── modules/ # 内核模块(17 个)
+├── modules/ # 内核模块
│ ├── axhal/ # 硬件抽象层
│ ├── axtask/ # 任务/线程管理 + 调度器
│ ├── axalloc/ # 内存分配器
│ ├── axdriver/ # 统一设备驱动框架
-│ ├── axnet/ # 网络(legacy, smoltcp)
-│ ├── axnet-ng/ # 网络(next-gen)
│ ├── axfs/ # 文件系统(legacy)
│ ├── axfs-ng/ # 文件系统(next-gen, ext4/fat)
│ ├── axlog/ # 多级日志
@@ -76,6 +74,9 @@ os/arceos/
│ ├── axstd/ # Rust std 风格接口
│ └── axlibc/ # C libc 接口
+net/
+└── ax-net/ # 统一网络栈(TCP/UDP/raw/Unix/vsock/DNS/DHCP)
+
apps/arceos/
├── helloworld/
├── httpserver/
@@ -127,8 +128,8 @@ pub unsafe fn rust_main() {
ax_task::init_scheduler();
#[cfg(feature = "fs-ng")]
ax_fs_ng::init_filesystems(/* ... */);
- #[cfg(feature = "net-ng")]
- ax_net_ng::init_network(/* ... */);
+ #[cfg(feature = "net")]
+ ax_net::init_network(/* ... */);
// ...
main();
}
@@ -260,7 +261,7 @@ net = ["alloc", "paging", "ax-driver/virtio-net", "dep:ax-net", "ax-runtime/net"
| 基础 crate(`axerrno`, `kspin`, `page_table_multiarch`) | `cargo test -p ` | `cargo xtask arceos qemu --package arceos-helloworld --arch riscv64` |
| HAL(`axhal`) | `cargo xtask arceos qemu --package arceos-helloworld --arch aarch64` | 多架构验证 |
| 调度器(`axtask`) | `cargo xtask arceos qemu --package arceos-helloworld --arch riscv64` | `cargo xtask arceos test qemu --target riscv64gc-unknown-none-elf` |
-| 网络(`axnet` / `axnet-ng`) | `cargo xtask arceos qemu --package arceos-httpserver --arch aarch64 --net` | 检查 TCP 连接和吞吐 |
+| 网络(`axnet` / `axnet`) | `cargo xtask arceos qemu --package arceos-httpserver --arch aarch64 --net` | 检查 TCP 连接和吞吐 |
| 文件系统(`axfs` / `axfs-ng`) | `cargo xtask arceos qemu --package arceos-shell --arch aarch64 --blk` | 检查文件读写 |
| 驱动(`axdriver`) | `cargo xtask arceos qemu --package arceos-helloworld --arch aarch64` | 启用对应设备 `--blk` / `--net` |
@@ -357,7 +358,7 @@ C 应用覆盖由 `test-suit/arceos/c` 维护;`apps/arceos` 只保留 Rust std
|----------|-------------------|---------|
| 最小运行 | `ax-std` | `--package arceos-helloworld` |
| 多任务 | `multitask` | 在应用 Cargo.toml 中启用 |
-| 网络 | `net` 或 `net-ng` | `--package arceos-httpserver` |
+| 网络 | `net` | `--package arceos-httpserver` |
| 文件系统 | `fs` 或 `fs-ng` | `--package arceos-shell` |
| 多核 | `smp` | `--arch aarch64` + `SMP=4` |
| PCI 设备 | `bus-pci` | 默认 |
diff --git a/docs/docs/development/starryos.md b/docs/docs/development/starryos.md
index 26211268ed..1973890311 100644
--- a/docs/docs/development/starryos.md
+++ b/docs/docs/development/starryos.md
@@ -117,7 +117,7 @@ StarryOS 专用组件(位于 `components/`):
| `rknpu` | Rockchip NPU 驱动 |
| `vsock` | VSOCK 支持 |
-内核默认启用:`fp-simd`, `irq`, `uspace`, `page-alloc-4g`, `alloc-slab`, `multitask`, `task-ext`, `sched-rr`, `rtc`, `fs-ng-ext4`, `net-ng`。
+内核默认启用:`fp-simd`, `irq`, `uspace`, `page-alloc-4g`, `alloc-slab`, `multitask`, `task-ext`, `sched-rr`, `rtc`, `fs-ng-ext4`, `net`。
### 3.3 KCOV 暂不引入
diff --git a/docs/qperf-virtio-optimization-report.md b/docs/qperf-virtio-optimization-report.md
index 09fb7fd267..af9d124bbb 100644
--- a/docs/qperf-virtio-optimization-report.md
+++ b/docs/qperf-virtio-optimization-report.md
@@ -76,7 +76,7 @@ VSOCK 路径有三层锁嵌套,是所有 VirtIO 设备中锁竞争最严重的
#### 3.1.1 全局设备锁
```rust
-// os/arceos/modules/axnet-ng/src/device/vsock.rs:15
+// net/ax-net/src/device/vsock.rs:15
static VSOCK_DEVICE: Mutex