XRootD
XrdClConstants.hh
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 // Copyright (c) 2011-2012 by European Organization for Nuclear Research (CERN)
3 // Author: Lukasz Janyst <ljanyst@cern.ch>
4 //------------------------------------------------------------------------------
5 // XRootD is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // XRootD is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public License
16 // along with XRootD. If not, see <http://www.gnu.org/licenses/>.
17 //------------------------------------------------------------------------------
18 
19 #ifndef __XRD_CL_CONSTANTS_HH__
20 #define __XRD_CL_CONSTANTS_HH__
21 
22 #include <cstdint>
23 #include <unordered_map>
24 #include <string>
25 #include <algorithm>
26 
27 namespace XrdCl
28 {
29  //----------------------------------------------------------------------------
30  // Log message types
31  //----------------------------------------------------------------------------
32  const uint64_t AppMsg = 0x0000000000000001ULL;
33  const uint64_t UtilityMsg = 0x0000000000000002ULL;
34  const uint64_t FileMsg = 0x0000000000000004ULL;
35  const uint64_t PollerMsg = 0x0000000000000008ULL;
36  const uint64_t PostMasterMsg = 0x0000000000000010ULL;
37  const uint64_t XRootDTransportMsg = 0x0000000000000020ULL;
38  const uint64_t TaskMgrMsg = 0x0000000000000040ULL;
39  const uint64_t XRootDMsg = 0x0000000000000080ULL;
40  const uint64_t FileSystemMsg = 0x0000000000000100ULL;
41  const uint64_t AsyncSockMsg = 0x0000000000000200ULL;
42  const uint64_t JobMgrMsg = 0x0000000000000400ULL;
43  const uint64_t PlugInMgrMsg = 0x0000000000000800ULL;
44  const uint64_t ExDbgMsg = 0x0000000000001000ULL; //special type debugging extra-hard problems
45  const uint64_t TlsMsg = 0x0000000000002000ULL;
46  const uint64_t ZipMsg = 0x0000000000004000ULL;
47 
48  //----------------------------------------------------------------------------
49  // Environment settings
50  //----------------------------------------------------------------------------
52  const int DefaultConnectionWindow = 120;
53  const int DefaultConnectionRetry = 5;
54  const int DefaultRequestTimeout = 1800;
55  const int DefaultStreamTimeout = 60;
56  const int DefaultTimeoutResolution = 15;
57  const int DefaultStreamErrorWindow = 1800;
58  const int DefaultRunForkHandler = 1;
59  const int DefaultRedirectLimit = 16;
60  const int DefaultWorkerThreads = 3;
61  const int DefaultCPChunkSize = 8388608;
62  const int DefaultCPParallelChunks = 4;
63  const int DefaultDataServerTTL = 300;
64  const int DefaultLoadBalancerTTL = 1200;
65  const int DefaultCPInitTimeout = 600;
66  const int DefaultCPTPCTimeout = 1800;
67  const int DefaultCPTimeout = 0;
68  const int DefaultTCPKeepAlive = 0;
69  const int DefaultTCPKeepAliveTime = 7200;
72  const int DefaultMultiProtocol = 0;
73  const int DefaultParallelEvtLoop = 10;
75  const int DefaultLocalMetalinkFile = 0;
76  const int DefaultXRateThreshold = 0;
77  const int DefaultXCpBlockSize = 134217728; // DefaultCPChunkSize * DefaultCPParallelChunks * 2
78 #ifdef __APPLE__
79  // we don't have corking on osx so we cannot turn of nagle
80  const int DefaultNoDelay = 0;
81 #else
82  const int DefaultNoDelay = 1;
83 #endif
84  const int DefaultAioSignal = 0;
85  const int DefaultPreferIPv4 = 0;
86  const int DefaultMaxMetalinkWait = 60;
89  const int DefaultPreserveXAttrs = 0;
90  const int DefaultNoTlsOK = 0;
91  const int DefaultTlsNoData = 0;
92  const int DefaultTlsMetalink = 0;
93  const int DefaultZipMtlnCksum = 0;
94  const int DefaultIPNoShuffle = 0;
95  const int DefaultWantTlsOnNoPgrw = 0;
96  const int DefaultRetryWrtAtLBLimit = 3;
97  const int DefaultCpRetry = 0;
98  const int DefaultCpUsePgWrtRd = 1;
99 
100  const char * const DefaultPollerPreference = "built-in";
101  const char * const DefaultNetworkStack = "IPAuto";
102  const char * const DefaultClientMonitor = "";
103  const char * const DefaultClientMonitorParam = "";
104  const char * const DefaultPlugInConfDir = "";
105  const char * const DefaultPlugIn = "";
106  const char * const DefaultReadRecovery = "true";
107  const char * const DefaultWriteRecovery = "true";
108  const char * const DefaultOpenRecovery = "true";
109  const char * const DefaultGlfnRedirector = "";
110  const char * const DefaultTlsDbgLvl = "OFF";
111  const char * const DefaultClConfDir = "";
112  const char * const DefaultClConfFile = "";
113  const char * const DefaultCpTarget = "";
114  const char * const DefaultCpRetryPolicy = "force";
115 
116  inline static std::string to_lower( std::string str )
117  {
118  std::transform( str.begin(), str.end(), str.begin(), ::tolower );
119  return str;
120  }
121 
122  static std::unordered_map<std::string, int> theDefaultInts
123  {
124  { to_lower( "SubStreamsPerChannel" ), DefaultSubStreamsPerChannel },
125  { to_lower( "ConnectionWindow" ), DefaultConnectionWindow },
126  { to_lower( "ConnectionRetry" ), DefaultConnectionRetry },
127  { to_lower( "RequestTimeout" ), DefaultRequestTimeout },
128  { to_lower( "StreamTimeout" ), DefaultStreamTimeout },
129  { to_lower( "TimeoutResolution" ), DefaultTimeoutResolution },
130  { to_lower( "StreamErrorWindow" ), DefaultStreamErrorWindow },
131  { to_lower( "RunForkHandler" ), DefaultRunForkHandler },
132  { to_lower( "RedirectLimit" ), DefaultRedirectLimit },
133  { to_lower( "WorkerThreads" ), DefaultWorkerThreads },
134  { to_lower( "CPChunkSize" ), DefaultCPChunkSize },
135  { to_lower( "CPParallelChunks" ), DefaultCPParallelChunks },
136  { to_lower( "DataServerTTL" ), DefaultDataServerTTL },
137  { to_lower( "LoadBalancerTTL" ), DefaultLoadBalancerTTL },
138  { to_lower( "CPInitTimeout" ), DefaultCPInitTimeout },
139  { to_lower( "CPTPCTimeout" ), DefaultCPTPCTimeout },
140  { to_lower( "CPTimeout" ), DefaultCPTimeout },
141  { to_lower( "TCPKeepAlive" ), DefaultTCPKeepAlive },
142  { to_lower( "TCPKeepAliveTime" ), DefaultTCPKeepAliveTime },
143  { to_lower( "TCPKeepAliveInterval" ), DefaultTCPKeepAliveInterval },
144  { to_lower( "TCPKeepAliveProbes" ), DefaultTCPKeepAliveProbes },
145  { to_lower( "MultiProtocol" ), DefaultMultiProtocol },
146  { to_lower( "ParallelEvtLoop" ), DefaultParallelEvtLoop },
147  { to_lower( "MetalinkProcessing" ), DefaultMetalinkProcessing },
148  { to_lower( "LocalMetalinkFile" ), DefaultLocalMetalinkFile },
149  { to_lower( "XRateThreshold" ), DefaultXRateThreshold },
150  { to_lower( "XCpBlockSize" ), DefaultXCpBlockSize },
151  { to_lower( "NoDelay" ), DefaultNoDelay },
152  { to_lower( "AioSignal" ), DefaultAioSignal },
153  { to_lower( "PreferIPv4" ), DefaultPreferIPv4 },
154  { to_lower( "MaxMetalinkWait" ), DefaultMaxMetalinkWait },
155  { to_lower( "PreserveLocateTried" ), DefaultPreserveLocateTried },
156  { to_lower( "NotAuthorizedRetryLimit" ), DefaultNotAuthorizedRetryLimit },
157  { to_lower( "PreserveXAttrs" ), DefaultPreserveXAttrs },
158  { to_lower( "NoTlsOK" ), DefaultNoTlsOK },
159  { to_lower( "TlsNoData" ), DefaultTlsNoData },
160  { to_lower( "TlsMetalink" ), DefaultTlsMetalink },
161  { to_lower( "ZipMtlnCksum" ), DefaultZipMtlnCksum },
162  { to_lower( "IPNoShuffle" ), DefaultIPNoShuffle },
163  { to_lower( "WantTlsOnNoPgrw" ), DefaultWantTlsOnNoPgrw },
164  { to_lower( "RetryWrtAtLBLimit" ), DefaultRetryWrtAtLBLimit }
165  };
166 
167  static std::unordered_map<std::string, std::string> theDefaultStrs
168  {
169  { to_lower( "PollerPreference" ), DefaultPollerPreference },
170  { to_lower( "NetworkStack" ), DefaultNetworkStack },
171  { to_lower( "ClientMonitor" ), DefaultClientMonitor },
172  { to_lower( "ClientMonitorParam" ), DefaultClientMonitorParam },
173  { to_lower( "PlugInConfDir" ), DefaultPlugInConfDir },
174  { to_lower( "PlugIn" ), DefaultPlugIn },
175  { to_lower( "ReadRecovery" ), DefaultReadRecovery },
176  { to_lower( "WriteRecovery" ), DefaultWriteRecovery },
177  { to_lower( "OpenRecovery" ), DefaultOpenRecovery },
178  { to_lower( "GlfnRedirector" ), DefaultGlfnRedirector },
179  { to_lower( "TlsDbgLvl" ), DefaultTlsDbgLvl },
180  { to_lower( "ClConfDir" ), DefaultClConfDir },
181  { to_lower( "DefaultClConfFile" ), DefaultClConfFile },
182  { to_lower( "CpTarget" ), DefaultCpTarget }
183  };
184 }
185 
186 #endif // __XRD_CL_CONSTANTS_HH__
const int DefaultPreserveLocateTried
const int DefaultRunForkHandler
const char *const DefaultClConfFile
const int DefaultRedirectLimit
const int DefaultCPInitTimeout
const int DefaultXRateThreshold
const int DefaultLoadBalancerTTL
const uint64_t XRootDTransportMsg
const int DefaultMaxMetalinkWait
const char *const DefaultCpTarget
const int DefaultTCPKeepAliveProbes
const int DefaultCPChunkSize
const char *const DefaultClConfDir
const char *const DefaultClientMonitorParam
const uint64_t AppMsg
const uint64_t PollerMsg
const int DefaultRetryWrtAtLBLimit
const uint64_t PostMasterMsg
const int DefaultWantTlsOnNoPgrw
const char *const DefaultOpenRecovery
const uint64_t ZipMsg
const int DefaultStreamErrorWindow
const char *const DefaultPlugIn
const uint64_t XRootDMsg
const int DefaultMultiProtocol
const int DefaultConnectionRetry
const int DefaultIPNoShuffle
const int DefaultSubStreamsPerChannel
const int DefaultConnectionWindow
const uint64_t FileMsg
const int DefaultDataServerTTL
const uint64_t ExDbgMsg
const int DefaultCPParallelChunks
const int DefaultTlsMetalink
const char *const DefaultPollerPreference
const int DefaultTimeoutResolution
const char *const DefaultNetworkStack
const int DefaultStreamTimeout
const int DefaultLocalMetalinkFile
const int DefaultCpUsePgWrtRd
const int DefaultMetalinkProcessing
const uint64_t AsyncSockMsg
static std::string to_lower(std::string str)
const char *const DefaultPlugInConfDir
const int DefaultTCPKeepAliveInterval
const int DefaultXCpBlockSize
const uint64_t PlugInMgrMsg
const uint64_t UtilityMsg
const char *const DefaultReadRecovery
const int DefaultCPTimeout
const uint64_t TlsMsg
const int DefaultTCPKeepAlive
const int DefaultCpRetry
const int DefaultRequestTimeout
const int DefaultTCPKeepAliveTime
const int DefaultPreserveXAttrs
const int DefaultPreferIPv4
const char *const DefaultWriteRecovery
const char *const DefaultGlfnRedirector
const uint64_t TaskMgrMsg
const char *const DefaultCpRetryPolicy
static std::unordered_map< std::string, std::string > theDefaultStrs
const int DefaultNotAuthorizedRetryLimit
const int DefaultWorkerThreads
const uint64_t FileSystemMsg
const int DefaultAioSignal
const int DefaultCPTPCTimeout
const int DefaultNoDelay
const int DefaultTlsNoData
const char *const DefaultTlsDbgLvl
const int DefaultNoTlsOK
const uint64_t JobMgrMsg
static std::unordered_map< std::string, int > theDefaultInts
const char *const DefaultClientMonitor
const int DefaultParallelEvtLoop
const int DefaultZipMtlnCksum