[master] 42c33b0 Prepare skeleton changes and upgrade sections.

Lasse Karstensen lkarsten at varnish-software.com
Tue May 5 16:10:41 CEST 2015


commit 42c33b0906ef53c3bf28722303ad06235e869d27
Author: Lasse Karstensen <lkarsten at varnish-software.com>
Date:   Tue May 5 12:55:04 2015 +0200

    Prepare skeleton changes and upgrade sections.
    
    Time to start writing down what will be part of 4.1.

diff --git a/doc/changes.rst b/doc/changes.rst
index 8b26297..3caf9f0 100644
--- a/doc/changes.rst
+++ b/doc/changes.rst
@@ -1,3 +1,13 @@
+====================================
+Varnish Cache 4.1.0-dev (unreleased)
+====================================
+
+This is a placeholder entry for the upcoming 4.1.0 prereleases.
+
+Changes between 4.0 and 4.1 are numerous. Please read the upgrade
+section in the documentation for a general overview.
+
+
 ============================================
 Changes from 4.0.3-rc3 to 4.0.3 (2015-02-17)
 ============================================
diff --git a/doc/sphinx/whats-new/changes.rst b/doc/sphinx/whats-new/changes.rst
index 274c9f5..66c9255 100644
--- a/doc/sphinx/whats-new/changes.rst
+++ b/doc/sphinx/whats-new/changes.rst
@@ -1,17 +1,99 @@
 .. _whatsnew_changes:
 
-Changes in Varnish 4
-====================
+Changes in Varnish 4.1 (unreleased)
+===================================
 
-Varnish 4 is quite an extensive update to Varnish 3, with some very big improvements to central parts of varnish.
+Varnish 4.1 is the continuation of the new streaming architecture seen in Varnish 4.0.
 
-Client/backend split
---------------------
-In the past, Varnish has fetched the content from the backend in the same
-thread as the client request.In Varnish 4 we have  split the client and backend code into separate trheads allowing for some much requested improvements.
-This split allows Varnish to refresh content in the background while serving
-stale content quickly to the client.
 
-This split has also necessitated a change of the VCL-functions, in particular functionality has moved from the old `vcl_fetch` method to the two new methods `vcl_backend_fetch` and `vcl_backend_response`.
+Proactive security features
+===========================
+
+New in 4.1 is support for different kinds of privilege seperation methods,
+collectively described as jails.
+
+On most systems, the Varnish parent process will now drop effective privileges
+to normal user mode when not doing operations needing special access.
+
+The Varnish worker child should now be run as a separate `vcache` user.
+
+``varnishlog``, ``varnishncsa`` and other Varnish shared log utilities now must
+be run in a context with `varnish` group membership.
+
+
+Warm and cold VCL configurations
+================================
+
+Traditionally Varnish have had the concept of active and inactive loaded VCLs.
+Any loaded VCL lead to state being kept, and a separate set of health checks (if
+configured) were being run against the backends.
+
+To avoid the extra state and backend polling, a loaded VCL is now either warm
+or cold. Runtime state (incl. backend counters) and health checks are not
+present for cold VCLs.
+
+A warm VCL will automatically be set to cold after `vcl_cooldown` seconds.
+
+Output from `vcl.list`::
+
+    varnish> vcl.list
+    200
+    available  auto/warm       0 boot
+    available  auto/warm       0 62f5275f-a937-4df9-9fbb-c12336bdfdb8
+
+
+A single VCL's state can be chanced with the `vcl.state` call in ``varnishadm``::
+
+    vcl.state <configname> [auto|cold|warm]
+        Force the state of the named configuration.
+
+Example::
+
+
+    varnish> vcl.state 62f5275f-a937-4df9-9fbb-c12336bdfdb8 cold
+    200
+
+    varnish> vcl.list
+    200
+    available  auto/warm       0 boot
+    available  auto/cold       0 62f5275f-a937-4df9-9fbb-c12336bdfdb8
+
+
+VMOD writers should read up on the new vcl_event system to release unnecessary
+state when a VCL is transitioned to cold.
+
+
+PROXY protocol support
+======================
+
+Socket support for PROXY protocol connections has been added. PROXY defines a
+short preamble on the TCP connection where (usually) a SSL/TLS terminating
+proxy can signal the real client address.
+
+The ``-a`` startup argument syntax has been expanded to allow for this::
+
+    $ varnishd -f /etc/varnish/default.vcl -a :6081,proxy at 127.0.0.1:6086
+
+
+Both PROXY1 and PROXY2 protocols are supported on the resulting listening
+socket.
+
+
+VMOD backends
+=============
+
+Not yet documented.
+
+
+Surrogate keys
+==============
+
+Not yet documented.
+
+Other noteworthy small changes
+==============================
+
+* Varnish will now use the ``stale-while-revalidate`` defined in RFC5861 to set object grace time.
+* Varnish will now discard remaining/older open backend connections when a failing connection is found.
+* -smalloc storage is now recommended over -sfile on Linux systems.
 
