Estou tentando definir o campo de marca de um pacote para um campo de 32 bits no cabeçalho (camada 5), usando nft add rule inet filter output udp dport 31337 meta mark set @th,96,32
. (Estou puxando o segundo dword no cabeçalho da camada 5, mas como a extração começa no deslocamento do cabeçalho da camada 4, adiciono 64 bits para obter a carga útil do UDP.)
No entanto, eu recebo Error: datatype mismatch: expected packet mark, expression has type integer
. O integer
tipo em nftables é de comprimento variável; o mark
tipo é uma especialização do integer
tipo que tem exatamente 32 bits. Não consigo descobrir como lançar ou convencer nftables de que o tipo é realmente bom.
Alguma percepção?
Porque estou usando nftables 0.9.0, e esse bug não foi corrigido até 0.9.1.