修复 FEC 变长批次解码必失败且连带丢包

- 编码端把所有数据 shard 填充到 max_len 再做 RS 编码,解码端此前按
  实际长度存放数据 shard,批次内包长不一致时 reconstruct 必报
  IncorrectShardSize。现在记录 shard_size(校验包长度),
  无论校验包先到还是后到都把数据 shard 补齐到统一长度
- 解码失败不再向上传播错误:坏 group 直接移除,
  当前完好包与后续数据包正常透传
- 补充变长批次恢复、校验包先到恢复、解码失败不吞好包三个测试
This commit is contained in:
lbl
2026-08-20 22:32:41 +08:00
parent ca72f2b3d4
commit 1ea38ec715
2 changed files with 232 additions and 2 deletions
+1 -1
View File
@@ -15,7 +15,7 @@ mod fec_proto {
include!(concat!(env!("OUT_DIR"), "/protocol.fec.rs"));
}
use crate::utils::task_control::TaskGroup;
pub use fec_proto::FecPacket;
pub use fec_proto::{FecPacket, ParityData};
const BATCH_SIZE: usize = 10;
const REDUNDANCY_RATE: f32 = 0.2;