-.. XXX:Here would an updated flow-diagram over functions be great. benc
diff --git a/doc/sphinx/whats-new/index.rst b/doc/sphinx/whats-new/index.rst
index c9d9130..2b82bb6 100644
--- a/doc/sphinx/whats-new/index.rst
+++ b/doc/sphinx/whats-new/index.rst
@@ -1,19 +1,21 @@
 .. _whats-new-index:
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%
-What's new in Varnish 4.0
+What's new in Varnish 4.1
 %%%%%%%%%%%%%%%%%%%%%%%%%%
 
-This section describes the changes that have been made for Varnish 4. The
-first subsection describes overarching changes that have gone into
+This section describes the changes that have been made for Varnish 4.1.
+
+The first subsection describes overarching changes that have gone into
 Varnish 4.0, while the second subsection describes changes you need to make to
-your current configuration (assuming you are on Varnish 3.x) as well as any changes in behaviour that you need to be aware of and take
-into consideration when upgrading.
+your current configuration if you come from Varnish 3.x.
 
-.. XXX:Heavy change of meaning above! benc
+The text also considers changes in behaviour that you need to be aware of and
+take into consideration when upgrading.
 
 .. toctree::
    :maxdepth: 2
 
    changes
    upgrading
+   upgrade-4.0
diff --git a/doc/sphinx/whats-new/upgrade-4.0.rst b/doc/sphinx/whats-new/upgrade-4.0.rst
new file mode 100644
index 0000000..d1df915
--- /dev/null
+++ b/doc/sphinx/whats-new/upgrade-4.0.rst
@@ -0,0 +1,248 @@
+.. _whatsnew_upgrading:
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+Upgrading to Varnish 4.0
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+Changes to VCL
+==============
+
+The backend fetch parts of VCL have changed in Varnish 4. We've tried to
+compile a list of changes needed to upgrade here.
+
+Version statement
+~~~~~~~~~~~~~~~~~
+
+To make sure that people have upgraded their VCL to the current
+version, Varnish now requires the first line of VCL to indicate the
+VCL version number::
+
+    vcl 4.0;
+
+req.request is now req.method
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To align better with RFC naming, `req.request` has been renamed to
+`req.method`.
+
+vcl_fetch is now vcl_backend_response
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Directors have been moved to the vmod_directors
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To make directors (backend selection logic) easier to extend, the
+directors are now defined in loadable VMODs.
+
+Setting a backend for future fetches in `vcl_recv` is now done as follows::
+
+    sub vcl_init {
+        new cluster1 = directors.round_robin();
+        cluster1.add_backend(b1, 1.0);
+        cluster1.add_backend(b2, 1.0);
+    }
+
+    sub vcl_recv {
+        set req.backend_hint = cluster1.backend();
+    }
+
+Note the extra `.backend()` needed after the director name.
+
+Use the hash director as a client director
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Since the client director was already a special case of the hash director, it
+has been removed, and you should use the hash director directly::
+
+    sub vcl_init {
+        new h = directors.hash();
+        h.add_backend(b1, 1);
+        h.add_backend(b2, 1);
+    }
+
+    sub vcl_recv {
+        set req.backend_hint = h.backend(client.identity);
+    }
+
+vcl_error is now vcl_backend_error
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To make a distinction between internally generated errors and
+VCL synthetic responses, `vcl_backend_error` will be called when
+varnish encounters an error when trying to fetch an object.
+
+error() is now synth()
+~~~~~~~~~~~~~~~~~~~~~~
+
+And you must explicitly return it::
+
+    return (synth(999, "Response"));
+
+Synthetic responses in vcl_synth
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Setting headers on synthetic response bodies made in vcl_synth are now done on
+resp.http instead of obj.http.
+
+The synthetic keyword is now a function::
+
+    if (resp.status == 799) {
+        set resp.status = 200;
+        set resp.http.Content-Type = "text/plain; charset=utf-8";
+        synthetic("You are " + client.ip);
+        return (deliver);
+    }
+
+obj in vcl_error replaced by beresp in vcl_backend_error
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To better represent a the context in which it is called, you
+should now use `beresp.*` vcl_backend_error, where you used to
+use `obj.*` in `vcl_error`.
+
+hit_for_pass objects are created using beresp.uncacheable
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Example::
+
+    sub vcl_backend_response {
+        if (beresp.http.X-No-Cache) {
+            set beresp.uncacheable = true;
+            set beresp.ttl = 120s;
+            return (deliver);
+        }
+    }
+
+req.* not available in vcl_backend_response
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+req.* used to be available in `vcl_fetch`, but after the split of
+functionality, you only have 'bereq.*' in `vcl_backend_response`.
+
+vcl_* reserved
+~~~~~~~~~~~~~~
+
+Any custom-made subs cannot be named 'vcl_*' anymore. This namespace
+is reserved for builtin subs.
+
+req.backend.healthy replaced by std.healthy(req.backend_hint)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Remember to import the std module if you're not doing so already.
+
+client.port, and server.port replaced by respectively std.port(client.ip) and std.port(server.ip)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`client.ip` and `server.ip` are now proper datatypes, which renders
+as an IP address by default. You need to use the `std.port()`
+function to get the port number.
+
+Invalidation with purge
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Cache invalidation with purges is now done via `return(purge)` from `vcl_recv`.
+The `purge;` keyword has been retired.
+
+obj is now read-only
+~~~~~~~~~~~~~~~~~~~~
+
+`obj` is now read-only.  `obj.last_use` has been retired.
+
+Some return values have been replaced
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Apart from the new `synth` return value described above, the
+following has changed:
+
+ - `vcl_recv` must now return `hash` instead of `lookup`
+ - `vcl_hash` must now return `lookup` instead of `hash`
+ - `vcl_pass` must now return `fetch` instead of `pass`
+
+
+Backend restarts are now retry
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In 3.0 it was possible to do `return(restart)` after noticing that
+the backend response was wrong, to change to a different backend.
+
+This is now called `return(retry)`, and jumps back up to `vcl_backend_fetch`.
+
+This only influences the backend fetch thread, client-side handling is not affected.
+
+
+default/builtin VCL changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The VCL code that is appended to user-configured VCL automatically
+is now called the builtin VCL. (previously default.vcl)
+
+The builtin VCL now honors Cache-Control: no-cache (and friends)
+to indicate uncacheable content from the backend.
+
+
+The `remove` keyword is gone
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Replaced by `unset`.
+
+
+X-Forwarded-For is now set before vcl_recv
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In many cases, people unintentionally removed X-Forwarded-For when
+implementing their own vcl_recv. Therefore it has been moved to before
+vcl_recv, so if you don't want an IP added to it, you should remove it
+in vcl_recv.
+
+
+Changes to existing parameters
+==============================
+
+session_linger
+~~~~~~~~~~~~~~
+`session_linger` has been renamed to `timeout_linger` and it is in
+seconds now (previously was milliseconds).
+
+sess_timeout
+~~~~~~~~~~~~
+`sess_timeout` has been renamed to `timeout_idle`.
+
+sess_workspace
+~~~~~~~~~~~~~~
+
+In 3.0 it was often necessary to increase `sess_workspace` if a
+lot of VMODs, complex header operations or ESI were in use.
+
+This is no longer necessary, because ESI scratch space happens
+elsewhere in 4.0.
+
+If you are using a lot of VMODs,  you may need to increase
+either `workspace_backend` and `workspace_client` based on where
+your VMOD is doing its work.
+
+thread_pool_purge_delay
+~~~~~~~~~~~~~~~~~~~~~~~
+`thread_pool_purge_delay` has been renamed to `thread_pool_destroy_delay`
+and it is in seconds now (previously was milliseconds).
+
+thread_pool_add_delay and thread_pool_fail_delay
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+They are in seconds now (previously were milliseconds).
+
+New parameters since 3.0
+========================
+
+vcc_allow_inline_c
+~~~~~~~~~~~~~~~~~~
+
+You can now completely disable inline C in your VCL, and it is
+disabled by default.
+
+Other changes
+=============
+
+New log filtering
+~~~~~~~~~~~~~~~~~
+
+The logging framework has a new filtering language, which means that
+the -m switch has been replaced with a new -q switch.  See
+:ref:`vsl-query(7)` for more information about the new query language.
diff --git a/doc/sphinx/whats-new/upgrading.rst b/doc/sphinx/whats-new/upgrading.rst
index c882b29..058aa5e 100644
--- a/doc/sphinx/whats-new/upgrading.rst
+++ b/doc/sphinx/whats-new/upgrading.rst
@@ -1,248 +1,74 @@
-.. _whatsnew_upgrading:
+.. _whatsnew_upgrade41:
 
