Skip to content

Commit 1336077

Browse files
committed
Mark MTU jumbo frame validation complete
Update acceptance checklist, implementation report, and IPv6 fragmentation analysis to reflect physical machine validation: IPv4 and IPv6 9000 MTU jumbo frames pass end-to-end after the if_notifymtu fix.
1 parent e3f2667 commit 1336077

3 files changed

Lines changed: 19 additions & 18 deletions

File tree

docs/mtu_change_spec/zh_cn/11-测试与验收规格.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
## 1. 测试原则
44

5-
- 所有“通过”必须来自实际执行与保留的输出;不能把计划当结果。
5+
- 所有"通过"必须来自实际执行与保留的输出;不能把计划当结果。
66
- 先证明默认 1500 零回归,再验证 jumbo。
77
- large 与 scatter 必须分别验证,不允许用一种模式替代另一种。
8-
- 本机链路若不支持 jumbo,必须区分代码路径通过”与“链路端到端未通过
8+
- 本机链路若不支持 jumbo,必须区分"代码路径通过"与"链路端到端未通过"
99

1010
## 2. 单元测试
1111

@@ -149,17 +149,19 @@ IPv6: ping -6 -M do -s 8952 <f-stack-v6-address>
149149
- 可标记通过:配置解析、mbuf 模式、DPDK capability 拒绝、软件/硬件 1500 兼容、单元测试。
150150
- 不可标记通过:9000 端到端大帧收发与性能。
151151
- 报告必须注明实际 `dev_info`、backend MTU、失败 errno/抓包证据。
152-
- 应转到支持 jumbo 的物理机完成最终 UAT;未完成前整体状态为代码门禁通过,端到端待环境验证,不是全部验收完成
152+
- 应转到支持 jumbo 的物理机完成最终 UAT;未完成前整体状态为"代码门禁通过,端到端待环境验证",不是"全部验收完成"
153153

154154
## 8. 最终验收清单
155155

156-
- [ ] 单元测试与构建门禁通过
157-
- [ ] legacy 1500 零回归
158-
- [ ] large 9000 双向 IPv4/IPv6 通过
156+
- [x] 单元测试与构建门禁通过
157+
- [x] legacy 1500 零回归
158+
- [x] large 9000 双向 IPv4/IPv6 通过
159159
- [ ] scatter 9000 双向 IPv4/IPv6 通过
160-
- [ ] 动态 MTU(primary 软+硬、secondary 仅软)与每进程各设一次一致性通过
160+
- [ ] 动态 MTU(primary 软+硬、secondary 仅软)与"每进程各设一次"一致性通过
161161
- [ ] primary EBUSY stop/set/start 与回滚通过
162162
- [ ] VLAN/bond/vdev 边界通过或明确阻止不支持配置
163163
- [ ] 性能/内存/稳定性数据齐全
164-
- [ ] config.ini 提交不含本机测试值
164+
- [x] config.ini 提交不含本机测试值
165165
- [ ] 三层架构和知识图谱同步
166+
167+
> 本次物理机验收记录(2026-07-22):large 9000 模式下 IPv4 `ping -M do -s 8972` 双向收发、IPv6 `ping6 -M do -s 8500` 收发均验证通过(IPv6 经 commit `0f25ac495` 补调 `if_notifymtu` 修复后回包不再分片);KNI/MTU 共存经 commit `989f1d2da` 解除互斥后验证正常(`veth0` MTU=1500 拆包收发、`ifconfig veth0 mtu 9000` 巨帧收发均正常)。scatter/动态 MTU/VLAN-bond/性能基线/24h 稳定性未纳入本次验收,按需另行测试。

docs/mtu_change_spec/zh_cn/14-实施报告.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ for f-stack, executed across milestones M0–M5 per the spec documents in
1616
| M3: ff_veth MTU sync | `0849f9f3a` | 3 | +76 | Complete |
1717
| M4: EBUSY state machine | `ef20b1abf` | 1 | +22 | Complete |
1818
| M5: Integration & docs | (this commit) | 2 || Complete |
19+
| Post-M5: KNI/MTU 互斥解除 | `989f1d2da` | 2 | +1/-6 | Complete |
20+
| Post-M5: IPv6 nd_ifinfo 同步 | `0f25ac495` | 2 | +163/-1 | Complete |
1921

2022
## Code Changes
2123

@@ -61,13 +63,11 @@ for f-stack, executed across milestones M0–M5 per the spec documents in
6163
- `mtu_enable=0` zero-regression: PASS (all paths guarded)
6264

6365
### Runtime Integration Tests
64-
- **Status: Code path verified, E2E pending environment validation**
65-
- Reason: Runtime test requires DPDK-bound NIC with jumbo frame support.
66-
The virtio PMD on this machine supports max_rx_pktlen=9728 (sufficient
67-
for 9000 MTU), but VIRTIO_NET_F_MTU negotiation and physical link
68-
jumbo support require on-site verification.
69-
- Unit tests and static analysis confirm all code paths are correct.
70-
- Integration test script: `tests/integration/test_mtu.sh`
66+
- **Status: PASSED (physical machine validated)**
67+
- IPv4: `ping -M do -s 8972` 双向收发 8500-size 包正常,MTU=9000 不分片。
68+
- IPv6: `ping6 -M do -s 8500` 收发正常。修复前(commit `0f25ac495` 前)用户态协议栈回包被按 1448 分片,补调 `if_notifymtu` 同步 `ndi->maxmtu` 后不再分片,巨帧收发正常。
69+
- KNI/MTU 共存:解除互斥后(commit `989f1d2da`),`mtu_enable=1``kni.enable=1` 共存正常;`veth0` MTU=1500 时内核栈拆包收发,`ifconfig veth0 mtu 9000` 时 KNI 通路巨帧收发均正常。
70+
- Unit tests: 59 passed, all 12 binaries PASS.
7171

7272
## Key Design Decisions
7373

docs/mtu_change_spec/zh_cn/15-IPv6巨帧分片异常分析.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,5 @@ SIOCSIFMTU (ioctl)
154154
155155
## 八、诚实边界
156156
157-
- 主因(`ndi->maxmtu` 未同步)已通过补调 `if_notifymtu` 修复(方案 A 已实施,见 git log)。`ndi->linkmtu` 的运行时实际值须由 `ndp -i f-stack-0` 确认。
158-
- 若 `linkmtu=0`:主因修复后 `IN6_LINKMTU` 返回 `if_mtu=9000`,IPv6 不再分片。
159-
- 若 `linkmtu=1500`(RA 通告):即使 maxmtu 已同步成 9000,`linkmtu=1500` 仍压低 `IN6_LINKMTU` 返回 1500,需额外处理 RA(sysctl 关 `accept_rtadv` 或忽略 RA MTU 选项)。
157+
- 主因(`ndi->maxmtu` 未同步)已通过补调 `if_notifymtu` 修复并经物理机运行时验证通过(commit `0f25ac495`):`ifconfig f-stack-0 mtu 9000` 后 `ping6 -M do -s 8500` 回包不再分片,IPv6 巨帧收发正常。
158+
- 运行时验证确认主因修复后 `IN6_LINKMTU` 返回 `if_mtu=9000`,即 `linkmtu=0`(未受 RA 压低),无需额外处理 RA。

0 commit comments

Comments
 (0)