grpc 1.3.4 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +581 -450
- data/include/grpc/census.h +49 -49
- data/include/grpc/grpc.h +16 -70
- data/include/grpc/grpc_security.h +59 -59
- data/include/grpc/grpc_security_constants.h +9 -9
- data/include/grpc/impl/codegen/atm.h +1 -1
- data/include/grpc/impl/codegen/atm_windows.h +4 -4
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
- data/include/grpc/impl/codegen/compression_types.h +4 -5
- data/include/grpc/impl/codegen/gpr_slice.h +5 -5
- data/include/grpc/impl/codegen/gpr_types.h +6 -7
- data/include/grpc/impl/codegen/grpc_types.h +128 -59
- data/include/grpc/impl/codegen/port_platform.h +6 -0
- data/include/grpc/impl/codegen/propagation_bits.h +2 -2
- data/include/grpc/impl/codegen/slice.h +13 -12
- data/include/grpc/impl/codegen/status.h +23 -18
- data/include/grpc/impl/codegen/sync.h +1 -1
- data/include/grpc/load_reporting.h +6 -6
- data/include/grpc/slice.h +47 -25
- data/include/grpc/slice_buffer.h +18 -14
- data/include/grpc/support/alloc.h +7 -7
- data/include/grpc/support/cmdline.h +10 -10
- data/include/grpc/support/cpu.h +3 -3
- data/include/grpc/support/histogram.h +1 -1
- data/include/grpc/support/host_port.h +2 -2
- data/include/grpc/support/log.h +9 -9
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/string_util.h +3 -3
- data/include/grpc/support/subprocess.h +3 -3
- data/include/grpc/support/sync.h +31 -31
- data/include/grpc/support/thd.h +11 -11
- data/include/grpc/support/time.h +12 -12
- data/include/grpc/support/tls.h +1 -1
- data/include/grpc/support/tls_gcc.h +2 -2
- data/include/grpc/support/tls_msvc.h +1 -1
- data/include/grpc/support/tls_pthread.h +1 -1
- data/include/grpc/support/useful.h +2 -2
- data/include/grpc/support/workaround_list.h +46 -0
- data/src/core/ext/census/context.c +1 -1
- data/src/core/ext/census/intrusive_hash_map.c +319 -0
- data/src/core/ext/census/intrusive_hash_map.h +167 -0
- data/src/core/ext/census/intrusive_hash_map_internal.h +63 -0
- data/src/core/ext/census/resource.c +3 -1
- data/src/core/ext/filters/client_channel/channel_connectivity.c +1 -1
- data/src/core/ext/filters/client_channel/client_channel.c +173 -103
- data/src/core/ext/filters/client_channel/client_channel_plugin.c +3 -2
- data/src/core/ext/filters/client_channel/lb_policy.c +2 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +8 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.c +153 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +42 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.c +405 -102
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.c +133 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +65 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.c +90 -51
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +7 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +19 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +63 -34
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +188 -294
- data/src/core/ext/filters/client_channel/lb_policy_factory.c +28 -5
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +18 -4
- data/src/core/ext/filters/client_channel/parse_address.c +90 -59
- data/src/core/ext/filters/client_channel/parse_address.h +17 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.c +11 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.c +59 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +6 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.c +3 -3
- data/src/core/ext/filters/client_channel/subchannel.c +20 -17
- data/src/core/ext/filters/client_channel/subchannel.h +1 -0
- data/src/core/ext/filters/client_channel/subchannel_index.c +11 -1
- data/src/core/ext/filters/client_channel/uri_parser.c +36 -22
- data/src/core/ext/filters/client_channel/uri_parser.h +1 -1
- data/src/core/{lib/channel → ext/filters/deadline}/deadline_filter.c +42 -17
- data/src/core/{lib/channel → ext/filters/deadline}/deadline_filter.h +8 -9
- data/src/core/{lib/channel → ext/filters/http/client}/http_client_filter.c +19 -11
- data/src/core/{lib/channel → ext/filters/http/client}/http_client_filter.h +3 -6
- data/src/core/ext/filters/http/http_filters_plugin.c +104 -0
- data/src/core/{lib/channel/compress_filter.c → ext/filters/http/message_compress/message_compress_filter.c} +124 -23
- data/src/core/{lib/channel/compress_filter.h → ext/filters/http/message_compress/message_compress_filter.h} +5 -6
- data/src/core/{lib/channel → ext/filters/http/server}/http_server_filter.c +4 -6
- data/src/core/{lib/channel → ext/filters/http/server}/http_server_filter.h +3 -3
- data/src/core/ext/filters/load_reporting/load_reporting.c +2 -25
- data/src/core/ext/filters/load_reporting/load_reporting_filter.c +26 -1
- data/src/core/ext/filters/max_age/max_age_filter.c +14 -14
- data/src/core/{lib/channel → ext/filters/message_size}/message_size_filter.c +91 -47
- data/src/core/{lib/channel → ext/filters/message_size}/message_size_filter.h +3 -3
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.c +223 -0
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +40 -0
- data/src/core/ext/filters/workarounds/workaround_utils.c +65 -0
- data/src/core/ext/filters/workarounds/workaround_utils.h +52 -0
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.c +1 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.c +3 -2
- data/src/core/ext/transport/chttp2/transport/bin_decoder.c +2 -2
- data/src/core/ext/transport/chttp2/transport/bin_encoder.c +3 -3
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.c +319 -175
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.c +203 -164
- data/src/core/ext/transport/chttp2/transport/frame_data.h +8 -14
- data/src/core/ext/transport/chttp2/transport/frame_goaway.c +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.c +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.c +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.c +5 -5
- data/src/core/ext/transport/chttp2/transport/frame_window_update.c +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.c +4 -4
- data/src/core/ext/transport/chttp2/transport/hpack_parser.c +2 -4
- data/src/core/ext/transport/chttp2/transport/hpack_table.c +4 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +50 -33
- data/src/core/ext/transport/chttp2/transport/parsing.c +10 -11
- data/src/core/ext/transport/chttp2/transport/writing.c +32 -13
- data/src/core/lib/channel/channel_args.c +30 -9
- data/src/core/lib/channel/channel_args.h +5 -1
- data/src/core/lib/channel/channel_stack.c +1 -1
- data/src/core/lib/channel/channel_stack.h +2 -2
- data/src/core/lib/channel/channel_stack_builder.c +13 -1
- data/src/core/lib/channel/channel_stack_builder.h +5 -1
- data/src/core/lib/channel/connected_channel.c +3 -1
- data/src/core/lib/channel/context.h +2 -2
- data/src/core/lib/compression/message_compress.c +2 -2
- data/src/core/lib/debug/trace.c +13 -6
- data/src/core/lib/debug/trace.h +27 -1
- data/src/core/lib/http/httpcli.c +1 -1
- data/src/core/lib/http/httpcli_security_connector.c +9 -11
- data/src/core/lib/http/parser.c +2 -2
- data/src/core/lib/http/parser.h +2 -1
- data/src/core/lib/iomgr/combiner.c +6 -6
- data/src/core/lib/iomgr/combiner.h +2 -1
- data/src/core/lib/iomgr/error.c +12 -5
- data/src/core/lib/iomgr/error.h +13 -13
- data/src/core/lib/iomgr/ev_epoll1_linux.c +984 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.h +44 -0
- data/src/core/lib/iomgr/ev_epoll_limited_pollers_linux.c +2146 -0
- data/src/core/lib/iomgr/ev_epoll_limited_pollers_linux.h +43 -0
- data/src/core/lib/iomgr/ev_epoll_thread_pool_linux.c +1337 -0
- data/src/core/lib/iomgr/ev_epoll_thread_pool_linux.h +43 -0
- data/src/core/lib/iomgr/ev_epollex_linux.c +1511 -0
- data/src/core/lib/iomgr/ev_epollex_linux.h +43 -0
- data/src/core/lib/iomgr/{ev_epoll_linux.c → ev_epollsig_linux.c} +41 -33
- data/src/core/lib/iomgr/{ev_epoll_linux.h → ev_epollsig_linux.h} +4 -4
- data/src/core/lib/iomgr/ev_poll_posix.c +12 -27
- data/src/core/lib/iomgr/ev_poll_posix.h +2 -2
- data/src/core/lib/iomgr/ev_posix.c +22 -8
- data/src/core/lib/iomgr/ev_posix.h +4 -3
- data/src/core/lib/iomgr/ev_windows.c +43 -0
- data/src/core/lib/iomgr/exec_ctx.c +5 -0
- data/src/core/lib/iomgr/exec_ctx.h +2 -0
- data/src/core/lib/iomgr/iomgr.c +4 -0
- data/src/core/lib/iomgr/iomgr.h +3 -0
- data/src/core/lib/iomgr/is_epollexclusive_available.c +116 -0
- data/src/core/lib/iomgr/is_epollexclusive_available.h +41 -0
- data/src/core/lib/iomgr/lockfree_event.c +16 -0
- data/src/core/lib/iomgr/pollset.h +2 -5
- data/src/core/lib/iomgr/pollset_uv.c +1 -1
- data/src/core/lib/iomgr/pollset_windows.c +3 -3
- data/src/core/lib/iomgr/resource_quota.c +9 -8
- data/src/core/lib/iomgr/resource_quota.h +2 -1
- data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
- data/src/core/lib/iomgr/socket_mutator.h +2 -0
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +43 -0
- data/src/core/lib/iomgr/tcp_client_posix.c +6 -6
- data/src/core/lib/iomgr/tcp_client_uv.c +3 -3
- data/src/core/lib/iomgr/tcp_posix.c +7 -7
- data/src/core/lib/iomgr/tcp_posix.h +2 -1
- data/src/core/lib/iomgr/tcp_server_posix.c +1 -1
- data/src/core/lib/iomgr/tcp_uv.c +6 -6
- data/src/core/lib/iomgr/tcp_uv.h +2 -1
- data/src/core/lib/iomgr/tcp_windows.c +1 -1
- data/src/core/lib/iomgr/timer_generic.c +24 -25
- data/src/core/lib/iomgr/timer_manager.c +276 -0
- data/src/core/lib/iomgr/timer_manager.h +52 -0
- data/src/core/lib/iomgr/timer_uv.c +6 -0
- data/src/core/lib/iomgr/udp_server.c +42 -9
- data/src/core/lib/iomgr/udp_server.h +3 -1
- data/src/core/lib/security/credentials/credentials.c +0 -1
- data/src/core/lib/security/credentials/fake/fake_credentials.c +23 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.h +12 -9
- data/src/core/lib/security/credentials/google_default/google_default_credentials.c +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.c +1 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.c +1 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +24 -53
- data/src/core/lib/security/transport/client_auth_filter.c +9 -3
- data/src/core/lib/security/transport/secure_endpoint.c +7 -7
- data/src/core/lib/security/transport/secure_endpoint.h +1 -1
- data/src/core/lib/security/transport/security_connector.c +45 -57
- data/src/core/lib/security/transport/security_connector.h +10 -14
- data/src/core/lib/security/transport/security_handshaker.c +123 -97
- data/src/core/lib/slice/b64.c +1 -1
- data/src/core/lib/slice/percent_encoding.c +3 -3
- data/src/core/lib/slice/slice.c +66 -33
- data/src/core/lib/slice/slice_buffer.c +25 -6
- data/src/core/lib/slice/slice_hash_table.c +33 -35
- data/src/core/lib/slice/slice_hash_table.h +7 -12
- data/src/core/lib/support/atomic.h +45 -0
- data/src/core/lib/support/atomic_with_atm.h +70 -0
- data/src/core/lib/support/atomic_with_std.h +48 -0
- data/src/core/lib/support/avl.c +14 -14
- data/src/core/lib/support/cmdline.c +3 -3
- data/src/core/lib/support/histogram.c +2 -2
- data/src/core/lib/support/host_port.c +1 -1
- data/src/core/lib/support/memory.h +74 -0
- data/src/core/lib/support/mpscq.c +36 -2
- data/src/core/lib/support/mpscq.h +28 -1
- data/src/core/lib/support/stack_lockfree.c +3 -36
- data/src/core/lib/support/string.c +12 -12
- data/src/core/lib/support/string_posix.c +1 -1
- data/src/core/lib/support/subprocess_posix.c +2 -2
- data/src/core/lib/support/thd_posix.c +1 -1
- data/src/core/lib/support/time_posix.c +8 -0
- data/src/core/lib/support/tmpfile_posix.c +10 -10
- data/src/core/lib/surface/alarm.c +3 -1
- data/src/core/lib/surface/api_trace.c +2 -1
- data/src/core/lib/surface/api_trace.h +2 -2
- data/src/core/lib/surface/byte_buffer_reader.c +1 -1
- data/src/core/lib/surface/call.c +65 -22
- data/src/core/lib/surface/call.h +4 -2
- data/src/core/lib/surface/channel_init.c +2 -19
- data/src/core/lib/surface/channel_stack_type.c +18 -0
- data/src/core/lib/surface/channel_stack_type.h +2 -0
- data/src/core/lib/surface/completion_queue.c +694 -247
- data/src/core/lib/surface/completion_queue.h +30 -13
- data/src/core/lib/surface/completion_queue_factory.c +24 -9
- data/src/core/lib/surface/init.c +1 -52
- data/src/core/lib/surface/{lame_client.c → lame_client.cc} +37 -26
- data/src/core/lib/surface/server.c +79 -110
- data/src/core/lib/surface/server.h +2 -1
- data/src/core/lib/surface/version.c +2 -2
- data/src/core/lib/transport/bdp_estimator.c +25 -9
- data/src/core/lib/transport/bdp_estimator.h +7 -1
- data/src/core/lib/transport/byte_stream.c +23 -9
- data/src/core/lib/transport/byte_stream.h +15 -6
- data/src/core/lib/transport/connectivity_state.c +6 -6
- data/src/core/lib/transport/connectivity_state.h +2 -1
- data/src/core/lib/transport/service_config.c +6 -13
- data/src/core/lib/transport/service_config.h +2 -2
- data/src/core/lib/transport/static_metadata.c +403 -389
- data/src/core/lib/transport/static_metadata.h +127 -114
- data/src/core/plugin_registry/grpc_plugin_registry.c +16 -0
- data/src/core/tsi/fake_transport_security.c +5 -4
- data/src/core/tsi/ssl_transport_security.c +71 -82
- data/src/core/tsi/ssl_transport_security.h +39 -61
- data/src/core/tsi/transport_security.c +83 -2
- data/src/core/tsi/transport_security.h +27 -2
- data/src/core/tsi/transport_security_adapter.c +236 -0
- data/src/core/tsi/transport_security_adapter.h +62 -0
- data/src/core/tsi/transport_security_interface.h +179 -66
- data/src/ruby/ext/grpc/extconf.rb +2 -1
- data/src/ruby/ext/grpc/rb_byte_buffer.c +8 -6
- data/src/ruby/ext/grpc/rb_call.c +56 -48
- data/src/ruby/ext/grpc/rb_call.h +3 -4
- data/src/ruby/ext/grpc/rb_call_credentials.c +23 -22
- data/src/ruby/ext/grpc/rb_channel.c +2 -3
- data/src/ruby/ext/grpc/rb_channel_args.c +11 -9
- data/src/ruby/ext/grpc/rb_channel_credentials.c +16 -12
- data/src/ruby/ext/grpc/rb_completion_queue.c +7 -9
- data/src/ruby/ext/grpc/rb_compression_options.c +7 -6
- data/src/ruby/ext/grpc/rb_event_thread.c +10 -12
- data/src/ruby/ext/grpc/rb_event_thread.h +1 -2
- data/src/ruby/ext/grpc/rb_grpc.c +11 -15
- data/src/ruby/ext/grpc/rb_grpc.h +2 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -6
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +25 -10
- data/src/ruby/ext/grpc/rb_server.c +26 -28
- data/src/ruby/lib/grpc/grpc.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/cares/config_linux/ares_config.h +36 -2
- data/third_party/zlib/adler32.c +14 -7
- data/third_party/zlib/compress.c +24 -18
- data/third_party/zlib/crc32.c +29 -12
- data/third_party/zlib/deflate.c +499 -303
- data/third_party/zlib/deflate.h +19 -16
- data/third_party/zlib/gzguts.h +16 -7
- data/third_party/zlib/gzlib.c +17 -14
- data/third_party/zlib/gzread.c +108 -48
- data/third_party/zlib/gzwrite.c +210 -122
- data/third_party/zlib/infback.c +2 -2
- data/third_party/zlib/inffast.c +34 -51
- data/third_party/zlib/inflate.c +86 -37
- data/third_party/zlib/inflate.h +7 -4
- data/third_party/zlib/inftrees.c +12 -14
- data/third_party/zlib/trees.c +38 -61
- data/third_party/zlib/uncompr.c +66 -32
- data/third_party/zlib/zconf.h +32 -9
- data/third_party/zlib/zlib.h +298 -154
- data/third_party/zlib/zutil.c +25 -24
- data/third_party/zlib/zutil.h +35 -17
- metadata +63 -30
@@ -0,0 +1,133 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2017, Google Inc.
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are
|
8
|
+
* met:
|
9
|
+
*
|
10
|
+
* * Redistributions of source code must retain the above copyright
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
12
|
+
* * Redistributions in binary form must reproduce the above
|
13
|
+
* copyright notice, this list of conditions and the following disclaimer
|
14
|
+
* in the documentation and/or other materials provided with the
|
15
|
+
* distribution.
|
16
|
+
* * Neither the name of Google Inc. nor the names of its
|
17
|
+
* contributors may be used to endorse or promote products derived from
|
18
|
+
* this software without specific prior written permission.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
21
|
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
22
|
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
23
|
+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
24
|
+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
25
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
|
34
|
+
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h"
|
35
|
+
|
36
|
+
#include <grpc/support/alloc.h>
|
37
|
+
#include <grpc/support/atm.h>
|
38
|
+
#include <grpc/support/sync.h>
|
39
|
+
#include <grpc/support/useful.h>
|
40
|
+
|
41
|
+
#include "src/core/lib/channel/channel_args.h"
|
42
|
+
|
43
|
+
#define GRPC_ARG_GRPCLB_CLIENT_STATS "grpc.grpclb_client_stats"
|
44
|
+
|
45
|
+
struct grpc_grpclb_client_stats {
|
46
|
+
gpr_refcount refs;
|
47
|
+
gpr_atm num_calls_started;
|
48
|
+
gpr_atm num_calls_finished;
|
49
|
+
gpr_atm num_calls_finished_with_drop_for_rate_limiting;
|
50
|
+
gpr_atm num_calls_finished_with_drop_for_load_balancing;
|
51
|
+
gpr_atm num_calls_finished_with_client_failed_to_send;
|
52
|
+
gpr_atm num_calls_finished_known_received;
|
53
|
+
};
|
54
|
+
|
55
|
+
grpc_grpclb_client_stats* grpc_grpclb_client_stats_create() {
|
56
|
+
grpc_grpclb_client_stats* client_stats = gpr_zalloc(sizeof(*client_stats));
|
57
|
+
gpr_ref_init(&client_stats->refs, 1);
|
58
|
+
return client_stats;
|
59
|
+
}
|
60
|
+
|
61
|
+
grpc_grpclb_client_stats* grpc_grpclb_client_stats_ref(
|
62
|
+
grpc_grpclb_client_stats* client_stats) {
|
63
|
+
gpr_ref(&client_stats->refs);
|
64
|
+
return client_stats;
|
65
|
+
}
|
66
|
+
|
67
|
+
void grpc_grpclb_client_stats_unref(grpc_grpclb_client_stats* client_stats) {
|
68
|
+
if (gpr_unref(&client_stats->refs)) {
|
69
|
+
gpr_free(client_stats);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
|
73
|
+
void grpc_grpclb_client_stats_add_call_started(
|
74
|
+
grpc_grpclb_client_stats* client_stats) {
|
75
|
+
gpr_atm_full_fetch_add(&client_stats->num_calls_started, (gpr_atm)1);
|
76
|
+
}
|
77
|
+
|
78
|
+
void grpc_grpclb_client_stats_add_call_finished(
|
79
|
+
bool finished_with_drop_for_rate_limiting,
|
80
|
+
bool finished_with_drop_for_load_balancing,
|
81
|
+
bool finished_with_client_failed_to_send, bool finished_known_received,
|
82
|
+
grpc_grpclb_client_stats* client_stats) {
|
83
|
+
gpr_atm_full_fetch_add(&client_stats->num_calls_finished, (gpr_atm)1);
|
84
|
+
if (finished_with_drop_for_rate_limiting) {
|
85
|
+
gpr_atm_full_fetch_add(
|
86
|
+
&client_stats->num_calls_finished_with_drop_for_rate_limiting,
|
87
|
+
(gpr_atm)1);
|
88
|
+
}
|
89
|
+
if (finished_with_drop_for_load_balancing) {
|
90
|
+
gpr_atm_full_fetch_add(
|
91
|
+
&client_stats->num_calls_finished_with_drop_for_load_balancing,
|
92
|
+
(gpr_atm)1);
|
93
|
+
}
|
94
|
+
if (finished_with_client_failed_to_send) {
|
95
|
+
gpr_atm_full_fetch_add(
|
96
|
+
&client_stats->num_calls_finished_with_client_failed_to_send,
|
97
|
+
(gpr_atm)1);
|
98
|
+
}
|
99
|
+
if (finished_known_received) {
|
100
|
+
gpr_atm_full_fetch_add(&client_stats->num_calls_finished_known_received,
|
101
|
+
(gpr_atm)1);
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
static void atomic_get_and_reset_counter(int64_t* value, gpr_atm* counter) {
|
106
|
+
*value = (int64_t)gpr_atm_acq_load(counter);
|
107
|
+
gpr_atm_full_fetch_add(counter, (gpr_atm)(-*value));
|
108
|
+
}
|
109
|
+
|
110
|
+
void grpc_grpclb_client_stats_get(
|
111
|
+
grpc_grpclb_client_stats* client_stats, int64_t* num_calls_started,
|
112
|
+
int64_t* num_calls_finished,
|
113
|
+
int64_t* num_calls_finished_with_drop_for_rate_limiting,
|
114
|
+
int64_t* num_calls_finished_with_drop_for_load_balancing,
|
115
|
+
int64_t* num_calls_finished_with_client_failed_to_send,
|
116
|
+
int64_t* num_calls_finished_known_received) {
|
117
|
+
atomic_get_and_reset_counter(num_calls_started,
|
118
|
+
&client_stats->num_calls_started);
|
119
|
+
atomic_get_and_reset_counter(num_calls_finished,
|
120
|
+
&client_stats->num_calls_finished);
|
121
|
+
atomic_get_and_reset_counter(
|
122
|
+
num_calls_finished_with_drop_for_rate_limiting,
|
123
|
+
&client_stats->num_calls_finished_with_drop_for_rate_limiting);
|
124
|
+
atomic_get_and_reset_counter(
|
125
|
+
num_calls_finished_with_drop_for_load_balancing,
|
126
|
+
&client_stats->num_calls_finished_with_drop_for_load_balancing);
|
127
|
+
atomic_get_and_reset_counter(
|
128
|
+
num_calls_finished_with_client_failed_to_send,
|
129
|
+
&client_stats->num_calls_finished_with_client_failed_to_send);
|
130
|
+
atomic_get_and_reset_counter(
|
131
|
+
num_calls_finished_known_received,
|
132
|
+
&client_stats->num_calls_finished_known_received);
|
133
|
+
}
|
@@ -0,0 +1,65 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2017, Google Inc.
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are
|
8
|
+
* met:
|
9
|
+
*
|
10
|
+
* * Redistributions of source code must retain the above copyright
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
12
|
+
* * Redistributions in binary form must reproduce the above
|
13
|
+
* copyright notice, this list of conditions and the following disclaimer
|
14
|
+
* in the documentation and/or other materials provided with the
|
15
|
+
* distribution.
|
16
|
+
* * Neither the name of Google Inc. nor the names of its
|
17
|
+
* contributors may be used to endorse or promote products derived from
|
18
|
+
* this software without specific prior written permission.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
21
|
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
22
|
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
23
|
+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
24
|
+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
25
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
|
34
|
+
#ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_GRPCLB_GRPCLB_CLIENT_STATS_H
|
35
|
+
#define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_GRPCLB_GRPCLB_CLIENT_STATS_H
|
36
|
+
|
37
|
+
#include <stdbool.h>
|
38
|
+
|
39
|
+
#include <grpc/impl/codegen/grpc_types.h>
|
40
|
+
|
41
|
+
typedef struct grpc_grpclb_client_stats grpc_grpclb_client_stats;
|
42
|
+
|
43
|
+
grpc_grpclb_client_stats* grpc_grpclb_client_stats_create();
|
44
|
+
grpc_grpclb_client_stats* grpc_grpclb_client_stats_ref(
|
45
|
+
grpc_grpclb_client_stats* client_stats);
|
46
|
+
void grpc_grpclb_client_stats_unref(grpc_grpclb_client_stats* client_stats);
|
47
|
+
|
48
|
+
void grpc_grpclb_client_stats_add_call_started(
|
49
|
+
grpc_grpclb_client_stats* client_stats);
|
50
|
+
void grpc_grpclb_client_stats_add_call_finished(
|
51
|
+
bool finished_with_drop_for_rate_limiting,
|
52
|
+
bool finished_with_drop_for_load_balancing,
|
53
|
+
bool finished_with_client_failed_to_send, bool finished_known_received,
|
54
|
+
grpc_grpclb_client_stats* client_stats);
|
55
|
+
|
56
|
+
void grpc_grpclb_client_stats_get(
|
57
|
+
grpc_grpclb_client_stats* client_stats, int64_t* num_calls_started,
|
58
|
+
int64_t* num_calls_finished,
|
59
|
+
int64_t* num_calls_finished_with_drop_for_rate_limiting,
|
60
|
+
int64_t* num_calls_finished_with_drop_for_load_balancing,
|
61
|
+
int64_t* num_calls_finished_with_client_failed_to_send,
|
62
|
+
int64_t* num_calls_finished_known_received);
|
63
|
+
|
64
|
+
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_GRPCLB_GRPCLB_CLIENT_STATS_H \
|
65
|
+
*/
|
@@ -37,58 +37,83 @@
|
|
37
37
|
|
38
38
|
#include <grpc/support/alloc.h>
|
39
39
|
|
40
|
+
/* invoked once for every Server in ServerList */
|
41
|
+
static bool count_serverlist(pb_istream_t *stream, const pb_field_t *field,
|
42
|
+
void **arg) {
|
43
|
+
grpc_grpclb_serverlist *sl = *arg;
|
44
|
+
grpc_grpclb_server server;
|
45
|
+
if (!pb_decode(stream, grpc_lb_v1_Server_fields, &server)) {
|
46
|
+
gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(stream));
|
47
|
+
return false;
|
48
|
+
}
|
49
|
+
++sl->num_servers;
|
50
|
+
return true;
|
51
|
+
}
|
52
|
+
|
40
53
|
typedef struct decode_serverlist_arg {
|
41
|
-
/* The first pass counts the number of servers in the server list. The second
|
42
|
-
* one allocates and decodes. */
|
43
|
-
bool first_pass;
|
44
54
|
/* The decoding callback is invoked once per server in serverlist. Remember
|
45
55
|
* which index of the serverlist are we currently decoding */
|
46
56
|
size_t decoding_idx;
|
47
|
-
/* Populated after the first pass. Number of server in the input serverlist */
|
48
|
-
size_t num_servers;
|
49
57
|
/* The decoded serverlist */
|
50
|
-
|
58
|
+
grpc_grpclb_serverlist *serverlist;
|
51
59
|
} decode_serverlist_arg;
|
52
60
|
|
53
61
|
/* invoked once for every Server in ServerList */
|
54
62
|
static bool decode_serverlist(pb_istream_t *stream, const pb_field_t *field,
|
55
63
|
void **arg) {
|
56
64
|
decode_serverlist_arg *dec_arg = *arg;
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
dec_arg->num_servers++;
|
64
|
-
} else { /* second pass. Actually decode. */
|
65
|
-
grpc_grpclb_server *server = gpr_zalloc(sizeof(grpc_grpclb_server));
|
66
|
-
GPR_ASSERT(dec_arg->num_servers > 0);
|
67
|
-
if (dec_arg->decoding_idx == 0) { /* first iteration of second pass */
|
68
|
-
dec_arg->servers =
|
69
|
-
gpr_malloc(sizeof(grpc_grpclb_server *) * dec_arg->num_servers);
|
70
|
-
}
|
71
|
-
if (!pb_decode(stream, grpc_lb_v1_Server_fields, server)) {
|
72
|
-
gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(stream));
|
73
|
-
return false;
|
74
|
-
}
|
75
|
-
dec_arg->servers[dec_arg->decoding_idx++] = server;
|
65
|
+
GPR_ASSERT(dec_arg->serverlist->num_servers >= dec_arg->decoding_idx);
|
66
|
+
grpc_grpclb_server *server = gpr_zalloc(sizeof(grpc_grpclb_server));
|
67
|
+
if (!pb_decode(stream, grpc_lb_v1_Server_fields, server)) {
|
68
|
+
gpr_free(server);
|
69
|
+
gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(stream));
|
70
|
+
return false;
|
76
71
|
}
|
77
|
-
|
72
|
+
dec_arg->serverlist->servers[dec_arg->decoding_idx++] = server;
|
78
73
|
return true;
|
79
74
|
}
|
80
75
|
|
81
76
|
grpc_grpclb_request *grpc_grpclb_request_create(const char *lb_service_name) {
|
82
77
|
grpc_grpclb_request *req = gpr_malloc(sizeof(grpc_grpclb_request));
|
83
|
-
|
84
|
-
req->
|
85
|
-
req->
|
86
|
-
req->initial_request.has_name = 1;
|
78
|
+
req->has_client_stats = false;
|
79
|
+
req->has_initial_request = true;
|
80
|
+
req->initial_request.has_name = true;
|
87
81
|
strncpy(req->initial_request.name, lb_service_name,
|
88
82
|
GRPC_GRPCLB_SERVICE_NAME_MAX_LENGTH);
|
89
83
|
return req;
|
90
84
|
}
|
91
85
|
|
86
|
+
static void populate_timestamp(gpr_timespec timestamp,
|
87
|
+
struct _grpc_lb_v1_Timestamp *timestamp_pb) {
|
88
|
+
timestamp_pb->has_seconds = true;
|
89
|
+
timestamp_pb->seconds = timestamp.tv_sec;
|
90
|
+
timestamp_pb->has_nanos = true;
|
91
|
+
timestamp_pb->nanos = timestamp.tv_nsec;
|
92
|
+
}
|
93
|
+
|
94
|
+
grpc_grpclb_request *grpc_grpclb_load_report_request_create(
|
95
|
+
grpc_grpclb_client_stats *client_stats) {
|
96
|
+
grpc_grpclb_request *req = gpr_zalloc(sizeof(grpc_grpclb_request));
|
97
|
+
req->has_client_stats = true;
|
98
|
+
req->client_stats.has_timestamp = true;
|
99
|
+
populate_timestamp(gpr_now(GPR_CLOCK_REALTIME), &req->client_stats.timestamp);
|
100
|
+
req->client_stats.has_num_calls_started = true;
|
101
|
+
req->client_stats.has_num_calls_finished = true;
|
102
|
+
req->client_stats.has_num_calls_finished_with_drop_for_rate_limiting = true;
|
103
|
+
req->client_stats.has_num_calls_finished_with_drop_for_load_balancing = true;
|
104
|
+
req->client_stats.has_num_calls_finished_with_client_failed_to_send = true;
|
105
|
+
req->client_stats.has_num_calls_finished_with_client_failed_to_send = true;
|
106
|
+
req->client_stats.has_num_calls_finished_known_received = true;
|
107
|
+
grpc_grpclb_client_stats_get(
|
108
|
+
client_stats, &req->client_stats.num_calls_started,
|
109
|
+
&req->client_stats.num_calls_finished,
|
110
|
+
&req->client_stats.num_calls_finished_with_drop_for_rate_limiting,
|
111
|
+
&req->client_stats.num_calls_finished_with_drop_for_load_balancing,
|
112
|
+
&req->client_stats.num_calls_finished_with_client_failed_to_send,
|
113
|
+
&req->client_stats.num_calls_finished_known_received);
|
114
|
+
return req;
|
115
|
+
}
|
116
|
+
|
92
117
|
grpc_slice grpc_grpclb_request_encode(const grpc_grpclb_request *request) {
|
93
118
|
size_t encoded_length;
|
94
119
|
pb_ostream_t sizestream;
|
@@ -98,7 +123,7 @@ grpc_slice grpc_grpclb_request_encode(const grpc_grpclb_request *request) {
|
|
98
123
|
pb_encode(&sizestream, grpc_lb_v1_LoadBalanceRequest_fields, request);
|
99
124
|
encoded_length = sizestream.bytes_written;
|
100
125
|
|
101
|
-
slice =
|
126
|
+
slice = GRPC_SLICE_MALLOC(encoded_length);
|
102
127
|
outputstream =
|
103
128
|
pb_ostream_from_buffer(GRPC_SLICE_START_PTR(slice), encoded_length);
|
104
129
|
GPR_ASSERT(pb_encode(&outputstream, grpc_lb_v1_LoadBalanceRequest_fields,
|
@@ -122,6 +147,9 @@ grpc_grpclb_initial_response *grpc_grpclb_initial_response_parse(
|
|
122
147
|
gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&stream));
|
123
148
|
return NULL;
|
124
149
|
}
|
150
|
+
|
151
|
+
if (!res.has_initial_response) return NULL;
|
152
|
+
|
125
153
|
grpc_grpclb_initial_response *initial_res =
|
126
154
|
gpr_malloc(sizeof(grpc_grpclb_initial_response));
|
127
155
|
memcpy(initial_res, &res.initial_response,
|
@@ -132,36 +160,38 @@ grpc_grpclb_initial_response *grpc_grpclb_initial_response_parse(
|
|
132
160
|
|
133
161
|
grpc_grpclb_serverlist *grpc_grpclb_response_parse_serverlist(
|
134
162
|
grpc_slice encoded_grpc_grpclb_response) {
|
135
|
-
bool status;
|
136
|
-
decode_serverlist_arg arg;
|
137
163
|
pb_istream_t stream =
|
138
164
|
pb_istream_from_buffer(GRPC_SLICE_START_PTR(encoded_grpc_grpclb_response),
|
139
165
|
GRPC_SLICE_LENGTH(encoded_grpc_grpclb_response));
|
140
166
|
pb_istream_t stream_at_start = stream;
|
167
|
+
grpc_grpclb_serverlist *sl = gpr_zalloc(sizeof(grpc_grpclb_serverlist));
|
141
168
|
grpc_grpclb_response res;
|
142
169
|
memset(&res, 0, sizeof(grpc_grpclb_response));
|
143
|
-
|
144
|
-
|
145
|
-
res.server_list.servers.
|
146
|
-
|
147
|
-
arg.first_pass = true;
|
148
|
-
status = pb_decode(&stream, grpc_lb_v1_LoadBalanceResponse_fields, &res);
|
170
|
+
// First pass: count number of servers.
|
171
|
+
res.server_list.servers.funcs.decode = count_serverlist;
|
172
|
+
res.server_list.servers.arg = sl;
|
173
|
+
bool status = pb_decode(&stream, grpc_lb_v1_LoadBalanceResponse_fields, &res);
|
149
174
|
if (!status) {
|
175
|
+
gpr_free(sl);
|
150
176
|
gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&stream));
|
151
177
|
return NULL;
|
152
178
|
}
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
179
|
+
// Second pass: populate servers.
|
180
|
+
if (sl->num_servers > 0) {
|
181
|
+
sl->servers = gpr_zalloc(sizeof(grpc_grpclb_server *) * sl->num_servers);
|
182
|
+
decode_serverlist_arg decode_arg;
|
183
|
+
memset(&decode_arg, 0, sizeof(decode_arg));
|
184
|
+
decode_arg.serverlist = sl;
|
185
|
+
res.server_list.servers.funcs.decode = decode_serverlist;
|
186
|
+
res.server_list.servers.arg = &decode_arg;
|
187
|
+
status = pb_decode(&stream_at_start, grpc_lb_v1_LoadBalanceResponse_fields,
|
188
|
+
&res);
|
189
|
+
if (!status) {
|
190
|
+
grpc_grpclb_destroy_serverlist(sl);
|
191
|
+
gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&stream));
|
192
|
+
return NULL;
|
193
|
+
}
|
160
194
|
}
|
161
|
-
|
162
|
-
grpc_grpclb_serverlist *sl = gpr_zalloc(sizeof(grpc_grpclb_serverlist));
|
163
|
-
sl->num_servers = arg.num_servers;
|
164
|
-
sl->servers = arg.servers;
|
165
195
|
if (res.server_list.has_expiration_interval) {
|
166
196
|
sl->expiration_interval = res.server_list.expiration_interval;
|
167
197
|
}
|
@@ -195,7 +225,7 @@ grpc_grpclb_serverlist *grpc_grpclb_serverlist_copy(
|
|
195
225
|
|
196
226
|
bool grpc_grpclb_serverlist_equals(const grpc_grpclb_serverlist *lhs,
|
197
227
|
const grpc_grpclb_serverlist *rhs) {
|
198
|
-
if (
|
228
|
+
if (lhs == NULL || rhs == NULL) {
|
199
229
|
return false;
|
200
230
|
}
|
201
231
|
if (lhs->num_servers != rhs->num_servers) {
|
@@ -243,6 +273,15 @@ int grpc_grpclb_duration_compare(const grpc_grpclb_duration *lhs,
|
|
243
273
|
return 0;
|
244
274
|
}
|
245
275
|
|
276
|
+
gpr_timespec grpc_grpclb_duration_to_timespec(
|
277
|
+
grpc_grpclb_duration *duration_pb) {
|
278
|
+
gpr_timespec duration;
|
279
|
+
duration.tv_sec = duration_pb->has_seconds ? duration_pb->seconds : 0;
|
280
|
+
duration.tv_nsec = duration_pb->has_nanos ? duration_pb->nanos : 0;
|
281
|
+
duration.clock_type = GPR_TIMESPAN;
|
282
|
+
return duration;
|
283
|
+
}
|
284
|
+
|
246
285
|
void grpc_grpclb_initial_response_destroy(
|
247
286
|
grpc_grpclb_initial_response *response) {
|
248
287
|
gpr_free(response);
|
@@ -36,6 +36,7 @@
|
|
36
36
|
|
37
37
|
#include <grpc/slice_buffer.h>
|
38
38
|
|
39
|
+
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h"
|
39
40
|
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h"
|
40
41
|
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
41
42
|
|
@@ -50,7 +51,7 @@ typedef grpc_lb_v1_LoadBalanceRequest grpc_grpclb_request;
|
|
50
51
|
typedef grpc_lb_v1_InitialLoadBalanceResponse grpc_grpclb_initial_response;
|
51
52
|
typedef grpc_lb_v1_Server grpc_grpclb_server;
|
52
53
|
typedef grpc_lb_v1_Duration grpc_grpclb_duration;
|
53
|
-
typedef struct
|
54
|
+
typedef struct {
|
54
55
|
grpc_grpclb_server **servers;
|
55
56
|
size_t num_servers;
|
56
57
|
grpc_grpclb_duration expiration_interval;
|
@@ -58,6 +59,8 @@ typedef struct grpc_grpclb_serverlist {
|
|
58
59
|
|
59
60
|
/** Create a request for a gRPC LB service under \a lb_service_name */
|
60
61
|
grpc_grpclb_request *grpc_grpclb_request_create(const char *lb_service_name);
|
62
|
+
grpc_grpclb_request *grpc_grpclb_load_report_request_create(
|
63
|
+
grpc_grpclb_client_stats *client_stats);
|
61
64
|
|
62
65
|
/** Protocol Buffers v3-encode \a request */
|
63
66
|
grpc_slice grpc_grpclb_request_encode(const grpc_grpclb_request *request);
|
@@ -93,6 +96,9 @@ void grpc_grpclb_destroy_serverlist(grpc_grpclb_serverlist *serverlist);
|
|
93
96
|
int grpc_grpclb_duration_compare(const grpc_grpclb_duration *lhs,
|
94
97
|
const grpc_grpclb_duration *rhs);
|
95
98
|
|
99
|
+
gpr_timespec grpc_grpclb_duration_to_timespec(
|
100
|
+
grpc_grpclb_duration *duration_pb);
|
101
|
+
|
96
102
|
/** Destroy \a initial_response */
|
97
103
|
void grpc_grpclb_initial_response_destroy(
|
98
104
|
grpc_grpclb_initial_response *response);
|
data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c
CHANGED
@@ -16,6 +16,12 @@ const pb_field_t grpc_lb_v1_Duration_fields[3] = {
|
|
16
16
|
PB_LAST_FIELD
|
17
17
|
};
|
18
18
|
|
19
|
+
const pb_field_t grpc_lb_v1_Timestamp_fields[3] = {
|
20
|
+
PB_FIELD( 1, INT64 , OPTIONAL, STATIC , FIRST, grpc_lb_v1_Timestamp, seconds, seconds, 0),
|
21
|
+
PB_FIELD( 2, INT32 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_Timestamp, nanos, seconds, 0),
|
22
|
+
PB_LAST_FIELD
|
23
|
+
};
|
24
|
+
|
19
25
|
const pb_field_t grpc_lb_v1_LoadBalanceRequest_fields[3] = {
|
20
26
|
PB_FIELD( 1, MESSAGE , OPTIONAL, STATIC , FIRST, grpc_lb_v1_LoadBalanceRequest, initial_request, initial_request, &grpc_lb_v1_InitialLoadBalanceRequest_fields),
|
21
27
|
PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_lb_v1_LoadBalanceRequest, client_stats, initial_request, &grpc_lb_v1_ClientStats_fields),
|
@@ -27,10 +33,14 @@ const pb_field_t grpc_lb_v1_InitialLoadBalanceRequest_fields[2] = {
|
|
27
33
|
PB_LAST_FIELD
|
28
34
|
};
|
29
35
|
|
30
|
-
const pb_field_t grpc_lb_v1_ClientStats_fields[
|
31
|
-
PB_FIELD( 1,
|
32
|
-
PB_FIELD( 2, INT64 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_ClientStats,
|
33
|
-
PB_FIELD( 3, INT64 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_ClientStats,
|
36
|
+
const pb_field_t grpc_lb_v1_ClientStats_fields[8] = {
|
37
|
+
PB_FIELD( 1, MESSAGE , OPTIONAL, STATIC , FIRST, grpc_lb_v1_ClientStats, timestamp, timestamp, &grpc_lb_v1_Timestamp_fields),
|
38
|
+
PB_FIELD( 2, INT64 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_ClientStats, num_calls_started, timestamp, 0),
|
39
|
+
PB_FIELD( 3, INT64 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_ClientStats, num_calls_finished, num_calls_started, 0),
|
40
|
+
PB_FIELD( 4, INT64 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_ClientStats, num_calls_finished_with_drop_for_rate_limiting, num_calls_finished, 0),
|
41
|
+
PB_FIELD( 5, INT64 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_ClientStats, num_calls_finished_with_drop_for_load_balancing, num_calls_finished_with_drop_for_rate_limiting, 0),
|
42
|
+
PB_FIELD( 6, INT64 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_ClientStats, num_calls_finished_with_client_failed_to_send, num_calls_finished_with_drop_for_load_balancing, 0),
|
43
|
+
PB_FIELD( 7, INT64 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_ClientStats, num_calls_finished_known_received, num_calls_finished_with_client_failed_to_send, 0),
|
34
44
|
PB_LAST_FIELD
|
35
45
|
};
|
36
46
|
|
@@ -52,11 +62,12 @@ const pb_field_t grpc_lb_v1_ServerList_fields[3] = {
|
|
52
62
|
PB_LAST_FIELD
|
53
63
|
};
|
54
64
|
|
55
|
-
const pb_field_t grpc_lb_v1_Server_fields[
|
65
|
+
const pb_field_t grpc_lb_v1_Server_fields[6] = {
|
56
66
|
PB_FIELD( 1, BYTES , OPTIONAL, STATIC , FIRST, grpc_lb_v1_Server, ip_address, ip_address, 0),
|
57
67
|
PB_FIELD( 2, INT32 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_Server, port, ip_address, 0),
|
58
68
|
PB_FIELD( 3, STRING , OPTIONAL, STATIC , OTHER, grpc_lb_v1_Server, load_balance_token, port, 0),
|
59
|
-
PB_FIELD( 4, BOOL , OPTIONAL, STATIC , OTHER, grpc_lb_v1_Server,
|
69
|
+
PB_FIELD( 4, BOOL , OPTIONAL, STATIC , OTHER, grpc_lb_v1_Server, drop_for_rate_limiting, load_balance_token, 0),
|
70
|
+
PB_FIELD( 5, BOOL , OPTIONAL, STATIC , OTHER, grpc_lb_v1_Server, drop_for_load_balancing, drop_for_rate_limiting, 0),
|
60
71
|
PB_LAST_FIELD
|
61
72
|
};
|
62
73
|
|
@@ -70,7 +81,7 @@ const pb_field_t grpc_lb_v1_Server_fields[5] = {
|
|
70
81
|
* numbers or field sizes that are larger than what can fit in 8 or 16 bit
|
71
82
|
* field descriptors.
|
72
83
|
*/
|
73
|
-
PB_STATIC_ASSERT((pb_membersize(grpc_lb_v1_LoadBalanceRequest, initial_request) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceRequest, client_stats) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, initial_response) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, server_list) < 65536 && pb_membersize(grpc_lb_v1_InitialLoadBalanceResponse, client_stats_report_interval) < 65536 && pb_membersize(grpc_lb_v1_ServerList, servers) < 65536 && pb_membersize(grpc_lb_v1_ServerList, expiration_interval) < 65536),
|
84
|
+
PB_STATIC_ASSERT((pb_membersize(grpc_lb_v1_LoadBalanceRequest, initial_request) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceRequest, client_stats) < 65536 && pb_membersize(grpc_lb_v1_ClientStats, timestamp) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, initial_response) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, server_list) < 65536 && pb_membersize(grpc_lb_v1_InitialLoadBalanceResponse, client_stats_report_interval) < 65536 && pb_membersize(grpc_lb_v1_ServerList, servers) < 65536 && pb_membersize(grpc_lb_v1_ServerList, expiration_interval) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_grpc_lb_v1_Duration_grpc_lb_v1_Timestamp_grpc_lb_v1_LoadBalanceRequest_grpc_lb_v1_InitialLoadBalanceRequest_grpc_lb_v1_ClientStats_grpc_lb_v1_LoadBalanceResponse_grpc_lb_v1_InitialLoadBalanceResponse_grpc_lb_v1_ServerList_grpc_lb_v1_Server)
|
74
85
|
#endif
|
75
86
|
|
76
87
|
#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
|
@@ -81,7 +92,7 @@ PB_STATIC_ASSERT((pb_membersize(grpc_lb_v1_LoadBalanceRequest, initial_request)
|
|
81
92
|
* numbers or field sizes that are larger than what can fit in the default
|
82
93
|
* 8 bit descriptors.
|
83
94
|
*/
|
84
|
-
PB_STATIC_ASSERT((pb_membersize(grpc_lb_v1_LoadBalanceRequest, initial_request) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceRequest, client_stats) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, initial_response) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, server_list) < 256 && pb_membersize(grpc_lb_v1_InitialLoadBalanceResponse, client_stats_report_interval) < 256 && pb_membersize(grpc_lb_v1_ServerList, servers) < 256 && pb_membersize(grpc_lb_v1_ServerList, expiration_interval) < 256),
|
95
|
+
PB_STATIC_ASSERT((pb_membersize(grpc_lb_v1_LoadBalanceRequest, initial_request) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceRequest, client_stats) < 256 && pb_membersize(grpc_lb_v1_ClientStats, timestamp) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, initial_response) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, server_list) < 256 && pb_membersize(grpc_lb_v1_InitialLoadBalanceResponse, client_stats_report_interval) < 256 && pb_membersize(grpc_lb_v1_ServerList, servers) < 256 && pb_membersize(grpc_lb_v1_ServerList, expiration_interval) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_grpc_lb_v1_Duration_grpc_lb_v1_Timestamp_grpc_lb_v1_LoadBalanceRequest_grpc_lb_v1_InitialLoadBalanceRequest_grpc_lb_v1_ClientStats_grpc_lb_v1_LoadBalanceResponse_grpc_lb_v1_InitialLoadBalanceResponse_grpc_lb_v1_ServerList_grpc_lb_v1_Server)
|
85
96
|
#endif
|
86
97
|
|
87
98
|
|