On 03/02/11 14:34, Hans Schillstrom wrote: > +/* > + * Calc hash value, special casre is taken on icmp and fragmented messages > + * i.e. fragmented messages don't use ports. > + */ > +static __u32 get_hash(struct sk_buff *skb, struct xt_hmark_info *info) > +{ [...] > + ip_proto &= info->prmask; > + /* get a consistent hash (same value on both flow directions) */ > + if (addr2 < addr1) > + swap(addr1, addr2); this assumption is not valid in NAT handlings. If you want consistent hashing with NAT handlings you'll have to make this stateful and use the conntrack source and reply directions of the original tuples (thus making it stateful). That may be a problem because some people may want to use this without enabling connection tracking. Are you using this for (uplink) load balancing? Could you also include one realistic example in the patch description on how this is used? If this is accepted, I think this has to be merge with the (already overloaded) MARK target. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html