feat(net): 服务器侧 KeepAlive 转正(§5.56,E11)+ Phase 11 重开回归
E11(d96113b)证据链:"链路在、对端静默"注入下生产参数 60/5/3 实测 判死 ≈30s → TIM_OUT → QUARANTINE → pump 重建;静默但存活对端不误杀。 handle_connect_event LISTENING 分支按手册规定位置开启;反汇编确认 编译器把两分支尾部合并(LISTENING 跳入含 keepalive+fire_event 的公共 尾部,hex 全片仅该分支偏移 1 行差异,Code 尺寸不变属填充巧合)。 Phase 11 重开时发现其拉入 32KB s_rx_buf 超产品 RAM 余量(L6406E 链接 失败)→ 改专用 64B 探针缓冲(本 Phase 仅 64B 探针读,门控注释已留 "勿加回"警示),套件恢复 0 错 0 警;TC-NET-1101 步骤同步死对端注入法 (禁用网卡;Windows 防火墙规则对已建立连接无效,E11 实证)。 验证:产品/套件双构建 0 错 0 警 + 反汇编确认调用落地;台架确认 (:7003 静默对端判死 + Phase 11 实跑)待设备冷启动断电重上电后补做。
This commit is contained in:
@@ -3220,13 +3220,13 @@ static void handle_connect_event(net_sock_t *p_sock) {
|
||||
/* 读即清:本 Socket 中断状态寄存器 */
|
||||
(void)ch395f_get_sock_int_status(p_sock->ch395_sock);
|
||||
|
||||
/* ⚠ 曾在此按 §5.56 补 ch395f_set_keepalive_enable(sock,1)(服务器侧
|
||||
* KeepAlive),2026-10-12 实测后**撤回**:禁用网卡模拟真·静默死亡,
|
||||
* 芯片 +2 s 即报 TIM_OUT(≈ §5.17 重传 8×200 ms),本层随即释放重开
|
||||
* 监听——链路层失效本就被快速覆盖,KeepAlive 的 60 s 空转窗口对
|
||||
* 该失败模式无增益。依 Trap 25 铁律「不留未证明的复杂度」撤回。
|
||||
* 未覆盖的残余场景是"链路仍在、对端静默"(NAT/中间节点黑洞),
|
||||
* 本轮无法安全注入(见 Trap 记录「台架注入陷阱」)。 */
|
||||
/* §5.56:TCP 服务器须在 CONNECT 后开启 KeepAlive。2026-10-12 曾加后
|
||||
* 撤回(当时仅证明"物理断链"已被 +2s TIM_OUT 快速覆盖,其余场景
|
||||
* 无法注入、未证明);E11(2026-10-13,实验方案.md)用"禁用 PC 网卡"
|
||||
* 注入"链路在、对端静默"(NAT/黑洞)补上证据链:生产参数 60/5/3
|
||||
* 实测 ≈30 s 判死 → TIM_OUT → QUARANTINE → pump 重建;对端存活时
|
||||
* 探测被 ACK、空闲会话不误杀。消费链路现成,按手册位置转正。 */
|
||||
ch395f_set_keepalive_enable(p_sock->ch395_sock, 1);
|
||||
|
||||
/* 触发连接建立事件回调 */
|
||||
fire_event(p_sock, NET_EVENT_CONNECTED);
|
||||
|
||||
Reference in New Issue
Block a user