[MERGE] Config cleanups

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Thu, 11 Sep 2008 03:55:09 +1200

This update removes several magic number options in the WCCPv2
configuration. Replacing them with user-freindly text options.

This should help with a lot of config confusion where these are needed
until they are obsoleted properly.

# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: squid3_at_treenet.co.nz-20080910154736-tthy86pnrddzmsiu
# target_branch: file:///src/squid/bzr/trunk/
# testament_sha1: 7b319238106ae2926697f85b2ec58c3476abc121
# timestamp: 2008-09-11 03:50:49 +1200
# base_revision_id: squid3_at_treenet.co.nz-20080909121659-\
# q5rnfdpug13p94fl
#
# Begin patch
=== modified file 'src/cf.data.depend'
--- src/cf.data.depend 2008-04-03 05:31:29 +0000
+++ src/cf.data.depend 2008-09-10 15:22:08 +0000
@@ -47,6 +47,7 @@
 tristate
 uri_whitespace
 ushort
+wccp2_method
 wccp2_service
 wccp2_service_info
 wordlist

=== modified file 'src/cf.data.pre'
--- src/cf.data.pre 2008-08-09 06:24:33 +0000
+++ src/cf.data.pre 2008-09-10 15:47:36 +0000
@@ -831,8 +831,8 @@
 
 NOCOMMENT_START
 #Allow ICP queries from local networks only
-icp_access allow localnet
-icp_access deny all
+#icp_access allow localnet
+#icp_access deny all
 NOCOMMENT_END
 DOC_END
 
@@ -856,8 +856,8 @@
 
 NOCOMMENT_START
 #Allow HTCP queries from local networks only
-htcp_access allow localnet
-htcp_access deny all
+#htcp_access allow localnet
+#htcp_access deny all
 NOCOMMENT_END
 DOC_END
 
@@ -883,7 +883,7 @@
 NAME: miss_access
 TYPE: acl_access
 LOC: Config.accessList.miss
-DEFAULT: none
+DEFAULT: allow all
 DOC_START
         Use to force your neighbors to use you as a sibling instead of
         a parent. For example:
@@ -897,11 +897,6 @@
 
         By default, allow all clients who passed the http_access rules
         to fetch MISSES from us.
-
-NOCOMMENT_START
-#Default setting:
-# miss_access allow all
-NOCOMMENT_END
 DOC_END
 
 NAME: ident_lookup_access
@@ -1555,9 +1550,7 @@
 
           icp-port: Used for querying neighbor caches about
                      objects. To have a non-ICP neighbor
- specify '7' for the ICP port and make sure the
- neighbor machine has the UDP echo port
- enabled in its /etc/inetd.conf file.
+ specify '0' for the ICP port.
                 NOTE: Also requires icp_port option enabled to send/receive
                       requests via this method.
 
@@ -1955,7 +1948,7 @@
 NAME: maximum_object_size_in_memory
 COMMENT: (bytes)
 TYPE: b_size_t
-DEFAULT: 8 KB
+DEFAULT: 512 KB
 LOC: Config.Store.maxInMemObjSize
 DOC_START
         Objects greater than this size will not be attempted to kept in
@@ -2124,7 +2117,7 @@
         which can be changed with the --with-coss-membuf-size=N configure
         option.
 NOCOMMENT_START
-cache_dir ufs @DEFAULT_SWAP_DIR@ 100 16 256
+# cache_dir ufs @DEFAULT_SWAP_DIR@ 100 16 256
 NOCOMMENT_END
 DOC_END
 
@@ -2291,7 +2284,7 @@
 NAME: access_log cache_access_log
 TYPE: access_log
 LOC: Config.Log.accesslogs
-DEFAULT: none
+DEFAULT: @DEFAULT_ACCESS_LOG@ squid
 DOC_START
         These files log client request activities. Has a line every HTTP or
         ICP request. The format is:
@@ -2314,9 +2307,9 @@
 
         And priority could be any of:
         err, warning, notice, info, debug.
-NOCOMMENT_START
-access_log @DEFAULT_ACCESS_LOG@ squid
-NOCOMMENT_END
+
+ Default:
+ access_log @DEFAULT_ACCESS_LOG@ squid
 DOC_END
 
 NAME: log_access
@@ -2342,14 +2335,17 @@
 
 NAME: cache_store_log
 TYPE: string
-DEFAULT: @DEFAULT_STORE_LOG@
+DEFAULT: none
 LOC: Config.Log.store
 DOC_START
         Logs the activities of the storage manager. Shows which
         objects are ejected from the cache, and which objects are
- saved and for how long. To disable, enter "none". There are
- not really utilities to analyze this data, so you can safely
+ saved and for how long. To disable, enter "none" or remove the line.
+ There are not really utilities to analyze this data, so you can safely
         disable it.
+NOCOMMENT_START
+# cache_store_log @DEFAULT_STORE_LOG@
+NOCOMMENT_END
 DOC_END
 
 NAME: cache_swap_state cache_swap_log
