Change script for apply upstream code
[platform/upstream/connectedhomeip.git] / third_party / pigweed / repo / pw_rpc / pw_rpc_protos / packet.proto
1 // Copyright 2020 The Pigweed Authors
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); you may not
4 // use this file except in compliance with the License. You may obtain a copy of
5 // the License at
6 //
7 //     https://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, WITHOUT
11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 // License for the specific language governing permissions and limitations under
13 // the License.
14 syntax = "proto3";
15
16 package pw.rpc.internal;
17
18 option java_package = "dev.pigweed.pw.rpc.internal";
19
20 enum PacketType {
21   // To simplify identifying the origin of a packet, client-to-server packets
22   // use even numbers and server-to-client packets use odd numbers.
23
24   // Client-to-server packets
25
26   // A request from a client for a service method.
27   REQUEST = 0;
28
29   // A client stream has completed.
30   CLIENT_STREAM_END = 2;
31
32   // The client received a packet for an RPC it did not request.
33   CLIENT_ERROR = 4;
34
35   // The client requests cancellation of an ongoing server stream.
36   CANCEL_SERVER_STREAM = 6;
37
38   // Server-to-client packets
39
40   // A response from a server for a service method.
41   RESPONSE = 1;
42
43   // A server streaming or bidirectional RPC has completed.
44   SERVER_STREAM_END = 3;
45
46   // The server was unable to process a request.
47   SERVER_ERROR = 5;
48 }
49
50 message RpcPacket {
51   // The type of packet. Determines which other fields are used.
52   PacketType type = 1;
53
54   // Channel through which the packet is sent.
55   uint32 channel_id = 2;
56
57   // Hash of the fully-qualified name of the service with which this packet is
58   // associated. For RPC packets, this is the service that processes the packet.
59   fixed32 service_id = 3;
60
61   // Hash of the name of the method which should process this packet.
62   fixed32 method_id = 4;
63
64   // The packet's payload, which is an encoded protobuf.
65   bytes payload = 5;
66
67   // Status code for the RPC response or error.
68   uint32 status = 6;
69 }