1# Copyright 2022 gRPC authors.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15# File format:
16#
17# Each config var gets a name, and a type (one of string, int, bool).
18#
19# A default value is provided. Defaults prefixed by '$' are read as expressions,
20# otherwise they're assumed literals.
21# A description field must be present.
22#
23# Optionally, a force-load-on-access: true flag can be added to force checking
24# the environment variables every time the value is queried, to match legacy
25# behavior for some environment variables.
26#
27# Optionally, fuzz: true can be added to enable fuzzers to explore variations
28# in this config var with their regular fuzzing work - or fuzz: FunctionName
29# can be used to specify that the config space be explored, but FunctionName should be called to pre-format/validate the value for fuzzing.
30# Such functions should be listed in fuzz_config_vars_helpers.h.
31
32- name: experiments
33  type: comma_separated_string
34  description:
35    A comma separated list of currently active experiments. Experiments may be
36    prefixed with a '-' to disable them.
37  default:
38  fuzz: ValidateExperimentsStringForFuzzing
39- name: client_channel_backup_poll_interval_ms
40  type: int
41  default: 5000
42  description:
43    Declares the interval in ms between two backup polls on client channels.
44    These polls are run in the timer thread so that gRPC can process
45    connection failures while there is no active polling thread.
46    They help reconnect disconnected client channels (mostly due to
47    idleness), so that the next RPC on this channel won't fail. Set to 0 to
48    turn off the backup polls.
49- name: dns_resolver
50  default:
51  type: string
52  description:
53    Declares which DNS resolver to use. The default is ares if gRPC is built
54    with c-ares support. Otherwise, the value of this environment variable is
55    ignored.
56  fuzz: true
57- name: trace
58  type: comma_separated_string
59  default:
60  description:
61    A comma separated list of tracers that provide additional insight into
62    how gRPC C core is processing requests via debug logs.
63  fuzz: true
64- name: verbosity
65  type: string
66  prelude: |
67    #ifndef GPR_DEFAULT_LOG_VERBOSITY_STRING
68    #define GPR_DEFAULT_LOG_VERBOSITY_STRING "ERROR"
69    #endif  // !GPR_DEFAULT_LOG_VERBOSITY_STRING
70  default: $GPR_DEFAULT_LOG_VERBOSITY_STRING
71  description:
72    Default gRPC logging verbosity
73  fuzz: true
74- name: stacktrace_minloglevel
75  type: string
76  default:
77  description:
78    Messages logged at the same or higher level than this will print stacktrace
79  fuzz: true
80- name: enable_fork_support
81  type: bool
82  description: Enable fork support
83  prelude: |
84    #ifdef GRPC_ENABLE_FORK_SUPPORT
85    #define GRPC_ENABLE_FORK_SUPPORT_DEFAULT true
86    #else
87    #define GRPC_ENABLE_FORK_SUPPORT_DEFAULT false
88    #endif  // GRPC_ENABLE_FORK_SUPPORT
89  default: $GRPC_ENABLE_FORK_SUPPORT_DEFAULT
90  fuzz: true
91- name: poll_strategy
92  type: string
93  description:
94    Declares which polling engines to try when starting gRPC.
95    This is a comma-separated list of engines, which are tried in priority
96    order first -> last.
97  default: all
98- name: abort_on_leaks
99  type: bool
100  default: false
101  description:
102    A debugging aid to cause a call to abort() when gRPC objects are leaked
103    past grpc_shutdown()
104- name: system_ssl_roots_dir
105  type: string
106  default:
107  description: Custom directory to SSL Roots
108  force-load-on-access: true
109- name: default_ssl_roots_file_path
110  type: string
111  default:
112  description: Path to the default SSL roots file.
113  force-load-on-access: true
114- name: not_use_system_ssl_roots
115  type: bool
116  default: false
117  description: Disable loading system root certificates.
118- name: ssl_cipher_suites
119  type: string
120  description: A colon separated list of cipher suites to use with OpenSSL
121  default: "TLS_AES_128_GCM_SHA256:\
122    TLS_AES_256_GCM_SHA384:\
123    TLS_CHACHA20_POLY1305_SHA256:\
124    ECDHE-ECDSA-AES128-GCM-SHA256:\
125    ECDHE-ECDSA-AES256-GCM-SHA384:\
126    ECDHE-RSA-AES128-GCM-SHA256:\
127    ECDHE-RSA-AES256-GCM-SHA384"
128