You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2013/08/03 22:51:11 UTC

[02/52] [abbrv] docs: split reference material into top-level pages

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/configuration/ssl_multicert.config.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/configuration/ssl_multicert.config.en.rst b/doc/reference/configuration/ssl_multicert.config.en.rst
new file mode 100644
index 0000000..8a11e9b
--- /dev/null
+++ b/doc/reference/configuration/ssl_multicert.config.en.rst
@@ -0,0 +1,81 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+====================
+ssl_multicert.config
+====================
+
+.. configfile:: ssl_multicert.config
+
+The :file:`ssl_multicert.config` file lets you configure Traffic Server to
+use multiple SSL server certificates with the SSL termination option. If
+you have a Traffic Server system with more than one IP address assigned
+to it, then you can assign a different SSL certificate to be served when
+a client requests a particular IP address.
+
+Format
+======
+
+The format of the :file:`ssl_multicert.config` file is:
+
+::
+
+    dest_ip=ipaddress ssl_cert_name=cert_name ssl_key_name=key_name
+
+where ``ipaddress`` is an IP address assigned to Traffic Server ,
+``ssl_cert_name`` is the filename of the Traffic Server SSL server
+certificate, ``ssl_key_name`` is the filename of the Traffic Server
+SSL private key. If the private key is located in the certificate file,
+then you do not need to specify the name of the private key.
+Additionally ``ssl_ca_name`` can be used to specify the location of a
+Certification Authorithy change in case that differs from what is
+specified under the :file:`records.config`
+``proxy.config.ssl.CA.cert.filename`` value.
+
+Traffic Server will try to find the files specified in
+*``ssl_cert_name``* relative to
+```proxy.config.ssl.server.cert.path`` <../records.config#proxy.config.ssl.server.cert.path>`_,
+*``ssl_key_name``* relative to
+```proxy.config.ssl.server.private_key.path`` <../records.config#proxy.config.ssl.server.private_key.path>`_,
+and *``ssl_ca_name``* relative to
+```proxy.config.ssl.CA.cert.path`` <../records.config#proxy.config.ssl.CA.cert.path>`_.
+
+Examples
+========
+
+The following example configures Traffic Server to use the SSL
+certificate ``server.pem`` for all requests to the IP address
+111.11.11.1 and the SSL certificate ``server1.pem`` for all requests to
+the IP address 11.1.1.1. Since the private key *is* included in the
+certificate files, no private key name is specified.
+
+::
+
+    dest_ip=111.11.11.1  ssl_cert_name=server.pem
+    dest_ip=11.1.1.1   ssl_cert_name=server1.pem
+
+The following example configures Traffic Server to use the SSL
+certificate ``server.pem`` and the private key ``serverKey.pem`` for all
+requests to the IP address 111.11.11.1. Traffic Server uses the SSL
+certificate ``server1.pem`` and the private key ``serverKey1.pem`` for
+all requests to the IP address 11.1.1.1.
+
+::
+
+     dest_ip=111.11.11.1 ssl_cert_name=server.pem ssl_key_name=serverKey.pem
+     dest_ip=11.1.1.1 ssl_cert_name=server1.pem ssl_key_name=serverKey1.pem
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/configuration/storage.config.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/configuration/storage.config.en.rst b/doc/reference/configuration/storage.config.en.rst
new file mode 100644
index 0000000..aa5a953
--- /dev/null
+++ b/doc/reference/configuration/storage.config.en.rst
@@ -0,0 +1,120 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+==============
+storage.config
+==============
+
+.. configfile:: storage.config
+
+The :file:`storage.config` file lists all the files, directories, and/or
+hard disk partitions that make up the Traffic Server cache. After you
+modify the :file:`storage.config` file, you must restart Traffic Server.
+
+Format 
+======
+
+The format of the :file:`storage.config` file is::
+
+    pathname size volume=volume_number
+
+where ``pathname`` is the name of a partition, directory or file, ``size``
+is the size of the named partition, directory or file (in bytes), and
+``volume`` is the volume number that is used in :file:`volume.config`
+and :file:`hosting.config`. You must specify a size for directories or
+files; size is optional for raw partitions. ``volume`` is optional.
+
+You can use any partition of any size. For best performance:
+
+-  Use raw disk partitions.
+-  For each disk, make all partitions the same size.
+-  For each node, use the same number of partitions on all disks.
+-  Group similar kinds of storage into different volumes. For example
+   split out SSD's or RAM drives into their own volume.
+
+Specify pathnames according to your operating system requirements. See
+the following examples. In the :file:`storage.config` file, a formatted or
+raw disk must be at least 128 MB.
+
+When using raw disk or partitions, you should make sure the admin user,
+which is the traffic_server running at, have the read&write privileges.
+The admin user_id is set in
+```proxy.config.admin.user_id`` <records.config#proxy.config.admin.user_id>`_.
+One good practice is if the disk set with g+rw, put the admin user into
+the group which have the privileges.
+
+Examples
+========
+
+The following basic example shows 64 MB of cache storage in the
+``/big_dir`` directory::
+
+    /big_dir 67108864
+
+You can use the ``.`` symbol for the current directory. Here is an
+example for 64 MB of cache storage in the current directory::
+
+    . 67108864
+
+Solaris Example
+---------------
+
+The following example is for the Solaris operating system::
+
+    /dev/rdsk/c0t0d0s5
+    /dev/rdsk/c0t0d1s5
+
+
+.. note:: Size is optional. If not specified, the entire partition is used.
+
+Linux Example
+-------------
+
+The following example will use an entire raw disk in the Linux operating
+system:::
+
+    /dev/sde volume=1
+    /dev/sdf volume=2
+
+In order to make sure ``traffic_server`` will have access to this disk
+you can use ``udev`` to persistently set the right permissions. The
+following rules are targeted for an Ubuntu system, and stored in
+``/etc/udev/rules.d/51-cache-disk.rules``::
+
+    # Assign /dev/sde and /dev/sdf to the www group
+    # make the assignment final, no later changes allowed to the group!
+    SUBSYSTEM=="block", KERNEL=="sd[ef]", GROUP:="www"
+
+FreeBSD Example ## {#LinuxExample}
+----------------------------------
+
+Starting with 5.1 FreeBSD dropped support for explicit raw devices. All
+devices on FreeBSD can be accessed raw now.
+
+The following example will use an entire raw disk in the FreeBSD
+operating system::
+
+    /dev/ada1
+    /dev/ada2
+
+In order to make sure ``traffic_server`` will have access to this disk
+you can use ``devfs`` to persistently set the right permissions. The
+following rules are stored in ``/etc/devfs.conf``::
+
+    # Assign /dev/ada1 and /dev/ada2 to the tserver user
+    own    ada[12]  tserver:tserver
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/configuration/update.config.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/configuration/update.config.en.rst b/doc/reference/configuration/update.config.en.rst
new file mode 100644
index 0000000..0b7659e
--- /dev/null
+++ b/doc/reference/configuration/update.config.en.rst
@@ -0,0 +1,203 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+=============
+update.config
+=============
+
+.. configfile:: update.config
+
+The :file:`update.config` file controls how Traffic Server performs a
+scheduled update of specific local cache content. The file contains a
+list of URLs specifying objects that you want to schedule for update.
+
+A scheduled update performs a local HTTP ``GET`` on the objects at the
+specific time or interval. You can control the following parameters for
+each specified object:
+
+-  The URL
+-  URL-specific request headers, which overrides the default
+-  The update time and interval
+-  The recursion depth
+
+After you modify the :file:`update.config` file,
+run the :option:`traffic_line -x`
+command to apply changes. When you apply changes to one node in a
+cluster, Traffic Server automatically applies the changes to all other
+nodes in the cluster.
+
+Supported Tag/Attribute Pairs
+=============================
+
+Scheduled update supports the following tag/attribute pairs when
+performing recursive URL updates:
+
+-  ``<a href=" ">``
+-  ``<img src=" ">``
+-  ``<img href=" ">``
+-  ``<body background=" ">``
+-  ``<frame src=" ">``
+-  ``<iframe src=" ">``
+-  ``<fig src=" ">``
+-  ``<overlay src=" ">``
+-  ``<applet code=" ">``
+-  ``<script src=" ">``
+-  ``<embed src=" ">``
+-  ``<bgsound src=" ">``
+-  ``<area href=" ">``
+-  ``<base href=" ">``
+-  ``<meta content=" ">``
+
+Scheduled update is designed to operate on URL sets consisting of
+hundreds of input URLs (expanded to thousands when recursive URLs are
+included); it is *not* intended to operate on extremely large URL sets,
+such as those used by Internet crawlers.
+
+Format
+======
+
+Each line in the :file:`update.config` file uses the following format:
+
+::
+
+    URL\request_headers\offset_hour\interval\recursion_depth\
+
+The following list describes each field.
+
+*``URL``* {#URL}
+    HTTP-based URLs.
+
+*``request_headers``* {#request_headers}
+    Optional. A list of headers, separated by semicolons, passed in each
+    ``GET`` request. You can define any request header that conforms to
+    the HTTP specification; the default is no request header.
+
+*``offset_hour``* {#offset_hour}
+    The base hour used to derive the update periods. The range is 00-23
+    hours.
+
+*``interval``* {#interval}
+    The interval (in seconds) at which updates should occur, starting at
+    the offset hour.
+
+*``recursion_depth``* {#recursion_depth}
+    The depth to which referenced URLs are recursively updated, starting
+    at the given URL. This field applies only to HTTP.
+
+Examples
+========
+
+An example HTTP scheduled update is provided below:
+
+::
+
+    http://www.company.com\User-Agent: noname user agent\13\3600\5\
+
+The example specifies the URL and request headers, an offset hour of 13
+(1 pm), an interval of one hour, and a recursion depth of 5. This would
+result in updates at 13:00, 14:00, 15:00, and so on. To schedule an
+update that occurs only once a day, use an interval value 86400 (i.e.,
+24 hours x 60 minutes x 60 seconds = 86400).
+
+Specifying URL Regular Expressions (``url_regex``)
+==================================================
+
+This section describes how to specify a ``url_regex``. Entries of type
+``url_regex`` within the configuration files use regular expressions to
+perform a match.
+
+The following list provides examples to show how to create a valid
+``url_regex``.
+
+``x``
+    Matches the character ``x``
+
+``.``
+    Match any character
+
+``^``
+    Specifies beginning of line
+
+``$``
+    Specifies end of line
+
+``[xyz]``
+    A **character class**. In this case, the pattern matches either
+    ``x``, ``y``, or\ ``z``
+
+``[abj-oZ]``
+    A **character class** with a range. This pattern matches ``a``,
+    ``b``, any letter from ``j`` through ``o``, or ``Z``
+
+``[^A-Z]``
+    A **negated character class**. For example, this pattern matches any
+    character except those in the class.
+
+``r*``
+    Zero or more ``r``, where ``r`` is any regular expression.
+
+``r+``
+    One or more ``r``, where ``r`` is any regular expression.
+
+``r?``
+    Zero or one ``r``, where ``r`` is any regular expression.
+
+``r{2,5}``
+    From two to five ``r``, where ``r`` is any regular expression.
+
+``r{2,}``
+    Two or more ``r``, where ``r`` is any regular expression.
+
+``r{4}``
+    Exactly four ``r``, where ``r`` is any regular expression.
+
+``"[xyz]\"images"``
+    The literal string ``[xyz]"images"``
+
+``\X``
+    If ``X`` is ``a, b, f, n, r, t,`` or ``v``, then the ``ANSI-C``
+    interpretation of ``\x``; otherwise, a literal ``X``. This is used
+    to escape operators such as ``*``
+
+``\0``
+    A ``NULL`` character
+
+``\123``
+    The character with octal value ``123``
+
+``\x2a``
+    The character with hexadecimal value ``2a``
+
+``(r)``
+    Matches an ``r``, where ``r`` is any regular expression. You can use
+    parentheses to override precedence.
+
+``rs``
+    The regular expression ``r``, followed by the regular expression
+    ``s``
+
+``r|s``
+    Either an ``r`` or an ``s``
+
+``#<n>#``
+    Inserts an **end node**, which causes regular expression matching to
+    stop when reached. The value ``n`` is returned.
+
+You can specify ``dest_domain=mydomain.com`` to match any host in
+``mydomain.com``. Likewise, you can specify ``dest_domain=.`` to match
+any request.
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/configuration/volume.config.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/configuration/volume.config.en.rst b/doc/reference/configuration/volume.config.en.rst
new file mode 100644
index 0000000..51f239f
--- /dev/null
+++ b/doc/reference/configuration/volume.config.en.rst
@@ -0,0 +1,72 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+=============
+volume.config
+=============
+
+.. configfile:: volume.config
+
+The :file:`volume.config` file enables you to manage your cache space more
+efficiently and restrict disk usage by creating cache volumes of
+different sizes for specific protocols. You can further configure these
+volumes to store data from certain origin servers and/or domains in the
+:file:`hosting.config` file.
+
+.. important::
+
+    The volume configuration must be the same on all nodes in
+    a cluster. You must stop Traffic Server before you change the cache
+    volume size and protocol assignment. For step-by-step instructions about
+    partitioning the cache, refer to `Partitioning the
+    Cache <../configuring-cache#PartitioningCache>`_.
+
+Format
+======
+
+For each volume you want to create, enter a line with the following
+format:
+
+::
+
+    volume=volume_number  scheme=protocol_type  size=volume_size
+
+where *``volume_number``* is a number between 1 and 255 (the maximum
+number of volumes is 255) and *``protocol_type``* is ``http``. Traffic
+Server supports ``http`` for HTTP volume types; *``volume_size``* is the
+amount of cache space allocated to the volume. This value can be either
+a percentage of the total cache space or an absolute value. The absolute
+value must be a multiple of 128 MB, where 128 MB is the smallest value.
+If you specify a percentage, then the size is rounded down to the
+closest multiple of 128 MB.
+
+Each volume is striped across several disks to achieve parallel I/O. For
+example: if there are four disks, then a 1-GB volume will have 256 MB on
+each disk (assuming each disk has enough free space available). If you
+do not allocate all the disk space in the cache, then the extra disk
+space is not used. You can use the extra space later to create new
+volumes without deleting and clearing the existing volumes.
+
+Examples
+========
+
+The following example partitions the cache evenly between HTTP and HTTPS
+requests::
+
+    volume=1 scheme=http size=50%
+    volume=2 scheme=https size=50%
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/balancer.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/balancer.en.rst b/doc/reference/plugins/balancer.en.rst
new file mode 100644
index 0000000..9d54d91
--- /dev/null
+++ b/doc/reference/plugins/balancer.en.rst
@@ -0,0 +1,92 @@
+Balancer Plugin
+***************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+
+This is a plugin for Traffic Server, that allows you to configure
+mapping rules.
+
+To use this plugin, configure a remap.config rule like
+
+::
+   map http://foo.com http://bar.com @plugin=balancer.so @pparam=rotation:news
+
+The "To-Url" in the remap.config rule is generally not used, unless the
+lookup completely fails (i.e. this is a backup URL for extreme error
+cases).
+
+This is a list of all available options (set via @pparam):
+
+::
+    rotation      The name of the rotation (e.g. news) [to-host in remap]
+    hash      What to hash on, url, path, cookie, ip, header (primary)
+    hash2     Optional, secondary hash, to hash within a multi-host bucket
+    bucketw   Width of each hash bucket [1]
+
+The rotation parameter specifies which rotation to do the lookup on. If
+not specified, we will default to the same name as used in the To URL in
+the remap rule.
+
+The bucket width specifies how many hosts a particular hash bucket
+should contain, for example:
+
+::
+    @pparam=bucketw:2
+
+The hash parameter can be used zero or more times, without it, no
+hashing is done at all. If you have more than one hash keys, they are
+concatenated in the order specified. For example:
+
+::
+    @pparam=hash:ip @pparam=hash:cookie/B
+
+The "header" hash key takes a required extra value, for example:
+
+::
+    @pparam=hash:header/Host
+
+For "cookie" hash keys, you can optionally specify an identifier for
+which cookie to use (without it, the entire cookie header is used). For
+example:
+
+::
+    @pparam=hash:cookie/B
+
+The secondary hash ("hash2") is used to provide "stickiness" within a
+bucket that's larger than one host (i.e. bucketw > 1). This allows you
+to (for example) have a primary hash on the URL, where each URL is
+served by some number of servers. A secondary hash on B-cookie would
+then provide user stickiness, so that for a particular URL, a particular
+user will always hit the same server.
+
+If the hashes you've requested (either "hash" or "hash2") can not be
+generated, we default to using the URL instead for the primary hash. For
+the secondary hash, if set, we'll default to the src-IP. If these
+defaults are not desirable, make sure that you have at least one hash
+key that is guaranteed to exist (e.g. @pparam=hash:ip).
+
+If no "hash" parameters are specified, no hashing is done. This is the
+default behavior, obviously. In this cash, the "hash2" directive has no
+effect as well.
+
+Finally, a couple of "flag" options (parameters) are available, to
+control some of the lookup mechanisms:
+
+-  @pparam=hostip will use the IP returned by the lookup
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/buffer_upload.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/buffer_upload.en.rst b/doc/reference/plugins/buffer_upload.en.rst
new file mode 100644
index 0000000..ab5f209
--- /dev/null
+++ b/doc/reference/plugins/buffer_upload.en.rst
@@ -0,0 +1,89 @@
+Buffer Upload Plugin
+********************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+
+..  XXX Discribe what the heck this plugin actually does.
+
+Upload proxy specs for phase I:
+
+1. Memory buffering (buffer the entire POST data in IOBuffer before
+   connecting to OS) 1.1. Memory buffer size is configured with
+   "mem_buffer_size" in config file. Default and minimum value is 32K
+   You can increase it in the config file. If the size of a request is
+   larger than the "mem_buffer_size" value specifiied in the config
+   file, then the upload proxy feature will be disabled for this
+   particular request
+
+2. Disk buffering (buffer the entire POST data on disk before connecting
+   to OS) 2.1. Use disk async IO. This involved some changes in ATS core
+   . new APIs wrapping around ink_aio_read() and ink_aio_write() .
+   change to distinguish between api call's AIO and cache's AIO .
+   guarantee api call's AIO only involves certain amount of threads .
+   the number of threads is configurable in plugin's config file
+   (default is 4)
+
+3. 
+
+   2. Directories and files generated on disk . base directory:
+      FOOBAR/var/buffer_upload_tmp/ (configurable in config file) .
+      number of subdirectories: 64 (configurable in config file) .
+      filename are randomly generated . files will be removed when the
+      entire data have been sent out to OS . remove dangling files (left
+      on disk due to transaction interruption or traffic server crash)
+      at startup time
+
+4. 
+
+   3. Default chunk size when reading from disk: 16K, configurable in
+      config file
+
+5. Default buffering mode: disk aio buffering mode 3.1. to turn off disk
+   buffering, add a "use_disk_buffer 0" line in config file
+
+6. Trigger POST buffering on certain URLs 4.1. certain URLs will be
+   provided in a plain text file (one URL each line) 4.2. specify
+   filename in config file by "url_list_file" 4.3. max length of each
+   URL: 4096 (configurable in config file) 4.4. use exact match, don't
+   support regex for now
+
+7. URL conversion for Mail's specific URL format 5.1. for now check if
+   the "host" part in the URL is same as the proxy server name, then
+   will do this conversion 5.2. To turn on URL conversion feature, set
+   "convert_url 1" in config file
+
+8. All request headers inlcuding cookies plus the entire POST data will
+   be buffered (either in memory or on disk)
+
+9. Config file can be explicitly sepcified as a parameter in command
+   line (in plugin.config file)
+
+a sample config file:
+
+use_disk_buffer 1 convert_url 1 chunk_size 1024 url_list_file
+/tmp/url_list.conf max_url_length 10000 base_dir /tmp/test1
+subdir_num 100 thread_num 10 mem_buffer_size 40000
+
+default config file: FOOBAR/etc/upload.conf
+
+default config values: use_disk_buffer 1 convert_url 0 chunk_size
+16384 url_list_file none max_url_length 4096 base_dir
+FOOBAR/var/buffer_upload_tmp subdir_num 64 thread_num 4
+mem_buffer_size 32768
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/cacheurl.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/cacheurl.en.rst b/doc/reference/plugins/cacheurl.en.rst
new file mode 100644
index 0000000..093beac
--- /dev/null
+++ b/doc/reference/plugins/cacheurl.en.rst
@@ -0,0 +1,59 @@
+CacheURL Plugin
+***************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+
+
+This plugin allows you to change the key that is used for caching a
+request. It is designed so that multiple requests that have different
+URLs but the same content (for example, site mirrors) need be cached
+only once.
+
+Installation
+============
+
+This plugin is only built if the configure option ::
+
+    --enable-experimental-plugins
+
+is given at build time.
+
+Configuration
+=============
+
+Create a ``cacheurl.config`` file in the plugin directory with the url
+patterns to match. See the ``cacheurl.config.example`` file for what to
+put in this file.
+
+Add the plugin to your
+```plugins.config`` <../../configuration-files/plugins.config>`_ file::
+
+    cacheurl.so
+
+Start traffic server. Any rewritten URLs will be written to
+``cacheurl.log`` in the log directory by default.
+
+More docs
+=============
+
+There are some docs on cacheurl in Chinese, please find them in the following:
+
+```http://people.apache.org/~zym/trafficserver/cacheurl.html`` <http://people.apache.org/~zym/trafficserver/cacheurl.html>`_
+
+```https://blog.zymlinux.net/index.php/archives/195`` <https://blog.zymlinux.net/index.php/archives/195>`_

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/combo_handler.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/combo_handler.en.rst b/doc/reference/plugins/combo_handler.en.rst
new file mode 100644
index 0000000..260d3f3
--- /dev/null
+++ b/doc/reference/plugins/combo_handler.en.rst
@@ -0,0 +1,84 @@
+Combohandler Plugin
+*******************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+
+This plugin provides an intelligent way to combine multiple URLs into a single
+URL, and have Apache Traffic Server combine the components into one
+response. This is useful for example to create URLs that combine multiple CSS
+or Javascript files into one.
+
+Installation
+============
+
+This plugin is only built if the configure option ::
+
+    --enable-experimental-plugins
+
+is given at build time. Note that this plugin is built and installed in
+combination with the ESI module, since they share common code.
+
+Configuration
+=============
+
+The arguments in the
+```plugin.config`` <../../configuration-files/plugin.config>`_ line in
+order represent
+
+1. The path that should triggers combo handler (defaults to
+   "admin/v1/combo")
+
+2. The name of the key used for signature verification (disabled by
+   default)
+
+A "-" can be supplied as a value for any of these arguments to request
+default value be applied.
+
+Also, just like the original combohandler, this plugin generates URLs of
+the form ``http://localhost/<dir>/<file-path>``. ``<dir>`` here defaults
+to ``l`` unless specified by the file path in the query parameter using
+a colon. For example::
+
+    http://combo.com/admin/v1/combo?filepath1&dir1:filepath2&filepath3
+
+Will result in these three pages being fetched::
+
+    http://localhost/l/filepath1
+    http://localhost/dir1/filepath2
+    http://localhost/l/filepath3
+
+Remap rules have to be specified to map the above URLs to desired
+content servers.
+
+The plugin also supports a prefix parameter. Common parts of successive
+file paths can be extracted and specified separately using a 'p' query
+parameter. Successive file path parameters are appended to this prefix
+to create complete file paths. The prefix will remain active until
+changed or cleared (set to an empty string). For example, the query ::
+    "/file1&p=/path1/&file2&file3&p=&/file4&p=/dir:path2/&file5&file6"
+
+results in these file paths being "reconstructed"::
+
+    /file1
+    /path1/file2
+    /path1/file3
+    /file4
+    /dir:path2/file5
+    /dir:path2/file6
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/conf_remap.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/conf_remap.en.rst b/doc/reference/plugins/conf_remap.en.rst
new file mode 100644
index 0000000..2f90e1c
--- /dev/null
+++ b/doc/reference/plugins/conf_remap.en.rst
@@ -0,0 +1,107 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership.  The ASF licenses this file to you under
+   the Apache License, Version 2.0 (the "License"); you may not use
+   this file except in compliance with the License.  You may obtain
+   a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an "AS
+   IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+   express or implied.  See the License for the specific language
+   governing permissions and limitations under the License.
+
+conf_remap Plugin
+=================
+
+The `conf_remap` plugin allows you to override configuration
+directives dependent on actual remapping rules. The plugin is built
+and installed as part of the normal Apache Traffic Server installation
+process.
+
+If you want to achieve this behaviour now, configure a remap rule
+like this::
+
+    map http://cdn.example.com/ http://some-server.example.com @plugin=conf_remap.so @pparam=/etc/trafficserver/cdn.conf
+
+where `cdn.conf` would look like :file:`records.config`. For example::
+
+    CONFIG proxy.config.url_remap.pristine_host_hdr INT 1
+
+Doing this, you will override your global default configuration on
+a per mapping rule. For now, those options may be overridden through
+the `conf_remap` plugin:
+
+|
+|
+| proxy.config.url_remap.pristine_host_hdr
+| proxy.config.http.chunking_enabled
+| proxy.config.http.negative_caching_enabled
+| proxy.config.http.negative_caching_lifetime
+| proxy.config.http.cache.when_to_revalidate
+| proxy.config.http.keep_alive_enabled_in
+| proxy.config.http.keep_alive_enabled_out
+| proxy.config.http.keep_alive_post_out
+| proxy.config.http.share_server_sessions
+| proxy.config.net.sock_recv_buffer_size_out
+| proxy.config.net.sock_send_buffer_size_out
+| proxy.config.net.sock_option_flag_out
+| proxy.config.http.forward.proxy_auth_to_parent
+| proxy.config.http.anonymize_remove_from
+| proxy.config.http.anonymize_remove_referer
+| proxy.config.http.anonymize_remove_user_agent
+| proxy.config.http.anonymize_remove_cookie
+| proxy.config.http.anonymize_remove_client_ip
+| proxy.config.http.anonymize_insert_client_ip
+| proxy.config.http.response_server_enabled
+| proxy.config.http.insert_squid_x_forwarded_for
+| proxy.config.http.server_tcp_init_cwnd
+| proxy.config.http.send_http11_requests
+| proxy.config.http.cache.http
+| proxy.config.http.cache.cluster_cache_local
+| proxy.config.http.cache.ignore_client_no_cache
+| proxy.config.http.cache.ignore_client_cc_max_age
+| proxy.config.http.cache.ims_on_client_no_cache
+| proxy.config.http.cache.ignore_server_no_cache
+| proxy.config.http.cache.cache_responses_to_cookies
+| proxy.config.http.cache.ignore_authentication
+| proxy.config.http.cache.cache_urls_that_look_dynamic
+| proxy.config.http.cache.required_headers
+| proxy.config.http.insert_request_via_str
+| proxy.config.http.insert_response_via_str
+| proxy.config.http.cache.heuristic_min_lifetime
+| proxy.config.http.cache.heuristic_max_lifetime
+| proxy.config.http.cache.guaranteed_min_lifetime
+| proxy.config.http.cache.guaranteed_max_lifetime
+| proxy.config.http.cache.max_stale_age
+| proxy.config.http.keep_alive_no_activity_timeout_in
+| proxy.config.http.keep_alive_no_activity_timeout_out
+| proxy.config.http.transaction_no_activity_timeout_in
+| proxy.config.http.transaction_no_activity_timeout_out
+| proxy.config.http.transaction_active_timeout_out
+| proxy.config.http.origin_max_connections
+| proxy.config.http.connect_attempts_max_retries
+| proxy.config.http.connect_attempts_max_retries_dead_server
+| proxy.config.http.connect_attempts_rr_retries
+| proxy.config.http.connect_attempts_timeout
+| proxy.config.http.post_connect_attempts_timeout
+| proxy.config.http.down_server.cache_time
+| proxy.config.http.down_server.abort_threshold
+| proxy.config.http.cache.fuzz.time
+| proxy.config.http.cache.fuzz.min_time
+| proxy.config.http.doc_in_cache_skip_dns
+| proxy.config.http.background_fill_active_timeout
+| proxy.config.http.response_server_str
+| proxy.config.http.cache.heuristic_lm_factor
+| proxy.config.http.cache.fuzz.probability
+| proxy.config.http.background_fill_completed_threshold
+| proxy.config.net.sock_packet_mark_out
+| proxy.config.net.sock_packet_tos_out
+| proxy.config.http.insert_age_in_response
+| proxy.config.http.chunking.size
+| proxy.config.http.flow_control.enabled
+| proxy.config.http.flow_control.low_water
+| proxy.config.http.flow_control.high_water

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/esi.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/esi.en.rst b/doc/reference/plugins/esi.en.rst
new file mode 100644
index 0000000..9130791
--- /dev/null
+++ b/doc/reference/plugins/esi.en.rst
@@ -0,0 +1,22 @@
+ESI Plugin (undocumented)
+*************************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+
+This plugin implements the ESI specification.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/geoip_acl.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/geoip_acl.en.rst b/doc/reference/plugins/geoip_acl.en.rst
new file mode 100644
index 0000000..a864706
--- /dev/null
+++ b/doc/reference/plugins/geoip_acl.en.rst
@@ -0,0 +1,94 @@
+GeoIP ACLs Plugin
+*****************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+This is a simple ATS plugin for denying (or allowing) requests based on
+the source IP geo-location. Currently only the Maxmind APIs are
+supported, but we'd be happy to other other (open) APIs if you let us
+know. This plugin comes with the standard distribution of Apache Traffic
+Server, and should be installed as part of the normal build process.
+
+
+Configuration
+=============
+
+Once installed, there are three primary use cases, which we will discuss
+in details. Note that in all configurations, the first plugin parameter
+must specify what the matches should be applied to. Currently, only one
+rule set is supported, for Country ISO codes. This is specified with a
+parameter of ::
+
+    @pparam=country
+
+Future additions to this plugin could include other regions, such as
+city, state, continent etc.
+
+The three typical use cases are as follows:
+
+1. Per remap configurations, applicable to the entire remap rule. This
+   is useful when you can partition your content so that entire prefix
+   paths should be filtered. For example, lets assume that
+   http://example.com/music is restricted to US customers only, and
+   everything else is world wide accessible. In remap.config, you would
+   have something like ::
+
+    map http://example.com/music http://music.example.com \
+      @plugin=geoip_acl.so @pparam=country @pparam=allow @pparam=US
+    map http://example.com http://other.example.com
+
+2. If you can not partition the data with a path prefix, you can specify
+   a separate regex mapping filter. The remap.config file might then
+   look like ::
+
+    map http://example.com http://music.example.com \
+      @plugin=geoip_acl.so @pparam=country \
+      @pparam=regex::/etc/music.regex
+
+where music.regex is a format with PCRE (perl compatible) regular
+expressions, and unique rules for match. E.g.::
+
+    .*\.mp3  allow  US
+    .*\.ogg  deny   US
+
+Note that the default in the case of no matches on the regular
+expressions is to "allow" the request. This can be overriden, see next
+use case.
+
+3. You can also combine 1) and 2), and provide defaults in the
+   remap.config configuration, which then applies for the cases where no
+   regular expressions matches at all. This would be useful to override
+   the default which is to allow all requests that don't match. For
+   example ::
+
+    map http://example.com http://music.example.com \
+      @plugin=geoip_acl.so @pparam=country @pparam=allow @pparam= US
+      @pparam=regex::/etc/music.regex
+
+This tells the plugin that in the situation where there is no matching
+regular expression, only allow requests originating from the US.
+
+Finally, there's one additional parameter option that can be used ::
+
+    @pparam=html::/some/path.html
+
+This will override the default reponse body for the denied responses
+with a custom piece of HTML. This can be useful to explain to your users
+why they are getting denied access to a particular piece of content.
+This configuration can be used with any of the use cases described
+above.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/gzip.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/gzip.en.rst b/doc/reference/plugins/gzip.en.rst
new file mode 100644
index 0000000..ca49913
--- /dev/null
+++ b/doc/reference/plugins/gzip.en.rst
@@ -0,0 +1,91 @@
+gzip / deflate Plugin
+*********************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+
+This plugin gzips or deflates responses, whichever is applicable. It can
+compress origin respones as well as cached responses. The plugin is built
+and installed as part of the normal Apache Traffic Server installation
+process.
+
+Installation
+============
+
+Add the following line to
+```plugin.config`` <../../configuration-files/plugin.config>`_::
+
+    gzip.so
+
+In this case, the plugin will use the default behaviour:
+
+-  Enable caching
+-  Compress text/\* for every origin
+-  Don't hide accept encoding from origin servers (for an offloading
+   reverse proxy)
+-  No urls are disallowed from compression
+
+Configuration
+=============
+
+Alternatively, a configuration can also be specified::
+
+    gzip.so <path-to-plugin>/sample.gzip.config
+
+After modifying plugin.cofnig, restart traffic server (sudo
+traffic_line -L) the configuration is re-read when a management update
+is given (sudo traffic_line -x)
+
+Options
+=======
+
+Flags and options are:
+
+``enabled``: (``true`` or ``false``) Enable or disable compression for a
+host.
+
+``remove-accept-encoding``: (``true`` or ``false``) Sets whether the
+plugin should hide the accept encoding from origin servers:
+
+-  To ease the load on the origins.
+-  For when the proxy parses responses, and the resulting
+   compression/decompression is wasteful.
+
+``cache``: (``true`` or ``false``) When set, the plugin stores the
+uncompressed and compressed response as alternates.
+
+``compressible-content-type``: Wildcard pattern for matching
+compressible content types.
+
+``disallow``: Wildcard pattern for disabling compression on urls.
+
+Options can be set globally or on a per-site basis, as such::
+
+    # Set some global options first
+    cache true
+    enabled true
+    remove-accept-encoding false
+    compressible-content-type text/*
+
+    # Now set a configuration for www.example.com
+    [www.example.com]
+    cache false
+    remove-accept-encoding true
+    disallow /notthis/*.js
+
+See example.gzip.config for example configurations.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/header_filter.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/header_filter.en.rst b/doc/reference/plugins/header_filter.en.rst
new file mode 100644
index 0000000..3885612
--- /dev/null
+++ b/doc/reference/plugins/header_filter.en.rst
@@ -0,0 +1,133 @@
+Header Filter Plugin
+********************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+The ``header_filter`` is a simple plugin for filtering out headers from
+requests (or responses). Typical configuration is done either with a
+global configuration, in
+```plugin.config`` <../../configuration-files/plugin.config>`_::
+
+    header_filter.so /usr/local/etc/hdr_filters.conf
+
+Or, alternatively, in a
+```per-remap`` <../../configuration-files/remap.config>`_ rule
+configuration ::
+
+    map http://a.com/ http://b.com @plugin=header_filter.so @pparam=hdr_filters.conf
+
+Even if you don't have a global configuration, if your remap rules
+schedules actions in hooks other than during remap, you must also add
+the ``header_filter.so`` to the
+```plugin.config`` <../../configuration-files/remap.config>`_ (see
+above), but without args::
+
+    header_filter.so
+
+The configuration files looks like ::
+
+    [READ_REQUEST_HDR]
+        X-From-Someone
+        Cookie
+
+    [READ_RESPONSE_HDR]
+        X-From-Server
+        Set-Cookie
+
+    [SEND_RESPONSE_HDR]
+        X-Fie "Test"    # Match the entire string
+        X-Foo /Test/    # Match the (Perl) regex
+        X-Bar [Test*    # Match the prefix string
+        X-Fum *Test]    # Match the postfix string
+
+
+Comments are prefixed with ``#``, and in most cases, the regular
+expression matching is the best choice (very little overhead). The
+pattern matches can also take an option '``!``\ ' to reverse the test.
+The default action is to delete all headers that do (not) match the
+pattern. E.g.::
+
+    [SEND_REQUEST_HDR]
+        X-Fie   /test/
+        X-Foo ! /test/i
+
+The final "``i``\ " qualifier (works on all pattern matches) forces the
+match or comparison to be made case insensitive (just like in Perl).
+
+It's also possible to replace or add headers, using the = and +
+operators. For example ::
+
+    [SEND_REQUEST_HDR]
+        Host =www.example.com=
+        X-Foo +ATS+
+
+This will force the Host: header to have exactly one value,
+``www.example.com``, while ``X-Foo`` will have at least one header with
+the value ATS, but there could be more instances of the header from the
+existing header in the request.
+
+Possible hooks are ::
+
+     READ_REQUEST_HDR
+     SEND_REQUEST_HDR
+     READ_RESPONSE_HDR
+     SEND_RESPONSE_HDR
+
+If not specified, the default hook to add the rules (headers to filter)
+is ``READ_REQUEST_HDR``. It's completely acceptable (and useful) to
+configure a remap rule to delete headers in a later hook (e.g. when
+reading a response from the server). This is what actually makes the
+plugin even remotely useful.
+
+
+Examples
+========
+
+Set X-Forwarded-Proto https on SSL connections
+----------------------------------------------
+
+Often times a backend wants to know whether it's running under HTTP or
+HTTPS. While not regulated standard, we can use the
+``X-Forwarded-Proto`` header for this purpose.
+
+In ```plugin.config`` <../../configuration-files/plugin.config>`_ we
+need to add::
+
+    header_filter.so
+
+Then, in ```remap.config`` <../../configuration-files/remap.config>`_ we
+can configure ``header_filter`` on a case by case basis::
+
+    map http://example.org http://172.16.17.42:8080
+    map https://example.org http://172.16.17.42:8080 @plugin=header_filter.so @pparam=/etc/trafficserver/x_fwd_proto.conf
+
+The configuration that ties everything together is then
+``/etc/trafficserver/x_fwd_proto.config``, to which we add::
+
+    [SEND_REQUEST_HDR]
+        X-Forwarded-Proto =https=
+
+To activate this configuration, we need to restart Traffic Server with
+``traffic_line -L``.
+
+In the backend servers we can now pick this up and do appropriately set
+server variables that will be picked up by CGI programs for instance. In
+the case of Apache httpd backend, this can be acomplished with
+```mod_setenvif`` <http://httpd.apache.org/docs/current/mod/mod_setenvif.html#setenvif>`_::
+
+    SetEnvIf X-Forwarded-Proto https HTTPS=on SSL=on

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/hipes.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/hipes.en.rst b/doc/reference/plugins/hipes.en.rst
new file mode 100644
index 0000000..2651c67
--- /dev/null
+++ b/doc/reference/plugins/hipes.en.rst
@@ -0,0 +1,64 @@
+HIPES system (undocumented)
+***************************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+
+This plugin implements the HIPES system.
+
+Configuration
+=============
+
+``server:<host>``
+    Name of the server to send this request to
+
+``urlp:<name>``
+    Default: ``url``
+    Name of the query parameter for the service URL
+
+``path:<path>``
+    Default: ``/``
+    Path to use for the service URL
+
+``ssl``
+    Default: ``no``
+    Use SSL when connecting to the service
+
+``service``
+    Service server, ``host[:port]``
+
+``server``
+    Default: ``hipes.yimg.com``
+    Name of HIPES server, ``host[:port]``
+
+``active_timeout``
+    The active connection timeout in ms
+
+``no_activity_timeout``
+    The no activity timeout in ms
+
+``connect_timeout``
+    The connect timeout in ms
+
+``dns_timeout``
+    The DNS timeout
+
+The timeout options override the server defaults (from
+```records.config`` <../../configuration-files/records.config>`_), and
+only apply to the connection to the specific "service" host.
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/index.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/index.en.rst b/doc/reference/plugins/index.en.rst
new file mode 100644
index 0000000..fd2a4dd
--- /dev/null
+++ b/doc/reference/plugins/index.en.rst
@@ -0,0 +1,75 @@
+Plugin Reference
+****************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+Overview
+========
+
+One of the key features of Apache Traffic Server is modularity.
+Features that aren't needed in the core simply aren't there. This
+is a good thing, because it guarantees that our core can remain
+fast by concentrating on the things that we always provide: Caching
+and proxying.
+
+All other things can be moved into plugins, by opening up a consistent
+C API, everyone can implement their own functionality, without
+having to touch the core.
+
+Stable plugins
+==============
+
+Plugins that are considered stable are installed by default in
+Apache Traffic Server releases.
+
+.. toctree::
+  :maxdepth: 1
+
+  cacheurl.en
+  conf_remap.en
+  gzip.en
+  header_filter.en
+  regex_remap.en
+  stats_over_http.en
+
+Experimental plugins
+====================
+
+Plugins that are considered experimental are located in the
+```plugins/experimental`` <https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;a=tree;f=plugins/experimental;hb=HEAD>`_
+directory in the Apache Traffic Server source tree. Exmperimental plugins can be compiled by passing the
+`--enable-experimental-plugins` option to `configure`::
+
+    $ autoconf -i
+    $ ./configure --enable-experimental-plugins
+    $ make
+
+.. toctree::
+  :maxdepth: 1
+
+  balancer.en
+  buffer_upload.en
+  cacheurl.en
+  combo_handler.en
+  esi.en
+  geoip_acl.en
+  hipes.en
+  metafilter.en
+  mysql_remap.en
+  stale_while_revalidate.en
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/metafilter.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/metafilter.en.rst b/doc/reference/plugins/metafilter.en.rst
new file mode 100644
index 0000000..7c75157
--- /dev/null
+++ b/doc/reference/plugins/metafilter.en.rst
@@ -0,0 +1,110 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership.  The ASF licenses this file to you under
+   the Apache License, Version 2.0 (the "License"); you may not use
+   this file except in compliance with the License.  You may obtain
+   a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an "AS
+   IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+   express or implied.  See the License for the specific language
+   governing permissions and limitations under the License.
+
+Metalink plugin
+===============
+
+The `metalink` plugin implements the
+`Metalink <http://en.wikipedia.org/wiki/Metalink>`_
+protocol in order to try not to download the same file twice. This
+improves cache efficiency and speeds up user downloads.
+
+Take standard headers and knowledge about objects in the cache and
+potentially rewrite those headers so that a client will use a URL
+that is already cached instead of one that isn't.
+
+The `metalink` headers are specified in :rfc:`6429` and :rfc:`3230` 
+and are sent by various download redirectors or content distribution
+networks.
+
+A lot of download sites distribute the same files from many different
+mirrors and users don't know which mirrors are already cached. These
+sites often present users with a simple download button, but the
+button doesn't predictably access the same mirror, or a mirror that
+is already cached. To users it seems like the download works sometimes
+(takes seconds) and not others (takes hours), which is frustrating.
+
+An extreme example of this happens when users share a limited,
+possibly unreliable internet connection, as is common in parts of
+Africa for example.
+
+How it works
+------------
+
+When the `metalink` plugin sees a response with a ``Location: ...`` header and a
+``Digest: SHA-256=...`` header, it checks to see if the URL in the Location
+header is already cached. If it isn't, then it tries to find a URL
+that is cached to use instead. It looks in the cache for some object
+that matches the digest in the Digest header and if it finds
+something, then it rewites the ``Location`` header with the URL from
+that object.
+
+That way a client should get sent to a URL that's already cached
+and the user won't end up downloading the file again.
+
+Installation
+------------
+
+`metalink` is a global plugin. It is enabled by adding it to your
+:file:`plugins.config` file. There are no options.
+
+Implementation Status
+---------------------
+
+The `metalink` plugin implements the ``TS_HTTP_SEND_RESPONSE_HDR_HOOK``
+hook to check and potentially rewrite the ``Location: ...`` and
+``Digest: SHA-256=...`` headers after responses are cached. It
+doesn't do it before they're cached because the contents of the
+cache can change after responses are cached.  It uses :c:func:`TSCacheRead`
+to check if the URL in the ``Location: ...`` header is already
+cached. In future, the plugin should also check if the URL is fresh
+or not.
+
+The plugin implements ``TS_HTTP_READ_RESPONSE_HDR_HOOK`` and a null
+transform to compute the SHA-256 digest for content as it's added
+to the cache, then uses :c:func:`TSCacheWrite` to associate the
+digest with the request URL. This adds a new cache object where the
+key is the digest and the object is the request URL.
+
+To check if the cache already contains content that matches a digest,
+the plugin must call :c:func:`TSCacheRead` with the digest as the
+key, read the URL stored in the resultant object, and then call
+:c:func:`TSCacheRead` again with this URL as the key. This is
+probably inefficient and should be improved.
+
+An early version of the plugin scanned ``Link: <...>; rel=duplicate``
+headers. If the URL in the ``Location: ...`` header was not already
+cached, it scanned ``Link: <...>; rel=duplicate`` headers for a URL
+that was. The ``Digest: SHA-256=...`` header is superior because it
+will find content that already exists in the cache in every case
+that a ``Link: <...>; rel=duplicate`` header would, plus in cases
+where the URL is not listed among the ``Link: <...>; rel=duplicate``
+headers, maybe because the content was downloaded from a URL not
+participating in the content distribution network, or maybe because
+there are too many mirrors to list in ``Link: <...>; rel=duplicate``
+headers.
+
+The ``Digest: SHA-256=...`` header is also more efficient than ``Link:
+<...>; rel=duplicate`` headers because it involves a constant number
+of cache lookups. :rfc:`6249` requires a ``Digest: SHA-256=...`` header
+or ``Link: <...>; rel=duplicate`` headers MUST be ignored:
+
+    If Instance Digests are not provided by the Metalink servers, the
+    Link header fields pertaining to this specification MUST be ignored.
+
+    Metalinks contain whole file hashes as described in Section 6,
+    and MUST include SHA-256, as specified in [FIPS-180-3].
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/mysql_remap.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/mysql_remap.en.rst b/doc/reference/plugins/mysql_remap.en.rst
new file mode 100644
index 0000000..6e7957e
--- /dev/null
+++ b/doc/reference/plugins/mysql_remap.en.rst
@@ -0,0 +1,83 @@
+MySQL Remap Plugin
+******************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+
+This is a basic plugin for doing dynamic "remaps" from a database. It
+essentially rewrites the incoming request's Host header / origin server
+connection to one retrieved from a database.
+
+The generic proxying setup is the following::
+
+    UA ----> Traffic Server ----> Origin Server
+
+Without the plugin a request like::
+
+    GET /path/to/something HTTP/1.1
+    Host: original.host.com
+
+Ends up requesting ``http://original.host.com/path/to/something``
+
+With this plugin enabled, you can easily change that to anywhere you
+desire. Imagine the many possibilities....
+
+We have benchmarked the plugin with ab at about 9200 requests/sec (1.7k
+object) on a commodity hardware with a local setup of both, MySQL and
+Traffic Server local. Real performance is likely to be substantially
+higher, up to the MySQL's max queries / second.
+
+Installation
+============
+
+This plugin is only built if the configure option ::
+
+    --enable-experimental-plugins
+
+is given at build time.
+
+Configuration
+=============
+
+Import the default schema to a database you create::
+
+    mysql -u root -p -e "CREATE DATABASE mysql_remap;"   # create a new database
+    mysql -u root -p mysql_remap < schema/import.sql     # import the provided schema
+
+insert some interesting values in mysql_remap.hostname &
+mysql_remap.map
+
+Traffic Server plugin configuration is done inside a global
+configuration file: ``/etc/trafficserver/plugin.config``::
+
+    mysql_remap.so /etc/trafficserver/mysql_remap.ini
+
+The INI file should contain the following values::
+
+    [mysql_remap]
+    mysql_host     = localhost   #default
+    mysql_port     = 3306        #default
+    mysql_username = remap_user
+    mysql_password = 
+    mysql_database = mysql_remap #default
+
+To debug errors, start trafficserver manually using::
+
+    traffic_server -T "mysql_remap"
+
+And resolve any errors or warnings displayed.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/regex_remap.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/regex_remap.en.rst b/doc/reference/plugins/regex_remap.en.rst
new file mode 100644
index 0000000..a98107b
--- /dev/null
+++ b/doc/reference/plugins/regex_remap.en.rst
@@ -0,0 +1,131 @@
+Regex Remap Plugin
+******************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+
+This allows you to configure mapping rules based on regular expressions.
+This is similar to what you can accomplish using mod_rewrite in Apache
+httpd, but obviously not as flexible or sophisticated (yet).
+
+To use this plugin, configure a remap.config rule like ::
+
+    map http://a.com http://b.com @plugin=regex_remap.so @pparam=maps.reg
+
+The parameter with the file name is always required, and the regular
+expressions within are evaluated sequentially from the first to the
+last. When a regular expression is positively matched against a request
+URL, evaluation is stopped and the rewrite rule is applied. If none of
+the regular expressions are a match, the default destination URL is
+applied (``http://b.com`` in the example above).
+
+An optional argument (``@pparam``) with the string "``profile``\ " will
+enable profiling of this regex remap rule, e.g. ::
+
+    ... @pparam=maps.reg @pparam=profile
+
+Profiling is very low overhead, and the information is dumped to
+``traffic.out``, located in the log directory. This information is
+useful to optimize the order of your regular expression, such that the
+most common matches appears early in the file. In order to force a
+profile dump, you can do ::
+
+    $ sudo touch remap.config
+    $ sudo traffic_line -x
+
+By default, only the path and query string of the URL are provided for
+the regular expressions to match. The following optional parameters can
+be used to modify the plugin instance behavior ::
+
+    @pparam=[no-]method              [default: off]
+    @pparam=[no-]query-string        [default: on]
+    @pparam=[no-]matrix-parameters   [default: off]
+
+If you wish to match on the HTTP method used (e.g. "``GET``\ "),
+you must use the option ``@pparam=method``. e.g. ::
+
+    ... @pparam=maps.reg @pparam=method
+
+With this enabled, the string that you will need to match will look
+like ::
+
+    GET/path?query=bar
+
+
+The methods are always all upper-case, and always followed by one single
+space. There is no space between the method and the rest of the URL (or
+URI path).
+
+By default, the query string is part of the string that is matched
+again, to turn this off use the option 'no-query-string', e.g. ::
+
+    ... @pparam=maps.reg @pparam=no-query-string
+
+Finally, you can also include the matrix parameters in the string, using
+the option 'matrix-parameters', e.g. ::
+
+    ... @pparam=maps.reg @pparam=matrix-parameters
+
+The config file (``maps.reg`` above) can be placed anywhere, but unless
+you specify an absolute path (as above), it will default to ::
+
+    /usr/local/etc/regex_remap
+
+A typical regex would look like ::
+
+    ^/(ogre.*)/more     http://www.ogre.com/$h/$0/$1
+
+The regular expression must not contain any white spaces!
+
+When the regular expression is matched, only the URL path + query string
+is matched (without any of the optional configuration options). The path
+will always start with a "/". Various substitution strings are allowed
+on the right hand side during evaluation ::
+
+    $0     - The entire matched string
+    $1-9   - Regular expression groups ($1 first group etc.)
+    $h     - The original host header from the request
+    $f     - The host as used in the "from" portion of the remap rule
+    $t     - The host as used in the "to" portion of the remap rule
+    $p     - The original port number
+    $s     - The scheme (e.g. http) of the request
+    $P     - The entire path of the request
+    $q     - The query part of the request
+    $r     - The path parameters of the request (not implemented yet)
+    $c     - The cookie string from the request
+    $i     - The client IP for this request
+
+You can also provide options, similar to how you configure your
+remap.config. The following options are available ::
+
+    @status=<nnn>               - Force the response code to <nnn>
+    @active_timeout=<nnn>       - Active timeout (in ms)
+    @no_activity_timeout=<nnn>  - No activity timeout (in ms)
+    @connect_timeout=<nnn>      - Connect timeouts (in ms)
+    @dns_timeout=<nnn>          - Connect timeouts (in ms)
+
+This can be useful to force a particular response for some URLs, e.g. ::
+
+    ^/(ogre.*)/bad      http://www.examle.com/  @status=404
+
+Or, to force a 302 redirect ::
+
+    ^/oldurl/(.*)$      http://news.example.com/new/$1 @status=302
+
+Setting the status to 301 or 302 will force the new URL to be used
+as a redirect (Location:).

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/stale_while_revalidate.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/stale_while_revalidate.en.rst b/doc/reference/plugins/stale_while_revalidate.en.rst
new file mode 100644
index 0000000..0a59c90
--- /dev/null
+++ b/doc/reference/plugins/stale_while_revalidate.en.rst
@@ -0,0 +1,21 @@
+Stale While Revalidate Plugin (undocumented)
+********************************************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+refresh content asynchronously while serving stale data

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/reference/plugins/stats_over_http.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/plugins/stats_over_http.en.rst b/doc/reference/plugins/stats_over_http.en.rst
new file mode 100644
index 0000000..39b69be
--- /dev/null
+++ b/doc/reference/plugins/stats_over_http.en.rst
@@ -0,0 +1,50 @@
+Stats over HTTP Plugin
+**********************
+
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+
+This plugin implements an HTTP interface to all Traffic Server statistics. The
+metrics returned are in a JSON format, for easy processing. This plugin is now
+part of the standard ATS build process, and should be available after install.
+
+To enable this plugin, add to the plugin.conf file::
+
+    stats_over_http.so
+
+
+After starting Traffic Server, the JSON metrics are now available on the
+default URL::
+
+    http://host:port/_stats
+
+
+where host and port is the hostname/IP and port number of the server. You can
+optionally modify the path to use, and this is highly recommended in a public
+facing server. For example::
+
+    stats_over_http.so 81c075bc0cca1435ea899ba4ad72766b
+
+
+and the URL would then be e.g.::
+
+    https://host:port/81c075bc0cca1435ea899ba4ad72766b
+
+
+This is weak security at best, since the secret could possibly leak if you are
+careless and send it over clear text.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/sdk/index.en.rst
----------------------------------------------------------------------
diff --git a/doc/sdk/index.en.rst b/doc/sdk/index.en.rst
index da45d84..cab4d0c 100644
--- a/doc/sdk/index.en.rst
+++ b/doc/sdk/index.en.rst
@@ -63,11 +63,3 @@ Contents:
   adding-statistics.en
   sample-source-code.en
   troubleshooting-tips.en
-  man/index.en
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/sdk/man/TSAPI.en.rst
----------------------------------------------------------------------
diff --git a/doc/sdk/man/TSAPI.en.rst b/doc/sdk/man/TSAPI.en.rst
deleted file mode 100644
index d2ab1b2..0000000
--- a/doc/sdk/man/TSAPI.en.rst
+++ /dev/null
@@ -1,143 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one
-   or more contributor license agreements.  See the NOTICE file
-   distributed with this work for additional information
-   regarding copyright ownership.  The ASF licenses this file
-   to you under the Apache License, Version 2.0 (the
-   "License"); you may not use this file except in compliance
-   with the License.  You may obtain a copy of the License at
-   
-       http://www.apache.org/licenses/LICENSE-2.0
-   
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-.. default-domain:: c
-
-=======
-`TSAPI`
-=======
-
-Synopsis
-========
-| `#include <ts/ts.h>`
-| `#include <ts/remap.h>`
-
-Description
-===========
-The Apache Traffic Server API enables you to create plugins, using
-the C programming language, that customize the behavior of your
-Traffic Server installation.
-
-Traffic Server enables sophisticated caching and processing of
-web-related traffic, such as DNS and HTTP requests and responses.
-Traffic Server itself consists of an event-driven loop that can be
-simplified as follows::
-
-    for (;;) {
-        event = get_next_event();
-        handle_event (event);
-    }
-
-You compile your plugin source code to create a shared library that
-Traffic Server loads when it is started. Your plugin contains
-callback functions that are registered for specific Traffic Server
-events. When Traffic Server needs to process an event, it invokes
-any and all call-back functions you've registered for that event
-type.
-
-Possible uses for plugins include the following:
-
-* HTTP processing plugins can filter, blacklist, authorize users or transform content.
-* Protocol plugins can enable Traffic Server to proxy-cache new protocol content.
-* A blacklisting plugin denies attempts to access web sites that are off-limits.
-* Append transform plugins add data to HTTP response content.
-* An image conversion plugin transforms JPEG images to GIF images.
-* Compression plugins send response content to a compression server
-  that compresses the data (alternatively, a compression library local
-  to the Traffic Server host machine could do the compression).
-* Authorization plugins check a user's permissions to access
-  particular web sites. The plugin could consult a local authorization
-  program or send queries to an authorization server.
-* A plugin that gathers client information from request headers
-  and enters this information in a database.
-* A protocol plugin listen for specific protocol requests on a
-  designated port and then uses Traffic Server's proxy server and
-  cache to serve client requests.
-
-Naming conventions
-==================
-
-The Traffic Server API adheres to the following naming conventions:
-
-* The TS prefix is used for all function and variable names defined
-  in the Traffic Server API. For example, :data:`TS_EVENT_NONE`, :type:`TSMutex`,
-  and :func:`TSContCreate`.
-* Enumerated values are always written in all uppercase letters.
-  For example, :data:`TS_EVENT_NONE` and :data:`TS_VC_CLOSE_ABORT`.
-* Constant values are all uppercase; enumerated values can be seen
-  as a subset of constants. For example, :data:`TS_URL_SCHEME_FILE` and
-  :data:`TS_MIME_FIELD_ACCEPT`.
-* The names of defined types are mixed-case. For example, :type:`TSHttpSsn`
-  and :func:`TSHttpTxn`. :func:`TSDebug`
-* Function names are mixed-case. For example, :func:`TSUrlCreate`
-  and :func:`TSContDestroy`.
-* Function names use the following subject-verb naming style:
-  TS-<subject>-<verb>, where <subject> goes from general to specific.
-  This makes it easier to determine what a function does by reading
-  its name. For example, the function to retrieve the password field
-  (the specific subject) from a URL (the general subject) is
-  :func:`TSUrlPasswordGet`.
-* Common verbs like Create, Destroy, Get, Set, Copy, Find, Retrieve,
-  Insert, Remove, and Delete are used only when appropriate.
-
-Plugin loading and configuration
-================================
-
-When Traffic Server is first started, it consults the plugin.config
-file to determine the names of all shared plugin libraries that
-need to be loaded. The plugin.config file also defines arguments
-that are to be passed to each plugin's initialization function,
-:func:`TSPluginInit`. The :file:`records.config` file defines the path to
-each plugin shared library.
-
-The sample :file:`plugin.config` file below contains a comment line, a blank
-line, and two plugin configurations::
-
-    # This is a comment line.
-    my-plugin.so www.junk.com www.trash.com www.garbage.com
-    some-plugin.so arg1 arg2 $proxy.config.http.cache.on
-
-Each plugin configuration in the :file:`plugin.config` file resembles
-a UNIX or DOS shell command; each line in :file:`plugin.config`
-cannot exceed 1023 characters.
-
-The first plugin configuration is for a plugin named my-plugin.so.
-It contains three arguments that are to be passed to that plugin's
-initialization routine. The second configuration is for a plugin
-named some-plugin.so; it contains three arguments. The last argument,
-$proxy.config.http.cache.on, is actually a configuration variable.
-Traffic Server will look up the specified configuration variable
-and substitute its value.
-
-Plugins are loaded and initialized by Traffic Server in the order
-they appear in the :file:`plugin.config` file.
-
-Plugin initialization
-=====================
-
-Each plugin must define an initialization function named
-:func:`TSPluginInit` that Traffic Server invokes when the
-plugin is loaded. :func:`TSPluginInit` is commonly used to
-read configuration information and register hooks for event
-notification.
-
-Files
-=====
-:file:`{CONFIG_DIR}/plugin.config`, :file:`{CONFIG_DIR}/records.config`
-
-See also
-========
-:manpage:`TSPluginInit(3ts)`

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/sdk/man/TSDebug.en.rst
----------------------------------------------------------------------
diff --git a/doc/sdk/man/TSDebug.en.rst b/doc/sdk/man/TSDebug.en.rst
deleted file mode 100644
index 6471fa5..0000000
--- a/doc/sdk/man/TSDebug.en.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one
-   or more contributor license agreements.  See the NOTICE file
-   distributed with this work for additional information
-   regarding copyright ownership.  The ASF licenses this file
-   to you under the Apache License, Version 2.0 (the
-   "License"); you may not use this file except in compliance
-   with the License.  You may obtain a copy of the License at
-   
-       http://www.apache.org/licenses/LICENSE-2.0
-   
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-.. default-domain:: c
-
-==========
-`TSDebug`
-==========
-
-Library
-=======
-Apache Traffic Server plugin API
-
-Synopsis
-========
-`#include <ts/ts.h>`
-
-.. function:: void TSDebug(const char * tag, const char * format, ...)
-.. function:: void TSError(const char * tag, const char * format, ...)
-.. function:: int TSIsDebugTagSet(const char * tag)
-.. function:: void TSDebugSpecific(int debug_flag, const char * tag, const char * format, ...)
-.. function:: void TSHttpTxnDebugSet(TSHttpTxn txnp, int on)
-.. function:: void TSHttpSsnDebugSet(TSHttpSsn ssn, int on)
-.. function:: int TSHttpTxnDebugGet(TSHttpTxn txnp)
-.. function:: int TSHttpSsnDebugGet(TSHttpSsn ssn)
-.. macro:: void TSAssert(expression)
-.. macro:: void TSReleaseAssert(expression)
-
-Description
-===========
-
-:func:`TSError` is similar to :func:`printf` except that instead
-of writing the output to the C standard output, it writes output
-to the Traffic Server error log.
-
-:func:`TSDebug` is the same as :func:`TSError` except that it only
-logs the debug message if the given debug tag is enabled. It writes
-output to the Traffic Server debug log.
-
-:func:`TSIsDebugTagSet` returns non-zero if the given debug tag is
-enabled.
-
-In debug mode, :macro:`TSAssert` Traffic Server to prints the file
-name, line number and expression, and then aborts. In release mode,
-the expression is not removed but the effects of printing an error
-message and aborting are. :macro:`TSReleaseAssert` prints an error
-message and aborts in both release and debug mode.
-
-:func:`TSDebugSpecific` emits a debug line even if the debug tag
-is turned off, as long as debug flag is enabled. This can be used
-in conjuction with :func:`TSHttpTxnDebugSet`, :func:`TSHttpSsnDebugSet`,
-:func:`TSHttpTxnDebugGet` and :func:`TSHttpSsnDebugGet` to enable
-debugging on specific session and transaction objects.
-
-Examples
-========
-
-This example uses :func:`TSDebugSpecific` to log a message when a specific
-debugging flag is enabled::
-
-    #include <ts/ts.h>
-
-    // Emit debug message if "tag" is enabled or the txn debug
-    // flag is set.
-    TSDebugSpecifc(TSHttpTxnDebugGet(txn), "tag" ,
-            "Hello World from transaction %p", txn);
-
-SEE ALSO
-========
-:manpage:`TSAPI(3ts)`, :manpage:`printf(3)`

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2eb7363/doc/sdk/man/TSHttpHookAdd.en.rst
----------------------------------------------------------------------
diff --git a/doc/sdk/man/TSHttpHookAdd.en.rst b/doc/sdk/man/TSHttpHookAdd.en.rst
deleted file mode 100644
index d791db5..0000000
--- a/doc/sdk/man/TSHttpHookAdd.en.rst
+++ /dev/null
@@ -1,120 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one
-   or more contributor license agreements.  See the NOTICE file
-   distributed with this work for additional information
-   regarding copyright ownership.  The ASF licenses this file
-   to you under the Apache License, Version 2.0 (the
-   "License"); you may not use this file except in compliance
-   with the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-.. default-domain:: c
-
-===============
-`TSHttpHookAdd`
-===============
-
-Library
-=======
-Apache Traffic Server plugin API
-
-Synopsis
-========
-`#include <ts/ts.h>`
-
-.. function:: void TSHttpHookAdd(TSHttpHookID id, TSCont contp)
-.. function:: void TSHttpSsnHookAdd(TSHttpSsn ssnp, TSHttpHookID id, TSCont contp)
-.. function:: void TSHttpTxnHookAdd(TSHttpTxn txnp, TSHttpHookID id, TSCont contp)
-
-Description
-===========
-
-Hooks are points in Apache Traffic Server transaction HTTP processing
-where plugins can step in and do some work. Registering a plugin
-function for callback amounts to adding the function to a hook. You
-can register your plugin to be called back for every single
-transaction, or for specific transactions only.
-
-HTTP transaction hooks are set on a global basis using the function
-:func:`TSHttpHookAdd`. This means that the continuation specified
-as the parameter to :func:`TSHttpHookAdd` is called for every
-transaction. :func:`TSHttpHookAdd` is typically called from
-:func:`TSPluginInit` or :func:`TSRemapInit`.
-
-A session consists of a single client connection to Traffic Server.
-A session can consist of several transactions in succession. The
-session starts when the client connection opens, and ends when the
-connection closes. :func:`TSHttpSsnHookAdd` adds :data:`contp` to
-the end of the list of HTTP transaction hooks specified by :data:`id`.
-This means that :data:`contp` is called back for every transaction
-within the session, at the point specified by the hook ID. Since
-:data:`contp` is added to a session, it is not possible to call
-:func:`TSHttpSsnHookAdd` from the plugin initialization routine;
-the plugin needs a handle to an HTTP session.
-
-A transaction consists of a single HTTP request from a client and
-the response that Traffic Server sends to that client. A transaction
-begins when Traffic Server receives a request, and ends when Traffic
-Server sends the response. :func:`TSHttpTxnHookAdd` adds :data:`contp`
-to the end of the list of HTTP transaction hooks specified by
-:data:`id`. Since :data:`contp` is added to a transaction, it is
-not possible to call :func:`TSHttpTxnHookAdd` from the plugin
-initialization routine but only when the plugin has a handle to an
-HTTP transaction.
-
-Return values
-=============
-
-None. Adding hooks is always successful.
-
-Examples
-========
-
-The following example demonstrates how to add global, session and
-transaction hooks::
-
-    #include <ts/ts.h>
-
-    static int
-    handler(TSCont contp, TSEvent event, void *edata)
-    {
-        TSHttpSsn ssnp;
-        TSHttpTxn txnp;
-
-        switch (event){
-        case TS_EVENT_HTTP_SSN_START:
-            ssnp = (TSHttpSsn) edata;
-            // Add a session hook ...
-            TSHttpSsnHookAdd(ssnp, TS_HTTP_TXN_START_HOOK, contp);
-            TSHttpSsnReenable(ssnp, TS_EVENT_HTTP_CONTINUE);
-            return 0;
-        case TS_EVENT_HTTP_TXN_START:
-            txnp = (TSHttpTxn) edata;
-            // Add a transaction hook ...
-            TSHttpTxnHookAdd(ssnp, TS_HTTP_READ_REQUEST_HDR_HOOK, contp);
-            TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
-            return 0;
-        default:
-             break;
-        }
-
-        return 0;
-    }
-
-    void
-    TSPluginInit (int argc, const char *argv[])
-    {
-        TSCont contp;
-        contp = TSContCreate(handler, NULL);
-        TSHttpHookAdd(TS_HTTP_SSN_START_HOOK, contp);
-    }
-
-SEE ALSO
-========
-:manpage:`TSAPI(3ts)`, :manpage:`TSContCreate(3ts)`