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 }