-%%%%%%%%%%%%%%%%%%%%%%
-Upgrading to Varnish 4
-%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Upgrading to Varnish 4.1 (unreleased)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 Changes to VCL
 ==============
 
-The backend fetch parts of VCL have changed in Varnish 4. We've tried to
-compile a list of changes needed to upgrade here.
+Not documented yet.
 
-Version statement
-~~~~~~~~~~~~~~~~~
+Version statement is kept
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
-To make sure that people have upgraded their VCL to the current
-version, Varnish now requires the first line of VCL to indicate the
-VCL version number::
+The VCL syntax has not chanced significantly, and as such the Varnish 4.0
+version marker is kept for Varnish 4.1.
 
-    vcl 4.0;
-
-req.request is now req.method
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To align better with RFC naming, `req.request` has been renamed to
-`req.method`.
-
-vcl_fetch is now vcl_backend_response
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Directors have been moved to the vmod_directors
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To make directors (backend selection logic) easier to extend, the
-directors are now defined in loadable VMODs.
-
-Setting a backend for future fetches in `vcl_recv` is now done as follows::
-
-    sub vcl_init {
-        new cluster1 = directors.round_robin();
-        cluster1.add_backend(b1, 1.0);
-        cluster1.add_backend(b2, 1.0);
-    }
-
-    sub vcl_recv {
-        set req.backend_hint = cluster1.backend();
-    }
-
-Note the extra `.backend()` needed after the director name.
-
-Use the hash director as a client director
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Since the client director was already a special case of the hash director, it
-has been removed, and you should use the hash director directly::
-
-    sub vcl_init {
-        new h = directors.hash();
-        h.add_backend(b1, 1);
-        h.add_backend(b2, 1);
-    }
-
-    sub vcl_recv {
-        set req.backend_hint = h.backend(client.identity);
-    }
-
-vcl_error is now vcl_backend_error
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To make a distinction between internally generated errors and
-VCL synthetic responses, `vcl_backend_error` will be called when
-varnish encounters an error when trying to fetch an object.
-
-error() is now synth()
-~~~~~~~~~~~~~~~~~~~~~~
-
-And you must explicitly return it::
-
-    return (synth(999, "Response"));
-
-Synthetic responses in vcl_synth
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Setting headers on synthetic response bodies made in vcl_synth are now done on
-resp.http instead of obj.http.
-
-The synthetic keyword is now a function::
-
-    if (resp.status == 799) {
-        set resp.status = 200;
-        set resp.http.Content-Type = "text/plain; charset=utf-8";
-        synthetic("You are " + client.ip);
-        return (deliver);
-    }
-
-obj in vcl_error replaced by beresp in vcl_backend_error
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To better represent a the context in which it is called, you
-should now use `beresp.*` vcl_backend_error, where you used to
-use `obj.*` in `vcl_error`.
-
-hit_for_pass objects are created using beresp.uncacheable
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Example::
-
-    sub vcl_backend_response {
-        if (beresp.http.X-No-Cache) {
-            set beresp.uncacheable = true;
-            set beresp.ttl = 120s;
-            return (deliver);
-        }
-    }
-
-req.* not available in vcl_backend_response
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-req.* used to be available in `vcl_fetch`, but after the split of
-functionality, you only have 'bereq.*' in `vcl_backend_response`.
-
-vcl_* reserved
-~~~~~~~~~~~~~~
-
-Any custom-made subs cannot be named 'vcl_*' anymore. This namespace
-is reserved for builtin subs.
-
-req.backend.healthy replaced by std.healthy(req.backend_hint)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Remember to import the std module if you're not doing so already.
-
-client.port, and server.port replaced by respectively std.port(client.ip) and std.port(server.ip)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-`client.ip` and `server.ip` are now proper datatypes, which renders
-as an IP address by default. You need to use the `std.port()`
-function to get the port number.
-
-Invalidation with purge
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Cache invalidation with purges is now done via `return(purge)` from `vcl_recv`.
-The `purge;` keyword has been retired.
-
-obj is now read-only
-~~~~~~~~~~~~~~~~~~~~
-
-`obj` is now read-only.  `obj.last_use` has been retired.
-
-Some return values have been replaced
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Apart from the new `synth` return value described above, the
-following has changed:
-
- - `vcl_recv` must now return `hash` instead of `lookup`
- - `vcl_hash` must now return `lookup` instead of `hash`
- - `vcl_pass` must now return `fetch` instead of `pass`
-
-
-Backend restarts are now retry
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In 3.0 it was possible to do `return(restart)` after noticing that
-the backend response was wrong, to change to a different backend.
-
-This is now called `return(retry)`, and jumps back up to `vcl_backend_fetch`.
-
-This only influences the backend fetch thread, client-side handling is not affected.
-
-
-default/builtin VCL changes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The VCL code that is appended to user-configured VCL automatically
-is now called the builtin VCL. (previously default.vcl)
-
-The builtin VCL now honors Cache-Control: no-cache (and friends)
-to indicate uncacheable content from the backend.
+One of the initial lines in a Varnish 4.1 VCL should read::
 
