我正在尝试将数据包的标记字段设置为(第 5 层)标头中的 32 位字段,使用nft add rule inet filter output udp dport 31337 meta mark set @th,96,32
. (我在第 5 层标头中提取第二个 dword,但由于提取从第 4 层标头的偏移量开始,我添加了 64 位以获取 UDP 有效负载。)
但是,我得到Error: datatype mismatch: expected packet mark, expression has type integer
. nftables 中的integer
类型是变长的;该mark
类型是integer
恰好 32 位长的类型的特化。我不知道如何强制转换或以其他方式说服 nftables 该类型实际上是可以的。
有什么见解吗?