@@ -3085,7 +3081,7 @@
 NAME: request_header_max_size
 COMMENT: (KB)
 TYPE: b_size_t
-DEFAULT: 20 KB
+DEFAULT: 64 KB
 LOC: Config.maxRequestHeaderSize
 DOC_START
         This specifies the maximum size for HTTP headers in a request.
@@ -3098,7 +3094,7 @@
 NAME: reply_header_max_size
 COMMENT: (KB)
 TYPE: b_size_t
-DEFAULT: 20 KB
+DEFAULT: 64 KB
 LOC: Config.maxReplyHeaderSize
 DOC_START
         This specifies the maximum size for HTTP headers in a reply.
@@ -3961,7 +3957,18 @@
 LOC: Config.Wccp.router
 DEFAULT: 0.0.0.0
 IFDEF: USE_WCCP
-DOC_NONE
+DOC_START
+ Use this option to define your WCCP ``home'' router for
+ Squid.
+
+ wccp_router supports a single WCCP(v1) router
+
+ wccp2_router supports multiple WCCPv2 routers
+
+ only one of the two may be used at the same time and defines
+ which version of WCCP to use.
+DOC_END
+
 NAME: wccp2_router
 TYPE: IPAddress_list
 LOC: Config.Wccp2.router
@@ -4008,33 +4015,33 @@
 DOC_END
 
 NAME: wccp2_forwarding_method
-TYPE: int
+TYPE: wccp2_method
 LOC: Config.Wccp2.forwarding_method
-DEFAULT: 1
+DEFAULT: gre_hash
 IFDEF: USE_WCCPv2
 DOC_START
         WCCP2 allows the setting of forwarding methods between the
         router/switch and the cache. Valid values are as follows:
 
- 1 - GRE encapsulation (forward the packet in a GRE/WCCP tunnel)
- 2 - L2 redirect (forward the packet using Layer 2/MAC rewriting)
+ gre_hash - GRE encapsulation (forward the packet in a GRE/WCCP tunnel)
+ l2_mask - L2 redirect (forward the packet using Layer 2/MAC rewriting)
 
         Currently (as of IOS 12.4) cisco routers only support GRE.
         Cisco switches only support the L2 redirect assignment method.
 DOC_END
 
 NAME: wccp2_return_method
-TYPE: int
+TYPE: wccp2_method
 LOC: Config.Wccp2.return_method
-DEFAULT: 1
+DEFAULT: gre_hash
 IFDEF: USE_WCCPv2
 DOC_START
         WCCP2 allows the setting of return methods between the
         router/switch and the cache for packets that the cache
         decides not to handle. Valid values are as follows:
 
- 1 - GRE encapsulation (forward the packet in a GRE/WCCP tunnel)
- 2 - L2 redirect (forward the packet using Layer 2/MAC rewriting)
+ gre_hash - GRE encapsulation (forward the packet in a GRE/WCCP tunnel)
+ l2_mask - L2 redirect (forward the packet using Layer 2/MAC rewriting)
 
         Currently (as of IOS 12.4) cisco routers only support GRE.
         Cisco switches only support the L2 redirect assignment.
@@ -4046,16 +4053,16 @@
 DOC_END
 
 NAME: wccp2_assignment_method
-TYPE: int
+TYPE: wccp2_method
 LOC: Config.Wccp2.assignment_method
-DEFAULT: 1
+DEFAULT: gre_hash
 IFDEF: USE_WCCPv2
 DOC_START
         WCCP2 allows the setting of methods to assign the WCCP hash
         Valid values are as follows:
 
- 1 - Hash assignment
- 2 - Mask assignment
+ gre_hash - Hash assignment
+ l2_mask - Mask assignment
 
         As a general rule, cisco routers support the hash assignment method
         and cisco switches support the mask assignment method.
@@ -4087,7 +4094,6 @@
         wccp2_service dynamic 80 # a dynamic service type which will be
                                         # fleshed out with subsequent options.
         wccp2_service standard 0 password=foo
-
 DOC_END
 
 NAME: wccp2_service_info
@@ -4138,6 +4144,7 @@
 DEFAULT: 0.0.0.0
 IFDEF: USE_WCCP
 DOC_NONE
+
 NAME: wccp2_address
 TYPE: address
 LOC: Config.Wccp2.address
@@ -4315,13 +4322,14 @@
 DEFAULT: 0.0.0.0
 IFDEF: SQUID_SNMP
 DOC_NONE
+
 NAME: snmp_outgoing_address
 TYPE: address
 LOC: Config.Addrs.snmp_outgoing
 DEFAULT: 255.255.255.255
 IFDEF: SQUID_SNMP
 DOC_START
- Just like 'udp_incoming_address' above, but for the SNMP port.
+ Just like 'udp_incoming_address', but for the SNMP port.
 
         snmp_incoming_address is used for the SNMP socket receiving
                                 messages from SNMP agents.
