• Neil Horman's avatar
    xfrm: export xfrm garbage collector thresholds via sysctl · a44a4a00
    Neil Horman authored
    Export garbage collector thresholds for xfrm[4|6]_dst_ops
    
    Had a problem reported to me recently in which a high volume of ipsec
    connections on a system began reporting ENOBUFS for new connections
    eventually.
    
    It seemed that after about 2000 connections we started being unable to
    create more.  A quick look revealed that the xfrm code used a dst_ops
    structure that limited the gc_thresh value to 1024, and always
    dropped route cache entries after 2x the gc_thresh.
    
    It seems the most direct solution is to export the gc_thresh values in
    the xfrm[4|6] dst_ops as sysctls, like the main routing table does, so
    that higher volumes of connections can be supported.  This patch has
    been tested and allows the reporter to increase their ipsec connection
    volume successfully.
    Reported-by: default avatarJoe Nall <joe@nall.com>
    Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
    
    ipv4/xfrm4_policy.c |   18 ++++++++++++++++++
    ipv6/xfrm6_policy.c |   18 ++++++++++++++++++
    2 files changed, 36 insertions(+)
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a44a4a00
xfrm6_policy.c 8.17 KB