+    vcl 4.0;
 
-The `remove` keyword is gone
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Remote address accessors
+~~~~~~~~~~~~~~~~~~~~~~~~
 
-Replaced by `unset`.
+New in 4.1 is the `local.ip` and `remote.ip` representing the (local) TCP
+connection endpoints.
 
+With PROXY listeners the `server.ip` and `client.ip` are set from the PROXY
+preamble. On normal HTTP listeners the behaviour is unchanged.
 
-X-Forwarded-For is now set before vcl_recv
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-In many cases, people unintentionally removed X-Forwarded-For when
-implementing their own vcl_recv. Therefore it has been moved to before
-vcl_recv, so if you don't want an IP added to it, you should remove it
-in vcl_recv.
+Management interface
+====================
 
+The management interface enabled with ``-M`` used to support the telnet
+protocol.
 
-Changes to existing parameters
-==============================
+Support for telnet control sequences have been retired. Replacements are netcat
+or (preferred) ``varnishadm``.
 
-session_linger
-~~~~~~~~~~~~~~
-`session_linger` has been renamed to `timeout_linger` and it is in
-seconds now (previously was milliseconds).
 
-sess_timeout
-~~~~~~~~~~~~
-`sess_timeout` has been renamed to `timeout_idle`.
+Runtime users and groups
+========================
 
