配置参考
ax-net 的配置由结构化 NetworkConfig、Cargo feature、运行时设备注册参数和一组集中常量组成。配置目标是明确表达每个接口的意图,避免旧式单网口全局变量和隐式 eth0 假设。
核心源码:
| 配置域 | 源码 |
|---|---|
| feature | Cargo.toml |
| 接口配置模型 | config.rs |
| 初始化解析与校验 | lib.rs init_network() |
| 缓冲区/队列常量 | consts.rs |
| TCP keepalive / TCP_INFO 默认值 | tcp.rs |
| DHCP/DNS 默认值 | lib.rs, service.rs |
| Ethernet ARP 默认值 | device/ethernet.rs |
构建配置
构建配置决定是否启用可选协议族。基础 TCP、UDP、raw、Unix domain socket、DNS、DHCP 和 Ethernet 能力不需要额外 feature。
Cargo Feature
[features]
vsock = ["dep:rdif-vsock"]
| feature | 作用 |
|---|---|
vsock | 启用 rdif-vsock 依赖、AF_VSOCK socket backend 和 vsock device 初始化 |
启用 vsock 后导出:
init_vsock(vsock_devs)。vsock模块。Socket::Vsock变体。VsockDevice/VsockDeviceList类型别名。
smoltcp 能力
ax-net 固定启用的 smoltcp 能力包括:
alloclogasyncmedium-ethernetmedium-ipproto-ipv4proto-ipv6packetmeta-id(携带 RX 侧 ingress 元数据,供rx_meta模块传递接收侧 QoS)socket-rawsocket-icmpsocket-udpsocket-tcpsocket-dhcpv4socket-dnsiface-max-addr-count-8(允许Interface同时保存最多 8 个 IP 地址,支撑 loopback + 多 Ethernet 静态地址)
此外 Cargo.toml 中注释保留了 fragmentation-buffer-size / reassembly-buffer-size 等分片/重组能力,但当前未启用。
Router 对 smoltcp 暴露 Medium::Ip,Ethernet frame 处理在 EthernetDevice 中完成。
启动配置模型
启动配置通过 NetworkConfig 传入 init_network()。它描述“哪些设备应该成为哪些接口,以及接口如何获得 IPv4/DNS/metric”。