GRPC Core  58.0.0
channel_arg_names.h
Go to the documentation of this file.
1 // Copyright 2023 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 #ifndef GRPC_IMPL_CHANNEL_ARG_NAMES_H
16 #define GRPC_IMPL_CHANNEL_ARG_NAMES_H
17 
18 // IWYU pragma: private, include <grpc/grpc.h>
19 // IWYU pragma: friend "src/.*"
20 // IWYU pragma: friend "test/.*"
21 
27 #define GRPC_ARG_ENABLE_CENSUS "grpc.census"
28 
29 #define GRPC_ARG_ENABLE_LOAD_REPORTING "grpc.loadreporting"
30 
31 #define GRPC_ARG_SERVER_CALL_METRIC_RECORDING \
32  "grpc.server_call_metric_recording"
33 
36 #define GRPC_ARG_MINIMAL_STACK "grpc.minimal_stack"
37 
39 #define GRPC_ARG_MAX_CONCURRENT_STREAMS "grpc.max_concurrent_streams"
40 
43 #define GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH "grpc.max_receive_message_length"
44 
46 #define GRPC_ARG_MAX_MESSAGE_LENGTH GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH
47 
49 #define GRPC_ARG_MAX_SEND_MESSAGE_LENGTH "grpc.max_send_message_length"
50 
53 #define GRPC_ARG_MAX_CONNECTION_IDLE_MS "grpc.max_connection_idle_ms"
54 
58 #define GRPC_ARG_MAX_CONNECTION_AGE_MS "grpc.max_connection_age_ms"
59 
61 #define GRPC_ARG_MAX_CONNECTION_AGE_GRACE_MS "grpc.max_connection_age_grace_ms"
62 
65 #define GRPC_ARG_CLIENT_IDLE_TIMEOUT_MS "grpc.client_idle_timeout_ms"
66 
69 #define GRPC_ARG_ENABLE_PER_MESSAGE_COMPRESSION "grpc.per_message_compression"
70 
73 #define GRPC_ARG_ENABLE_PER_MESSAGE_DECOMPRESSION \
74  "grpc.per_message_decompression"
75 
77 #define GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER \
78  "grpc.http2.initial_sequence_number"
79 
83 #define GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES "grpc.http2.lookahead_bytes"
84 
86 #define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER \
87  "grpc.http2.hpack_table_size.decoder"
88 
90 #define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER \
91  "grpc.http2.hpack_table_size.encoder"
92 
97 #define GRPC_ARG_HTTP2_MAX_FRAME_SIZE "grpc.http2.max_frame_size"
98 
100 #define GRPC_ARG_HTTP2_BDP_PROBE "grpc.http2.bdp_probe"
101 
110 #define GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS \
111  "grpc.http2.min_time_between_pings_ms"
112 
115 #define GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS \
116  "grpc.http2.min_ping_interval_without_data_ms"
117 
121 #define GRPC_ARG_SERVER_MAX_UNREQUESTED_TIME_IN_SERVER_SECONDS \
122  "grpc.server_max_unrequested_time_in_server"
123 
130 #define GRPC_ARG_SERVER_MAX_PENDING_REQUESTS "grpc.server.max_pending_requests"
131 
137 #define GRPC_ARG_SERVER_MAX_PENDING_REQUESTS_HARD_LIMIT \
138  "grpc.server.max_pending_requests_hard_limit"
139 
142 #define GRPC_ARG_CHILD_CHANNEL_ARGS "grpc.child_channel.args"
143 
144 #define GRPC_ARG_HTTP2_SCHEME "grpc.http2_scheme"
145 
149 #define GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA \
150  "grpc.http2.max_pings_without_data"
151 
155 #define GRPC_ARG_HTTP2_MAX_PING_STRIKES "grpc.http2.max_ping_strikes"
156 
159 #define GRPC_ARG_HTTP2_WRITE_BUFFER_SIZE "grpc.http2.write_buffer_size"
160 
162 #define GRPC_ARG_HTTP2_ENABLE_TRUE_BINARY "grpc.http2.true_binary"
163 
168 #define GRPC_ARG_EXPERIMENTAL_HTTP2_PREFERRED_CRYPTO_FRAME_SIZE \
169  "grpc.experimental.http2.enable_preferred_frame_size"
170 
173 #define GRPC_ARG_KEEPALIVE_TIME_MS "grpc.keepalive_time_ms"
174 
177 #define GRPC_ARG_KEEPALIVE_TIMEOUT_MS "grpc.keepalive_timeout_ms"
178 
180 #define GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS \
181  "grpc.keepalive_permit_without_calls"
182 
184 #define GRPC_ARG_DEFAULT_AUTHORITY "grpc.default_authority"
185 
187 #define GRPC_ARG_PRIMARY_USER_AGENT_STRING "grpc.primary_user_agent"
188 
190 #define GRPC_ARG_SECONDARY_USER_AGENT_STRING "grpc.secondary_user_agent"
191 
195 #define GRPC_ARG_MIN_RECONNECT_BACKOFF_MS "grpc.min_reconnect_backoff_ms"
196 
200 #define GRPC_ARG_MAX_RECONNECT_BACKOFF_MS "grpc.max_reconnect_backoff_ms"
201 
205 #define GRPC_ARG_INITIAL_RECONNECT_BACKOFF_MS \
206  "grpc.initial_reconnect_backoff_ms"
207 
209 #define GRPC_ARG_DNS_MIN_TIME_BETWEEN_RESOLUTIONS_MS \
210  "grpc.dns_min_time_between_resolutions_ms"
211 
213 #define GRPC_ARG_SERVER_HANDSHAKE_TIMEOUT_MS "grpc.server_handshake_timeout_ms"
214 
221 #define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG "grpc.ssl_target_name_override"
222 
225 #define GRPC_SSL_SESSION_CACHE_ARG "grpc.ssl_session_cache"
226 
229 #define GRPC_ARG_TSI_MAX_FRAME_SIZE "grpc.tsi.max_frame_size"
230 
236 #define GRPC_ARG_MAX_METADATA_SIZE "grpc.max_metadata_size"
237 
241 #define GRPC_ARG_ABSOLUTE_MAX_METADATA_SIZE "grpc.absolute_max_metadata_size"
242 
243 #define GRPC_ARG_ALLOW_REUSEPORT "grpc.so_reuseport"
244 
247 #define GRPC_ARG_RESOURCE_QUOTA "grpc.resource_quota"
248 
250 #define GRPC_ARG_EXPAND_WILDCARD_ADDRS "grpc.expand_wildcard_addrs"
251 
254 #define GRPC_ARG_SERVICE_CONFIG "grpc.service_config"
255 
257 #define GRPC_ARG_SERVICE_CONFIG_DISABLE_RESOLUTION \
258  "grpc.service_config_disable_resolution"
259 
260 #define GRPC_ARG_LB_POLICY_NAME "grpc.lb_policy_name"
261 
264 #define GRPC_ARG_RING_HASH_LB_RING_SIZE_CAP "grpc.lb.ring_hash.ring_size_cap"
265 
266 #define GRPC_ARG_SOCKET_MUTATOR "grpc.socket_mutator"
267 
268 #define GRPC_ARG_SOCKET_FACTORY "grpc.socket_factory"
269 
273 #define GRPC_ARG_MAX_CHANNEL_TRACE_EVENT_MEMORY_PER_NODE \
274  "grpc.max_channel_trace_event_memory_per_node"
275 
278 #define GRPC_ARG_ENABLE_CHANNELZ "grpc.enable_channelz"
279 
282 #define GRPC_ARG_TCP_READ_CHUNK_SIZE "grpc.experimental.tcp_read_chunk_size"
283 
286 #define GRPC_TCP_DEFAULT_READ_SLICE_SIZE 8192
287 
289 #define GRPC_ARG_TCP_MIN_READ_CHUNK_SIZE \
290  "grpc.experimental.tcp_min_read_chunk_size"
291 #define GRPC_ARG_TCP_MAX_READ_CHUNK_SIZE \
292  "grpc.experimental.tcp_max_read_chunk_size"
293 
300 #define GRPC_ARG_TCP_MAX_READ_BUFFER_SIZE \
301  "grpc.experimental.tcp_max_read_buffer_size"
302 /* TCP TX Zerocopy enable state: zero is disabled, non-zero is enabled. By
303  default, it is disabled. */
304 #define GRPC_ARG_TCP_TX_ZEROCOPY_ENABLED \
305  "grpc.experimental.tcp_tx_zerocopy_enabled"
306 /* TCP TX Zerocopy send threshold: only zerocopy if >= this many bytes sent. By
307  default, this is set to 16KB. */
308 #define GRPC_ARG_TCP_TX_ZEROCOPY_SEND_BYTES_THRESHOLD \
309  "grpc.experimental.tcp_tx_zerocopy_send_bytes_threshold"
310 /* TCP TX Zerocopy max simultaneous sends: limit for maximum number of pending
311  calls to tcp_write() using zerocopy. A tcp_write() is considered pending
312  until the kernel performs the zerocopy-done callback for all sendmsg() calls
313  issued by the tcp_write(). By default, this is set to 4. */
314 #define GRPC_ARG_TCP_TX_ZEROCOPY_MAX_SIMULT_SENDS \
315  "grpc.experimental.tcp_tx_zerocopy_max_simultaneous_sends"
316 /* Overrides the TCP socket receive buffer size, SO_RCVBUF.
317  Default value is -1(kReadBufferSizeUnset) indicating that the system will
318  decide the buffer size. Range varies from 0 to INT_MAX. */
319 #define GRPC_ARG_TCP_RECEIVE_BUFFER_SIZE "grpc.tcp_receive_buffer_size"
320 /* Timeout in milliseconds to use for calls to the grpclb load balancer.
321  If 0 or unset, the balancer calls will have no deadline. Defaults to 0 ms. */
322 #define GRPC_ARG_GRPCLB_CALL_TIMEOUT_MS "grpc.grpclb_call_timeout_ms"
323 /* Specifies the xDS bootstrap config as a JSON string.
324  FOR TESTING PURPOSES ONLY -- DO NOT USE IN PRODUCTION.
325  This option allows controlling the bootstrap configuration on a
326  per-channel basis, which is useful in tests. However, this results
327  in having a separate xDS client instance per channel rather than
328  using the global instance, which is not the intended way to use xDS.
329  Currently, this will (a) add unnecessary load on the xDS server and
330  (b) break use of CSDS, and there may be additional side effects in
331  the future. */
332 #define GRPC_ARG_TEST_ONLY_DO_NOT_USE_IN_PROD_XDS_BOOTSTRAP_CONFIG \
333  "grpc.TEST_ONLY_DO_NOT_USE_IN_PROD.xds_bootstrap_config"
334 /* Timeout in milliseconds to wait for the serverlist from the grpclb load
335  balancer before using fallback backend addresses from the resolver.
336  If 0, enter fallback mode immediately. Default value is 10000ms. */
337 #define GRPC_ARG_GRPCLB_FALLBACK_TIMEOUT_MS "grpc.grpclb_fallback_timeout_ms"
338 /* Experimental Arg. Channel args to be used for the control-plane channel
339  * created to the grpclb load balancers. This is a pointer arg whose value is a
340  * grpc_channel_args object. If unset, most channel args from the parent channel
341  * will be propagated to the grpclb channel. */
342 #define GRPC_ARG_EXPERIMENTAL_GRPCLB_CHANNEL_ARGS \
343  "grpc.experimental.grpclb_channel_args"
344 /* Timeout in milliseconds to wait for the child of a specific priority to
345  complete its initial connection attempt before the priority LB policy fails
346  over to the next priority. Default value is 10 seconds. */
347 #define GRPC_ARG_PRIORITY_FAILOVER_TIMEOUT_MS \
348  "grpc.priority_failover_timeout_ms"
349 
356 #define GRPC_ARG_OPTIMIZATION_TARGET "grpc.optimization_target"
357 
366 #define GRPC_ARG_ENABLE_RETRIES "grpc.enable_retries"
367 
375 #define GRPC_ARG_EXPERIMENTAL_ENABLE_HEDGING "grpc.experimental.enable_hedging"
376 
377 #define GRPC_ARG_PER_RPC_RETRY_BUFFER_SIZE "grpc.per_rpc_retry_buffer_size"
378 
380 #define GRPC_ARG_MOBILE_LOG_CONTEXT "grpc.mobile_log_context"
381 
383 #define GRPC_ARG_DISABLE_CLIENT_AUTHORITY_FILTER \
384  "grpc.disable_client_authority_filter"
385 
386 #define GRPC_ARG_ENABLE_HTTP_PROXY "grpc.enable_http_proxy"
387 
390 #define GRPC_ARG_HTTP_PROXY "grpc.http_proxy"
391 
395 #define GRPC_ARG_ADDRESS_HTTP_PROXY "grpc.address_http_proxy"
396 
399 #define GRPC_ARG_ADDRESS_HTTP_PROXY_ENABLED_ADDRESSES \
400  "grpc.address_http_proxy_enabled_addresses"
401 
403 #define GRPC_ARG_SURFACE_USER_AGENT "grpc.surface_user_agent"
404 
406 #define GRPC_ARG_INHIBIT_HEALTH_CHECKING "grpc.inhibit_health_checking"
407 
415 #define GRPC_ARG_DNS_ENABLE_SRV_QUERIES "grpc.dns_enable_srv_queries"
416 
419 #define GRPC_ARG_MAX_CONNECTIONS_PER_SUBCHANNEL_CAP \
420  "grpc.max_connections_per_subchannel_cap"
421 
427 #define GRPC_ARG_DNS_ARES_QUERY_TIMEOUT_MS "grpc.dns_ares_query_timeout"
428 
430 #define GRPC_ARG_USE_LOCAL_SUBCHANNEL_POOL "grpc.use_local_subchannel_pool"
431 
432 #define GRPC_ARG_CHANNEL_POOL_DOMAIN "grpc.channel_pooling_domain"
433 
434 #define GRPC_ARG_CHANNEL_ID "grpc.channel_id"
435 
437 #define GRPC_ARG_AUTHORIZATION_POLICY_PROVIDER \
438  "grpc.authorization_policy_provider"
439 
443 #define GRPC_ARG_SERVER_CONFIG_CHANGE_DRAIN_GRACE_TIME_MS \
444  "grpc.experimental.server_config_change_drain_grace_time_ms"
445 
447 #define GRPC_ARG_DSCP "grpc.dscp"
448 
450 #define GRPC_ARG_HAPPY_EYEBALLS_CONNECTION_ATTEMPT_DELAY_MS \
451  "grpc.happy_eyeballs_connection_attempt_delay_ms"
452 
456 #define GRPC_ARG_EVENT_ENGINE "grpc.experimental.event_engine"
457 
460 #define GRPC_ARG_EVENT_ENGINE_USE_MEMORY_ALLOCATOR_FACTORY \
461  "grpc.event_engine_use_memory_allocator_factory"
462 
464 #define GRPC_ARG_MAX_ALLOWED_INCOMING_CONNECTIONS \
465  "grpc.max_allowed_incoming_connections"
466 
467 #define GRPC_ARG_EXPERIMENTAL_STATS_PLUGINS "grpc.experimental.stats_plugins"
468 
469 #define GRPC_ARG_SECURITY_FRAME_ALLOWED "grpc.security_frame_allowed"
470 
472 #define GRPC_ARG_TCP_TRACING_ENABLED "grpc.tcp_tracing_enabled"
473 /* Enable tracing full buffer payloads for TCP telemetry. */
474 #define GRPC_ARG_TCP_TRACE_FULL_BUFFER "grpc.experimental.tcp_trace_full_buffer"
475 
476 #define GRPC_ARG_SERVER_CONFIG_FETCHER "grpc.server_config_fetcher"
477 
481 #define GRPC_ARG_MAX_SECURITY_FRAME_SIZE "grpc.http2.max_security_frame_size"
482 
483 #endif /* GRPC_IMPL_CHANNEL_ARG_NAMES_H */