gitee.com/ks-custle/core-gm@v0.0.0-20230922171213-b83bdd97b62c/grpc/interop/grpc_testing/control.pb.go (about)

     1  // Copyright 2015 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  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.25.0
    18  // 	protoc        v3.14.0
    19  // source: grpc/testing/control.proto
    20  
    21  package grpc_testing
    22  
    23  import (
    24  	proto "github.com/golang/protobuf/proto"
    25  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    26  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    27  	reflect "reflect"
    28  	sync "sync"
    29  )
    30  
    31  const (
    32  	// Verify that this generated code is sufficiently up-to-date.
    33  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    34  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    35  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    36  )
    37  
    38  // This is a compile-time assertion that a sufficiently up-to-date version
    39  // of the legacy proto package is being used.
    40  const _ = proto.ProtoPackageIsVersion4
    41  
    42  type ClientType int32
    43  
    44  const (
    45  	// Many languages support a basic distinction between using
    46  	// sync or async client, and this allows the specification
    47  	ClientType_SYNC_CLIENT     ClientType = 0
    48  	ClientType_ASYNC_CLIENT    ClientType = 1
    49  	ClientType_OTHER_CLIENT    ClientType = 2 // used for some language-specific variants
    50  	ClientType_CALLBACK_CLIENT ClientType = 3
    51  )
    52  
    53  // Enum value maps for ClientType.
    54  var (
    55  	ClientType_name = map[int32]string{
    56  		0: "SYNC_CLIENT",
    57  		1: "ASYNC_CLIENT",
    58  		2: "OTHER_CLIENT",
    59  		3: "CALLBACK_CLIENT",
    60  	}
    61  	ClientType_value = map[string]int32{
    62  		"SYNC_CLIENT":     0,
    63  		"ASYNC_CLIENT":    1,
    64  		"OTHER_CLIENT":    2,
    65  		"CALLBACK_CLIENT": 3,
    66  	}
    67  )
    68  
    69  func (x ClientType) Enum() *ClientType {
    70  	p := new(ClientType)
    71  	*p = x
    72  	return p
    73  }
    74  
    75  func (x ClientType) String() string {
    76  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    77  }
    78  
    79  func (ClientType) Descriptor() protoreflect.EnumDescriptor {
    80  	return file_grpc_testing_control_proto_enumTypes[0].Descriptor()
    81  }
    82  
    83  func (ClientType) Type() protoreflect.EnumType {
    84  	return &file_grpc_testing_control_proto_enumTypes[0]
    85  }
    86  
    87  func (x ClientType) Number() protoreflect.EnumNumber {
    88  	return protoreflect.EnumNumber(x)
    89  }
    90  
    91  // Deprecated: Use ClientType.Descriptor instead.
    92  func (ClientType) EnumDescriptor() ([]byte, []int) {
    93  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{0}
    94  }
    95  
    96  type ServerType int32
    97  
    98  const (
    99  	ServerType_SYNC_SERVER          ServerType = 0
   100  	ServerType_ASYNC_SERVER         ServerType = 1
   101  	ServerType_ASYNC_GENERIC_SERVER ServerType = 2
   102  	ServerType_OTHER_SERVER         ServerType = 3 // used for some language-specific variants
   103  	ServerType_CALLBACK_SERVER      ServerType = 4
   104  )
   105  
   106  // Enum value maps for ServerType.
   107  var (
   108  	ServerType_name = map[int32]string{
   109  		0: "SYNC_SERVER",
   110  		1: "ASYNC_SERVER",
   111  		2: "ASYNC_GENERIC_SERVER",
   112  		3: "OTHER_SERVER",
   113  		4: "CALLBACK_SERVER",
   114  	}
   115  	ServerType_value = map[string]int32{
   116  		"SYNC_SERVER":          0,
   117  		"ASYNC_SERVER":         1,
   118  		"ASYNC_GENERIC_SERVER": 2,
   119  		"OTHER_SERVER":         3,
   120  		"CALLBACK_SERVER":      4,
   121  	}
   122  )
   123  
   124  func (x ServerType) Enum() *ServerType {
   125  	p := new(ServerType)
   126  	*p = x
   127  	return p
   128  }
   129  
   130  func (x ServerType) String() string {
   131  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   132  }
   133  
   134  func (ServerType) Descriptor() protoreflect.EnumDescriptor {
   135  	return file_grpc_testing_control_proto_enumTypes[1].Descriptor()
   136  }
   137  
   138  func (ServerType) Type() protoreflect.EnumType {
   139  	return &file_grpc_testing_control_proto_enumTypes[1]
   140  }
   141  
   142  func (x ServerType) Number() protoreflect.EnumNumber {
   143  	return protoreflect.EnumNumber(x)
   144  }
   145  
   146  // Deprecated: Use ServerType.Descriptor instead.
   147  func (ServerType) EnumDescriptor() ([]byte, []int) {
   148  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{1}
   149  }
   150  
   151  type RpcType int32
   152  
   153  const (
   154  	RpcType_UNARY                 RpcType = 0
   155  	RpcType_STREAMING             RpcType = 1
   156  	RpcType_STREAMING_FROM_CLIENT RpcType = 2
   157  	RpcType_STREAMING_FROM_SERVER RpcType = 3
   158  	RpcType_STREAMING_BOTH_WAYS   RpcType = 4
   159  )
   160  
   161  // Enum value maps for RpcType.
   162  var (
   163  	RpcType_name = map[int32]string{
   164  		0: "UNARY",
   165  		1: "STREAMING",
   166  		2: "STREAMING_FROM_CLIENT",
   167  		3: "STREAMING_FROM_SERVER",
   168  		4: "STREAMING_BOTH_WAYS",
   169  	}
   170  	RpcType_value = map[string]int32{
   171  		"UNARY":                 0,
   172  		"STREAMING":             1,
   173  		"STREAMING_FROM_CLIENT": 2,
   174  		"STREAMING_FROM_SERVER": 3,
   175  		"STREAMING_BOTH_WAYS":   4,
   176  	}
   177  )
   178  
   179  func (x RpcType) Enum() *RpcType {
   180  	p := new(RpcType)
   181  	*p = x
   182  	return p
   183  }
   184  
   185  func (x RpcType) String() string {
   186  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   187  }
   188  
   189  func (RpcType) Descriptor() protoreflect.EnumDescriptor {
   190  	return file_grpc_testing_control_proto_enumTypes[2].Descriptor()
   191  }
   192  
   193  func (RpcType) Type() protoreflect.EnumType {
   194  	return &file_grpc_testing_control_proto_enumTypes[2]
   195  }
   196  
   197  func (x RpcType) Number() protoreflect.EnumNumber {
   198  	return protoreflect.EnumNumber(x)
   199  }
   200  
   201  // Deprecated: Use RpcType.Descriptor instead.
   202  func (RpcType) EnumDescriptor() ([]byte, []int) {
   203  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{2}
   204  }
   205  
   206  // Parameters of poisson process distribution, which is a good representation
   207  // of activity coming in from independent identical stationary sources.
   208  type PoissonParams struct {
   209  	state         protoimpl.MessageState
   210  	sizeCache     protoimpl.SizeCache
   211  	unknownFields protoimpl.UnknownFields
   212  
   213  	// The rate of arrivals (a.k.a. lambda parameter of the exp distribution).
   214  	OfferedLoad float64 `protobuf:"fixed64,1,opt,name=offered_load,json=offeredLoad,proto3" json:"offered_load,omitempty"`
   215  }
   216  
   217  func (x *PoissonParams) Reset() {
   218  	*x = PoissonParams{}
   219  	if protoimpl.UnsafeEnabled {
   220  		mi := &file_grpc_testing_control_proto_msgTypes[0]
   221  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   222  		ms.StoreMessageInfo(mi)
   223  	}
   224  }
   225  
   226  func (x *PoissonParams) String() string {
   227  	return protoimpl.X.MessageStringOf(x)
   228  }
   229  
   230  func (*PoissonParams) ProtoMessage() {}
   231  
   232  func (x *PoissonParams) ProtoReflect() protoreflect.Message {
   233  	mi := &file_grpc_testing_control_proto_msgTypes[0]
   234  	if protoimpl.UnsafeEnabled && x != nil {
   235  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   236  		if ms.LoadMessageInfo() == nil {
   237  			ms.StoreMessageInfo(mi)
   238  		}
   239  		return ms
   240  	}
   241  	return mi.MessageOf(x)
   242  }
   243  
   244  // Deprecated: Use PoissonParams.ProtoReflect.Descriptor instead.
   245  func (*PoissonParams) Descriptor() ([]byte, []int) {
   246  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{0}
   247  }
   248  
   249  func (x *PoissonParams) GetOfferedLoad() float64 {
   250  	if x != nil {
   251  		return x.OfferedLoad
   252  	}
   253  	return 0
   254  }
   255  
   256  // Once an RPC finishes, immediately start a new one.
   257  // No configuration parameters needed.
   258  type ClosedLoopParams struct {
   259  	state         protoimpl.MessageState
   260  	sizeCache     protoimpl.SizeCache
   261  	unknownFields protoimpl.UnknownFields
   262  }
   263  
   264  func (x *ClosedLoopParams) Reset() {
   265  	*x = ClosedLoopParams{}
   266  	if protoimpl.UnsafeEnabled {
   267  		mi := &file_grpc_testing_control_proto_msgTypes[1]
   268  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   269  		ms.StoreMessageInfo(mi)
   270  	}
   271  }
   272  
   273  func (x *ClosedLoopParams) String() string {
   274  	return protoimpl.X.MessageStringOf(x)
   275  }
   276  
   277  func (*ClosedLoopParams) ProtoMessage() {}
   278  
   279  func (x *ClosedLoopParams) ProtoReflect() protoreflect.Message {
   280  	mi := &file_grpc_testing_control_proto_msgTypes[1]
   281  	if protoimpl.UnsafeEnabled && x != nil {
   282  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   283  		if ms.LoadMessageInfo() == nil {
   284  			ms.StoreMessageInfo(mi)
   285  		}
   286  		return ms
   287  	}
   288  	return mi.MessageOf(x)
   289  }
   290  
   291  // Deprecated: Use ClosedLoopParams.ProtoReflect.Descriptor instead.
   292  func (*ClosedLoopParams) Descriptor() ([]byte, []int) {
   293  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{1}
   294  }
   295  
   296  type LoadParams struct {
   297  	state         protoimpl.MessageState
   298  	sizeCache     protoimpl.SizeCache
   299  	unknownFields protoimpl.UnknownFields
   300  
   301  	// Types that are assignable to Load:
   302  	//	*LoadParams_ClosedLoop
   303  	//	*LoadParams_Poisson
   304  	Load isLoadParams_Load `protobuf_oneof:"load"`
   305  }
   306  
   307  func (x *LoadParams) Reset() {
   308  	*x = LoadParams{}
   309  	if protoimpl.UnsafeEnabled {
   310  		mi := &file_grpc_testing_control_proto_msgTypes[2]
   311  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   312  		ms.StoreMessageInfo(mi)
   313  	}
   314  }
   315  
   316  func (x *LoadParams) String() string {
   317  	return protoimpl.X.MessageStringOf(x)
   318  }
   319  
   320  func (*LoadParams) ProtoMessage() {}
   321  
   322  func (x *LoadParams) ProtoReflect() protoreflect.Message {
   323  	mi := &file_grpc_testing_control_proto_msgTypes[2]
   324  	if protoimpl.UnsafeEnabled && x != nil {
   325  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   326  		if ms.LoadMessageInfo() == nil {
   327  			ms.StoreMessageInfo(mi)
   328  		}
   329  		return ms
   330  	}
   331  	return mi.MessageOf(x)
   332  }
   333  
   334  // Deprecated: Use LoadParams.ProtoReflect.Descriptor instead.
   335  func (*LoadParams) Descriptor() ([]byte, []int) {
   336  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{2}
   337  }
   338  
   339  func (m *LoadParams) GetLoad() isLoadParams_Load {
   340  	if m != nil {
   341  		return m.Load
   342  	}
   343  	return nil
   344  }
   345  
   346  func (x *LoadParams) GetClosedLoop() *ClosedLoopParams {
   347  	if x, ok := x.GetLoad().(*LoadParams_ClosedLoop); ok {
   348  		return x.ClosedLoop
   349  	}
   350  	return nil
   351  }
   352  
   353  func (x *LoadParams) GetPoisson() *PoissonParams {
   354  	if x, ok := x.GetLoad().(*LoadParams_Poisson); ok {
   355  		return x.Poisson
   356  	}
   357  	return nil
   358  }
   359  
   360  type isLoadParams_Load interface {
   361  	isLoadParams_Load()
   362  }
   363  
   364  type LoadParams_ClosedLoop struct {
   365  	ClosedLoop *ClosedLoopParams `protobuf:"bytes,1,opt,name=closed_loop,json=closedLoop,proto3,oneof"`
   366  }
   367  
   368  type LoadParams_Poisson struct {
   369  	Poisson *PoissonParams `protobuf:"bytes,2,opt,name=poisson,proto3,oneof"`
   370  }
   371  
   372  func (*LoadParams_ClosedLoop) isLoadParams_Load() {}
   373  
   374  func (*LoadParams_Poisson) isLoadParams_Load() {}
   375  
   376  // presence of SecurityParams implies use of TLS
   377  type SecurityParams struct {
   378  	state         protoimpl.MessageState
   379  	sizeCache     protoimpl.SizeCache
   380  	unknownFields protoimpl.UnknownFields
   381  
   382  	UseTestCa          bool   `protobuf:"varint,1,opt,name=use_test_ca,json=useTestCa,proto3" json:"use_test_ca,omitempty"`
   383  	ServerHostOverride string `protobuf:"bytes,2,opt,name=server_host_override,json=serverHostOverride,proto3" json:"server_host_override,omitempty"`
   384  	CredType           string `protobuf:"bytes,3,opt,name=cred_type,json=credType,proto3" json:"cred_type,omitempty"`
   385  }
   386  
   387  func (x *SecurityParams) Reset() {
   388  	*x = SecurityParams{}
   389  	if protoimpl.UnsafeEnabled {
   390  		mi := &file_grpc_testing_control_proto_msgTypes[3]
   391  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   392  		ms.StoreMessageInfo(mi)
   393  	}
   394  }
   395  
   396  func (x *SecurityParams) String() string {
   397  	return protoimpl.X.MessageStringOf(x)
   398  }
   399  
   400  func (*SecurityParams) ProtoMessage() {}
   401  
   402  func (x *SecurityParams) ProtoReflect() protoreflect.Message {
   403  	mi := &file_grpc_testing_control_proto_msgTypes[3]
   404  	if protoimpl.UnsafeEnabled && x != nil {
   405  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   406  		if ms.LoadMessageInfo() == nil {
   407  			ms.StoreMessageInfo(mi)
   408  		}
   409  		return ms
   410  	}
   411  	return mi.MessageOf(x)
   412  }
   413  
   414  // Deprecated: Use SecurityParams.ProtoReflect.Descriptor instead.
   415  func (*SecurityParams) Descriptor() ([]byte, []int) {
   416  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{3}
   417  }
   418  
   419  func (x *SecurityParams) GetUseTestCa() bool {
   420  	if x != nil {
   421  		return x.UseTestCa
   422  	}
   423  	return false
   424  }
   425  
   426  func (x *SecurityParams) GetServerHostOverride() string {
   427  	if x != nil {
   428  		return x.ServerHostOverride
   429  	}
   430  	return ""
   431  }
   432  
   433  func (x *SecurityParams) GetCredType() string {
   434  	if x != nil {
   435  		return x.CredType
   436  	}
   437  	return ""
   438  }
   439  
   440  type ChannelArg struct {
   441  	state         protoimpl.MessageState
   442  	sizeCache     protoimpl.SizeCache
   443  	unknownFields protoimpl.UnknownFields
   444  
   445  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   446  	// Types that are assignable to Value:
   447  	//	*ChannelArg_StrValue
   448  	//	*ChannelArg_IntValue
   449  	Value isChannelArg_Value `protobuf_oneof:"value"`
   450  }
   451  
   452  func (x *ChannelArg) Reset() {
   453  	*x = ChannelArg{}
   454  	if protoimpl.UnsafeEnabled {
   455  		mi := &file_grpc_testing_control_proto_msgTypes[4]
   456  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   457  		ms.StoreMessageInfo(mi)
   458  	}
   459  }
   460  
   461  func (x *ChannelArg) String() string {
   462  	return protoimpl.X.MessageStringOf(x)
   463  }
   464  
   465  func (*ChannelArg) ProtoMessage() {}
   466  
   467  func (x *ChannelArg) ProtoReflect() protoreflect.Message {
   468  	mi := &file_grpc_testing_control_proto_msgTypes[4]
   469  	if protoimpl.UnsafeEnabled && x != nil {
   470  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   471  		if ms.LoadMessageInfo() == nil {
   472  			ms.StoreMessageInfo(mi)
   473  		}
   474  		return ms
   475  	}
   476  	return mi.MessageOf(x)
   477  }
   478  
   479  // Deprecated: Use ChannelArg.ProtoReflect.Descriptor instead.
   480  func (*ChannelArg) Descriptor() ([]byte, []int) {
   481  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{4}
   482  }
   483  
   484  func (x *ChannelArg) GetName() string {
   485  	if x != nil {
   486  		return x.Name
   487  	}
   488  	return ""
   489  }
   490  
   491  func (m *ChannelArg) GetValue() isChannelArg_Value {
   492  	if m != nil {
   493  		return m.Value
   494  	}
   495  	return nil
   496  }
   497  
   498  func (x *ChannelArg) GetStrValue() string {
   499  	if x, ok := x.GetValue().(*ChannelArg_StrValue); ok {
   500  		return x.StrValue
   501  	}
   502  	return ""
   503  }
   504  
   505  func (x *ChannelArg) GetIntValue() int32 {
   506  	if x, ok := x.GetValue().(*ChannelArg_IntValue); ok {
   507  		return x.IntValue
   508  	}
   509  	return 0
   510  }
   511  
   512  type isChannelArg_Value interface {
   513  	isChannelArg_Value()
   514  }
   515  
   516  type ChannelArg_StrValue struct {
   517  	StrValue string `protobuf:"bytes,2,opt,name=str_value,json=strValue,proto3,oneof"`
   518  }
   519  
   520  type ChannelArg_IntValue struct {
   521  	IntValue int32 `protobuf:"varint,3,opt,name=int_value,json=intValue,proto3,oneof"`
   522  }
   523  
   524  func (*ChannelArg_StrValue) isChannelArg_Value() {}
   525  
   526  func (*ChannelArg_IntValue) isChannelArg_Value() {}
   527  
   528  type ClientConfig struct {
   529  	state         protoimpl.MessageState
   530  	sizeCache     protoimpl.SizeCache
   531  	unknownFields protoimpl.UnknownFields
   532  
   533  	// List of targets to connect to. At least one target needs to be specified.
   534  	ServerTargets  []string        `protobuf:"bytes,1,rep,name=server_targets,json=serverTargets,proto3" json:"server_targets,omitempty"`
   535  	ClientType     ClientType      `protobuf:"varint,2,opt,name=client_type,json=clientType,proto3,enum=grpc.testing.ClientType" json:"client_type,omitempty"`
   536  	SecurityParams *SecurityParams `protobuf:"bytes,3,opt,name=security_params,json=securityParams,proto3" json:"security_params,omitempty"`
   537  	// How many concurrent RPCs to start for each channel.
   538  	// For synchronous client, use a separate thread for each outstanding RPC.
   539  	OutstandingRpcsPerChannel int32 `protobuf:"varint,4,opt,name=outstanding_rpcs_per_channel,json=outstandingRpcsPerChannel,proto3" json:"outstanding_rpcs_per_channel,omitempty"`
   540  	// Number of independent client channels to create.
   541  	// i-th channel will connect to server_target[i % server_targets.size()]
   542  	ClientChannels int32 `protobuf:"varint,5,opt,name=client_channels,json=clientChannels,proto3" json:"client_channels,omitempty"`
   543  	// Only for async client. Number of threads to use to start/manage RPCs.
   544  	AsyncClientThreads int32   `protobuf:"varint,7,opt,name=async_client_threads,json=asyncClientThreads,proto3" json:"async_client_threads,omitempty"`
   545  	RpcType            RpcType `protobuf:"varint,8,opt,name=rpc_type,json=rpcType,proto3,enum=grpc.testing.RpcType" json:"rpc_type,omitempty"`
   546  	// The requested load for the entire client (aggregated over all the threads).
   547  	LoadParams      *LoadParams      `protobuf:"bytes,10,opt,name=load_params,json=loadParams,proto3" json:"load_params,omitempty"`
   548  	PayloadConfig   *PayloadConfig   `protobuf:"bytes,11,opt,name=payload_config,json=payloadConfig,proto3" json:"payload_config,omitempty"`
   549  	HistogramParams *HistogramParams `protobuf:"bytes,12,opt,name=histogram_params,json=histogramParams,proto3" json:"histogram_params,omitempty"`
   550  	// Specify the cores we should run the client on, if desired
   551  	CoreList  []int32 `protobuf:"varint,13,rep,packed,name=core_list,json=coreList,proto3" json:"core_list,omitempty"`
   552  	CoreLimit int32   `protobuf:"varint,14,opt,name=core_limit,json=coreLimit,proto3" json:"core_limit,omitempty"`
   553  	// If we use an OTHER_CLIENT client_type, this string gives more detail
   554  	OtherClientApi string        `protobuf:"bytes,15,opt,name=other_client_api,json=otherClientApi,proto3" json:"other_client_api,omitempty"`
   555  	ChannelArgs    []*ChannelArg `protobuf:"bytes,16,rep,name=channel_args,json=channelArgs,proto3" json:"channel_args,omitempty"`
   556  	// Number of threads that share each completion queue
   557  	ThreadsPerCq int32 `protobuf:"varint,17,opt,name=threads_per_cq,json=threadsPerCq,proto3" json:"threads_per_cq,omitempty"`
   558  	// Number of messages on a stream before it gets finished/restarted
   559  	MessagesPerStream int32 `protobuf:"varint,18,opt,name=messages_per_stream,json=messagesPerStream,proto3" json:"messages_per_stream,omitempty"`
   560  	// Use coalescing API when possible.
   561  	UseCoalesceApi bool `protobuf:"varint,19,opt,name=use_coalesce_api,json=useCoalesceApi,proto3" json:"use_coalesce_api,omitempty"`
   562  	// If 0, disabled. Else, specifies the period between gathering latency
   563  	// medians in milliseconds.
   564  	MedianLatencyCollectionIntervalMillis int32 `protobuf:"varint,20,opt,name=median_latency_collection_interval_millis,json=medianLatencyCollectionIntervalMillis,proto3" json:"median_latency_collection_interval_millis,omitempty"`
   565  	// Number of client processes. 0 indicates no restriction.
   566  	ClientProcesses int32 `protobuf:"varint,21,opt,name=client_processes,json=clientProcesses,proto3" json:"client_processes,omitempty"`
   567  }
   568  
   569  func (x *ClientConfig) Reset() {
   570  	*x = ClientConfig{}
   571  	if protoimpl.UnsafeEnabled {
   572  		mi := &file_grpc_testing_control_proto_msgTypes[5]
   573  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   574  		ms.StoreMessageInfo(mi)
   575  	}
   576  }
   577  
   578  func (x *ClientConfig) String() string {
   579  	return protoimpl.X.MessageStringOf(x)
   580  }
   581  
   582  func (*ClientConfig) ProtoMessage() {}
   583  
   584  func (x *ClientConfig) ProtoReflect() protoreflect.Message {
   585  	mi := &file_grpc_testing_control_proto_msgTypes[5]
   586  	if protoimpl.UnsafeEnabled && x != nil {
   587  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   588  		if ms.LoadMessageInfo() == nil {
   589  			ms.StoreMessageInfo(mi)
   590  		}
   591  		return ms
   592  	}
   593  	return mi.MessageOf(x)
   594  }
   595  
   596  // Deprecated: Use ClientConfig.ProtoReflect.Descriptor instead.
   597  func (*ClientConfig) Descriptor() ([]byte, []int) {
   598  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{5}
   599  }
   600  
   601  func (x *ClientConfig) GetServerTargets() []string {
   602  	if x != nil {
   603  		return x.ServerTargets
   604  	}
   605  	return nil
   606  }
   607  
   608  func (x *ClientConfig) GetClientType() ClientType {
   609  	if x != nil {
   610  		return x.ClientType
   611  	}
   612  	return ClientType_SYNC_CLIENT
   613  }
   614  
   615  func (x *ClientConfig) GetSecurityParams() *SecurityParams {
   616  	if x != nil {
   617  		return x.SecurityParams
   618  	}
   619  	return nil
   620  }
   621  
   622  func (x *ClientConfig) GetOutstandingRpcsPerChannel() int32 {
   623  	if x != nil {
   624  		return x.OutstandingRpcsPerChannel
   625  	}
   626  	return 0
   627  }
   628  
   629  func (x *ClientConfig) GetClientChannels() int32 {
   630  	if x != nil {
   631  		return x.ClientChannels
   632  	}
   633  	return 0
   634  }
   635  
   636  func (x *ClientConfig) GetAsyncClientThreads() int32 {
   637  	if x != nil {
   638  		return x.AsyncClientThreads
   639  	}
   640  	return 0
   641  }
   642  
   643  func (x *ClientConfig) GetRpcType() RpcType {
   644  	if x != nil {
   645  		return x.RpcType
   646  	}
   647  	return RpcType_UNARY
   648  }
   649  
   650  func (x *ClientConfig) GetLoadParams() *LoadParams {
   651  	if x != nil {
   652  		return x.LoadParams
   653  	}
   654  	return nil
   655  }
   656  
   657  func (x *ClientConfig) GetPayloadConfig() *PayloadConfig {
   658  	if x != nil {
   659  		return x.PayloadConfig
   660  	}
   661  	return nil
   662  }
   663  
   664  func (x *ClientConfig) GetHistogramParams() *HistogramParams {
   665  	if x != nil {
   666  		return x.HistogramParams
   667  	}
   668  	return nil
   669  }
   670  
   671  func (x *ClientConfig) GetCoreList() []int32 {
   672  	if x != nil {
   673  		return x.CoreList
   674  	}
   675  	return nil
   676  }
   677  
   678  func (x *ClientConfig) GetCoreLimit() int32 {
   679  	if x != nil {
   680  		return x.CoreLimit
   681  	}
   682  	return 0
   683  }
   684  
   685  func (x *ClientConfig) GetOtherClientApi() string {
   686  	if x != nil {
   687  		return x.OtherClientApi
   688  	}
   689  	return ""
   690  }
   691  
   692  func (x *ClientConfig) GetChannelArgs() []*ChannelArg {
   693  	if x != nil {
   694  		return x.ChannelArgs
   695  	}
   696  	return nil
   697  }
   698  
   699  func (x *ClientConfig) GetThreadsPerCq() int32 {
   700  	if x != nil {
   701  		return x.ThreadsPerCq
   702  	}
   703  	return 0
   704  }
   705  
   706  func (x *ClientConfig) GetMessagesPerStream() int32 {
   707  	if x != nil {
   708  		return x.MessagesPerStream
   709  	}
   710  	return 0
   711  }
   712  
   713  func (x *ClientConfig) GetUseCoalesceApi() bool {
   714  	if x != nil {
   715  		return x.UseCoalesceApi
   716  	}
   717  	return false
   718  }
   719  
   720  func (x *ClientConfig) GetMedianLatencyCollectionIntervalMillis() int32 {
   721  	if x != nil {
   722  		return x.MedianLatencyCollectionIntervalMillis
   723  	}
   724  	return 0
   725  }
   726  
   727  func (x *ClientConfig) GetClientProcesses() int32 {
   728  	if x != nil {
   729  		return x.ClientProcesses
   730  	}
   731  	return 0
   732  }
   733  
   734  type ClientStatus struct {
   735  	state         protoimpl.MessageState
   736  	sizeCache     protoimpl.SizeCache
   737  	unknownFields protoimpl.UnknownFields
   738  
   739  	Stats *ClientStats `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"`
   740  }
   741  
   742  func (x *ClientStatus) Reset() {
   743  	*x = ClientStatus{}
   744  	if protoimpl.UnsafeEnabled {
   745  		mi := &file_grpc_testing_control_proto_msgTypes[6]
   746  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   747  		ms.StoreMessageInfo(mi)
   748  	}
   749  }
   750  
   751  func (x *ClientStatus) String() string {
   752  	return protoimpl.X.MessageStringOf(x)
   753  }
   754  
   755  func (*ClientStatus) ProtoMessage() {}
   756  
   757  func (x *ClientStatus) ProtoReflect() protoreflect.Message {
   758  	mi := &file_grpc_testing_control_proto_msgTypes[6]
   759  	if protoimpl.UnsafeEnabled && x != nil {
   760  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   761  		if ms.LoadMessageInfo() == nil {
   762  			ms.StoreMessageInfo(mi)
   763  		}
   764  		return ms
   765  	}
   766  	return mi.MessageOf(x)
   767  }
   768  
   769  // Deprecated: Use ClientStatus.ProtoReflect.Descriptor instead.
   770  func (*ClientStatus) Descriptor() ([]byte, []int) {
   771  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{6}
   772  }
   773  
   774  func (x *ClientStatus) GetStats() *ClientStats {
   775  	if x != nil {
   776  		return x.Stats
   777  	}
   778  	return nil
   779  }
   780  
   781  // Request current stats
   782  type Mark struct {
   783  	state         protoimpl.MessageState
   784  	sizeCache     protoimpl.SizeCache
   785  	unknownFields protoimpl.UnknownFields
   786  
   787  	// if true, the stats will be reset after taking their snapshot.
   788  	Reset_ bool `protobuf:"varint,1,opt,name=reset,proto3" json:"reset,omitempty"`
   789  }
   790  
   791  func (x *Mark) Reset() {
   792  	*x = Mark{}
   793  	if protoimpl.UnsafeEnabled {
   794  		mi := &file_grpc_testing_control_proto_msgTypes[7]
   795  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   796  		ms.StoreMessageInfo(mi)
   797  	}
   798  }
   799  
   800  func (x *Mark) String() string {
   801  	return protoimpl.X.MessageStringOf(x)
   802  }
   803  
   804  func (*Mark) ProtoMessage() {}
   805  
   806  func (x *Mark) ProtoReflect() protoreflect.Message {
   807  	mi := &file_grpc_testing_control_proto_msgTypes[7]
   808  	if protoimpl.UnsafeEnabled && x != nil {
   809  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   810  		if ms.LoadMessageInfo() == nil {
   811  			ms.StoreMessageInfo(mi)
   812  		}
   813  		return ms
   814  	}
   815  	return mi.MessageOf(x)
   816  }
   817  
   818  // Deprecated: Use Mark.ProtoReflect.Descriptor instead.
   819  func (*Mark) Descriptor() ([]byte, []int) {
   820  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{7}
   821  }
   822  
   823  func (x *Mark) GetReset_() bool {
   824  	if x != nil {
   825  		return x.Reset_
   826  	}
   827  	return false
   828  }
   829  
   830  type ClientArgs struct {
   831  	state         protoimpl.MessageState
   832  	sizeCache     protoimpl.SizeCache
   833  	unknownFields protoimpl.UnknownFields
   834  
   835  	// Types that are assignable to Argtype:
   836  	//	*ClientArgs_Setup
   837  	//	*ClientArgs_Mark
   838  	Argtype isClientArgs_Argtype `protobuf_oneof:"argtype"`
   839  }
   840  
   841  func (x *ClientArgs) Reset() {
   842  	*x = ClientArgs{}
   843  	if protoimpl.UnsafeEnabled {
   844  		mi := &file_grpc_testing_control_proto_msgTypes[8]
   845  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   846  		ms.StoreMessageInfo(mi)
   847  	}
   848  }
   849  
   850  func (x *ClientArgs) String() string {
   851  	return protoimpl.X.MessageStringOf(x)
   852  }
   853  
   854  func (*ClientArgs) ProtoMessage() {}
   855  
   856  func (x *ClientArgs) ProtoReflect() protoreflect.Message {
   857  	mi := &file_grpc_testing_control_proto_msgTypes[8]
   858  	if protoimpl.UnsafeEnabled && x != nil {
   859  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   860  		if ms.LoadMessageInfo() == nil {
   861  			ms.StoreMessageInfo(mi)
   862  		}
   863  		return ms
   864  	}
   865  	return mi.MessageOf(x)
   866  }
   867  
   868  // Deprecated: Use ClientArgs.ProtoReflect.Descriptor instead.
   869  func (*ClientArgs) Descriptor() ([]byte, []int) {
   870  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{8}
   871  }
   872  
   873  func (m *ClientArgs) GetArgtype() isClientArgs_Argtype {
   874  	if m != nil {
   875  		return m.Argtype
   876  	}
   877  	return nil
   878  }
   879  
   880  func (x *ClientArgs) GetSetup() *ClientConfig {
   881  	if x, ok := x.GetArgtype().(*ClientArgs_Setup); ok {
   882  		return x.Setup
   883  	}
   884  	return nil
   885  }
   886  
   887  func (x *ClientArgs) GetMark() *Mark {
   888  	if x, ok := x.GetArgtype().(*ClientArgs_Mark); ok {
   889  		return x.Mark
   890  	}
   891  	return nil
   892  }
   893  
   894  type isClientArgs_Argtype interface {
   895  	isClientArgs_Argtype()
   896  }
   897  
   898  type ClientArgs_Setup struct {
   899  	Setup *ClientConfig `protobuf:"bytes,1,opt,name=setup,proto3,oneof"`
   900  }
   901  
   902  type ClientArgs_Mark struct {
   903  	Mark *Mark `protobuf:"bytes,2,opt,name=mark,proto3,oneof"`
   904  }
   905  
   906  func (*ClientArgs_Setup) isClientArgs_Argtype() {}
   907  
   908  func (*ClientArgs_Mark) isClientArgs_Argtype() {}
   909  
   910  type ServerConfig struct {
   911  	state         protoimpl.MessageState
   912  	sizeCache     protoimpl.SizeCache
   913  	unknownFields protoimpl.UnknownFields
   914  
   915  	ServerType     ServerType      `protobuf:"varint,1,opt,name=server_type,json=serverType,proto3,enum=grpc.testing.ServerType" json:"server_type,omitempty"`
   916  	SecurityParams *SecurityParams `protobuf:"bytes,2,opt,name=security_params,json=securityParams,proto3" json:"security_params,omitempty"`
   917  	// Port on which to listen. Zero means pick unused port.
   918  	Port int32 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"`
   919  	// Only for async server. Number of threads used to serve the requests.
   920  	AsyncServerThreads int32 `protobuf:"varint,7,opt,name=async_server_threads,json=asyncServerThreads,proto3" json:"async_server_threads,omitempty"`
   921  	// Specify the number of cores to limit server to, if desired
   922  	CoreLimit int32 `protobuf:"varint,8,opt,name=core_limit,json=coreLimit,proto3" json:"core_limit,omitempty"`
   923  	// payload config, used in generic server.
   924  	// Note this must NOT be used in proto (non-generic) servers. For proto servers,
   925  	// 'response sizes' must be configured from the 'response_size' field of the
   926  	// 'SimpleRequest' objects in RPC requests.
   927  	PayloadConfig *PayloadConfig `protobuf:"bytes,9,opt,name=payload_config,json=payloadConfig,proto3" json:"payload_config,omitempty"`
   928  	// Specify the cores we should run the server on, if desired
   929  	CoreList []int32 `protobuf:"varint,10,rep,packed,name=core_list,json=coreList,proto3" json:"core_list,omitempty"`
   930  	// If we use an OTHER_SERVER client_type, this string gives more detail
   931  	OtherServerApi string `protobuf:"bytes,11,opt,name=other_server_api,json=otherServerApi,proto3" json:"other_server_api,omitempty"`
   932  	// Number of threads that share each completion queue
   933  	ThreadsPerCq int32 `protobuf:"varint,12,opt,name=threads_per_cq,json=threadsPerCq,proto3" json:"threads_per_cq,omitempty"`
   934  	// Buffer pool size (no buffer pool specified if unset)
   935  	ResourceQuotaSize int32         `protobuf:"varint,1001,opt,name=resource_quota_size,json=resourceQuotaSize,proto3" json:"resource_quota_size,omitempty"`
   936  	ChannelArgs       []*ChannelArg `protobuf:"bytes,1002,rep,name=channel_args,json=channelArgs,proto3" json:"channel_args,omitempty"`
   937  	// Number of server processes. 0 indicates no restriction.
   938  	ServerProcesses int32 `protobuf:"varint,21,opt,name=server_processes,json=serverProcesses,proto3" json:"server_processes,omitempty"`
   939  }
   940  
   941  func (x *ServerConfig) Reset() {
   942  	*x = ServerConfig{}
   943  	if protoimpl.UnsafeEnabled {
   944  		mi := &file_grpc_testing_control_proto_msgTypes[9]
   945  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   946  		ms.StoreMessageInfo(mi)
   947  	}
   948  }
   949  
   950  func (x *ServerConfig) String() string {
   951  	return protoimpl.X.MessageStringOf(x)
   952  }
   953  
   954  func (*ServerConfig) ProtoMessage() {}
   955  
   956  func (x *ServerConfig) ProtoReflect() protoreflect.Message {
   957  	mi := &file_grpc_testing_control_proto_msgTypes[9]
   958  	if protoimpl.UnsafeEnabled && x != nil {
   959  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   960  		if ms.LoadMessageInfo() == nil {
   961  			ms.StoreMessageInfo(mi)
   962  		}
   963  		return ms
   964  	}
   965  	return mi.MessageOf(x)
   966  }
   967  
   968  // Deprecated: Use ServerConfig.ProtoReflect.Descriptor instead.
   969  func (*ServerConfig) Descriptor() ([]byte, []int) {
   970  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{9}
   971  }
   972  
   973  func (x *ServerConfig) GetServerType() ServerType {
   974  	if x != nil {
   975  		return x.ServerType
   976  	}
   977  	return ServerType_SYNC_SERVER
   978  }
   979  
   980  func (x *ServerConfig) GetSecurityParams() *SecurityParams {
   981  	if x != nil {
   982  		return x.SecurityParams
   983  	}
   984  	return nil
   985  }
   986  
   987  func (x *ServerConfig) GetPort() int32 {
   988  	if x != nil {
   989  		return x.Port
   990  	}
   991  	return 0
   992  }
   993  
   994  func (x *ServerConfig) GetAsyncServerThreads() int32 {
   995  	if x != nil {
   996  		return x.AsyncServerThreads
   997  	}
   998  	return 0
   999  }
  1000  
  1001  func (x *ServerConfig) GetCoreLimit() int32 {
  1002  	if x != nil {
  1003  		return x.CoreLimit
  1004  	}
  1005  	return 0
  1006  }
  1007  
  1008  func (x *ServerConfig) GetPayloadConfig() *PayloadConfig {
  1009  	if x != nil {
  1010  		return x.PayloadConfig
  1011  	}
  1012  	return nil
  1013  }
  1014  
  1015  func (x *ServerConfig) GetCoreList() []int32 {
  1016  	if x != nil {
  1017  		return x.CoreList
  1018  	}
  1019  	return nil
  1020  }
  1021  
  1022  func (x *ServerConfig) GetOtherServerApi() string {
  1023  	if x != nil {
  1024  		return x.OtherServerApi
  1025  	}
  1026  	return ""
  1027  }
  1028  
  1029  func (x *ServerConfig) GetThreadsPerCq() int32 {
  1030  	if x != nil {
  1031  		return x.ThreadsPerCq
  1032  	}
  1033  	return 0
  1034  }
  1035  
  1036  func (x *ServerConfig) GetResourceQuotaSize() int32 {
  1037  	if x != nil {
  1038  		return x.ResourceQuotaSize
  1039  	}
  1040  	return 0
  1041  }
  1042  
  1043  func (x *ServerConfig) GetChannelArgs() []*ChannelArg {
  1044  	if x != nil {
  1045  		return x.ChannelArgs
  1046  	}
  1047  	return nil
  1048  }
  1049  
  1050  func (x *ServerConfig) GetServerProcesses() int32 {
  1051  	if x != nil {
  1052  		return x.ServerProcesses
  1053  	}
  1054  	return 0
  1055  }
  1056  
  1057  type ServerArgs struct {
  1058  	state         protoimpl.MessageState
  1059  	sizeCache     protoimpl.SizeCache
  1060  	unknownFields protoimpl.UnknownFields
  1061  
  1062  	// Types that are assignable to Argtype:
  1063  	//	*ServerArgs_Setup
  1064  	//	*ServerArgs_Mark
  1065  	Argtype isServerArgs_Argtype `protobuf_oneof:"argtype"`
  1066  }
  1067  
  1068  func (x *ServerArgs) Reset() {
  1069  	*x = ServerArgs{}
  1070  	if protoimpl.UnsafeEnabled {
  1071  		mi := &file_grpc_testing_control_proto_msgTypes[10]
  1072  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1073  		ms.StoreMessageInfo(mi)
  1074  	}
  1075  }
  1076  
  1077  func (x *ServerArgs) String() string {
  1078  	return protoimpl.X.MessageStringOf(x)
  1079  }
  1080  
  1081  func (*ServerArgs) ProtoMessage() {}
  1082  
  1083  func (x *ServerArgs) ProtoReflect() protoreflect.Message {
  1084  	mi := &file_grpc_testing_control_proto_msgTypes[10]
  1085  	if protoimpl.UnsafeEnabled && x != nil {
  1086  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1087  		if ms.LoadMessageInfo() == nil {
  1088  			ms.StoreMessageInfo(mi)
  1089  		}
  1090  		return ms
  1091  	}
  1092  	return mi.MessageOf(x)
  1093  }
  1094  
  1095  // Deprecated: Use ServerArgs.ProtoReflect.Descriptor instead.
  1096  func (*ServerArgs) Descriptor() ([]byte, []int) {
  1097  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{10}
  1098  }
  1099  
  1100  func (m *ServerArgs) GetArgtype() isServerArgs_Argtype {
  1101  	if m != nil {
  1102  		return m.Argtype
  1103  	}
  1104  	return nil
  1105  }
  1106  
  1107  func (x *ServerArgs) GetSetup() *ServerConfig {
  1108  	if x, ok := x.GetArgtype().(*ServerArgs_Setup); ok {
  1109  		return x.Setup
  1110  	}
  1111  	return nil
  1112  }
  1113  
  1114  func (x *ServerArgs) GetMark() *Mark {
  1115  	if x, ok := x.GetArgtype().(*ServerArgs_Mark); ok {
  1116  		return x.Mark
  1117  	}
  1118  	return nil
  1119  }
  1120  
  1121  type isServerArgs_Argtype interface {
  1122  	isServerArgs_Argtype()
  1123  }
  1124  
  1125  type ServerArgs_Setup struct {
  1126  	Setup *ServerConfig `protobuf:"bytes,1,opt,name=setup,proto3,oneof"`
  1127  }
  1128  
  1129  type ServerArgs_Mark struct {
  1130  	Mark *Mark `protobuf:"bytes,2,opt,name=mark,proto3,oneof"`
  1131  }
  1132  
  1133  func (*ServerArgs_Setup) isServerArgs_Argtype() {}
  1134  
  1135  func (*ServerArgs_Mark) isServerArgs_Argtype() {}
  1136  
  1137  type ServerStatus struct {
  1138  	state         protoimpl.MessageState
  1139  	sizeCache     protoimpl.SizeCache
  1140  	unknownFields protoimpl.UnknownFields
  1141  
  1142  	Stats *ServerStats `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"`
  1143  	// the port bound by the server
  1144  	Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
  1145  	// Number of cores available to the server
  1146  	Cores int32 `protobuf:"varint,3,opt,name=cores,proto3" json:"cores,omitempty"`
  1147  }
  1148  
  1149  func (x *ServerStatus) Reset() {
  1150  	*x = ServerStatus{}
  1151  	if protoimpl.UnsafeEnabled {
  1152  		mi := &file_grpc_testing_control_proto_msgTypes[11]
  1153  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1154  		ms.StoreMessageInfo(mi)
  1155  	}
  1156  }
  1157  
  1158  func (x *ServerStatus) String() string {
  1159  	return protoimpl.X.MessageStringOf(x)
  1160  }
  1161  
  1162  func (*ServerStatus) ProtoMessage() {}
  1163  
  1164  func (x *ServerStatus) ProtoReflect() protoreflect.Message {
  1165  	mi := &file_grpc_testing_control_proto_msgTypes[11]
  1166  	if protoimpl.UnsafeEnabled && x != nil {
  1167  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1168  		if ms.LoadMessageInfo() == nil {
  1169  			ms.StoreMessageInfo(mi)
  1170  		}
  1171  		return ms
  1172  	}
  1173  	return mi.MessageOf(x)
  1174  }
  1175  
  1176  // Deprecated: Use ServerStatus.ProtoReflect.Descriptor instead.
  1177  func (*ServerStatus) Descriptor() ([]byte, []int) {
  1178  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{11}
  1179  }
  1180  
  1181  func (x *ServerStatus) GetStats() *ServerStats {
  1182  	if x != nil {
  1183  		return x.Stats
  1184  	}
  1185  	return nil
  1186  }
  1187  
  1188  func (x *ServerStatus) GetPort() int32 {
  1189  	if x != nil {
  1190  		return x.Port
  1191  	}
  1192  	return 0
  1193  }
  1194  
  1195  func (x *ServerStatus) GetCores() int32 {
  1196  	if x != nil {
  1197  		return x.Cores
  1198  	}
  1199  	return 0
  1200  }
  1201  
  1202  type CoreRequest struct {
  1203  	state         protoimpl.MessageState
  1204  	sizeCache     protoimpl.SizeCache
  1205  	unknownFields protoimpl.UnknownFields
  1206  }
  1207  
  1208  func (x *CoreRequest) Reset() {
  1209  	*x = CoreRequest{}
  1210  	if protoimpl.UnsafeEnabled {
  1211  		mi := &file_grpc_testing_control_proto_msgTypes[12]
  1212  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1213  		ms.StoreMessageInfo(mi)
  1214  	}
  1215  }
  1216  
  1217  func (x *CoreRequest) String() string {
  1218  	return protoimpl.X.MessageStringOf(x)
  1219  }
  1220  
  1221  func (*CoreRequest) ProtoMessage() {}
  1222  
  1223  func (x *CoreRequest) ProtoReflect() protoreflect.Message {
  1224  	mi := &file_grpc_testing_control_proto_msgTypes[12]
  1225  	if protoimpl.UnsafeEnabled && x != nil {
  1226  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1227  		if ms.LoadMessageInfo() == nil {
  1228  			ms.StoreMessageInfo(mi)
  1229  		}
  1230  		return ms
  1231  	}
  1232  	return mi.MessageOf(x)
  1233  }
  1234  
  1235  // Deprecated: Use CoreRequest.ProtoReflect.Descriptor instead.
  1236  func (*CoreRequest) Descriptor() ([]byte, []int) {
  1237  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{12}
  1238  }
  1239  
  1240  type CoreResponse struct {
  1241  	state         protoimpl.MessageState
  1242  	sizeCache     protoimpl.SizeCache
  1243  	unknownFields protoimpl.UnknownFields
  1244  
  1245  	// Number of cores available on the server
  1246  	Cores int32 `protobuf:"varint,1,opt,name=cores,proto3" json:"cores,omitempty"`
  1247  }
  1248  
  1249  func (x *CoreResponse) Reset() {
  1250  	*x = CoreResponse{}
  1251  	if protoimpl.UnsafeEnabled {
  1252  		mi := &file_grpc_testing_control_proto_msgTypes[13]
  1253  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1254  		ms.StoreMessageInfo(mi)
  1255  	}
  1256  }
  1257  
  1258  func (x *CoreResponse) String() string {
  1259  	return protoimpl.X.MessageStringOf(x)
  1260  }
  1261  
  1262  func (*CoreResponse) ProtoMessage() {}
  1263  
  1264  func (x *CoreResponse) ProtoReflect() protoreflect.Message {
  1265  	mi := &file_grpc_testing_control_proto_msgTypes[13]
  1266  	if protoimpl.UnsafeEnabled && x != nil {
  1267  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1268  		if ms.LoadMessageInfo() == nil {
  1269  			ms.StoreMessageInfo(mi)
  1270  		}
  1271  		return ms
  1272  	}
  1273  	return mi.MessageOf(x)
  1274  }
  1275  
  1276  // Deprecated: Use CoreResponse.ProtoReflect.Descriptor instead.
  1277  func (*CoreResponse) Descriptor() ([]byte, []int) {
  1278  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{13}
  1279  }
  1280  
  1281  func (x *CoreResponse) GetCores() int32 {
  1282  	if x != nil {
  1283  		return x.Cores
  1284  	}
  1285  	return 0
  1286  }
  1287  
  1288  type Void struct {
  1289  	state         protoimpl.MessageState
  1290  	sizeCache     protoimpl.SizeCache
  1291  	unknownFields protoimpl.UnknownFields
  1292  }
  1293  
  1294  func (x *Void) Reset() {
  1295  	*x = Void{}
  1296  	if protoimpl.UnsafeEnabled {
  1297  		mi := &file_grpc_testing_control_proto_msgTypes[14]
  1298  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1299  		ms.StoreMessageInfo(mi)
  1300  	}
  1301  }
  1302  
  1303  func (x *Void) String() string {
  1304  	return protoimpl.X.MessageStringOf(x)
  1305  }
  1306  
  1307  func (*Void) ProtoMessage() {}
  1308  
  1309  func (x *Void) ProtoReflect() protoreflect.Message {
  1310  	mi := &file_grpc_testing_control_proto_msgTypes[14]
  1311  	if protoimpl.UnsafeEnabled && x != nil {
  1312  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1313  		if ms.LoadMessageInfo() == nil {
  1314  			ms.StoreMessageInfo(mi)
  1315  		}
  1316  		return ms
  1317  	}
  1318  	return mi.MessageOf(x)
  1319  }
  1320  
  1321  // Deprecated: Use Void.ProtoReflect.Descriptor instead.
  1322  func (*Void) Descriptor() ([]byte, []int) {
  1323  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{14}
  1324  }
  1325  
  1326  // A single performance scenario: input to qps_json_driver
  1327  type Scenario struct {
  1328  	state         protoimpl.MessageState
  1329  	sizeCache     protoimpl.SizeCache
  1330  	unknownFields protoimpl.UnknownFields
  1331  
  1332  	// Human readable name for this scenario
  1333  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  1334  	// Client configuration
  1335  	ClientConfig *ClientConfig `protobuf:"bytes,2,opt,name=client_config,json=clientConfig,proto3" json:"client_config,omitempty"`
  1336  	// Number of clients to start for the test
  1337  	NumClients int32 `protobuf:"varint,3,opt,name=num_clients,json=numClients,proto3" json:"num_clients,omitempty"`
  1338  	// Server configuration
  1339  	ServerConfig *ServerConfig `protobuf:"bytes,4,opt,name=server_config,json=serverConfig,proto3" json:"server_config,omitempty"`
  1340  	// Number of servers to start for the test
  1341  	NumServers int32 `protobuf:"varint,5,opt,name=num_servers,json=numServers,proto3" json:"num_servers,omitempty"`
  1342  	// Warmup period, in seconds
  1343  	WarmupSeconds int32 `protobuf:"varint,6,opt,name=warmup_seconds,json=warmupSeconds,proto3" json:"warmup_seconds,omitempty"`
  1344  	// Benchmark time, in seconds
  1345  	BenchmarkSeconds int32 `protobuf:"varint,7,opt,name=benchmark_seconds,json=benchmarkSeconds,proto3" json:"benchmark_seconds,omitempty"`
  1346  	// Number of workers to spawn locally (usually zero)
  1347  	SpawnLocalWorkerCount int32 `protobuf:"varint,8,opt,name=spawn_local_worker_count,json=spawnLocalWorkerCount,proto3" json:"spawn_local_worker_count,omitempty"`
  1348  }
  1349  
  1350  func (x *Scenario) Reset() {
  1351  	*x = Scenario{}
  1352  	if protoimpl.UnsafeEnabled {
  1353  		mi := &file_grpc_testing_control_proto_msgTypes[15]
  1354  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1355  		ms.StoreMessageInfo(mi)
  1356  	}
  1357  }
  1358  
  1359  func (x *Scenario) String() string {
  1360  	return protoimpl.X.MessageStringOf(x)
  1361  }
  1362  
  1363  func (*Scenario) ProtoMessage() {}
  1364  
  1365  func (x *Scenario) ProtoReflect() protoreflect.Message {
  1366  	mi := &file_grpc_testing_control_proto_msgTypes[15]
  1367  	if protoimpl.UnsafeEnabled && x != nil {
  1368  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1369  		if ms.LoadMessageInfo() == nil {
  1370  			ms.StoreMessageInfo(mi)
  1371  		}
  1372  		return ms
  1373  	}
  1374  	return mi.MessageOf(x)
  1375  }
  1376  
  1377  // Deprecated: Use Scenario.ProtoReflect.Descriptor instead.
  1378  func (*Scenario) Descriptor() ([]byte, []int) {
  1379  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{15}
  1380  }
  1381  
  1382  func (x *Scenario) GetName() string {
  1383  	if x != nil {
  1384  		return x.Name
  1385  	}
  1386  	return ""
  1387  }
  1388  
  1389  func (x *Scenario) GetClientConfig() *ClientConfig {
  1390  	if x != nil {
  1391  		return x.ClientConfig
  1392  	}
  1393  	return nil
  1394  }
  1395  
  1396  func (x *Scenario) GetNumClients() int32 {
  1397  	if x != nil {
  1398  		return x.NumClients
  1399  	}
  1400  	return 0
  1401  }
  1402  
  1403  func (x *Scenario) GetServerConfig() *ServerConfig {
  1404  	if x != nil {
  1405  		return x.ServerConfig
  1406  	}
  1407  	return nil
  1408  }
  1409  
  1410  func (x *Scenario) GetNumServers() int32 {
  1411  	if x != nil {
  1412  		return x.NumServers
  1413  	}
  1414  	return 0
  1415  }
  1416  
  1417  func (x *Scenario) GetWarmupSeconds() int32 {
  1418  	if x != nil {
  1419  		return x.WarmupSeconds
  1420  	}
  1421  	return 0
  1422  }
  1423  
  1424  func (x *Scenario) GetBenchmarkSeconds() int32 {
  1425  	if x != nil {
  1426  		return x.BenchmarkSeconds
  1427  	}
  1428  	return 0
  1429  }
  1430  
  1431  func (x *Scenario) GetSpawnLocalWorkerCount() int32 {
  1432  	if x != nil {
  1433  		return x.SpawnLocalWorkerCount
  1434  	}
  1435  	return 0
  1436  }
  1437  
  1438  // A set of scenarios to be run with qps_json_driver
  1439  type Scenarios struct {
  1440  	state         protoimpl.MessageState
  1441  	sizeCache     protoimpl.SizeCache
  1442  	unknownFields protoimpl.UnknownFields
  1443  
  1444  	Scenarios []*Scenario `protobuf:"bytes,1,rep,name=scenarios,proto3" json:"scenarios,omitempty"`
  1445  }
  1446  
  1447  func (x *Scenarios) Reset() {
  1448  	*x = Scenarios{}
  1449  	if protoimpl.UnsafeEnabled {
  1450  		mi := &file_grpc_testing_control_proto_msgTypes[16]
  1451  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1452  		ms.StoreMessageInfo(mi)
  1453  	}
  1454  }
  1455  
  1456  func (x *Scenarios) String() string {
  1457  	return protoimpl.X.MessageStringOf(x)
  1458  }
  1459  
  1460  func (*Scenarios) ProtoMessage() {}
  1461  
  1462  func (x *Scenarios) ProtoReflect() protoreflect.Message {
  1463  	mi := &file_grpc_testing_control_proto_msgTypes[16]
  1464  	if protoimpl.UnsafeEnabled && x != nil {
  1465  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1466  		if ms.LoadMessageInfo() == nil {
  1467  			ms.StoreMessageInfo(mi)
  1468  		}
  1469  		return ms
  1470  	}
  1471  	return mi.MessageOf(x)
  1472  }
  1473  
  1474  // Deprecated: Use Scenarios.ProtoReflect.Descriptor instead.
  1475  func (*Scenarios) Descriptor() ([]byte, []int) {
  1476  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{16}
  1477  }
  1478  
  1479  func (x *Scenarios) GetScenarios() []*Scenario {
  1480  	if x != nil {
  1481  		return x.Scenarios
  1482  	}
  1483  	return nil
  1484  }
  1485  
  1486  // Basic summary that can be computed from ClientStats and ServerStats
  1487  // once the scenario has finished.
  1488  type ScenarioResultSummary struct {
  1489  	state         protoimpl.MessageState
  1490  	sizeCache     protoimpl.SizeCache
  1491  	unknownFields protoimpl.UnknownFields
  1492  
  1493  	// Total number of operations per second over all clients. What is counted as 1 'operation' depends on the benchmark scenarios:
  1494  	// For unary benchmarks, an operation is processing of a single unary RPC.
  1495  	// For streaming benchmarks, an operation is processing of a single ping pong of request and response.
  1496  	Qps float64 `protobuf:"fixed64,1,opt,name=qps,proto3" json:"qps,omitempty"`
  1497  	// QPS per server core.
  1498  	QpsPerServerCore float64 `protobuf:"fixed64,2,opt,name=qps_per_server_core,json=qpsPerServerCore,proto3" json:"qps_per_server_core,omitempty"`
  1499  	// The total server cpu load based on system time across all server processes, expressed as percentage of a single cpu core.
  1500  	// For example, 85 implies 85% of a cpu core, 125 implies 125% of a cpu core. Since we are accumulating the cpu load across all the server
  1501  	// processes, the value could > 100 when there are multiple servers or a single server using multiple threads and cores.
  1502  	// Same explanation for the total client cpu load below.
  1503  	ServerSystemTime float64 `protobuf:"fixed64,3,opt,name=server_system_time,json=serverSystemTime,proto3" json:"server_system_time,omitempty"`
  1504  	// The total server cpu load based on user time across all server processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
  1505  	ServerUserTime float64 `protobuf:"fixed64,4,opt,name=server_user_time,json=serverUserTime,proto3" json:"server_user_time,omitempty"`
  1506  	// The total client cpu load based on system time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
  1507  	ClientSystemTime float64 `protobuf:"fixed64,5,opt,name=client_system_time,json=clientSystemTime,proto3" json:"client_system_time,omitempty"`
  1508  	// The total client cpu load based on user time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
  1509  	ClientUserTime float64 `protobuf:"fixed64,6,opt,name=client_user_time,json=clientUserTime,proto3" json:"client_user_time,omitempty"`
  1510  	// X% latency percentiles (in nanoseconds)
  1511  	Latency_50  float64 `protobuf:"fixed64,7,opt,name=latency_50,json=latency50,proto3" json:"latency_50,omitempty"`
  1512  	Latency_90  float64 `protobuf:"fixed64,8,opt,name=latency_90,json=latency90,proto3" json:"latency_90,omitempty"`
  1513  	Latency_95  float64 `protobuf:"fixed64,9,opt,name=latency_95,json=latency95,proto3" json:"latency_95,omitempty"`
  1514  	Latency_99  float64 `protobuf:"fixed64,10,opt,name=latency_99,json=latency99,proto3" json:"latency_99,omitempty"`
  1515  	Latency_999 float64 `protobuf:"fixed64,11,opt,name=latency_999,json=latency999,proto3" json:"latency_999,omitempty"`
  1516  	// server cpu usage percentage
  1517  	ServerCpuUsage float64 `protobuf:"fixed64,12,opt,name=server_cpu_usage,json=serverCpuUsage,proto3" json:"server_cpu_usage,omitempty"`
  1518  	// Number of requests that succeeded/failed
  1519  	SuccessfulRequestsPerSecond float64 `protobuf:"fixed64,13,opt,name=successful_requests_per_second,json=successfulRequestsPerSecond,proto3" json:"successful_requests_per_second,omitempty"`
  1520  	FailedRequestsPerSecond     float64 `protobuf:"fixed64,14,opt,name=failed_requests_per_second,json=failedRequestsPerSecond,proto3" json:"failed_requests_per_second,omitempty"`
  1521  	// Number of polls called inside completion queue per request
  1522  	ClientPollsPerRequest float64 `protobuf:"fixed64,15,opt,name=client_polls_per_request,json=clientPollsPerRequest,proto3" json:"client_polls_per_request,omitempty"`
  1523  	ServerPollsPerRequest float64 `protobuf:"fixed64,16,opt,name=server_polls_per_request,json=serverPollsPerRequest,proto3" json:"server_polls_per_request,omitempty"`
  1524  	// Queries per CPU-sec over all servers or clients
  1525  	ServerQueriesPerCpuSec float64 `protobuf:"fixed64,17,opt,name=server_queries_per_cpu_sec,json=serverQueriesPerCpuSec,proto3" json:"server_queries_per_cpu_sec,omitempty"`
  1526  	ClientQueriesPerCpuSec float64 `protobuf:"fixed64,18,opt,name=client_queries_per_cpu_sec,json=clientQueriesPerCpuSec,proto3" json:"client_queries_per_cpu_sec,omitempty"`
  1527  }
  1528  
  1529  func (x *ScenarioResultSummary) Reset() {
  1530  	*x = ScenarioResultSummary{}
  1531  	if protoimpl.UnsafeEnabled {
  1532  		mi := &file_grpc_testing_control_proto_msgTypes[17]
  1533  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1534  		ms.StoreMessageInfo(mi)
  1535  	}
  1536  }
  1537  
  1538  func (x *ScenarioResultSummary) String() string {
  1539  	return protoimpl.X.MessageStringOf(x)
  1540  }
  1541  
  1542  func (*ScenarioResultSummary) ProtoMessage() {}
  1543  
  1544  func (x *ScenarioResultSummary) ProtoReflect() protoreflect.Message {
  1545  	mi := &file_grpc_testing_control_proto_msgTypes[17]
  1546  	if protoimpl.UnsafeEnabled && x != nil {
  1547  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1548  		if ms.LoadMessageInfo() == nil {
  1549  			ms.StoreMessageInfo(mi)
  1550  		}
  1551  		return ms
  1552  	}
  1553  	return mi.MessageOf(x)
  1554  }
  1555  
  1556  // Deprecated: Use ScenarioResultSummary.ProtoReflect.Descriptor instead.
  1557  func (*ScenarioResultSummary) Descriptor() ([]byte, []int) {
  1558  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{17}
  1559  }
  1560  
  1561  func (x *ScenarioResultSummary) GetQps() float64 {
  1562  	if x != nil {
  1563  		return x.Qps
  1564  	}
  1565  	return 0
  1566  }
  1567  
  1568  func (x *ScenarioResultSummary) GetQpsPerServerCore() float64 {
  1569  	if x != nil {
  1570  		return x.QpsPerServerCore
  1571  	}
  1572  	return 0
  1573  }
  1574  
  1575  func (x *ScenarioResultSummary) GetServerSystemTime() float64 {
  1576  	if x != nil {
  1577  		return x.ServerSystemTime
  1578  	}
  1579  	return 0
  1580  }
  1581  
  1582  func (x *ScenarioResultSummary) GetServerUserTime() float64 {
  1583  	if x != nil {
  1584  		return x.ServerUserTime
  1585  	}
  1586  	return 0
  1587  }
  1588  
  1589  func (x *ScenarioResultSummary) GetClientSystemTime() float64 {
  1590  	if x != nil {
  1591  		return x.ClientSystemTime
  1592  	}
  1593  	return 0
  1594  }
  1595  
  1596  func (x *ScenarioResultSummary) GetClientUserTime() float64 {
  1597  	if x != nil {
  1598  		return x.ClientUserTime
  1599  	}
  1600  	return 0
  1601  }
  1602  
  1603  func (x *ScenarioResultSummary) GetLatency_50() float64 {
  1604  	if x != nil {
  1605  		return x.Latency_50
  1606  	}
  1607  	return 0
  1608  }
  1609  
  1610  func (x *ScenarioResultSummary) GetLatency_90() float64 {
  1611  	if x != nil {
  1612  		return x.Latency_90
  1613  	}
  1614  	return 0
  1615  }
  1616  
  1617  func (x *ScenarioResultSummary) GetLatency_95() float64 {
  1618  	if x != nil {
  1619  		return x.Latency_95
  1620  	}
  1621  	return 0
  1622  }
  1623  
  1624  func (x *ScenarioResultSummary) GetLatency_99() float64 {
  1625  	if x != nil {
  1626  		return x.Latency_99
  1627  	}
  1628  	return 0
  1629  }
  1630  
  1631  func (x *ScenarioResultSummary) GetLatency_999() float64 {
  1632  	if x != nil {
  1633  		return x.Latency_999
  1634  	}
  1635  	return 0
  1636  }
  1637  
  1638  func (x *ScenarioResultSummary) GetServerCpuUsage() float64 {
  1639  	if x != nil {
  1640  		return x.ServerCpuUsage
  1641  	}
  1642  	return 0
  1643  }
  1644  
  1645  func (x *ScenarioResultSummary) GetSuccessfulRequestsPerSecond() float64 {
  1646  	if x != nil {
  1647  		return x.SuccessfulRequestsPerSecond
  1648  	}
  1649  	return 0
  1650  }
  1651  
  1652  func (x *ScenarioResultSummary) GetFailedRequestsPerSecond() float64 {
  1653  	if x != nil {
  1654  		return x.FailedRequestsPerSecond
  1655  	}
  1656  	return 0
  1657  }
  1658  
  1659  func (x *ScenarioResultSummary) GetClientPollsPerRequest() float64 {
  1660  	if x != nil {
  1661  		return x.ClientPollsPerRequest
  1662  	}
  1663  	return 0
  1664  }
  1665  
  1666  func (x *ScenarioResultSummary) GetServerPollsPerRequest() float64 {
  1667  	if x != nil {
  1668  		return x.ServerPollsPerRequest
  1669  	}
  1670  	return 0
  1671  }
  1672  
  1673  func (x *ScenarioResultSummary) GetServerQueriesPerCpuSec() float64 {
  1674  	if x != nil {
  1675  		return x.ServerQueriesPerCpuSec
  1676  	}
  1677  	return 0
  1678  }
  1679  
  1680  func (x *ScenarioResultSummary) GetClientQueriesPerCpuSec() float64 {
  1681  	if x != nil {
  1682  		return x.ClientQueriesPerCpuSec
  1683  	}
  1684  	return 0
  1685  }
  1686  
  1687  // Results of a single benchmark scenario.
  1688  type ScenarioResult struct {
  1689  	state         protoimpl.MessageState
  1690  	sizeCache     protoimpl.SizeCache
  1691  	unknownFields protoimpl.UnknownFields
  1692  
  1693  	// Inputs used to run the scenario.
  1694  	Scenario *Scenario `protobuf:"bytes,1,opt,name=scenario,proto3" json:"scenario,omitempty"`
  1695  	// Histograms from all clients merged into one histogram.
  1696  	Latencies *HistogramData `protobuf:"bytes,2,opt,name=latencies,proto3" json:"latencies,omitempty"`
  1697  	// Client stats for each client
  1698  	ClientStats []*ClientStats `protobuf:"bytes,3,rep,name=client_stats,json=clientStats,proto3" json:"client_stats,omitempty"`
  1699  	// Server stats for each server
  1700  	ServerStats []*ServerStats `protobuf:"bytes,4,rep,name=server_stats,json=serverStats,proto3" json:"server_stats,omitempty"`
  1701  	// Number of cores available to each server
  1702  	ServerCores []int32 `protobuf:"varint,5,rep,packed,name=server_cores,json=serverCores,proto3" json:"server_cores,omitempty"`
  1703  	// An after-the-fact computed summary
  1704  	Summary *ScenarioResultSummary `protobuf:"bytes,6,opt,name=summary,proto3" json:"summary,omitempty"`
  1705  	// Information on success or failure of each worker
  1706  	ClientSuccess []bool `protobuf:"varint,7,rep,packed,name=client_success,json=clientSuccess,proto3" json:"client_success,omitempty"`
  1707  	ServerSuccess []bool `protobuf:"varint,8,rep,packed,name=server_success,json=serverSuccess,proto3" json:"server_success,omitempty"`
  1708  	// Number of failed requests (one row per status code seen)
  1709  	RequestResults []*RequestResultCount `protobuf:"bytes,9,rep,name=request_results,json=requestResults,proto3" json:"request_results,omitempty"`
  1710  }
  1711  
  1712  func (x *ScenarioResult) Reset() {
  1713  	*x = ScenarioResult{}
  1714  	if protoimpl.UnsafeEnabled {
  1715  		mi := &file_grpc_testing_control_proto_msgTypes[18]
  1716  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1717  		ms.StoreMessageInfo(mi)
  1718  	}
  1719  }
  1720  
  1721  func (x *ScenarioResult) String() string {
  1722  	return protoimpl.X.MessageStringOf(x)
  1723  }
  1724  
  1725  func (*ScenarioResult) ProtoMessage() {}
  1726  
  1727  func (x *ScenarioResult) ProtoReflect() protoreflect.Message {
  1728  	mi := &file_grpc_testing_control_proto_msgTypes[18]
  1729  	if protoimpl.UnsafeEnabled && x != nil {
  1730  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1731  		if ms.LoadMessageInfo() == nil {
  1732  			ms.StoreMessageInfo(mi)
  1733  		}
  1734  		return ms
  1735  	}
  1736  	return mi.MessageOf(x)
  1737  }
  1738  
  1739  // Deprecated: Use ScenarioResult.ProtoReflect.Descriptor instead.
  1740  func (*ScenarioResult) Descriptor() ([]byte, []int) {
  1741  	return file_grpc_testing_control_proto_rawDescGZIP(), []int{18}
  1742  }
  1743  
  1744  func (x *ScenarioResult) GetScenario() *Scenario {
  1745  	if x != nil {
  1746  		return x.Scenario
  1747  	}
  1748  	return nil
  1749  }
  1750  
  1751  func (x *ScenarioResult) GetLatencies() *HistogramData {
  1752  	if x != nil {
  1753  		return x.Latencies
  1754  	}
  1755  	return nil
  1756  }
  1757  
  1758  func (x *ScenarioResult) GetClientStats() []*ClientStats {
  1759  	if x != nil {
  1760  		return x.ClientStats
  1761  	}
  1762  	return nil
  1763  }
  1764  
  1765  func (x *ScenarioResult) GetServerStats() []*ServerStats {
  1766  	if x != nil {
  1767  		return x.ServerStats
  1768  	}
  1769  	return nil
  1770  }
  1771  
  1772  func (x *ScenarioResult) GetServerCores() []int32 {
  1773  	if x != nil {
  1774  		return x.ServerCores
  1775  	}
  1776  	return nil
  1777  }
  1778  
  1779  func (x *ScenarioResult) GetSummary() *ScenarioResultSummary {
  1780  	if x != nil {
  1781  		return x.Summary
  1782  	}
  1783  	return nil
  1784  }
  1785  
  1786  func (x *ScenarioResult) GetClientSuccess() []bool {
  1787  	if x != nil {
  1788  		return x.ClientSuccess
  1789  	}
  1790  	return nil
  1791  }
  1792  
  1793  func (x *ScenarioResult) GetServerSuccess() []bool {
  1794  	if x != nil {
  1795  		return x.ServerSuccess
  1796  	}
  1797  	return nil
  1798  }
  1799  
  1800  func (x *ScenarioResult) GetRequestResults() []*RequestResultCount {
  1801  	if x != nil {
  1802  		return x.RequestResults
  1803  	}
  1804  	return nil
  1805  }
  1806  
  1807  var File_grpc_testing_control_proto protoreflect.FileDescriptor
  1808  
  1809  var file_grpc_testing_control_proto_rawDesc = []byte{
  1810  	0x0a, 0x1a, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x63,
  1811  	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x67, 0x72,
  1812  	0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x1a, 0x1b, 0x67, 0x72, 0x70, 0x63,
  1813  	0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64,
  1814  	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x65,
  1815  	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  1816  	0x6f, 0x22, 0x32, 0x0a, 0x0d, 0x50, 0x6f, 0x69, 0x73, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61,
  1817  	0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x6f,
  1818  	0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65,
  1819  	0x64, 0x4c, 0x6f, 0x61, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x4c,
  1820  	0x6f, 0x6f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x0a, 0x4c, 0x6f,
  1821  	0x61, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x6c, 0x6f, 0x73,
  1822  	0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
  1823  	0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6c, 0x6f,
  1824  	0x73, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52,
  1825  	0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x12, 0x37, 0x0a, 0x07, 0x70,
  1826  	0x6f, 0x69, 0x73, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
  1827  	0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x6f, 0x69, 0x73,
  1828  	0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x07, 0x70, 0x6f, 0x69,
  1829  	0x73, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x7f, 0x0a, 0x0e,
  1830  	0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e,
  1831  	0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x18, 0x01, 0x20,
  1832  	0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x73, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x12, 0x30,
  1833  	0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6f, 0x76,
  1834  	0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65,
  1835  	0x72, 0x76, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65,
  1836  	0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
  1837  	0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x67, 0x0a,
  1838  	0x0a, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e,
  1839  	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
  1840  	0x1d, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
  1841  	0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d,
  1842  	0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
  1843  	0x05, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a,
  1844  	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf6, 0x07, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e,
  1845  	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65,
  1846  	0x72, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
  1847  	0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x39,
  1848  	0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
  1849  	0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
  1850  	0x6e, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x63,
  1851  	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x73, 0x65, 0x63,
  1852  	0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01,
  1853  	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
  1854  	0x67, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
  1855  	0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
  1856  	0x12, 0x3f, 0x0a, 0x1c, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f,
  1857  	0x72, 0x70, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
  1858  	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64,
  1859  	0x69, 0x6e, 0x67, 0x52, 0x70, 0x63, 0x73, 0x50, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65,
  1860  	0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e,
  1861  	0x6e, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65,
  1862  	0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x73,
  1863  	0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61,
  1864  	0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x43,
  1865  	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x08,
  1866  	0x72, 0x70, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15,
  1867  	0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x52, 0x70,
  1868  	0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x72, 0x70, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39,
  1869  	0x0a, 0x0b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0a, 0x20,
  1870  	0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
  1871  	0x6e, 0x67, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0a, 0x6c,
  1872  	0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x70, 0x61, 0x79,
  1873  	0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28,
  1874  	0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
  1875  	0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d,
  1876  	0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x48, 0x0a,
  1877  	0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d,
  1878  	0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74,
  1879  	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d,
  1880  	0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61,
  1881  	0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x5f,
  1882  	0x6c, 0x69, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x72, 0x65,
  1883  	0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x69, 0x6d,
  1884  	0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x69,
  1885  	0x6d, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x69,
  1886  	0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f,
  1887  	0x74, 0x68, 0x65, 0x72, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x69, 0x12, 0x3b, 0x0a,
  1888  	0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x10, 0x20,
  1889  	0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
  1890  	0x6e, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x52, 0x0b, 0x63,
  1891  	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x68,
  1892  	0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x71, 0x18, 0x11, 0x20, 0x01,
  1893  	0x28, 0x05, 0x52, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x71,
  1894  	0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72,
  1895  	0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6d,
  1896  	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
  1897  	0x12, 0x28, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65,
  1898  	0x5f, 0x61, 0x70, 0x69, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x43,
  1899  	0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65, 0x41, 0x70, 0x69, 0x12, 0x58, 0x0a, 0x29, 0x6d, 0x65,
  1900  	0x64, 0x69, 0x61, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x6c,
  1901  	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
  1902  	0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x25, 0x6d,
  1903  	0x65, 0x64, 0x69, 0x61, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x6c, 0x6c,
  1904  	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4d, 0x69,
  1905  	0x6c, 0x6c, 0x69, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70,
  1906  	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f,
  1907  	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22,
  1908  	0x3f, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
  1909  	0x2f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
  1910  	0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6c,
  1911  	0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73,
  1912  	0x22, 0x1c, 0x0a, 0x04, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x73, 0x65,
  1913  	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x73, 0x65, 0x74, 0x22, 0x75,
  1914  	0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x05,
  1915  	0x73, 0x65, 0x74, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72,
  1916  	0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e,
  1917  	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70,
  1918  	0x12, 0x28, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
  1919  	0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x61,
  1920  	0x72, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x61, 0x72,
  1921  	0x67, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc0, 0x04, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
  1922  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
  1923  	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x72,
  1924  	0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65,
  1925  	0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70,
  1926  	0x65, 0x12, 0x45, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x61,
  1927  	0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x70,
  1928  	0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69,
  1929  	0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69,
  1930  	0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74,
  1931  	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x14,
  1932  	0x61, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x72,
  1933  	0x65, 0x61, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x73, 0x79, 0x6e,
  1934  	0x63, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x1d,
  1935  	0x0a, 0x0a, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01,
  1936  	0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x42, 0x0a,
  1937  	0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
  1938  	0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73,
  1939  	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66,
  1940  	0x69, 0x67, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  1941  	0x67, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0a,
  1942  	0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28,
  1943  	0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61,
  1944  	0x70, 0x69, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x53,
  1945  	0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x70, 0x69, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x65,
  1946  	0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05,
  1947  	0x52, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x71, 0x12, 0x2f,
  1948  	0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61,
  1949  	0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65,
  1950  	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x69, 0x7a, 0x65, 0x12,
  1951  	0x3c, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18,
  1952  	0xea, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65,
  1953  	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67,
  1954  	0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x73, 0x12, 0x29, 0x0a,
  1955  	0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65,
  1956  	0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50,
  1957  	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x75, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76,
  1958  	0x65, 0x72, 0x41, 0x72, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x18,
  1959  	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73,
  1960  	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  1961  	0x67, 0x48, 0x00, 0x52, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x61,
  1962  	0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e,
  1963  	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x00, 0x52, 0x04,
  1964  	0x6d, 0x61, 0x72, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x61, 0x72, 0x67, 0x74, 0x79, 0x70, 0x65, 0x22,
  1965  	0x69, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
  1966  	0x2f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
  1967  	0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65,
  1968  	0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73,
  1969  	0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
  1970  	0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20,
  1971  	0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x6f,
  1972  	0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x24, 0x0a, 0x0c, 0x43, 0x6f, 0x72,
  1973  	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x72,
  1974  	0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x22,
  1975  	0x06, 0x0a, 0x04, 0x56, 0x6f, 0x69, 0x64, 0x22, 0xef, 0x02, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e,
  1976  	0x61, 0x72, 0x69, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
  1977  	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65,
  1978  	0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1979  	0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43,
  1980  	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x6c, 0x69,
  1981  	0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d,
  1982  	0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
  1983  	0x6e, 0x75, 0x6d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x65,
  1984  	0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28,
  1985  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
  1986  	0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x73,
  1987  	0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x6e,
  1988  	0x75, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
  1989  	0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e,
  1990  	0x77, 0x61, 0x72, 0x6d, 0x75, 0x70, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06,
  1991  	0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x77, 0x61, 0x72, 0x6d, 0x75, 0x70, 0x53, 0x65, 0x63, 0x6f,
  1992  	0x6e, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b,
  1993  	0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10,
  1994  	0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
  1995  	0x12, 0x37, 0x0a, 0x18, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f,
  1996  	0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01,
  1997  	0x28, 0x05, 0x52, 0x15, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x57, 0x6f,
  1998  	0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x41, 0x0a, 0x09, 0x53, 0x63, 0x65,
  1999  	0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x12, 0x34, 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72,
  2000  	0x69, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63,
  2001  	0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69,
  2002  	0x6f, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x22, 0xbb, 0x06, 0x0a,
  2003  	0x15, 0x53, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53,
  2004  	0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x70, 0x73, 0x18, 0x01, 0x20,
  2005  	0x01, 0x28, 0x01, 0x52, 0x03, 0x71, 0x70, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x71, 0x70, 0x73, 0x5f,
  2006  	0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18,
  2007  	0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x71, 0x70, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x72,
  2008  	0x76, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x65,
  2009  	0x72, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20,
  2010  	0x01, 0x28, 0x01, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65,
  2011  	0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f,
  2012  	0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52,
  2013  	0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12,
  2014  	0x2c, 0x0a, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d,
  2015  	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x63, 0x6c, 0x69,
  2016  	0x65, 0x6e, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a,
  2017  	0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d,
  2018  	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x55,
  2019  	0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e,
  2020  	0x63, 0x79, 0x5f, 0x35, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74,
  2021  	0x65, 0x6e, 0x63, 0x79, 0x35, 0x30, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63,
  2022  	0x79, 0x5f, 0x39, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65,
  2023  	0x6e, 0x63, 0x79, 0x39, 0x30, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79,
  2024  	0x5f, 0x39, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e,
  2025  	0x63, 0x79, 0x39, 0x35, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f,
  2026  	0x39, 0x39, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63,
  2027  	0x79, 0x39, 0x39, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x39,
  2028  	0x39, 0x39, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63,
  2029  	0x79, 0x39, 0x39, 0x39, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63,
  2030  	0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e,
  2031  	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x43,
  2032  	0x0a, 0x1e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x71,
  2033  	0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64,
  2034  	0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x1b, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66,
  2035  	0x75, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63,
  2036  	0x6f, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65,
  2037  	0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e,
  2038  	0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x17, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52,
  2039  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
  2040  	0x12, 0x37, 0x0a, 0x18, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x73,
  2041  	0x5f, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01,
  2042  	0x28, 0x01, 0x52, 0x15, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x6c, 0x73, 0x50,
  2043  	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x72,
  2044  	0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65,
  2045  	0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x73, 0x65, 0x72,
  2046  	0x76, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x6c, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
  2047  	0x73, 0x74, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x65,
  2048  	0x72, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x65, 0x63,
  2049  	0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x51, 0x75,
  2050  	0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x65, 0x72, 0x43, 0x70, 0x75, 0x53, 0x65, 0x63, 0x12, 0x3a,
  2051  	0x0a, 0x1a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73,
  2052  	0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x12, 0x20, 0x01,
  2053  	0x28, 0x01, 0x52, 0x16, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65,
  2054  	0x73, 0x50, 0x65, 0x72, 0x43, 0x70, 0x75, 0x53, 0x65, 0x63, 0x22, 0xf6, 0x03, 0x0a, 0x0e, 0x53,
  2055  	0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a,
  2056  	0x08, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
  2057  	0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53,
  2058  	0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x52, 0x08, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69,
  2059  	0x6f, 0x12, 0x39, 0x0a, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02,
  2060  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74,
  2061  	0x69, 0x6e, 0x67, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x61, 0x74,
  2062  	0x61, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0c,
  2063  	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03,
  2064  	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
  2065  	0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0b, 0x63,
  2066  	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x73, 0x65,
  2067  	0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
  2068  	0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e,
  2069  	0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0b, 0x73, 0x65, 0x72,
  2070  	0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76,
  2071  	0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b,
  2072  	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x73,
  2073  	0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67,
  2074  	0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x63, 0x65, 0x6e,
  2075  	0x61, 0x72, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
  2076  	0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c,
  2077  	0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x03,
  2078  	0x28, 0x08, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73,
  2079  	0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x63, 0x63,
  2080  	0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65,
  2081  	0x72, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75,
  2082  	0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28,
  2083  	0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
  2084  	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f,
  2085  	0x75, 0x6e, 0x74, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75,
  2086  	0x6c, 0x74, 0x73, 0x2a, 0x56, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
  2087  	0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54,
  2088  	0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45,
  2089  	0x4e, 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x43, 0x4c,
  2090  	0x49, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x4c, 0x4c, 0x42, 0x41,
  2091  	0x43, 0x4b, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x2a, 0x70, 0x0a, 0x0a, 0x53,
  2092  	0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x59, 0x4e,
  2093  	0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x53,
  2094  	0x59, 0x4e, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14,
  2095  	0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x5f, 0x53, 0x45,
  2096  	0x52, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f,
  2097  	0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x4c, 0x4c,
  2098  	0x42, 0x41, 0x43, 0x4b, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x04, 0x2a, 0x72, 0x0a,
  2099  	0x07, 0x52, 0x70, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x41, 0x52,
  2100  	0x59, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47,
  2101  	0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x5f,
  2102  	0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x19, 0x0a,
  2103  	0x15, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f,
  2104  	0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x52, 0x45,
  2105  	0x41, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x5f, 0x57, 0x41, 0x59, 0x53, 0x10,
  2106  	0x04, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  2107  }
  2108  
  2109  var (
  2110  	file_grpc_testing_control_proto_rawDescOnce sync.Once
  2111  	file_grpc_testing_control_proto_rawDescData = file_grpc_testing_control_proto_rawDesc
  2112  )
  2113  
  2114  func file_grpc_testing_control_proto_rawDescGZIP() []byte {
  2115  	file_grpc_testing_control_proto_rawDescOnce.Do(func() {
  2116  		file_grpc_testing_control_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpc_testing_control_proto_rawDescData)
  2117  	})
  2118  	return file_grpc_testing_control_proto_rawDescData
  2119  }
  2120  
  2121  var file_grpc_testing_control_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
  2122  var file_grpc_testing_control_proto_msgTypes = make([]protoimpl.MessageInfo, 19)
  2123  var file_grpc_testing_control_proto_goTypes = []interface{}{
  2124  	(ClientType)(0),               // 0: grpc.testing.ClientType
  2125  	(ServerType)(0),               // 1: grpc.testing.ServerType
  2126  	(RpcType)(0),                  // 2: grpc.testing.RpcType
  2127  	(*PoissonParams)(nil),         // 3: grpc.testing.PoissonParams
  2128  	(*ClosedLoopParams)(nil),      // 4: grpc.testing.ClosedLoopParams
  2129  	(*LoadParams)(nil),            // 5: grpc.testing.LoadParams
  2130  	(*SecurityParams)(nil),        // 6: grpc.testing.SecurityParams
  2131  	(*ChannelArg)(nil),            // 7: grpc.testing.ChannelArg
  2132  	(*ClientConfig)(nil),          // 8: grpc.testing.ClientConfig
  2133  	(*ClientStatus)(nil),          // 9: grpc.testing.ClientStatus
  2134  	(*Mark)(nil),                  // 10: grpc.testing.Mark
  2135  	(*ClientArgs)(nil),            // 11: grpc.testing.ClientArgs
  2136  	(*ServerConfig)(nil),          // 12: grpc.testing.ServerConfig
  2137  	(*ServerArgs)(nil),            // 13: grpc.testing.ServerArgs
  2138  	(*ServerStatus)(nil),          // 14: grpc.testing.ServerStatus
  2139  	(*CoreRequest)(nil),           // 15: grpc.testing.CoreRequest
  2140  	(*CoreResponse)(nil),          // 16: grpc.testing.CoreResponse
  2141  	(*Void)(nil),                  // 17: grpc.testing.Void
  2142  	(*Scenario)(nil),              // 18: grpc.testing.Scenario
  2143  	(*Scenarios)(nil),             // 19: grpc.testing.Scenarios
  2144  	(*ScenarioResultSummary)(nil), // 20: grpc.testing.ScenarioResultSummary
  2145  	(*ScenarioResult)(nil),        // 21: grpc.testing.ScenarioResult
  2146  	(*PayloadConfig)(nil),         // 22: grpc.testing.PayloadConfig
  2147  	(*HistogramParams)(nil),       // 23: grpc.testing.HistogramParams
  2148  	(*ClientStats)(nil),           // 24: grpc.testing.ClientStats
  2149  	(*ServerStats)(nil),           // 25: grpc.testing.ServerStats
  2150  	(*HistogramData)(nil),         // 26: grpc.testing.HistogramData
  2151  	(*RequestResultCount)(nil),    // 27: grpc.testing.RequestResultCount
  2152  }
  2153  var file_grpc_testing_control_proto_depIdxs = []int32{
  2154  	4,  // 0: grpc.testing.LoadParams.closed_loop:type_name -> grpc.testing.ClosedLoopParams
  2155  	3,  // 1: grpc.testing.LoadParams.poisson:type_name -> grpc.testing.PoissonParams
  2156  	0,  // 2: grpc.testing.ClientConfig.client_type:type_name -> grpc.testing.ClientType
  2157  	6,  // 3: grpc.testing.ClientConfig.security_params:type_name -> grpc.testing.SecurityParams
  2158  	2,  // 4: grpc.testing.ClientConfig.rpc_type:type_name -> grpc.testing.RpcType
  2159  	5,  // 5: grpc.testing.ClientConfig.load_params:type_name -> grpc.testing.LoadParams
  2160  	22, // 6: grpc.testing.ClientConfig.payload_config:type_name -> grpc.testing.PayloadConfig
  2161  	23, // 7: grpc.testing.ClientConfig.histogram_params:type_name -> grpc.testing.HistogramParams
  2162  	7,  // 8: grpc.testing.ClientConfig.channel_args:type_name -> grpc.testing.ChannelArg
  2163  	24, // 9: grpc.testing.ClientStatus.stats:type_name -> grpc.testing.ClientStats
  2164  	8,  // 10: grpc.testing.ClientArgs.setup:type_name -> grpc.testing.ClientConfig
  2165  	10, // 11: grpc.testing.ClientArgs.mark:type_name -> grpc.testing.Mark
  2166  	1,  // 12: grpc.testing.ServerConfig.server_type:type_name -> grpc.testing.ServerType
  2167  	6,  // 13: grpc.testing.ServerConfig.security_params:type_name -> grpc.testing.SecurityParams
  2168  	22, // 14: grpc.testing.ServerConfig.payload_config:type_name -> grpc.testing.PayloadConfig
  2169  	7,  // 15: grpc.testing.ServerConfig.channel_args:type_name -> grpc.testing.ChannelArg
  2170  	12, // 16: grpc.testing.ServerArgs.setup:type_name -> grpc.testing.ServerConfig
  2171  	10, // 17: grpc.testing.ServerArgs.mark:type_name -> grpc.testing.Mark
  2172  	25, // 18: grpc.testing.ServerStatus.stats:type_name -> grpc.testing.ServerStats
  2173  	8,  // 19: grpc.testing.Scenario.client_config:type_name -> grpc.testing.ClientConfig
  2174  	12, // 20: grpc.testing.Scenario.server_config:type_name -> grpc.testing.ServerConfig
  2175  	18, // 21: grpc.testing.Scenarios.scenarios:type_name -> grpc.testing.Scenario
  2176  	18, // 22: grpc.testing.ScenarioResult.scenario:type_name -> grpc.testing.Scenario
  2177  	26, // 23: grpc.testing.ScenarioResult.latencies:type_name -> grpc.testing.HistogramData
  2178  	24, // 24: grpc.testing.ScenarioResult.client_stats:type_name -> grpc.testing.ClientStats
  2179  	25, // 25: grpc.testing.ScenarioResult.server_stats:type_name -> grpc.testing.ServerStats
  2180  	20, // 26: grpc.testing.ScenarioResult.summary:type_name -> grpc.testing.ScenarioResultSummary
  2181  	27, // 27: grpc.testing.ScenarioResult.request_results:type_name -> grpc.testing.RequestResultCount
  2182  	28, // [28:28] is the sub-list for method output_type
  2183  	28, // [28:28] is the sub-list for method input_type
  2184  	28, // [28:28] is the sub-list for extension type_name
  2185  	28, // [28:28] is the sub-list for extension extendee
  2186  	0,  // [0:28] is the sub-list for field type_name
  2187  }
  2188  
  2189  func init() { file_grpc_testing_control_proto_init() }
  2190  func file_grpc_testing_control_proto_init() {
  2191  	if File_grpc_testing_control_proto != nil {
  2192  		return
  2193  	}
  2194  	file_grpc_testing_payloads_proto_init()
  2195  	file_grpc_testing_stats_proto_init()
  2196  	if !protoimpl.UnsafeEnabled {
  2197  		file_grpc_testing_control_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  2198  			switch v := v.(*PoissonParams); i {
  2199  			case 0:
  2200  				return &v.state
  2201  			case 1:
  2202  				return &v.sizeCache
  2203  			case 2:
  2204  				return &v.unknownFields
  2205  			default:
  2206  				return nil
  2207  			}
  2208  		}
  2209  		file_grpc_testing_control_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  2210  			switch v := v.(*ClosedLoopParams); i {
  2211  			case 0:
  2212  				return &v.state
  2213  			case 1:
  2214  				return &v.sizeCache
  2215  			case 2:
  2216  				return &v.unknownFields
  2217  			default:
  2218  				return nil
  2219  			}
  2220  		}
  2221  		file_grpc_testing_control_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  2222  			switch v := v.(*LoadParams); i {
  2223  			case 0:
  2224  				return &v.state
  2225  			case 1:
  2226  				return &v.sizeCache
  2227  			case 2:
  2228  				return &v.unknownFields
  2229  			default:
  2230  				return nil
  2231  			}
  2232  		}
  2233  		file_grpc_testing_control_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  2234  			switch v := v.(*SecurityParams); i {
  2235  			case 0:
  2236  				return &v.state
  2237  			case 1:
  2238  				return &v.sizeCache
  2239  			case 2:
  2240  				return &v.unknownFields
  2241  			default:
  2242  				return nil
  2243  			}
  2244  		}
  2245  		file_grpc_testing_control_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  2246  			switch v := v.(*ChannelArg); i {
  2247  			case 0:
  2248  				return &v.state
  2249  			case 1:
  2250  				return &v.sizeCache
  2251  			case 2:
  2252  				return &v.unknownFields
  2253  			default:
  2254  				return nil
  2255  			}
  2256  		}
  2257  		file_grpc_testing_control_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  2258  			switch v := v.(*ClientConfig); i {
  2259  			case 0:
  2260  				return &v.state
  2261  			case 1:
  2262  				return &v.sizeCache
  2263  			case 2:
  2264  				return &v.unknownFields
  2265  			default:
  2266  				return nil
  2267  			}
  2268  		}
  2269  		file_grpc_testing_control_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  2270  			switch v := v.(*ClientStatus); i {
  2271  			case 0:
  2272  				return &v.state
  2273  			case 1:
  2274  				return &v.sizeCache
  2275  			case 2:
  2276  				return &v.unknownFields
  2277  			default:
  2278  				return nil
  2279  			}
  2280  		}
  2281  		file_grpc_testing_control_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  2282  			switch v := v.(*Mark); i {
  2283  			case 0:
  2284  				return &v.state
  2285  			case 1:
  2286  				return &v.sizeCache
  2287  			case 2:
  2288  				return &v.unknownFields
  2289  			default:
  2290  				return nil
  2291  			}
  2292  		}
  2293  		file_grpc_testing_control_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  2294  			switch v := v.(*ClientArgs); i {
  2295  			case 0:
  2296  				return &v.state
  2297  			case 1:
  2298  				return &v.sizeCache
  2299  			case 2:
  2300  				return &v.unknownFields
  2301  			default:
  2302  				return nil
  2303  			}
  2304  		}
  2305  		file_grpc_testing_control_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  2306  			switch v := v.(*ServerConfig); i {
  2307  			case 0:
  2308  				return &v.state
  2309  			case 1:
  2310  				return &v.sizeCache
  2311  			case 2:
  2312  				return &v.unknownFields
  2313  			default:
  2314  				return nil
  2315  			}
  2316  		}
  2317  		file_grpc_testing_control_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  2318  			switch v := v.(*ServerArgs); i {
  2319  			case 0:
  2320  				return &v.state
  2321  			case 1:
  2322  				return &v.sizeCache
  2323  			case 2:
  2324  				return &v.unknownFields
  2325  			default:
  2326  				return nil
  2327  			}
  2328  		}
  2329  		file_grpc_testing_control_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  2330  			switch v := v.(*ServerStatus); i {
  2331  			case 0:
  2332  				return &v.state
  2333  			case 1:
  2334  				return &v.sizeCache
  2335  			case 2:
  2336  				return &v.unknownFields
  2337  			default:
  2338  				return nil
  2339  			}
  2340  		}
  2341  		file_grpc_testing_control_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  2342  			switch v := v.(*CoreRequest); i {
  2343  			case 0:
  2344  				return &v.state
  2345  			case 1:
  2346  				return &v.sizeCache
  2347  			case 2:
  2348  				return &v.unknownFields
  2349  			default:
  2350  				return nil
  2351  			}
  2352  		}
  2353  		file_grpc_testing_control_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
  2354  			switch v := v.(*CoreResponse); i {
  2355  			case 0:
  2356  				return &v.state
  2357  			case 1:
  2358  				return &v.sizeCache
  2359  			case 2:
  2360  				return &v.unknownFields
  2361  			default:
  2362  				return nil
  2363  			}
  2364  		}
  2365  		file_grpc_testing_control_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  2366  			switch v := v.(*Void); i {
  2367  			case 0:
  2368  				return &v.state
  2369  			case 1:
  2370  				return &v.sizeCache
  2371  			case 2:
  2372  				return &v.unknownFields
  2373  			default:
  2374  				return nil
  2375  			}
  2376  		}
  2377  		file_grpc_testing_control_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
  2378  			switch v := v.(*Scenario); i {
  2379  			case 0:
  2380  				return &v.state
  2381  			case 1:
  2382  				return &v.sizeCache
  2383  			case 2:
  2384  				return &v.unknownFields
  2385  			default:
  2386  				return nil
  2387  			}
  2388  		}
  2389  		file_grpc_testing_control_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
  2390  			switch v := v.(*Scenarios); i {
  2391  			case 0:
  2392  				return &v.state
  2393  			case 1:
  2394  				return &v.sizeCache
  2395  			case 2:
  2396  				return &v.unknownFields
  2397  			default:
  2398  				return nil
  2399  			}
  2400  		}
  2401  		file_grpc_testing_control_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
  2402  			switch v := v.(*ScenarioResultSummary); i {
  2403  			case 0:
  2404  				return &v.state
  2405  			case 1:
  2406  				return &v.sizeCache
  2407  			case 2:
  2408  				return &v.unknownFields
  2409  			default:
  2410  				return nil
  2411  			}
  2412  		}
  2413  		file_grpc_testing_control_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
  2414  			switch v := v.(*ScenarioResult); i {
  2415  			case 0:
  2416  				return &v.state
  2417  			case 1:
  2418  				return &v.sizeCache
  2419  			case 2:
  2420  				return &v.unknownFields
  2421  			default:
  2422  				return nil
  2423  			}
  2424  		}
  2425  	}
  2426  	file_grpc_testing_control_proto_msgTypes[2].OneofWrappers = []interface{}{
  2427  		(*LoadParams_ClosedLoop)(nil),
  2428  		(*LoadParams_Poisson)(nil),
  2429  	}
  2430  	file_grpc_testing_control_proto_msgTypes[4].OneofWrappers = []interface{}{
  2431  		(*ChannelArg_StrValue)(nil),
  2432  		(*ChannelArg_IntValue)(nil),
  2433  	}
  2434  	file_grpc_testing_control_proto_msgTypes[8].OneofWrappers = []interface{}{
  2435  		(*ClientArgs_Setup)(nil),
  2436  		(*ClientArgs_Mark)(nil),
  2437  	}
  2438  	file_grpc_testing_control_proto_msgTypes[10].OneofWrappers = []interface{}{
  2439  		(*ServerArgs_Setup)(nil),
  2440  		(*ServerArgs_Mark)(nil),
  2441  	}
  2442  	type x struct{}
  2443  	out := protoimpl.TypeBuilder{
  2444  		File: protoimpl.DescBuilder{
  2445  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  2446  			RawDescriptor: file_grpc_testing_control_proto_rawDesc,
  2447  			NumEnums:      3,
  2448  			NumMessages:   19,
  2449  			NumExtensions: 0,
  2450  			NumServices:   0,
  2451  		},
  2452  		GoTypes:           file_grpc_testing_control_proto_goTypes,
  2453  		DependencyIndexes: file_grpc_testing_control_proto_depIdxs,
  2454  		EnumInfos:         file_grpc_testing_control_proto_enumTypes,
  2455  		MessageInfos:      file_grpc_testing_control_proto_msgTypes,
  2456  	}.Build()
  2457  	File_grpc_testing_control_proto = out.File
  2458  	file_grpc_testing_control_proto_rawDesc = nil
  2459  	file_grpc_testing_control_proto_goTypes = nil
  2460  	file_grpc_testing_control_proto_depIdxs = nil
  2461  }