Я пытаюсь установить поле метки пакета в 32-битное поле в заголовке (уровень 5), используя nft add rule inet filter output udp dport 31337 meta mark set @th,96,32
. (Я вытаскиваю второе двойное слово в заголовке уровня 5, но поскольку извлечение начинается со смещения заголовка уровня 4, я добавляю 64 бита, чтобы получить полезную нагрузку UDP.)
Однако я получаю Error: datatype mismatch: expected packet mark, expression has type integer
. В integer
тип в nftables имеет переменную длину; в mark
тип - это специализация integer
тип длиной ровно 32 бита. Я не могу понять, как преобразовать или иным образом убедить nftables, что с типом все в порядке.
Есть идеи?
Потому что я использую nftables 0.9.0 и эта ошибка не был исправлен до 0.9.1.