Kernel TCP Virtual Server - Version 0.0.7 - April 20, 2002 2002-04-20 Wensong Zhang * tcp_vs.c (tcp_vs_relay_socket): Added to implement zero-copying in receiving and sending data from one socket to the other. Although I don't benchmark the performance, I think it should greatly improve the performance. :) * userspace/tcpvsadm.8: added the description about the matching pattern in regular expression. Kernel TCP Virtual Server - Version 0.0.6 - April 12, 2002 2002-04-12 Wensong Zhang * Ported Henry Spencer's regular expression library into the kernel. It is used to replace the original simple expression in rule matching of KTCPVS. So, users can now specify flexible rules in content-base scheduling. * tcp_vs_ctl.c (tcp_vs_add_rule): was changed to use regcomp to compile pattern in the rule. The pattern ".*" or "^/.*" is used to specify the default server. When no other server is matched, this default server will be used. * tcp_vs_http.c (tcp_vs_http_matchrule): was changed to use regexec to match content against the precompiled pattern. * userspace/tcpvs_config.c (get_next_token): was modified to parse quoted string as a token. * userspace/tcpvsadm.c (print_service): was changed to print quoted pattern. 2002-03-16 Wensong Zhang * tcp_vs_ctl.c (tcp_vs_flush_rule): removed unnecessary write lock, otherwise it would hang up on SMP system. Kernel TCP Virtual Server - Version 0.0.5 - December 21, 2001 2001-12-21 Wensong Zhang * tcp_vs_ctl.c: Added the rule of pattern "*" or "/*" at the tail of the rule list, so that the associated server can be used as the default server. When no other rules are matched, this rule will be matched finally. * Add a simple tcpvsadm man page * Some code tidy up. 2001-12-20 Wensong Zhang * Change --start|--stop command. Start/Stop all the services in the TCP virtual server table if no argument is specified. * Add the --load-configfile command, which is to load the TCP virtual server table from the config file. 2001-11-14 Wensong Zhang * Split various conversion and parsing function from tcpvsadm.c to helper.c. * Create the tcpvs_config.h and tcpvs_config.c, which can parse very basic tcpvs configuration file. 2001-10-29 Wensong Zhang * Add the macro TCP_VS_ERR_RL that calls net_ratelimit() to limit error information. Kernel TCP Virtual Server - Version 0.0.4 - October 16, 2001 2001-10-16 Wensong Zhang * Revisited the locking facility of TCPVS service list access and service member access (such as the destination list and the rule list). * tcp_vs.c: use net_ratelimit() to guard TCP_VS_ERR outputs in the connection processing. 2001-10-15 Wensong Zhang * Added the function of server pool maintenance, which is to dynamically keep enough server thread to handle the current load. It does this by periodically check the number of spare servers (waiting for a request). If there are fewer than MinSpareServers, it creates more spare servers. If there are more than MaxSpareServers, some of the spares die off. * tcpvsadm updates Output more TCPVS config information. Change some default values of TCPVS config. Kernel TCP Virtual Server - Version 0.0.3 - October 11, 2001 2001-10-10 Wensong Zhang * Changed to use [gs]etsockopt to manipulate TCPVS inside the kernel (through netfilter sockopt register), so that it is possible to merge IPVS and TCPVS code together in the future. * Code tide up, such as removing the code of reading and writing proc files, and adding/refining data structures. * tcpvsadm is updated to a new version. Added the libtcpvs library to manipulate TCPVS. Rewrote most code of tcpvsadm.c to use libtcpvs to interact with TCPVS inside the kernel. 2001-09-22 Wensong Zhang * tcp_vs_sched.c: add the including of head file to avoid the compiling error that `do_softirq' is undeclared. * tcp_vs_http.c (parse_http_header): add type into min marco call, so that it can be compiled in kernel 2.4.9. 2001-05-18 Wensong Zhang * replace sched->refcnt with sched->module use count for tcpvs scheduler references. Kernel TCP Virtual Server - Version 0.0.2 - May 17, 2001 2001-05-17 Wensong Zhang * make the tcp_vs_conn_handle function work more correctly. * add new debug-level facility * rewrite a lot code of tcp_vs_ctl.c and tcpvsadm.c, so that most ktcpvs configuration is done by the tcpvsadm utility. and, add the add-rule/del-rule of content-based scheduling rule. * rewrite most code of the tcp_vs_http.c * Although the code is still ugly, it is a little bit better than the last release. :) Kernel TCP Virtual Server - Version 0.0.1 - May 8, 2001 * initial release. It is very very draft version, it is just used to prove the concept that application-level load balancing can work inside the kernel.