检查rtattr中的长度是否为

时间:2016-08-04 22:00:31

标签: linux linux-kernel tlv

在我的内核代码中,我需要解析许多类似TLV的属性rtattr。有没有办法验证长度是否正确,即它必须是偶数。这有宏吗?

1 个答案:

答案 0 :(得分:0)

在BER-TLV数据中,L值可以动态改变长度。在第1字节的情况下,位8是1意味着L长度参数使用几个字节。其余的1-st字节用0x7F屏蔽,将显示用于长度定义的字节数。

对于样本0x820102,将描述:第1字节第8位设置为1,长度部分具有动态长度,其余第1字节为0x02,表示使用的字节数长度。 0x0102十六进制长度本身等于258字节。