• Julian Anastasov's avatar
    ipvs: use 64-bit rates in stats · cd67cd5e
    Julian Anastasov authored
    IPVS stats are limited to 2^(32-10) conns/s and packets/s,
    2^(32-5) bytes/s. It is time to use 64 bits:
    
    * Change all conn/packet kernel counters to 64-bit and update
    them in u64_stats_update_{begin,end} section
    
    * In kernel use struct ip_vs_kstats instead of the user-space
    struct ip_vs_stats_user and use new func ip_vs_export_stats_user
    to export it to sockopt users to preserve compatibility with
    32-bit values
    
    * Rename cpu counters "ustats" to "cnt"
    
    * To netlink users provide additionally 64-bit stats:
    IPVS_SVC_ATTR_STATS64 and IPVS_DEST_ATTR_STATS64. Old stats
    remain for old binaries.
    
    * We can use ip_vs_copy_stats in ip_vs_stats_percpu_show
    
    Thanks to Chris Caputo for providing initial patch for ip_vs_est.c
    Signed-off-by: default avatarChris Caputo <ccaputo@alt.net>
    Signed-off-by: default avatarJulian Anastasov <ja@ssi.bg>
    Signed-off-by: default avatarSimon Horman <horms@verge.net.au>
    cd67cd5e
ip_vs.h 45.5 KB