当未设置 IFF_NO_PI 时,是否可以从 TUN 设备读取少于 4 个字节?

当未设置 IFF_NO_PI 时,是否可以从 TUN 设备读取少于 4 个字节?

我正在阅读 wireguard-go 的实现,发现当未设置无数据包信息标志时,它处理从 TUN 设备文件读取少于 4 个字节的内容。

我想知道这是否有可能在没有任何错误的情况下发生?怎么可能?我对内核部分代码特别好奇。我对此很陌生。任何代码或参考资料的链接都值得赞赏。

https://github.com/WireGuard/wireguard-go/blob/6a08d81f6bc465a2276c61093d96e567d00beb24/tun/tun_linux.go#L369

我找到了这个文档,但其中没有提到这个案例。 https://www.kernel.org/doc/html/v5.8/networking/tuntap.html#frame-format

相关内容