24 Sep, 2015

25 commits


19 Sep, 2015

2 commits


17 Sep, 2015

1 commit


01 Sep, 2015

7 commits


14 Jul, 2015

1 commit

  • I overlooked the svc->sched_data usage from schedulers
    when the services were converted to RCU in 3.10. Now
    the rare ipvsadm -E command can change the scheduler
    but due to the reverse order of ip_vs_bind_scheduler
    and ip_vs_unbind_scheduler we provide new sched_data
    to the old scheduler resulting in a crash.

    To fix it without changing the scheduler methods we
    have to use synchronize_rcu() only for the editing case.
    It means all svc->scheduler readers should expect a
    NULL value. To avoid breakage for the service listing
    and ipvsadm -R we can use the "none" name to indicate
    that scheduler is not assigned, a state when we drop
    new connections.

    Reported-by: Alexander Vasiliev
    Fixes: ceec4c381681 ("ipvs: convert services to rcu")
    Signed-off-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Julian Anastasov
     

05 Apr, 2015

1 commit


03 Mar, 2015

1 commit

  • Pablo Neira Ayuso says:

    ====================
    Netfilter updates for net-next

    A small batch with accumulated updates in nf-next, mostly IPVS updates,
    they are:

    1) Add 64-bits stats counters to IPVS, from Julian Anastasov.

    2) Move NETFILTER_XT_MATCH_ADDRTYPE out of NETFILTER_ADVANCED as docker
    seem to require this, from Anton Blanchard.

    3) Use boolean instead of numeric value in set_match_v*(), from
    coccinelle via Fengguang Wu.

    4) Allows rescheduling of new connections in IPVS when port reuse is
    detected, from Marcelo Ricardo Leitner.

    5) Add missing bits to support arptables extensions from nft_compat,
    from Arturo Borrero.

    Patrick is preparing a large batch to enhance the set infrastructure,
    named expressions among other things, that should follow up soon after
    this batch.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

25 Feb, 2015

1 commit

  • Currently, when TCP/SCTP port reusing happens, IPVS will find the old
    entry and use it for the new one, behaving like a forced persistence.
    But if you consider a cluster with a heavy load of small connections,
    such reuse will happen often and may lead to a not optimal load
    balancing and might prevent a new node from getting a fair load.

    This patch introduces a new sysctl, conn_reuse_mode, that allows
    controlling how to proceed when port reuse is detected. The default
    value will allow rescheduling of new connections only if the old entry
    was in TIME_WAIT state for TCP or CLOSED for SCTP.

    Signed-off-by: Marcelo Ricardo Leitner
    Signed-off-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Marcelo Ricardo Leitner
     

09 Feb, 2015

1 commit

  • 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: Chris Caputo
    Signed-off-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Julian Anastasov