-sess_workspace
-~~~~~~~~~~~~~~
+With the new jail support, an additional runtime user (`vcache`) should be used
+for the Varnish worker child process.
 
-In 3.0 it was often necessary to increase `sess_workspace` if a
-lot of VMODs, complex header operations or ESI were in use.
+Additionally, the ``varnishlog``, ``varnishncsa`` and other Varnish shared log
+utilities must now be run in a context with `varnish` group membership.
 
-This is no longer necessary, because ESI scratch space happens
-elsewhere in 4.0.
 
-If you are using a lot of VMODs,  you may need to increase
-either `workspace_backend` and `workspace_client` based on where
-your VMOD is doing its work.
+Protocol support
+================
 
-thread_pool_purge_delay
-~~~~~~~~~~~~~~~~~~~~~~~
-`thread_pool_purge_delay` has been renamed to `thread_pool_destroy_delay`
-and it is in seconds now (previously was milliseconds).
+Support for HTTP/0.9 on the client side has been retired.
 
-thread_pool_add_delay and thread_pool_fail_delay
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-They are in seconds now (previously were milliseconds).
 
-New parameters since 3.0
-========================
+Changes to parameters
+=====================
 
-vcc_allow_inline_c
-~~~~~~~~~~~~~~~~~~
+`vcl_cooldown` is new, and decides how long time a VCL is kept warm after being
+replaced as the active VCL.
 
-You can now completely disable inline C in your VCL, and it is
-disabled by default.
+The following parameters have been retired:
 
-Other changes
-=============
+* `group` (security rewamp)
+* `group_cc` (security rewamp)
+* `listen_address` (security rewamp)
+* `pool_vbc`
+* `timeout_req` - merged with `timeout_idle`.
+* `user` (security rewamp)
 
-New log filtering
-~~~~~~~~~~~~~~~~~
+Minor changes of default values on `workspace_session` and `vsl_mask`.
 
-The logging framework has a new filtering language, which means that
-the -m switch has been replaced with a new -q switch.  See
-:ref:`vsl-query(7)` for more information about the new query language.



More information about the varnish-commit mailing list