feat(N34): 阶段3 net层收敛——单一reconciler+忙等统一+镜像降级+E-02收口
实施方案 docs/网络/N34-自愈审计/实施方案.md §5 项1/2/3/5(项4 U15受E6暂缓): - 3a 合并reconciler:net_listener_pump删除,与net_reconcile_tick合并为 单一100ms tick;判据读驱动状态缓存(唯一刷新点=net_poll每轮全量刷新, E2背书18.1us);去抖分级②=1/③④⑤=2/①=4轮(M3让位窗400ms保留)+冷却1s; 链路态订阅留痕(F-DRV-13);探针去抖删除(F-MS-9) - 3b 忙等统一(P2b):listen/connect open重试与close排空循环改 net_sock_reset_sync(驱动sock_reset:读空RX→CLOSE→排空事件→等 byte0=00H,内置LISTEN态二段CLOSE补发);close不再读清全局中断寄存器 (F-NET-7);net_poll每轮步进活跃复位状态机(驱动契约,防搁浅) - 3c 镜像降级:net_sock_state_t声明为本层会话投影,芯片事实源=驱动缓存 - E-02收口:新API net_drop_conn(拆会话保监听,QUARANTINE语义,幂等; 模拟器双端实现;timeSync 30s预算耗尽接入;主机单测TC-TS-027d) 定案:CH395F close无RST,对内核存活不close的对端停FIN_WAIT_2, 监听恢复受限于对端close(Trap 07补充),兜底=E13 keepalive/TIMEOUT 台架全绿(Code=211348 RW=1104 ZI=154232):@test PASS;[STACK] net 1116/3840;Trap22 :7003 50/50+:21三档各50/50;Trap23 RST10/10+FIN5/5; Trap25 n30 11/11;E-02双PASS;iec104 18/18;对时跨会话连续; ftp_regression 11/11;integrity 15/15 SHA;ci_local L0+L0.5全过。
This commit is contained in:
@@ -20,13 +20,17 @@
|
||||
- 一期(RECV)已落地:`net_recv` 等支持带超时的阻塞(`pending` 挂起 + tick 唤醒)
|
||||
- 二期(ACCEPT + SEND)待做 → `docs/任务规划/登记簿.md` N-4
|
||||
|
||||
### 周期对账自愈(Trap 22 修复)
|
||||
### 周期对账自愈(Trap 22 修复;N34 阶段 3 合并 pump)
|
||||
|
||||
- `net_reconcile_tick()`(200ms)回读芯片状态修正三类失同步:
|
||||
- `net_reconcile_tick()`(100ms,N34 阶段 3 起判据读**驱动状态缓存**——唯一
|
||||
刷新点 `net_poll` 每轮全量刷新,E2 实测单次回读 18.1us)修正失同步:
|
||||
本层 ESTABLISHED 而芯片已断 → 断开;本层 LISTENING 而芯片已握手 → 补 accept;
|
||||
本层 LISTENING 而芯片监听消失 → 重建
|
||||
- **去抖(连续 2 次)+ 冷却(1s)**——单次状态读的重建动作**必须去抖**,
|
||||
否则"刚 listen 未生效"瞬态会反复重建直至 `relisten give up`(三监听口全死)
|
||||
本层 LISTENING/CLOSED(监听型 fd)而芯片监听消失 → 重建(原 pump③④);
|
||||
本层 CLOSED 而芯片在听 → 只重同步(U11);芯片静默回收 → RESYNC(⑤)
|
||||
- **分级去抖(②=1 轮 / ③④⑤=2 轮 / ①=4 轮)+ 冷却(1s)**——监听失位的重建
|
||||
动作**必须去抖**,否则"刚 listen 未生效"瞬态会反复重建直至
|
||||
`relisten retry budget exhausted`(三监听口全死);①的 4 轮窗是 F-NET-17 M3
|
||||
可疑电平的让位租约(勿改小)
|
||||
|
||||
### 异常复监听隔离(Trap 23 修复)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user