trafficserver-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jpe...@apache.org
Subject [20/26] Separate the Admin and SDK guides.
Date Sun, 02 Jun 2013 05:02:17 GMT
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a782694b/doc/admin/traffic-line-commands.en.rst
----------------------------------------------------------------------
diff --git a/doc/admin/traffic-line-commands.en.rst b/doc/admin/traffic-line-commands.en.rst
new file mode 100644
index 0000000..a834630
--- /dev/null
+++ b/doc/admin/traffic-line-commands.en.rst
@@ -0,0 +1,763 @@
+Traffic Line Commands
+*********************
+
+
+.. 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 section contains the following sections:
+
+.. toctree::
+   :maxdepth: 2
+
+Traffic Line Commands
+=====================
+
+Use Traffic Line to execute individual Traffic Server commands and to
+script multiple commands in a shell. Execute Traffic Line commands from
+the Traffic Server ``bin`` directory. If the Traffic Server ``bin``
+directory is not in your path, then prepend the Traffic Line command
+with ``./`` (for example: ``./traffic_line  -p``).
+
+The following list describes all the commands available in Traffic Line.
+
+``-b``
+    Bounces Traffic Server on the local node. Bouncing Traffic Server
+    shuts down and immediately restarts the Traffic Server node.
+
+``-c``
+    Clears accumulated statistics on the local node.
+
+``-h``
+    Displays a list of Traffic Line commands.
+
+``-p`` *``socket_path``*
+    Specifies location (directory and path) of the socket used for
+    Traffic Line communication.
+     The default path is: *``install_dir``*\ ``/config/cli``
+
+``-r _variable_``
+    Displays specific performance statistics or a current configuration
+    setting. For a list of the variables you can specify, see `Traffic
+    Line Variables <#TrafficLineVariables>`_.
+
+``-s`` *``variable``* ``-v`` *``value``*
+    Sets configuration variables, where *``variable``* is the
+    configuration variable you want to change and *``value``* is the
+    value you want to set. Refer to
+    `records.config <../configuration-files/records.config>`_ for a list
+    of the configuration variables you can specify.
+
+``-x``
+    Initiates a Traffic Server configuration file reread. Use this
+    command after every configuration file modification.
+
+``-B``
+    Bounces all Traffic Server nodes in the cluster. Bouncing Traffic
+    Server shuts down and immediately restarts Traffic Server,
+    node-by-node.
+
+``-C``
+    Clears accumulated statistics on all nodes in the cluster.
+
+``-L``
+    Restarts the ``traffic_manager`` and ``traffic_server`` processes on
+    the local node.
+
+``-M``
+    Restarts the ``traffic_manager`` process and the ``traffic_server``
+    process on all the nodes in a cluster.
+
+``-S``
+    Shuts down Traffic Server on the local node.
+
+``-U``
+    Starts Traffic Server on the local node.
+
+Traffic Line Variables
+======================
+
+You can view statistics and change configuration options in Traffic Line
+by using specific variables. The variables used for gathering statistics
+are described below. The variables used for viewing and changing
+configuration options are described in
+`records.config <../configuration-files/records.config>`_. For
+procedures about specifying the variables, refer to `Viewing Statistics
+from Traffic Line <../monitoring-traffic>`_ and `Configuring Traffic
+Server Using Traffic Line <../configuring-traffic-server>`_.
+
+The variables used for viewing individual statistics are described in
+the following table. To view a statistic in Traffic Line, enter the
+command ``traffic_line -r`` *``variable``* at the prompt.
+
+Summary
+-------
+
+.. raw:: html
+
+   <!-- TODO: Split the following list into groups and give them a short explanation -->
+
+All Traffic Line variables
+    *``proxy.node.num_processes``*
+    *``proxy.node.hostname_FQ``*
+    *``proxy.node.hostname``*
+    *``proxy.node.restarts.manager.start_time``*
+    *``proxy.node.restarts.proxy.start_time``*
+    *``proxy.node.restarts.proxy.stop_time``*
+    *``proxy.node.restarts.proxy.restart_count``*
+    *``proxy.node.version.manager.short``*
+    *``proxy.node.version.manager.long``*
+    *``proxy.node.version.manager.build_number``*
+    *``proxy.node.version.manager.build_time``*
+    *``proxy.node.version.manager.build_date``*
+    *``proxy.node.version.manager.build_machine``*
+    *``proxy.node.version.manager.build_person``*
+    *``proxy.node.bandwidth_hit_ratio``*
+    *``proxy.node.bandwidth_hit_ratio_int_pct``*
+    *``proxy.node.hostdb.hit_ratio``*
+    *``proxy.node.hostdb.hit_ratio_int_pct``*
+    *``proxy.node.proxy_running``*
+    *``proxy.node.cache.percent_free``*
+    *``proxy.node.cache_hit_ratio``*
+    *``proxy.node.cache_hit_ratio_int_pct``*
+    *``proxy.node.cache_hit_ratio_avg_10s_int_pct``*
+    *``proxy.node.bandwidth_hit_ratio_avg_10s_int_pct``*
+    *``proxy.node.bandwidth_hit_ratio_avg_10s``*
+    *``proxy.node.http.cache_hit_fresh_avg_10s``*
+    *``proxy.node.http.cache_hit_revalidated_avg_10s``*
+    *``proxy.node.http.cache_hit_ims_avg_10s``*
+    *``proxy.node.http.cache_hit_stale_served_avg_10s``*
+    *``proxy.node.http.cache_miss_cold_avg_10s``*
+    *``proxy.node.http.cache_miss_changed_avg_10s``*
+    *``proxy.node.http.cache_miss_not_cacheable_avg_10s``*
+    *``proxy.node.http.cache_miss_client_no_cache_avg_10s``*
+    *``proxy.node.http.cache_miss_ims_avg_10s``*
+    *``proxy.node.http.cache_read_error_avg_10s``*
+    *``proxy.node.cache_total_hits_avg_10s``*
+    *``proxy.node.cache_total_misses_avg_10s``*
+    *``proxy.node.cache_hit_ratio_avg_10s``*
+    *``proxy.node.hostdb.total_lookups_avg_10s``*
+    *``proxy.node.hostdb.total_hits_avg_10s``*
+    *``proxy.node.hostdb.hit_ratio_avg_10s``*
+    *``proxy.node.http.transaction_counts_avg_10s.hit_fresh``*
+    *``proxy.node.http.transaction_counts_avg_10s.hit_revalidated``*
+    *``proxy.node.http.transaction_counts_avg_10s.miss_cold``*
+    *``proxy.node.http.transaction_counts_avg_10s.miss_not_cacheable``*
+    *``proxy.node.http.transaction_counts_avg_10s.miss_changed``*
+    *``proxy.node.http.transaction_counts_avg_10s.miss_client_no_cache``*
+    *``proxy.node.http.transaction_counts_avg_10s.errors.connect_failed``*
+    *``proxy.node.http.transaction_counts_avg_10s.errors.aborts``*
+    *``proxy.node.http.transaction_counts_avg_10s.errors.possible_aborts``*
+    *``proxy.node.http.transaction_counts_avg_10s.errors.pre_accept_hangups``*
+    *``proxy.node.http.transaction_counts_avg_10s.errors.early_hangups``*
+    *``proxy.node.http.transaction_counts_avg_10s.errors.empty_hangups``*
+    *``proxy.node.http.transaction_counts_avg_10s.errors.other``*
+    *``proxy.node.http.transaction_counts_avg_10s.other.unclassified``*
+    *``proxy.node.http.transaction_frac_avg_10s.hit_fresh``*
+    *``proxy.node.http.transaction_frac_avg_10s.hit_revalidated``*
+    *``proxy.node.http.transaction_frac_avg_10s.miss_cold``*
+    *``proxy.node.http.transaction_frac_avg_10s.miss_not_cacheable``*
+    *``proxy.node.http.transaction_frac_avg_10s.miss_changed``*
+    *``proxy.node.http.transaction_frac_avg_10s.miss_client_no_cache``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.connect_failed``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.aborts``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.possible_aborts``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.pre_accept_hangups``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.early_hangups``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.empty_hangups``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.other``*
+    *``proxy.node.http.transaction_frac_avg_10s.other.unclassified``*
+    *``proxy.node.http.transaction_frac_avg_10s.hit_fresh_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.hit_revalidated_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.miss_cold_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.miss_not_cacheable_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.miss_changed_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.miss_client_no_cache_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.connect_failed_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.aborts_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.possible_aborts_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.pre_accept_hangups_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.early_hangups_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.empty_hangups_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.errors.other_int_pct``*
+    *``proxy.node.http.transaction_frac_avg_10s.other.unclassified_int_pct``*
+    *``proxy.node.http.transaction_msec_avg_10s.hit_fresh``*
+    *``proxy.node.http.transaction_msec_avg_10s.hit_revalidated``*
+    *``proxy.node.http.transaction_msec_avg_10s.miss_cold``*
+    *``proxy.node.http.transaction_msec_avg_10s.miss_not_cacheable``*
+    *``proxy.node.http.transaction_msec_avg_10s.miss_changed``*
+    *``proxy.node.http.transaction_msec_avg_10s.miss_client_no_cache``*
+    *``proxy.node.http.transaction_msec_avg_10s.errors.connect_failed``*
+    *``proxy.node.http.transaction_msec_avg_10s.errors.aborts``*
+    *``proxy.node.http.transaction_msec_avg_10s.errors.possible_aborts``*
+    *``proxy.node.http.transaction_msec_avg_10s.errors.pre_accept_hangups``*
+    *``proxy.node.http.transaction_msec_avg_10s.errors.early_hangups``*
+    *``proxy.node.http.transaction_msec_avg_10s.errors.empty_hangups``*
+    *``proxy.node.http.transaction_msec_avg_10s.errors.other``*
+    *``proxy.node.http.transaction_msec_avg_10s.other.unclassified``*
+    *``proxy.node.http.throughput``*
+    *``proxy.node.http.user_agent_xacts_per_second``*
+    *``proxy.node.http.user_agent_current_connections_count``*
+    *``proxy.node.http.user_agent_total_request_bytes``*
+    *``proxy.node.http.user_agent_total_response_bytes``*
+    *``proxy.node.http.user_agents_total_transactions_count``*
+    *``proxy.node.http.user_agents_total_documents_served``*
+    *``proxy.node.http.origin_server_current_connections_count``*
+    *``proxy.node.http.origin_server_total_request_bytes``*
+    *``proxy.node.http.origin_server_total_response_bytes``*
+    *``proxy.node.http.parent_proxy_total_request_bytes``*
+    *``proxy.node.http.parent_proxy_total_response_bytes``*
+    *``proxy.node.http.origin_server_total_transactions_count``*
+    *``proxy.node.http.cache_current_connections_count``*
+    *``proxy.node.http.current_parent_proxy_connections``*
+    *``proxy.node.cache.contents.num_docs``*
+    *``proxy.node.cache.bytes_total``*
+    *``proxy.node.cache.bytes_total_mb``*
+    *``proxy.node.cache.bytes_free``*
+    *``proxy.node.cache.bytes_free_mb``*
+    *``proxy.node.cache.percent_free_int_pct``*
+    *``proxy.node.cache_total_hits``*
+    *``proxy.node.cache_total_misses``*
+    *``proxy.node.current_cache_connections``*
+    *``proxy.node.dns.lookups_per_second``*
+    *``proxy.node.dns.lookup_avg_time_ms``*
+    *``proxy.node.dns.total_dns_lookups``*
+    *``proxy.node.hostdb.total_lookups``*
+    *``proxy.node.hostdb.total_hits``*
+    *``proxy.node.cluster.nodes``*
+    *``proxy.node.client_throughput_out``*
+    *``proxy.node.client_throughput_out_kbit``*
+    *``proxy.node.current_client_connections``*
+    *``proxy.node.current_server_connections``*
+    *``proxy.node.user_agent_total_bytes``*
+    *``proxy.node.origin_server_total_bytes``*
+    *``proxy.node.user_agent_total_bytes_avg_10s``*
+    *``proxy.node.origin_server_total_bytes_avg_10s``*
+    *``proxy.node.user_agent_xacts_per_second``*
+    *``proxy.node.user_agents_total_documents_served``*
+    *``proxy.cluster.user_agent_total_bytes_avg_10s``*
+    *``proxy.cluster.origin_server_total_bytes_avg_10s``*
+    *``proxy.cluster.bandwidth_hit_ratio``*
+    *``proxy.cluster.bandwidth_hit_ratio_int_pct``*
+    *``proxy.cluster.bandwidth_hit_ratio_avg_10s``*
+    *``proxy.cluster.http.throughput``*
+    *``proxy.cluster.http.user_agent_xacts_per_second``*
+    *``proxy.cluster.http.user_agent_current_connections_count``*
+    *``proxy.cluster.http.user_agent_total_request_bytes``*
+    *``proxy.cluster.http.user_agent_total_response_bytes``*
+    *``proxy.cluster.http.user_agents_total_transactions_count``*
+    *``proxy.cluster.http.user_agents_total_documents_served``*
+    *``proxy.cluster.http.origin_server_current_connections_count``*
+    *``proxy.cluster.http.origin_server_total_request_bytes``*
+    *``proxy.cluster.http.origin_server_total_response_bytes``*
+    *``proxy.cluster.http.origin_server_total_transactions_count``*
+    *``proxy.cluster.http.cache_current_connections_count``*
+    *``proxy.cluster.http.current_parent_proxy_connections``*
+    *``proxy.cluster.http.parent_proxy_total_request_bytes``*
+    *``proxy.cluster.http.parent_proxy_total_response_bytes``*
+    *``proxy.cluster.cache.contents.num_docs``*
+    *``proxy.cluster.cache.bytes_free``*
+    *``proxy.cluster.cache.bytes_free_mb``*
+    *``proxy.cluster.cache.percent_free``*
+    *``proxy.cluster.cache.percent_free_int_pct``*
+    *``proxy.cluster.cache_hit_ratio``*
+    *``proxy.cluster.cache_hit_ratio_int_pct``*
+    *``proxy.cluster.cache_total_hits``*
+    *``proxy.cluster.cache_total_misses``*
+    *``proxy.cluster.current_cache_connections``*
+    *``proxy.cluster.cache_total_hits_avg_10s``*
+    *``proxy.cluster.cache_total_misses_avg_10s``*
+    *``proxy.cluster.cache_hit_ratio_avg_10s``*
+    *``proxy.cluster.dns.lookups_per_second``*
+    *``proxy.cluster.dns.total_dns_lookups``*
+    *``proxy.cluster.hostdb.hit_ratio``*
+    *``proxy.cluster.hostdb.hit_ratio_int_pct``*
+    *``proxy.cluster.hostdb.total_lookups_avg_10s``*
+    *``proxy.cluster.hostdb.total_hits_avg_10s``*
+    *``proxy.cluster.hostdb.hit_ratio_avg_10s``*
+    *``proxy.cluster.user_agent_xacts_per_second``*
+    *``proxy.cluster.client_throughput_out``*
+    *``proxy.cluster.client_throughput_out_kbit``*
+    *``proxy.cluster.current_client_connections``*
+    *``proxy.cluster.current_server_connections``*
+    *``proxy.process.version.server.short``*
+    *``proxy.process.version.server.long``*
+    *``proxy.process.version.server.build_number``*
+    *``proxy.process.version.server.build_time``*
+    *``proxy.process.version.server.build_date``*
+    *``proxy.process.version.server.build_machine``*
+    *``proxy.process.version.server.build_person``*
+    *``proxy.process.net.net_handler_run``*
+    *``proxy.process.net.read_bytes``*
+    *``proxy.process.net.write_bytes``*
+    *``proxy.process.net.calls_to_readfromnet``*
+    *``proxy.process.net.calls_to_readfromnet_afterpoll``*
+    *``proxy.process.net.calls_to_read``*
+    *``proxy.process.net.calls_to_read_nodata``*
+    *``proxy.process.net.calls_to_writetonet``*
+    *``proxy.process.net.calls_to_writetonet_afterpoll``*
+    *``proxy.process.net.calls_to_write``*
+    *``proxy.process.net.calls_to_write_nodata``*
+    *``proxy.process.socks.connections_successful``*
+    *``proxy.process.socks.connections_unsuccessful``*
+    *``proxy.process.cache.read_per_sec``*
+    *``proxy.process.cache.write_per_sec``*
+    *``proxy.process.cache.KB_read_per_sec``*
+    *``proxy.process.cache.KB_write_per_sec``*
+    *``proxy.process.cache.ram_cache.total_bytes``*
+    *``proxy.process.hostdb.total_entries``*
+    *``proxy.process.hostdb.total_lookups``*
+    *``proxy.process.hostdb.ttl``*
+    *``proxy.process.hostdb.ttl_expires``*
+    *``proxy.process.hostdb.re_dns_on_reload``*
+    *``proxy.process.hostdb.bytes``*
+    *``proxy.process.dns.total_dns_lookups``*
+    *``proxy.process.dns.lookup_avg_time``*
+    *``proxy.process.dns.lookup_successes``*
+    *``proxy.process.dns.fail_avg_time``*
+    *``proxy.process.dns.lookup_failures``*
+    *``proxy.process.dns.retries``*
+    *``proxy.process.dns.max_retries_exceeded``*
+    *``proxy.process.log.bytes_buffered``*
+    *``proxy.process.log.bytes_written_to_disk``*
+    *``proxy.process.log.bytes_sent_to_network``*
+    *``proxy.process.log.bytes_received_from_network``*
+    *``proxy.process.log.event_log_error``*
+    *``proxy.process.log.event_log_access``*
+    *``proxy.process.log.event_log_access_fail``*
+    *``proxy.process.log.event_log_access_skip``*
+    *``proxy.process.cache.volume_0.ram_cache.total_bytes``*
+    *``proxy.process.http.completed_requests``*
+    *``proxy.process.http.total_incoming_connections``*
+    *``proxy.process.http.total_client_connections``*
+    *``proxy.process.http.total_client_connections_ipv4``*
+    *``proxy.process.http.total_client_connections_ipv6``*
+    *``proxy.process.http.total_server_connections``*
+    *``proxy.process.http.total_parent_proxy_connections``*
+    *``proxy.process.http.avg_transactions_per_client_connection``*
+    *``proxy.process.http.avg_transactions_per_server_connection``*
+    *``proxy.process.http.avg_transactions_per_parent_connection``*
+    *``proxy.process.http.client_connection_time``*
+    *``proxy.process.http.parent_proxy_connection_time``*
+    *``proxy.process.http.server_connection_time``*
+    *``proxy.process.http.cache_connection_time``*
+    *``proxy.process.http.transaction_counts.errors.pre_accept_hangups``*
+    *``proxy.process.http.transaction_totaltime.errors.pre_accept_hangups``*
+    *``proxy.process.http.transaction_counts.errors.empty_hangups``*
+    *``proxy.process.http.transaction_totaltime.errors.empty_hangups``*
+    *``proxy.process.http.transaction_counts.errors.early_hangups``*
+    *``proxy.process.http.transaction_totaltime.errors.early_hangups``*
+    *``proxy.process.http.incoming_requests``*
+    *``proxy.process.http.outgoing_requests``*
+    *``proxy.process.http.incoming_responses``*
+    *``proxy.process.http.invalid_client_requests``*
+    *``proxy.process.http.missing_host_hdr``*
+    *``proxy.process.http.get_requests``*
+    *``proxy.process.http.head_requests``*
+    *``proxy.process.http.trace_requests``*
+    *``proxy.process.http.options_requests``*
+    *``proxy.process.http.post_requests``*
+    *``proxy.process.http.put_requests``*
+    *``proxy.process.http.push_requests``*
+    *``proxy.process.http.delete_requests``*
+    *``proxy.process.http.purge_requests``*
+    *``proxy.process.http.connect_requests``*
+    *``proxy.process.http.extension_method_requests``*
+    *``proxy.process.http.client_no_cache_requests``*
+    *``proxy.process.http.broken_server_connections``*
+    *``proxy.process.http.cache_lookups``*
+    *``proxy.process.http.cache_writes``*
+    *``proxy.process.http.cache_updates``*
+    *``proxy.process.http.cache_deletes``*
+    *``proxy.process.http.tunnels``*
+    *``proxy.process.http.throttled_proxy_only``*
+    *``proxy.process.http.request_taxonomy.i0_n0_m0``*
+    *``proxy.process.http.request_taxonomy.i1_n0_m0``*
+    *``proxy.process.http.request_taxonomy.i0_n1_m0``*
+    *``proxy.process.http.request_taxonomy.i1_n1_m0``*
+    *``proxy.process.http.request_taxonomy.i0_n0_m1``*
+    *``proxy.process.http.request_taxonomy.i1_n0_m1``*
+    *``proxy.process.http.request_taxonomy.i0_n1_m1``*
+    *``proxy.process.http.request_taxonomy.i1_n1_m1``*
+    *``proxy.process.http.icp_suggested_lookups``*
+    *``proxy.process.http.client_transaction_time``*
+    *``proxy.process.http.client_write_time``*
+    *``proxy.process.http.server_read_time``*
+    *``proxy.process.http.icp_transaction_time``*
+    *``proxy.process.http.icp_raw_transaction_time``*
+    *``proxy.process.http.parent_proxy_transaction_time``*
+    *``proxy.process.http.parent_proxy_raw_transaction_time``*
+    *``proxy.process.http.server_transaction_time``*
+    *``proxy.process.http.server_raw_transaction_time``*
+    *``proxy.process.http.user_agent_request_header_total_size``*
+    *``proxy.process.http.user_agent_response_header_total_size``*
+    *``proxy.process.http.user_agent_request_document_total_size``*
+    *``proxy.process.http.user_agent_response_document_total_size``*
+    *``proxy.process.http.origin_server_request_header_total_size``*
+    *``proxy.process.http.origin_server_response_header_total_size``*
+    *``proxy.process.http.origin_server_request_document_total_size``*
+    *``proxy.process.http.origin_server_response_document_total_size``*
+    *``proxy.process.http.parent_proxy_request_total_bytes``*
+    *``proxy.process.http.parent_proxy_response_total_bytes``*
+    *``proxy.process.http.pushed_response_header_total_size``*
+    *``proxy.process.http.pushed_document_total_size``*
+    *``proxy.process.http.response_document_size_100``*
+    *``proxy.process.http.response_document_size_1K``*
+    *``proxy.process.http.response_document_size_3K``*
+    *``proxy.process.http.response_document_size_5K``*
+    *``proxy.process.http.response_document_size_10K``*
+    *``proxy.process.http.response_document_size_1M``*
+    *``proxy.process.http.response_document_size_inf``*
+    *``proxy.process.http.request_document_size_100``*
+    *``proxy.process.http.request_document_size_1K``*
+    *``proxy.process.http.request_document_size_3K``*
+    *``proxy.process.http.request_document_size_5K``*
+    *``proxy.process.http.request_document_size_10K``*
+    *``proxy.process.http.request_document_size_1M``*
+    *``proxy.process.http.request_document_size_inf``*
+    *``proxy.process.http.user_agent_speed_bytes_per_sec_100``*
+    *``proxy.process.http.user_agent_speed_bytes_per_sec_1K``*
+    *``proxy.process.http.user_agent_speed_bytes_per_sec_10K``*
+    *``proxy.process.http.user_agent_speed_bytes_per_sec_100K``*
+    *``proxy.process.http.user_agent_speed_bytes_per_sec_1M``*
+    *``proxy.process.http.user_agent_speed_bytes_per_sec_10M``*
+    *``proxy.process.http.user_agent_speed_bytes_per_sec_100M``*
+    *``proxy.process.http.origin_server_speed_bytes_per_sec_100``*
+    *``proxy.process.http.origin_server_speed_bytes_per_sec_1K``*
+    *``proxy.process.http.origin_server_speed_bytes_per_sec_10K``*
+    *``proxy.process.http.origin_server_speed_bytes_per_sec_100K``*
+    *``proxy.process.http.origin_server_speed_bytes_per_sec_1M``*
+    *``proxy.process.http.origin_server_speed_bytes_per_sec_10M``*
+    *``proxy.process.http.origin_server_speed_bytes_per_sec_100M``*
+    *``proxy.process.http.total_transactions_time``*
+    *``proxy.process.http.total_transactions_think_time``*
+    *``proxy.process.http.cache_hit_fresh``*
+    *``proxy.process.http.cache_hit_revalidated``*
+    *``proxy.process.http.cache_hit_ims``*
+    *``proxy.process.http.cache_hit_stale_served``*
+    *``proxy.process.http.cache_miss_cold``*
+    *``proxy.process.http.cache_miss_changed``*
+    *``proxy.process.http.cache_miss_client_no_cache``*
+    *``proxy.process.http.cache_miss_client_not_cacheable``*
+    *``proxy.process.http.cache_miss_ims``*
+    *``proxy.process.http.cache_read_error``*
+    *``proxy.process.http.tcp_hit_count_stat``*
+    *``proxy.process.http.tcp_hit_user_agent_bytes_stat``*
+    *``proxy.process.http.tcp_hit_origin_server_bytes_stat``*
+    *``proxy.process.http.tcp_miss_count_stat``*
+    *``proxy.process.http.tcp_miss_user_agent_bytes_stat``*
+    *``proxy.process.http.tcp_miss_origin_server_bytes_stat``*
+    *``proxy.process.http.tcp_expired_miss_count_stat``*
+    *``proxy.process.http.tcp_expired_miss_user_agent_bytes_stat``*
+    *``proxy.process.http.tcp_expired_miss_origin_server_bytes_stat``*
+    *``proxy.process.http.tcp_refresh_hit_count_stat``*
+    *``proxy.process.http.tcp_refresh_hit_user_agent_bytes_stat``*
+    *``proxy.process.http.tcp_refresh_hit_origin_server_bytes_stat``*
+    *``proxy.process.http.tcp_refresh_miss_count_stat``*
+    *``proxy.process.http.tcp_refresh_miss_user_agent_bytes_stat``*
+    *``proxy.process.http.tcp_refresh_miss_origin_server_bytes_stat``*
+    *``proxy.process.http.tcp_client_refresh_count_stat``*
+    *``proxy.process.http.tcp_client_refresh_user_agent_bytes_stat``*
+    *``proxy.process.http.tcp_client_refresh_origin_server_bytes_stat``*
+    *``proxy.process.http.tcp_ims_hit_count_stat``*
+    *``proxy.process.http.tcp_ims_hit_user_agent_bytes_stat``*
+    *``proxy.process.http.tcp_ims_hit_origin_server_bytes_stat``*
+    *``proxy.process.http.tcp_ims_miss_count_stat``*
+    *``proxy.process.http.tcp_ims_miss_user_agent_bytes_stat``*
+    *``proxy.process.http.tcp_ims_miss_origin_server_bytes_stat``*
+    *``proxy.process.http.err_client_abort_count_stat``*
+    *``proxy.process.http.err_client_abort_user_agent_bytes_stat``*
+    *``proxy.process.http.err_client_abort_origin_server_bytes_stat``*
+    *``proxy.process.http.err_connect_fail_count_stat``*
+    *``proxy.process.http.err_connect_fail_user_agent_bytes_stat``*
+    *``proxy.process.http.err_connect_fail_origin_server_bytes_stat``*
+    *``proxy.process.http.misc_count_stat``*
+    *``proxy.process.http.misc_user_agent_bytes_stat``*
+    *``proxy.process.http.background_fill_bytes_aborted_stat``*
+    *``proxy.process.http.background_fill_bytes_completed_stat``*
+    *``proxy.process.http.cache_write_errors``*
+    *``proxy.process.http.cache_read_errors``*
+    *``proxy.process.http.100_responses``*
+    *``proxy.process.http.101_responses``*
+    *``proxy.process.http.1xx_responses``*
+    *``proxy.process.http.200_responses``*
+    *``proxy.process.http.201_responses``*
+    *``proxy.process.http.202_responses``*
+    *``proxy.process.http.203_responses``*
+    *``proxy.process.http.204_responses``*
+    *``proxy.process.http.205_responses``*
+    *``proxy.process.http.206_responses``*
+    *``proxy.process.http.2xx_responses``*
+    *``proxy.process.http.300_responses``*
+    *``proxy.process.http.301_responses``*
+    *``proxy.process.http.302_responses``*
+    *``proxy.process.http.303_responses``*
+    *``proxy.process.http.304_responses``*
+    *``proxy.process.http.305_responses``*
+    *``proxy.process.http.307_responses``*
+    *``proxy.process.http.3xx_responses``*
+    *``proxy.process.http.400_responses``*
+    *``proxy.process.http.401_responses``*
+    *``proxy.process.http.402_responses``*
+    *``proxy.process.http.403_responses``*
+    *``proxy.process.http.404_responses``*
+    *``proxy.process.http.405_responses``*
+    *``proxy.process.http.406_responses``*
+    *``proxy.process.http.407_responses``*
+    *``proxy.process.http.408_responses``*
+    *``proxy.process.http.409_responses``*
+    *``proxy.process.http.410_responses``*
+    *``proxy.process.http.411_responses``*
+    *``proxy.process.http.412_responses``*
+    *``proxy.process.http.413_responses``*
+    *``proxy.process.http.414_responses``*
+    *``proxy.process.http.415_responses``*
+    *``proxy.process.http.416_responses``*
+    *``proxy.process.http.4xx_responses``*
+    *``proxy.process.http.500_responses``*
+    *``proxy.process.http.501_responses``*
+    *``proxy.process.http.502_responses``*
+    *``proxy.process.http.503_responses``*
+    *``proxy.process.http.504_responses``*
+    *``proxy.process.http.505_responses``*
+    *``proxy.process.http.5xx_responses``*
+    *``proxy.process.http.transaction_counts.hit_fresh``*
+    *``proxy.process.http.transaction_totaltime.hit_fresh``*
+    *``proxy.process.http.transaction_counts.hit_fresh.process``*
+    *``proxy.process.http.transaction_totaltime.hit_fresh.process``*
+    *``proxy.process.http.transaction_counts.hit_revalidated``*
+    *``proxy.process.http.transaction_totaltime.hit_revalidated``*
+    *``proxy.process.http.transaction_counts.miss_cold``*
+    *``proxy.process.http.transaction_totaltime.miss_cold``*
+    *``proxy.process.http.transaction_counts.miss_not_cacheable``*
+    *``proxy.process.http.transaction_totaltime.miss_not_cacheable``*
+    *``proxy.process.http.transaction_counts.miss_changed``*
+    *``proxy.process.http.transaction_totaltime.miss_changed``*
+    *``proxy.process.http.transaction_counts.miss_client_no_cache``*
+    *``proxy.process.http.transaction_totaltime.miss_client_no_cache``*
+    *``proxy.process.http.transaction_counts.errors.aborts``*
+    *``proxy.process.http.transaction_totaltime.errors.aborts``*
+    *``proxy.process.http.transaction_counts.errors.possible_aborts``*
+    *``proxy.process.http.transaction_totaltime.errors.possible_aborts``*
+    *``proxy.process.http.transaction_counts.errors.connect_failed``*
+    *``proxy.process.http.transaction_totaltime.errors.connect_failed``*
+    *``proxy.process.http.transaction_counts.errors.other``*
+    *``proxy.process.http.transaction_totaltime.errors.other``*
+    *``proxy.process.http.transaction_counts.other.unclassified``*
+    *``proxy.process.http.transaction_totaltime.other.unclassified``*
+    *``proxy.process.http.total_x_redirect_count``*
+    *``proxy.process.icp.config_mgmt_callouts``*
+    *``proxy.process.icp.reconfig_polls``*
+    *``proxy.process.icp.reconfig_events``*
+    *``proxy.process.icp.invalid_poll_data``*
+    *``proxy.process.icp.no_data_read``*
+    *``proxy.process.icp.short_read``*
+    *``proxy.process.icp.invalid_sender``*
+    *``proxy.process.icp.read_not_v2_icp``*
+    *``proxy.process.icp.icp_remote_query_requests``*
+    *``proxy.process.icp.icp_remote_responses``*
+    *``proxy.process.icp.cache_lookup_success``*
+    *``proxy.process.icp.cache_lookup_fail``*
+    *``proxy.process.icp.query_response_write``*
+    *``proxy.process.icp.query_response_partial_write``*
+    *``proxy.process.icp.no_icp_request_for_response``*
+    *``proxy.process.icp.icp_response_request_nolock``*
+    *``proxy.process.icp.icp_start_icpoff``*
+    *``proxy.process.icp.send_query_partial_write``*
+    *``proxy.process.icp.icp_queries_no_expected_replies``*
+    *``proxy.process.icp.icp_query_hits``*
+    *``proxy.process.icp.icp_query_misses``*
+    *``proxy.process.icp.invalid_icp_query_response``*
+    *``proxy.process.icp.icp_query_requests``*
+    *``proxy.process.icp.total_icp_response_time``*
+    *``proxy.process.icp.total_udp_send_queries``*
+    *``proxy.process.icp.total_icp_request_time``*
+    *``proxy.process.net.connections_currently_open``*
+    *``proxy.process.net.accepts_currently_open``*
+    *``proxy.process.socks.connections_currently_open``*
+    *``proxy.process.cache.bytes_used``*
+    *``proxy.process.cache.bytes_total``*
+    *``proxy.process.cache.ram_cache.bytes_used``*
+    *``proxy.process.cache.ram_cache.hits``*
+    *``proxy.process.cache.pread_count``*
+    *``proxy.process.cache.percent_full``*
+    *``proxy.process.cache.lookup.active``*
+    *``proxy.process.cache.lookup.success``*
+    *``proxy.process.cache.lookup.failure``*
+    *``proxy.process.cache.read.active``*
+    *``proxy.process.cache.read.success``*
+    *``proxy.process.cache.read.failure``*
+    *``proxy.process.cache.write.active``*
+    *``proxy.process.cache.write.success``*
+    *``proxy.process.cache.write.failure``*
+    *``proxy.process.cache.write.backlog.failure``*
+    *``proxy.process.cache.update.active``*
+    *``proxy.process.cache.update.success``*
+    *``proxy.process.cache.update.failure``*
+    *``proxy.process.cache.remove.active``*
+    *``proxy.process.cache.remove.success``*
+    *``proxy.process.cache.remove.failure``*
+    *``proxy.process.cache.evacuate.active``*
+    *``proxy.process.cache.evacuate.success``*
+    *``proxy.process.cache.evacuate.failure``*
+    *``proxy.process.cache.scan.active``*
+    *``proxy.process.cache.scan.success``*
+    *``proxy.process.cache.scan.failure``*
+    *``proxy.process.cache.direntries.total``*
+    *``proxy.process.cache.direntries.used``*
+    *``proxy.process.cache.directory_collision``*
+    *``proxy.process.cache.frags_per_doc.1``*
+    *``proxy.process.cache.frags_per_doc.2``*
+    *``proxy.process.cache.frags_per_doc.3+``*
+    *``proxy.process.cache.read_busy.success``*
+    *``proxy.process.cache.read_busy.failure``*
+    *``proxy.process.cache.write_bytes_stat``*
+    *``proxy.process.cache.vector_marshals``*
+    *``proxy.process.cache.hdr_marshals``*
+    *``proxy.process.cache.hdr_marshal_bytes``*
+    *``proxy.process.cache.gc_bytes_evacuated``*
+    *``proxy.process.cache.gc_frags_evacuated``*
+    *``proxy.process.hostdb.total_hits``*
+    *``proxy.process.dns.success_avg_time``*
+    *``proxy.process.dns.in_flight``*
+    *``proxy.process.congestion.congested_on_conn_failures``*
+    *``proxy.process.congestion.congested_on_max_connection``*
+    *``proxy.process.cluster.connections_open``*
+    *``proxy.process.cluster.connections_opened``*
+    *``proxy.process.cluster.connections_closed``*
+    *``proxy.process.cluster.slow_ctrl_msgs_sent``*
+    *``proxy.process.cluster.connections_locked``*
+    *``proxy.process.cluster.reads``*
+    *``proxy.process.cluster.read_bytes``*
+    *``proxy.process.cluster.writes``*
+    *``proxy.process.cluster.write_bytes``*
+    *``proxy.process.cluster.control_messages_sent``*
+    *``proxy.process.cluster.control_messages_received``*
+    *``proxy.process.cluster.op_delayed_for_lock``*
+    *``proxy.process.cluster.connections_bumped``*
+    *``proxy.process.cluster.net_backup``*
+    *``proxy.process.cluster.nodes``*
+    *``proxy.process.cluster.machines_allocated``*
+    *``proxy.process.cluster.machines_freed``*
+    *``proxy.process.cluster.configuration_changes``*
+    *``proxy.process.cluster.delayed_reads``*
+    *``proxy.process.cluster.byte_bank_used``*
+    *``proxy.process.cluster.alloc_data_news``*
+    *``proxy.process.cluster.write_bb_mallocs``*
+    *``proxy.process.cluster.partial_reads``*
+    *``proxy.process.cluster.partial_writes``*
+    *``proxy.process.cluster.cache_outstanding``*
+    *``proxy.process.cluster.remote_op_timeouts``*
+    *``proxy.process.cluster.remote_op_reply_timeouts``*
+    *``proxy.process.cluster.chan_inuse``*
+    *``proxy.process.cluster.open_delays``*
+    *``proxy.process.cluster.connections_avg_time``*
+    *``proxy.process.cluster.control_messages_avg_send_time``*
+    *``proxy.process.cluster.control_messages_avg_receive_time``*
+    *``proxy.process.cluster.open_delay_time``*
+    *``proxy.process.cluster.cache_callback_time``*
+    *``proxy.process.cluster.rmt_cache_callback_time``*
+    *``proxy.process.cluster.lkrmt_cache_callback_time``*
+    *``proxy.process.cluster.local_connection_time``*
+    *``proxy.process.cluster.remote_connection_time``*
+    *``proxy.process.cluster.rdmsg_assemble_time``*
+    *``proxy.process.cluster.cluster_ping_time``*
+    *``proxy.process.cluster.cache_callbacks``*
+    *``proxy.process.cluster.rmt_cache_callbacks``*
+    *``proxy.process.cluster.lkrmt_cache_callbacks``*
+    *``proxy.process.cluster.local_connections_closed``*
+    *``proxy.process.cluster.remote_connections_closed``*
+    *``proxy.process.cluster.setdata_no_clustervc``*
+    *``proxy.process.cluster.setdata_no_tunnel``*
+    *``proxy.process.cluster.setdata_no_cachevc``*
+    *``proxy.process.cluster.setdata_no_cluster``*
+    *``proxy.process.cluster.vc_write_stall``*
+    *``proxy.process.cluster.no_remote_space``*
+    *``proxy.process.cluster.level1_bank``*
+    *``proxy.process.cluster.multilevel_bank``*
+    *``proxy.process.cluster.vc_cache_insert_lock_misses``*
+    *``proxy.process.cluster.vc_cache_inserts``*
+    *``proxy.process.cluster.vc_cache_lookup_lock_misses``*
+    *``proxy.process.cluster.vc_cache_lookup_hits``*
+    *``proxy.process.cluster.vc_cache_lookup_misses``*
+    *``proxy.process.cluster.vc_cache_scans``*
+    *``proxy.process.cluster.vc_cache_scan_lock_misses``*
+    *``proxy.process.cluster.vc_cache_purges``*
+    *``proxy.process.cluster.write_lock_misses``*
+    *``proxy.process.log.log_files_open``*
+    *``proxy.process.log.log_files_space_used``*
+    *``proxy.process.http.background_fill_current_count``*
+    *``proxy.process.http.current_client_connections``*
+    *``proxy.process.http.current_active_client_connections``*
+    *``proxy.process.http.current_client_transactions``*
+    *``proxy.process.http.current_parent_proxy_transactions``*
+    *``proxy.process.http.current_icp_transactions``*
+    *``proxy.process.http.current_server_transactions``*
+    *``proxy.process.http.current_parent_proxy_raw_transactions``*
+    *``proxy.process.http.current_icp_raw_transactions``*
+    *``proxy.process.http.current_server_raw_transactions``*
+    *``proxy.process.http.current_parent_proxy_connections``*
+    *``proxy.process.http.current_server_connections``*
+    *``proxy.process.http.current_cache_connections``*
+    *``proxy.process.update.successes``*
+    *``proxy.process.update.no_actions``*
+    *``proxy.process.update.fails``*
+    *``proxy.process.update.unknown_status``*
+    *``proxy.process.update.state_machines``*
+    *``proxy.process.cache.volume_0.bytes_used``*
+    *``proxy.process.cache.volume_0.bytes_total``*
+    *``proxy.process.cache.volume_0.ram_cache.bytes_used``*
+    *``proxy.process.cache.volume_0.ram_cache.hits``*
+    *``proxy.process.cache.volume_0.pread_count``*
+    *``proxy.process.cache.volume_0.percent_full``*
+    *``proxy.process.cache.volume_0.lookup.active``*
+    *``proxy.process.cache.volume_0.lookup.success``*
+    *``proxy.process.cache.volume_0.lookup.failure``*
+    *``proxy.process.cache.volume_0.read.active``*
+    *``proxy.process.cache.volume_0.read.success``*
+    *``proxy.process.cache.volume_0.read.failure``*
+    *``proxy.process.cache.volume_0.write.active``*
+    *``proxy.process.cache.volume_0.write.success``*
+    *``proxy.process.cache.volume_0.write.failure``*
+    *``proxy.process.cache.volume_0.write.backlog.failure``*
+    *``proxy.process.cache.volume_0.update.active``*
+    *``proxy.process.cache.volume_0.update.success``*
+    *``proxy.process.cache.volume_0.update.failure``*
+    *``proxy.process.cache.volume_0.remove.active``*
+    *``proxy.process.cache.volume_0.remove.success``*
+    *``proxy.process.cache.volume_0.remove.failure``*
+    *``proxy.process.cache.volume_0.evacuate.active``*
+    *``proxy.process.cache.volume_0.evacuate.success``*
+    *``proxy.process.cache.volume_0.evacuate.failure``*
+    *``proxy.process.cache.volume_0.scan.active``*
+    *``proxy.process.cache.volume_0.scan.success``*
+    *``proxy.process.cache.volume_0.scan.failure``*
+    *``proxy.process.cache.volume_0.direntries.total``*
+    *``proxy.process.cache.volume_0.direntries.used``*
+    *``proxy.process.cache.volume_0.directory_collision``*
+    *``proxy.process.cache.volume_0.frags_per_doc.1``*
+    *``proxy.process.cache.volume_0.frags_per_doc.2``*
+    *``proxy.process.cache.volume_0.frags_per_doc.3+``*
+    *``proxy.process.cache.volume_0.read_busy.success``*
+    *``proxy.process.cache.volume_0.read_busy.failure``*
+    *``proxy.process.cache.volume_0.write_bytes_stat``*
+    *``proxy.process.cache.volume_0.vector_marshals``*
+    *``proxy.process.cache.volume_0.hdr_marshals``*
+    *``proxy.process.cache.volume_0.hdr_marshal_bytes``*
+    *``proxy.process.cache.volume_0.gc_bytes_evacuated``*
+    *``proxy.process.cache.volume_0.gc_frags_evacuated``*
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a782694b/doc/admin/traffic-server-error-messages.en.rst
----------------------------------------------------------------------
diff --git a/doc/admin/traffic-server-error-messages.en.rst b/doc/admin/traffic-server-error-messages.en.rst
new file mode 100644
index 0000000..2d7f692
--- /dev/null
+++ b/doc/admin/traffic-server-error-messages.en.rst
@@ -0,0 +1,396 @@
+Error Messages
+**************
+
+.. 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 section contains the following sections:
+
+-  `Traffic Server Error Messages <#TSErrorMessages>`_: describes the
+   warning messages Traffic Server sends to the system log file.
+-  `Traffic Server Alarm Messages <#TSAlarmMessages>`_: describes the
+   alarm messages that may appear on Traffic Manager Monitor pages.
+-  `HTML Messages Sent to Clients <#HTMLMessagesSentClients>`_:
+   describes the HTML error messages Traffic Server sends to browser
+   clients.
+-  `Standard HTTP Response Messages <#StandardHTTPResponseMessages>`_:
+   describes the standard HTTP response codes origin servers send to
+   browser clients.
+
+Traffic Server Error Messages
+=============================
+
+The following table lists messages that can appear in system log files.
+This list is not exhaustive; it simply describes common warning messages
+that can occur and which might require your attention.
+
+Traffic Server Process Fatal
+============================
+
+``Accept port is not between 1 and 65535. Please check configuration``
+    The port specified in the ``records.config`` file that accepts
+    incoming HTTP requests is not valid.
+
+``Self loop is detected in parent proxy configuration``
+    The name and port of the parent proxy match that of Traffic Server.
+    This creates a loop when Traffic Server attempts to send the request
+    to the parent proxy.
+
+Traffic Server Warnings
+-----------------------
+
+*``Logfile``* ``error:`` *``error_number``*
+    Generic logging error.
+
+``Bad cluster major version range`` *``version1-version2``* ``for node``
+*``IP address``* ``connect failed``
+    Incompatible software versions causing a problem.
+
+``Connect by disallowed client`` *``IP address``*\ ``, closing``
+    The specified client is not allowed to connect to Traffic Server;
+    the client IP address is not listed in the ``ip_allow.config`` file.
+
+``Could not rename log`` *``filename``* to *``rolled filename``*
+    System error when renaming log file during roll.
+
+``Did`` *``this_amount``* ``of backup; still to do``
+*``remaining_amount``*
+    Congestion is approaching.
+
+``Different clustering minor versions`` *``version1, version2``*
+``for node`` *``IP address``* ``continuing``
+    Incompatible software versions are causing a problem.
+
+``Log format symbol`` *``symbol_name``* ``not found``
+    Custom log format references a field symbol that does not exist.
+    Refer to `Event Logging Formats <logfmts.htm>`_.
+
+``Missing field for field marker``
+    Error reading a log buffer.
+
+``Unable to open log file``
+*``filename``*\ ``, errno=``\ *``error_number``*
+    Cannot open the log file.
+
+``Error accessing disk`` *``disk_name``*
+    Traffic Server might have a cache read problem. You might need to
+    replace the disk.
+
+``Too many errors accessing disk`` *``disk_name``*
+``: declaring disk bad``
+    Traffic Server is not using the cache disk because it encountered
+    too many errors. The disk might be corrupt and might have to be
+    replaced.
+
+``No cache disks specified in storage.config file: cache disabled``
+    The Traffic Server ``storage.config`` file does not list any cache
+    disks; Traffic Server is running in proxy-only mode. You must add
+    the disks you want to use for the cache to the
+    `storage.config <../configuration-files/storage.config>`_ file.
+
+Traffic Server Alarm Messages
+=============================
+
+``[Rollback::Rollback] Config file is read-only:`` *``filename``*
+    Go to the Traffic Server ``config`` directory and check the
+    indicated file permissions; change if necessary.
+
+``[Rollback::Rollback] Unable to read or write config file``
+*``filename``*
+    Go to the Traffic Server ``config`` directory and make sure the
+    indicated file exists. Check permissions and modify if necessary.
+
+``[Traffic Manager] Configuration File Update Failed:``
+*``error_number``*
+    Go to the Traffic Server ``config`` directory and check the
+    indicated file permissions; change if necessary.
+
+``[Traffic Manager] Mgmt <==>Proxy conn. closed``
+    An informational message to inform you that the ``traffic_server``
+    process is down.
+
+``Access logging suspended - configured space allocation exhausted.``
+    The space allocated to the event log files is full; you must either
+    increase the space or delete some log files so that access logging
+    to continue. To prevent this error, consider rolling log files more
+    frequently and enabling the autodelete feature.
+
+``Access logging suspended - no more space on the logging partition.``
+    The entire partition containing the event logs is full; you must
+    delete or move some log files to enable access logging to continue.
+    To prevent this error, consider rolling log files more frequently
+    and enabling the autodelete feature.
+
+``Created zero length place holder for config file`` *``filename``*
+    Go to the Traffic Server ``config`` directory and check the
+    indicated file. If it is indeed zero in length, then use a backup
+    copy of the configuration file.
+
+``Traffic Server could not open logfile`` *``filename``*
+    Check permissions for the indicated file and the logging directory.
+
+``Traffic Server failed to parse line`` *``line_number``*
+``of the logging config file`` *``filename``*
+    Check your custom log configuration file; there could be syntax
+    errors. Refer to `Custom Logging Fields <logfmts.htm#66912>`_ for
+    correct custom log format fields.
+
+``vip_config binary is not setuid root, manager will be unable to enable virtual ip addresses``
+    The ``traffic_manager`` process is not able to set virtual IP
+    addresses. You must ``setuid root``\ for the ``vip_config`` file in
+    the Traffic Server ``bin`` directory.
+
+HTML Messages Sent to Clients
+=============================
+
+Traffic Server returns detailed error messages to browser clients when
+there are problems with the HTTP transactions requested by the browser.
+These Traffic Server response messages correspond to standard HTTP
+response codes, but provide more information. A list of the more
+frequently-encountered HTTP response codes is provided in `Standard HTTP
+Response Messages <#StandardHTTPResponseMessages>`_. You can customize
+the Traffic Server response messages, if desired.
+
+The following table lists the hard-coded Traffic Server HTTP messages,
+with corresponding HTTP response codes and customizable files.
+
+``Access Denied``
+    ``403``
+    You are not allowed to access the document at location *``URL``* .
+    ``access#denied``
+
+``Cache Read Error``
+    ``500``
+    Error reading from cache; please retry request.
+    ``cache#read_error``
+
+``Connection Timed Out``
+    ``504``
+    Too much time has elapsed since the server has sent data.
+    ``timeout#inactivity``
+
+``Content Length Required``
+    ``400``
+    Could not process this request because ``Content-Length`` was not
+    specified.
+    ``request#no_content_length``
+
+``Cycle Detected``
+    ``400``
+    Your request is prohibited because it would cause an HTTP proxy
+    cycle.
+    ``request#cycle_detected``
+
+``Forbidden``
+    ``403``
+    *``port_number``* is not an allowed port for SSL connections (you
+    have made a request for a secure SSL connection to a forbidden port
+    number).
+    ``access#ssl_forbidden``
+
+``Host Header Required``
+    ``400``
+    An attempt was made to transparently proxy your request, but this
+    attempt failed because your browser did not send an HTTP ``Host``
+    header. Manually configure your browser to use
+    ``http://``\ *``proxy_name``*\ ``:``\ *``proxy_port``* as the HTTP
+    proxy. Alternatively, end users can upgrade to a browser that
+    supports the HTTP ``Host`` header field.
+    ``interception#no_host``
+
+``Host Header Required``
+    ``400``
+    Because your browser did not send a ``Host`` HTTP header field, the
+    virtual host being requested could not be determined. To access the
+    website correctly, you must upgrade to a browser that supports the
+    HTTP ``Host`` header field.
+    ``request#no_host``
+
+``HTTP Version Not Supported``
+    ``505``
+    The origin server *``server_name``* is using an unsupported version
+    of the HTTP protocol.
+    ``response#bad_version``
+
+``Invalid HTTP Request``
+    ``400``
+    Could not process this *``client_request``* HTTP method request for
+    *``URL``*.
+    ``request#syntax_error``
+
+``Invalid HTTP Response``
+    ``502``
+    The host *``server_name``* did not return the document *``URL``*
+    correctly.
+    ``response#bad_response``
+
+``Malformed Server Response``
+    ``502``
+    The host *``server_name``* did not return the document *``URL``*
+    correctly.
+    ``response#bad_response``
+
+``Malformed Server Response Status``
+    ``502``
+    The host *``server_name``* did not return the document *``URL``*
+    correctly.
+    ``response#bad_response``
+
+``Maximum Transaction Time exceeded``
+    ``504``
+    Too much time has elapsed while transmitting document *``URL``* .
+    ``timeout#activity``
+
+``No Response Header From Server``
+    ``502``
+    The host *``server_name``* did not return the document *``URL``*
+    correctly.
+    ``response#bad_response``
+
+``Not Cached``
+    ``504``
+    This document was not available in the cache, and you (the client)
+    only accept cached copies.
+    ``cache#not_in_cache``
+
+``Not Found on Accelerator``
+    ``404``
+    The request for *``URL``* on host *``server_name``* was not found.
+    Check the location and try again.
+    ``urlrouting#no_mapping``
+
+``NULL``
+    ``502``
+    The host *``hostname``* did not return the document *``URL``*
+    correctly.
+    ``response#bad_response``
+
+``Proxy Authentication Required``
+    ``407``
+    Please log in with username and password.
+    ``access#proxy_auth_required``
+
+``Server Hangup``
+    ``502``
+    The server *``hostname``* closed the connection before the
+    transaction was completed.
+    ``connect#hangup``
+
+``Temporarily Moved``
+    ``302``
+    The document you requested, *``URL``*, has moved to a new location.
+    The new location is *``new_URL``*.
+    ``redirect#moved_temporarily``
+
+``Transcoding Not Available``
+    ``406``
+    Unable to provide the document *``URL``* in the format requested by
+    your browser.
+    ``transcoding#unsupported``
+
+``Tunnel Connection Failed``
+    ``502``
+    Could not connect to the server *``hostname``*.
+    ``connect#failed_connect``
+
+``Unknown Error``
+    ``502``
+    The host *``hostname``* did not return the document *``URL``*
+    correctly.
+    ``response#bad_response``
+
+``Unknown Host``
+    ``500``
+    Unable to locate the server named *``hostname``*; the server does
+    not have a DNS entry. Perhaps there is a misspelling in the server
+    name or the server no longer exists; double-check the name and try
+    again.
+    ``connect#dns_failed``
+
+``Unsupported URL Scheme``
+    ``400``
+    Cannot perform your request for the document *``URL``* because the
+    protocol scheme is unknown.
+    ``request#scheme_unsupported``
+
+Standard HTTP Response Messages
+-------------------------------
+
+The following standard HTTP response messages are provided for your
+information.
+
+**``200``**
+    OK
+
+**``202``**
+    Accepted
+
+**``204``**
+    No Content
+
+**``206``**
+    Partial Content
+
+**``300``**
+    Multiple Choices
+
+**``301``**
+    Moved Permanently
+
+**``302``**
+    Found
+
+**``303``**
+    See Other
+
+**``304``**
+    Not Modified
+
+**``400``**
+    Bad Request
+
+**``401``**
+    Unauthorized; retry
+
+**``403``**
+    Forbidden
+
+**``404``**
+    Not Found
+
+**``405``**
+    Method Not Allowed
+
+**``406``**
+    Not acceptable
+
+**``408``**
+    Request Timeout
+
+**``500``**
+    Internal server error
+
+**``501``**
+    Not Implemented
+
+**``502``**
+    Bad Gateway
+
+**``504``**
+    Gateway Timeout
+
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a782694b/doc/admin/transparent-proxy.en.rst
----------------------------------------------------------------------
diff --git a/doc/admin/transparent-proxy.en.rst b/doc/admin/transparent-proxy.en.rst
new file mode 100644
index 0000000..2e969dd
--- /dev/null
+++ b/doc/admin/transparent-proxy.en.rst
@@ -0,0 +1,117 @@
+Transparent Proxying
+********************
+
+.. 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.
+
+
+.. toctree::
+   :maxdepth: 2
+
+   transparent-proxy/build.en
+   transparent-proxy/bridge.en
+   transparent-proxy/router-inline.en
+   transparent-proxy/router-inline.en
+   transparent-proxy/wccp-configuration.en
+
+Transparent Proxying is the ability of a proxy (such as ATS) to
+intercept connections between clients and servers without being visible.
+
+The general network structure that will be used in this documentation
+looks like this --
+
+.. figure:: ../_static/images/admin/ats-basic-traffic.png
+   :align: center
+   :alt: ATS basic traffic flow of Transparent Proxy
+
+   ATS basic traffic flow of Transparent Proxy
+
+There must be a gateway device through which passes all network traffic
+from the client to the Internet (or external cloud). The gateway is
+responsible for effectively splicing ATS in to selected streams of that
+traffic. Each traffic stream is split in to two, with ATS terminating
+both sides. That is, stream green-1, red-2, is split in to the green
+connection and the red connection. Note that ATS may or may not be on
+the gateway system, the redirected traffic can flow over other network
+infrastructure.
+
+Because ATS uses two connections transparency can be set independently
+on the client and origin server (Internet / external cloud) side. We
+will define what is generally called "transparent proxy" as two aspects,
+*inbound transparency* and *outbound transparency*.
+
+Inbound transparency is a proxy that is transparent to connections that
+are inbound to the proxy, i.e. a connection initiated by a client which
+connects to the proxy (green-1). Similarly, outbound transparency is a
+proxy that is transparent to connections that are outbound from the
+proxy, i.e. a connection initiated by the proxy to an origin server
+(red-2).
+
+In most treatments these two types of transparency are treated as
+unitarily but that is not required. This implementation supports
+transparency independently on the two (client, origin server) sides
+(`use cases <half-transparency-use-cases>`_).
+
+It is critical to note that any transparency requires specialized
+routing and cannot be done solely by configuring ATS. ATS transparency
+also requires support from the Linux kernel and therefore currently only
+works on sufficiently recent Linux kernels that support the following
+features --
+
+-  TPROXY
+-  POSIX capabilities
+
+In addition the specialized routing will require using ``iptables`` and
+in some cases ``ebtables``.
+
+Standard build procedures should work for transparency support but if
+not consult these `more detailed instructions <build>`_
+
+Transparency is configured per server port not globally. This is done
+via the configuration values ``proxy.config.http.server_port_attr`` and
+``proxy.config.http.server_other_ports``. In addition,
+``proxy.config.reverse_proxy_enabled`` must be enabled if the client
+side is transparent. That should be fixed in a future patch.
+
+In the first case use the attribute character (replacing the default
+'X')
+
+**Attribute** **Transparency Style** **Reverse Proxy**
+
+``=``
+    Full transparency: either
+
+``>``
+    Inbound (client) transparency: enabled
+
+``<``
+    Outbound (origin server) transparency: either
+
+In the outbound transparent case clients must connect directly to ATS
+either through an explicit proxy mechanism or by advertising the IP
+address of the ATS server via DNS as the origin server address.
+
+For ``.server_other_ports`` use the same characters after the port and
+colon, e.g. if port 8088 is to be configured for client side
+transparency use '``8088:>``\ '.
+
+Some tested scenarios --
+
+-  `Transparent bridging <bridge>`_
+-  `Inline router <router-inline>`_
+-  `WCCP Configuration <wccp-configuration>`_
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a782694b/doc/admin/transparent-proxy/bridge.en.rst
----------------------------------------------------------------------
diff --git a/doc/admin/transparent-proxy/bridge.en.rst b/doc/admin/transparent-proxy/bridge.en.rst
new file mode 100644
index 0000000..4cdf829
--- /dev/null
+++ b/doc/admin/transparent-proxy/bridge.en.rst
@@ -0,0 +1,204 @@
+Inline on a Linux Bridge
+************************
+
+.. 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.
+
+
+
+A Linux can be configured to operate in `*bridge
+mode* <http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge>`_.
+Two or more physical interfaces are assigned to the bridge. A single IP
+address is shared across the interfaces. By default any packet that
+arrives on one interface is immediately routed out another bridge
+interface.
+
+Linux packages required:
+
+-  bridge-utils
+-  ebtables
+
+In our example of setting up bridge mode we will use a local address of
+192.168.1.11/24 and interfaces ``eth0`` and ``eth1`` as the bridge
+interfaces (more detailed documentation is available
+`here <http://www.tldp.org/HOWTO/BRIDGE-STP-HOWTO/preparing-the-bridge.html>`_).
+You may omit the '#' character and everything after it.
+
+::
+
+    brctl addbr br0 # create bridge device
+    brctl stp br0 off # Disable spanning tree protocol
+    brctl addif br0 eth0 # Add eth0 to bridge
+    brctl addif br0 eth1 # Add eth1 to bridge
+
+    ifconfig eth0 0 0.0.0.0 # Get rid of interface IP addresses
+    ifconfig eth1 0 0.0.0.0 # ditto # Set the bridge IP address and enable it
+    ifconfig br0 192.168.1.11 netmask 255.255.255.0 up
+
+If you have not already done so, remember to add a default route, such
+as this one for a gateway of 192.168.1.1.
+
+::
+
+    ip route add default via 192.168.1.1
+
+At this point it is a good idea to test connectivity to verify the basic
+bridge is functional.
+
+Once the bridge is verified to work, this is the basic traffic pattern
+of interest.
+
+.. figure:: ../../_static/images/admin/ats-traffic-bridge.png
+   :align: center
+   :alt: Picture of traffic flow through a bridge with ATS
+
+   Picture of traffic flow through a bridge with ATS
+
+The green arrows are packets originating from the client and the red
+arrows are packets originating from the origin server. All traffic not
+directed to the local address will pass through the bridge. We need to
+break into some of the traffic and subject it to routing so that it can
+be routed to ATS. This requires ``ebtables``. The flows we want to
+intercept are green 1 (from client to bridge) and red 1 (origin server
+to bridge).
+
+In this example we will intercept port 80 (HTTP) traffic. We will use
+the ``BROUTING`` chain because it is traversed only for packets that
+originated externally and arrived on a (forwarding enabled) interface.
+Although it looks like this will intercept all port 80 traffic it will
+only affect the two flows described above. ``-j redirect`` marks the
+packet as being diverted to the bridge and not forwarded, and the
+``DROP`` target puts the packets in the normal ``iptables`` routing so
+that we can use standard device tests on them [1]_(#1). Although this
+example handles only port 80, other ports are the same except for the
+port value. Note also the port here is the port from the point of view
+of the clients and origin servers, not the Traffic Server server port.
+
+::
+
+    ebtables -t broute -F # Flush the table
+    # inbound traffic
+    ebtables -t broute -A BROUTING -p IPv4 --ip-proto tcp --ip-dport 80 \
+      -j redirect --redirect-target DROP
+    # returning outbound traffic
+    ebtables -t broute -A BROUTING -p IPv4 --ip-proto tcp --ip-sport 80 \
+      -j redirect --redirect-target DROP
+
+Traffic Server operates at layer 3 so we need to use ``iptables`` to
+handle IP packets appropriately.
+
+::
+
+    iptables -t mangle -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 \
+      -j TPROXY --on-ip 0.0.0.0 --on-port 8080 --tproxy-mark 1/1
+    iptables -t mangle -A PREROUTING -i eth0 -p tcp -m tcp --sport 80 \
+       -j MARK --set-mark 1/1
+
+At this point the directionality of the interfaces matters. For the
+example ``eth1`` is the inbound (client side) interface, while ``eth0``
+is the outbound (origin server side) interface. We mark both flows of
+packets so that we can use policy routing on them. For inbound packets
+we need to use ``TPROXY`` to force acceptance of packets to foreign IP
+addresses. For returning outbound packets there will be a socket open
+bound to the foreign address, we need only force it to be delivered
+locally. The value for ``--on-ip`` is 0 because the target port is
+listening and not bound to a specific address. The value for
+``--on-port`` must match the Traffic Server server port. Otherwise its
+value is arbitrary. ``--dport`` and ``--sport`` specify the port from
+the point of view of the clients and origin servers.
+
+Once the flows are marked we can force them to be delivered locally via
+the loopback interface via a policy routing table.
+
+::
+
+    ip rule add fwmark 1/1 table 1
+    ip route add local 0.0.0.0/0 dev lo table 1
+
+The marking used is arbitrary but it must be consistent between
+``iptables`` and the routing rule. The table number must be in the range
+1..253.
+
+To configure Traffic Server set the following values in
+``records.config``
+
+``proxy.config.http.server_port``
+    ``STRING``
+    Default: *value from* ```--on-port`` <#on_port>`_
+
+proxy.config.http.server_port_attr
+{#proxy.config.http.server_port_attr}
+    ``STRING``
+    Default: ``=``
+
+``proxy.config.reverse_proxy.enabled``
+    ``INT``
+    Default: ``1``
+
+``proxy.config.url_remap.remap_required``
+    ``INT``
+    Default: ``0``
+
+You may also need to set ``proxy.config.cluster.ethernet_interface`` to
+"br0" (the name of the bridge interface from the
+```brctl`` <#bridge_commands>`_ command).
+
+Additional troubleshooting
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* Check to make sure that ``iptables`` is not filtering (blocking)
+incoming HTTP connections. It is frequently the case that the default
+tables prevent incoming HTTP. You can clear all filters with the
+commands
+
+::
+
+    iptables -t filter --flush FORWARD
+    iptables -t filter --flush INPUT
+
+That is a bit drastic and should only be used for testing / debugging. A
+live system will likely need some filters in place but that is beyond
+the scope of this document. If this fixes the problem, then your filter
+set is too restrictive.
+
+Note that this problem will prevent the basic bridge (without ATS) from
+allowing HTTP traffic through.
+
+* Verify that IP packet forwarding is enabled. You can check this with
+
+::
+
+    cat /proc/sys/net/ipv4/ip_forward
+
+The output should be a non-zero value (usually '1'). If it is zero, you
+can set it with
+
+::
+
+    echo '1' > /proc/sys/net/ipv4/ip_forward
+
+This can setting can be persisted by putting it in ``/etc/sysctl.conf``:
+
+::
+
+    net/ipv4/ip_forward=1
+
+
+.. [1]
+   The ``--redirect-target`` can be omitted, but then the ``iptables``
+   rules would need to use ``--physdev`` instead of just ``-i``. The
+   actual packet processing is identical.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a782694b/doc/admin/transparent-proxy/build.en.rst
----------------------------------------------------------------------
diff --git a/doc/admin/transparent-proxy/build.en.rst b/doc/admin/transparent-proxy/build.en.rst
new file mode 100644
index 0000000..8200f80
--- /dev/null
+++ b/doc/admin/transparent-proxy/build.en.rst
@@ -0,0 +1,58 @@
+Building ATS for transparency
+*****************************
+
+.. 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.
+
+
+In most cases, if your environment supports transparency then
+``configure`` will automatically enable it. For other environments you
+may need to twiddle the ``configure`` options.
+
+``--enable-posix-cap``
+    This enables POSIX capabilities, which are required for
+    transparency. These are compiled in by default. To check your
+    system, look for the header file ``sys/capability.h`` and the system
+    library ``libcap``. These are in the packages ``libcap`` and
+    ``libcap-devel`` or ``libcap-dev`` (depending on the Distribution)
+    contra-respectively.
+
+``--enable-tproxy[=value]``
+    Enable TPROXY support, which is the Linux kernel feature used for
+    transparency. This should be present in the base installation, there
+    is no package associated with it. \* ``auto`` Do automatic checks
+    for the the TPROXY header file (``linux/in.h``) and enable TPROXY
+    support if the ``IP_TRANSPARENT`` definition is present. This is the
+    default if this option is not specified or ``value`` is omitted. \*
+    ``no`` Do not check for TPROXY support, disable support for it. \*
+    ``force`` Do not check for TPROXY support, enable it using the $ats@
+    built in value for ``IP_TRANSPARENT``. This is useful for systems
+    that have it in the kernel for but some reason do not have the
+    appropriate system header file. \* *number* Do not check for TPROXY
+    support, use *number* as the ``IP_TRANSPARENT`` value. There are, at
+    present, no known standard distributions of Linux that support
+    TPROXY but use a value different from the built in ATS default.
+    However, a custom built kernel may do so and in that case the
+    specific value can be specified.
+
+In the default case, ATS configuration will automatically check for
+TPROXY support via the presence of the ``linux/in.h`` header file and
+compile in TPROXY support if it is available. If that fails, you may be
+able to recover by using one of the options above. Note that
+transparency may be built in by default but it is not active unless
+explicitly enabled in the ATS configuration files.
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a782694b/doc/admin/transparent-proxy/router-inline.en.rst
----------------------------------------------------------------------
diff --git a/doc/admin/transparent-proxy/router-inline.en.rst b/doc/admin/transparent-proxy/router-inline.en.rst
new file mode 100644
index 0000000..6e4a244
--- /dev/null
+++ b/doc/admin/transparent-proxy/router-inline.en.rst
@@ -0,0 +1,92 @@
+Inline on a Linux router
+************************
+
+.. 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 routed set up presumes the set of clients are on distinct networks
+behind a single physical interface. For the purposes of this example
+will we presume
+
+-  The clients are on network 172.28.56.0/24
+-  The router connects the networks 172.28.56.0/24 and 192.168.1.0/24
+-  Interface ``eth0`` is on the network 192.168.1.0/24
+-  Interface ``eth1`` is on the network 172.28.56.0/24
+-  The router is already configured to route traffic correctly for the
+   clients.
+
+In this example we will intercept port 80 (HTTP) traffic that traverses
+the router. The first step is to use ``iptables`` to handle IP packets
+appropriately.
+
+::
+
+    # reflow client web traffic to TPROXY
+    iptables -t mangle -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j TPROXY \
+       --on-ip 0.0.0.0 --on-port 8080 --tproxy-mark 1/1
+    # Let locally directed traffic pass through.
+    iptables -t mangle -A PREROUTING -i eth0 --source 192.168.56.0/24 -j ACCEPT
+    iptables -t mangle -A PREROUTING -i eth0 --destination 192.168.56.0/24 -j ACCEPT
+    # Mark presumed return web traffic
+    iptables -t mangle -A PREROUTING -i eth0 -p tcp -m tcp --sport 80 -j MARK --set-mark 1/1
+
+We mark packets so that we can use policy routing on them. For inbound
+packets we use ``TPROXY`` to make it possible to accept packets sent to
+foreign IP addresses. For returning outbound packets there will be a
+socket open bound to the foreign address, we need only force it to be
+delivered locally. The value for ``--on-ip`` is 0 because the target
+port is listening and not bound to a specific address. The value for
+``--on-port`` must match the Traffic Server server port. Otherwise its
+value is arbitrary. ``--dport`` and ``--sport`` specify the port from
+the point of view of the clients and origin servers. The middle two
+lines exempt local web traffic from being marked for Traffic Server --
+these rules can be tightened or loosened as needed. They server by
+matching traffic and exiting the ``iptables`` processing via ``ACCEPT``
+before the last line is checked.
+
+Once the flows are marked we can force them to be delivered locally via
+the loopback interface via a policy routing table.
+
+::
+
+    ip rule add fwmark 1/1 table 1
+    ip route add local 0.0.0.0/0 dev lo table 1
+
+The marking used is arbitrary but it must be consistent between
+``iptables`` and the routing rule. The table number must be in the range
+1..253.
+
+To configure Traffic Server set the following values in
+``records.config``
+
+``proxy.config.http.server_port``
+    ``STRING``
+    Default: *value from* ```--on-port`` <#on_port>`_
+
+proxy.config.http.server_port_attr
+{#proxy.config.http.server_port_attr}
+    ``STRING``
+    Default: ``=``
+
+``proxy.config.reverse_proxy.enabled``
+    ``INT``
+    Default: ``1``
+
+``proxy.config.url_remap.remap_required``
+    ``INT``
+    Default: ``0``
+

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a782694b/doc/admin/transparent-proxy/wccp-configuration.en.rst
----------------------------------------------------------------------
diff --git a/doc/admin/transparent-proxy/wccp-configuration.en.rst b/doc/admin/transparent-proxy/wccp-configuration.en.rst
new file mode 100644
index 0000000..7984865
--- /dev/null
+++ b/doc/admin/transparent-proxy/wccp-configuration.en.rst
@@ -0,0 +1,155 @@
+WCCP Configuration
+******************
+
+.. 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.
+
+
+.. toctree::
+   :maxdepth: 2
+
+`WCCP <http://cio.cisco.com/en/US/docs/ios/12_0t/12_0t3/feature/guide/wccp.html>`_
+is de-facto semi-standard used by routers to redirect network traffic to
+caches. It is available on most Ciscoâ„¢ routers although it does not
+appear to be officially supported by Cisco. The primary benefits of WCCP
+are
+
+-  If already have a router that supports WCCP inline you do not not
+   have to change your network topology.
+-  WCCP fails open so that if the Traffic Server machine fails, it is
+   bypassed and users continue to have Internet access.
+
+Use of WCCP only makes sense for client side transparency [1]_(#1)
+because if the clients are explicitly proxied by Traffic Server there's
+no benefit to WCCP fail open, as the clients will continue to directly
+access the unresponsive Traffic Server host. It would be better to
+adjust the routing tables on the router for explicit proxying.
+
+Because the router serves as the inline network element, Traffic Server
+must run on a separate host. This host can be located anywhere as long
+as Traffic Server is either on the same network segment or a GRE tunnel
+can be maintained between the Traffic Server host and the router.
+
+|important| This document presumes that the router is already properly
+configured to handle traffic between the clients and the origin servers.
+If you are not certain, verify it before attempting to configure Traffic
+Server with WCCP. This is also a good state to which to revert should
+the configuration go badly.
+
+Configuration overview
+======================
+
+Setting WCCP is a three step process, first configuring the router, the
+Traffic Server host, and Traffic Server.
+
+|image1| The router will **not** respond to WCCP protocol packets unless
+explicitly configured to do so. Via WCCP, the router can be made to
+perform packet interception and redirection needed by Traffic Server
+transparency. The WCCP protocol in effect acts as means of controlling a
+rough form of policy routing with positive heartbeat cutoff.
+
+The Traffic Server host system must also be configured using
+``iptables`` to accept connections on foreign addresses. This is done
+roughly the same way as the standard transparency use.
+
+Finally Traffic Server itself must be configured for transparency and
+use of WCCP. The former is again very similar to the standard use, while
+WCCP configuration is specific to WCCP and uses a separate configuration
+file, referred to by the ``records.config`` file.
+
+The primary concern for configuration in which of three basic topologies
+are to be used.
+
+-  Dedicated -- Traffic Server traffic goes over an interface that is
+   not used for client nor origin server traffic.
+-  Shared -- Traffic Server traffic shares an interface with client or
+   server traffic.
+-  Inside Shared -- Traffic Server and client traffic share an
+   interface.
+-  `Outside Shared <wccp-outside-shared.html>`_ -- Traffic Server and
+   origin server traffic share an interface.
+
+In general the dedicated topology is preferred. However, if the router
+has only two interfaces one of the shared topologies will be
+required [2]_(#2). Click the links above for more detailed configuration
+information on a specific topology.
+
+Shared interface issues
+-----------------------
+
+A shared interface topology has additional issues compared to a
+dedicated topology that must be handled. Such a topology is required if
+the router has only two interfaces, and because of these additional
+issues it is normally only used in such cases, although nothing prevents
+it use even if the router has three or more interfaces.
+
+The basic concept for a shared interface is to use a tunnel to simulate
+the dedicated interface case. This enables the packets to be
+distinguished at layer 3. For this reason, layer 2 redirection cannot be
+used because the WCCP configuration cannot distinguish between packets
+returning from the origin server and packets returning from Traffic
+Server as they are distinguished only by layer 2 addressing [3]_(#3).
+Fortunately the GRE tunnel used for packet forwarding and return can be
+used as the simulated interface for Traffic Server.
+
+Frequently encountered problems
+-------------------------------
+
+MTU and fragmentation
+~~~~~~~~~~~~~~~~~~~~~
+
+In most cases the basic configuration using a tunnel in any topology can
+fail due to issues with fragmentation. The socket logic is unable to
+know that its packets will eventually be put in to a tunnel which will
+by its nature have a smaller
+`MTU <http://en.wikipedia.org/wiki/Maximum_transmission_unit>`_ than the
+physical interface which it uses. This can lead to pathological behavior
+or outright failure as the packets sent are just a little too big. It is
+not possible to solve easily by changing the MTU on the physical
+interface because the tunnel interface uses that to compute its own MTU.
+
+References
+==========
+
+-  `WCCP Router Configuration Commands - IOS
+   12.2 <http://www.cisco.com/en/US/docs/ios/12_2/configfun/command/reference/frf018.html>`_
+
+
+
+
+
+
+
+
+.. [1]
+   Server side transparency should also be used, but it is not as
+   significant. In its absence, however, origin servers may see the
+   source address of connections suddenly change from the Traffic Server
+   address to client addresses, which could cause problems. Further, the
+   primary reason for not having server side transparency is to hide
+   client addresses which is defeated if the Traffic Server host fails.
+
+.. [2]
+   If your router has only one interface, it's hardly a *router*.
+
+.. [3]
+   This is not fundamentally impossible, as the packets are distinct in
+   layer
+
+.. |important| image:: ../../_static/images/docbook/important.png
+.. |image1| image:: ../../_static/images/docbook/important.png
+


Mime
View raw message