U32 recognizes the following options:
handle HANDLE
The handle is used to reference a filter and therefore
must be unique. It consists of a hash table identifier
htid and optional hash (which identifies the hash table's
bucket) and nodeid. All these values are parsed as
unsigned, hexadecimal numbers with length 12bits ( htid
and nodeid) or 8bits ( hash). Alternatively one may
specify a single, 32bit long hex number which contains the
three fields bits in concatenated form. Other than the
fields themselves, it has to be prefixed by 0x.
offset OFFSET
Set an offset which defines where matches of subsequent
filters are applied to. Therefore this option is useful
only when combined with link or a combination of ht and
sample. The offset may be given explicitly by using the
plus keyword, or extracted from the packet data with at.
It is possible to mangle the latter using mask and/or
shift keywords. By default, this offset is recorded but
not implicitly applied. It is used only to substitute the
nexthdr+ statement. Using the keyword eat though inverses
this behaviour: the offset is applied always, and nexthdr+
will fall back to zero.
hashkey HASHKEY
Spefify what packet data to use to calculate a hash key
for bucket lookup. The kernel adjusts the value according
to the hash table's size. For this to work, the option
link must be given.
classid CLASSID
Classify matching packets into the given CLASSID, which
consists of either 16bit major and minor numbers or a
single 32bit value combining both.
divisor u32_value
Specify a modulo value. Used when creating hash tables to
define their size or for declaring a sample to calculate
hash table keys from. Must be a power of two with exponent
not exceeding eight.
order u32_value
A value to order filters by, ascending. Conflicts with
handle which serves the same purpose.
sample SELECTOR
Used together with ht to specify which bucket to add this
filter to. This allows one to avoid having to know how
exactly the kernel calculates hashes. The additional
divisor defaults to 256, so must be given for hash tables
of different size.
link HANDLE
Delegate matching packets to filters in a hash table.
HANDLE is used to only specify the hash table, so only
htid may be given, hash and nodeid have to be omitted. By
default, bucket number 0 will be used and can be
overridden by the hashkey option.
indev ifname
Filter on the incoming interface of the packet. Obviously
works only for forwarded traffic.
skip_sw
Do not process filter by software. If hardware has no
offload support for this filter, or TC offload is not
enabled for the interface, operation will fail.
skip_hw
Do not process filter by hardware.
help Print a brief help text about possible options.