@@ -4354,7 +4362,7 @@
         and from neighbor caches. The standard UDP port for ICP is 3130.
         Default is disabled (0).
 NOCOMMENT_START
-icp_port @DEFAULT_ICP_PORT@
+#icp_port @DEFAULT_ICP_PORT@
 NOCOMMENT_END
 DOC_END
 

=== modified file 'src/protos.h'
--- src/protos.h 2008-09-03 04:40:31 +0000
+++ src/protos.h 2008-09-10 15:22:08 +0000
@@ -813,10 +813,13 @@
 SQUIDCEXTERN char *strtokFile(void);
 
 #if USE_WCCPv2
+
+SQUIDCEXTERN void parse_wccp2_method(int *v);
+SQUIDCEXTERN void free_wccp2_method(int *v);
+SQUIDCEXTERN void dump_wccp2_method(StoreEntry * e, const char *label, int v);
+
 SQUIDCEXTERN void parse_wccp2_service(void *v);
-
 SQUIDCEXTERN void free_wccp2_service(void *v);
-
 SQUIDCEXTERN void dump_wccp2_service(StoreEntry * e, const char *label, void *v);
 
 SQUIDCEXTERN int check_null_wccp2_service(void *v);

=== modified file 'src/wccp2.cc'
--- src/wccp2.cc 2008-08-13 03:24:57 +0000
+++ src/wccp2.cc 2008-09-10 15:47:36 +0000
@@ -109,14 +109,17 @@
 #define WCCP2_CAPABILITY_ASSIGNMENT_METHOD 0x02
 #define WCCP2_CAPABILITY_RETURN_METHOD 0x03
 
-#define WCCP2_FORWARDING_METHOD_GRE 0x00000001
-#define WCCP2_FORWARDING_METHOD_L2 0x00000002
-
-#define WCCP2_ASSIGNMENT_METHOD_HASH 0x00000001
-#define WCCP2_ASSIGNMENT_METHOD_MASK 0x00000002
-
-#define WCCP2_PACKET_RETURN_METHOD_GRE 0x00000001
-#define WCCP2_PACKET_RETURN_METHOD_L2 0x00000002
+#define WCCP2_METHOD_GRE 0x00000001
+#define WCCP2_METHOD_L2 0x00000002
+
+#define WCCP2_FORWARDING_METHOD_GRE WCCP2_METHOD_GRE
+#define WCCP2_FORWARDING_METHOD_L2 WCCP2_METHOD_L2
+
+#define WCCP2_ASSIGNMENT_METHOD_HASH WCCP2_METHOD_GRE
+#define WCCP2_ASSIGNMENT_METHOD_MASK WCCP2_METHOD_L2
+
+#define WCCP2_PACKET_RETURN_METHOD_GRE WCCP2_METHOD_GRE
+#define WCCP2_PACKET_RETURN_METHOD_L2 WCCP2_METHOD_L2
 
 #define WCCP2_HASH_ASSIGNMENT 0x00
 #define WCCP2_MASK_ASSIGNMENT 0x01
@@ -1989,6 +1992,54 @@
  * Configuration option parsing code
  */
 
+/**
+ * Parse wccp2_return_method and wccp2_forwarding_method options
+ * they can be '1' aka 'gre_hash' or '2' aka 'l2_mask'
+ * repesenting the integer numeric of the same.
+ */
+void
+parse_wccp2_method(int *method)
+{
+ char *t;
+
+ /* Snarf the method */
+ if ((t = strtok(NULL, w_space)) == NULL) {
+ debugs(80, DBG_CRITICAL, "wccp2_*_method: missing setting.");
+ self_destruct();
+ }
+
+ /* update configuration if its valid */
+ if (strcmp(t, "gre_hash") == 0 || strcmp(t, "1") == 0) {
+ *method = WCCP2_METHOD_GRE;
+ } else if (strcmp(t, "l2_mask") == 0 || strcmp(t, "2") == 0) {
+ *method = WCCP2_METHOD_L2;
+ } else {
+ debugs(80, DBG_CRITICAL, "wccp2_*_method: unknown setting, got " << t );
+ self_destruct();
+ }
+}
+
+void
+dump_wccp2_method(StoreEntry * e, const char *label, int v)
+{
+ switch(v)
+ {
+ case 1:
+ storeAppendPrintf(e, "%s gre_hash\n", label);
+ break;
+ case 2:
+ storeAppendPrintf(e, "%s l2_mask\n", label);
+ break;
+ default:
+ debugs(80, DBG_CRITICAL, "FATAL: WCCPv2 configured method (" << v << ") is not valid.");
+ self_destruct();
+ }
+}
+
+void
+free_wccp2_method(int *v)
+{ }
+
 /*
  * Format:
  *

# Begin bundle
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
aOJvWvPwbyf5hCJkaP/xdyRThQkLkA02sA==
Received on Wed Sep 10 2008 - 15:55:53 MDT

This archive was generated by hypermail 2.2.0 : Thu Sep 11 2008 - 12:00:12 MDT