// Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto2"; package paddle.distributed; option cc_generic_services = true; option cc_enable_arenas = true; enum MessageType { STOP = 1; // STOP an Interceptor DATA_IS_READY = 2; // upstream data is ready DATA_IS_USELESS = 3; // downstream has used the data ERR = 4; // current Interceptor encounters error RESET = 5; // reset the status START = 6; } message InterceptorMessage { optional sint64 src_id = 1 [ default = 0 ]; optional sint64 dst_id = 2 [ default = 0 ]; optional MessageType message_type = 3 [ default = RESET ]; optional bool ctrl_message = 4 [ default = false ]; optional int64 scope_idx = 5 [ default = 0 ]; } message InterceptorResponse { optional bool rst = 1 [ default = false ]; } service MessageService { rpc ReceiveInterceptorMessage(InterceptorMessage) returns (InterceptorResponse); rpc IncreaseBarrierCount(InterceptorMessage) returns (InterceptorResponse); }