Skip to content
  • Florian Westphal's avatar
    netfilter: nat: convert nat bysrc hash to rhashtable · 870190a9
    Florian Westphal authored
    
    
    It did use a fixed-size bucket list plus single lock to protect add/del.
    
    Unlike the main conntrack table we only need to add and remove keys.
    Convert it to rhashtable to get table autosizing and per-bucket locking.
    
    The maximum number of entries is -- as before -- tied to the number of
    conntracks so we do not need another upperlimit.
    
    The change does not handle rhashtable_remove_fast error, only possible
    "error" is -ENOENT, and that is something that can happen legitimetely,
    e.g. because nat module was inserted at a later time and no src manip
    took place yet.
    
    Tested with http-client-benchmark + httpterm with DNAT and SNAT rules
    in place.
    
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    870190a9