Index: third_party/grpc/src/proto/grpc/testing/control.proto |
diff --git a/third_party/grpc/src/proto/grpc/testing/control.proto b/third_party/grpc/src/proto/grpc/testing/control.proto |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cc365cafe1af69073d728093efb625ae03eb0b17 |
--- /dev/null |
+++ b/third_party/grpc/src/proto/grpc/testing/control.proto |
@@ -0,0 +1,171 @@ |
+// Copyright 2015-2016, Google Inc. |
+// All rights reserved. |
+// |
+// Redistribution and use in source and binary forms, with or without |
+// modification, are permitted provided that the following conditions are |
+// met: |
+// |
+// * Redistributions of source code must retain the above copyright |
+// notice, this list of conditions and the following disclaimer. |
+// * Redistributions in binary form must reproduce the above |
+// copyright notice, this list of conditions and the following disclaimer |
+// in the documentation and/or other materials provided with the |
+// distribution. |
+// * Neither the name of Google Inc. nor the names of its |
+// contributors may be used to endorse or promote products derived from |
+// this software without specific prior written permission. |
+// |
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
+ |
+syntax = "proto3"; |
+ |
+import "src/proto/grpc/testing/payloads.proto"; |
+import "src/proto/grpc/testing/stats.proto"; |
+ |
+package grpc.testing; |
+ |
+enum ClientType { |
+ SYNC_CLIENT = 0; |
+ ASYNC_CLIENT = 1; |
+} |
+ |
+enum ServerType { |
+ SYNC_SERVER = 0; |
+ ASYNC_SERVER = 1; |
+ ASYNC_GENERIC_SERVER = 2; |
+} |
+ |
+enum RpcType { |
+ UNARY = 0; |
+ STREAMING = 1; |
+} |
+ |
+// Parameters of poisson process distribution, which is a good representation |
+// of activity coming in from independent identical stationary sources. |
+message PoissonParams { |
+ // The rate of arrivals (a.k.a. lambda parameter of the exp distribution). |
+ double offered_load = 1; |
+} |
+ |
+message UniformParams { |
+ double interarrival_lo = 1; |
+ double interarrival_hi = 2; |
+} |
+ |
+message DeterministicParams { double offered_load = 1; } |
+ |
+message ParetoParams { |
+ double interarrival_base = 1; |
+ double alpha = 2; |
+} |
+ |
+// Once an RPC finishes, immediately start a new one. |
+// No configuration parameters needed. |
+message ClosedLoopParams {} |
+ |
+message LoadParams { |
+ oneof load { |
+ ClosedLoopParams closed_loop = 1; |
+ PoissonParams poisson = 2; |
+ UniformParams uniform = 3; |
+ DeterministicParams determ = 4; |
+ ParetoParams pareto = 5; |
+ }; |
+} |
+ |
+// presence of SecurityParams implies use of TLS |
+message SecurityParams { |
+ bool use_test_ca = 1; |
+ string server_host_override = 2; |
+} |
+ |
+message ClientConfig { |
+ // List of targets to connect to. At least one target needs to be specified. |
+ repeated string server_targets = 1; |
+ ClientType client_type = 2; |
+ SecurityParams security_params = 3; |
+ // How many concurrent RPCs to start for each channel. |
+ // For synchronous client, use a separate thread for each outstanding RPC. |
+ int32 outstanding_rpcs_per_channel = 4; |
+ // Number of independent client channels to create. |
+ // i-th channel will connect to server_target[i % server_targets.size()] |
+ int32 client_channels = 5; |
+ // Only for async client. Number of threads to use to start/manage RPCs. |
+ int32 async_client_threads = 7; |
+ RpcType rpc_type = 8; |
+ // The requested load for the entire client (aggregated over all the threads). |
+ LoadParams load_params = 10; |
+ PayloadConfig payload_config = 11; |
+ HistogramParams histogram_params = 12; |
+ |
+ // Specify the cores we should run the client on, if desired |
+ repeated int32 core_list = 13; |
+ int32 core_limit = 14; |
+} |
+ |
+message ClientStatus { ClientStats stats = 1; } |
+ |
+// Request current stats |
+message Mark { |
+ // if true, the stats will be reset after taking their snapshot. |
+ bool reset = 1; |
+} |
+ |
+message ClientArgs { |
+ oneof argtype { |
+ ClientConfig setup = 1; |
+ Mark mark = 2; |
+ } |
+} |
+ |
+message ServerConfig { |
+ ServerType server_type = 1; |
+ SecurityParams security_params = 2; |
+ // Port on which to listen. Zero means pick unused port. |
+ int32 port = 4; |
+ // Only for async server. Number of threads used to serve the requests. |
+ int32 async_server_threads = 7; |
+ // Specify the number of cores to limit server to, if desired |
+ int32 core_limit = 8; |
+ // payload config, used in generic server |
+ PayloadConfig payload_config = 9; |
+ |
+ // Specify the cores we should run the server on, if desired |
+ repeated int32 core_list = 10; |
+} |
+ |
+message ServerArgs { |
+ oneof argtype { |
+ ServerConfig setup = 1; |
+ Mark mark = 2; |
+ } |
+} |
+ |
+message ServerStatus { |
+ ServerStats stats = 1; |
+ // the port bound by the server |
+ int32 port = 2; |
+ // Number of cores available to the server |
+ int32 cores = 3; |
+} |
+ |
+message CoreRequest { |
+} |
+ |
+message CoreResponse { |
+ // Number of cores available on the server |
+ int32 cores = 1; |
+} |
+ |
+message Void { |
+} |