Like MARK, i.e. set the fwmark, but the mark is calculated from hashing packet selector at choice. You have also to specify the mark range and, optionally, the offset to start from. ICMP error messages are inspected and used to calculate the hashing. .PP Existing options are: .TP \fB\-\-hmark\-tuple\fP tuple\fI\fP Possible tuple members are: .B src meaning source address (IPv4, IPv6 address), .B dst meaning destination address (IPv4, IPv6 address), .B sport meaning source port (TCP, UDP, UDPlite, SCTP, DCCP), .B dport meaning destination port (TCP, UDP, UDPlite, SCTP, DCCP), .B spi meaning Security Parameter Index (AH, ESP), and .B ct meaning the usage of the conntrack tuple instead of the packet selectors. .TP \fB\-\-hmark\-mod\fP \fIvalue (must be > 0)\fP Modulus for hash calculation (to limit the range of possible marks) .TP \fB\-\-hmark\-offset\fP \fIvalue\fP Offset to start marks from. .TP For advanced usage, instead of using \-\-hmark\-tuple, you can specify custom prefixes and masks: .TP \fB\-\-hmark\-src\-prefix\fP \fIcidr\fP The source address mask in CIDR notation. .TP \fB\-\-hmark\-dst\-prefix\fP \fIcidr\fP The destination address mask in CIDR notation. .TP \fB\-\-hmark\-sport\-mask\fP \fIvalue\fP A 16 bit source port mask in hexadecimal. .TP \fB\-\-hmark\-dport\-mask\fP \fIvalue\fP A 16 bit destination port mask in hexadecimal. .TP \fB\-\-hmark\-spi\-mask\fP \fIvalue\fP A 32 bit field with spi mask. .TP \fB\-\-hmark\-proto\-mask\fP \fIvalue\fP An 8 bit field with layer 4 protocol number. .TP \fB\-\-hmark\-rnd\fP \fIvalue\fP A 32 bit random custom value to feed hash calculation. .PP \fIExamples:\fP .PP iptables \-t mangle \-A PREROUTING \-m conntrack \-\-ctstate NEW \-j HMARK \-\-hmark-tuple ct,src,dst,proto \-\-hmark-offset 10000 \-\-hmark\-mod 10 \-\-hmark\-rnd 0xfeedcafe .PP iptables \-t mangle \-A PREROUTING -j HMARK \-\-hmark\-offset 10000 \-\-hmark-tuple src,dst,proto \-\-hmark-mod 10 \-\-hmark\-rnd 0xdeafbeef