aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/actors/protos/interconnect.proto
blob: 0e88f3bce5fa3c5c4afb4910d42473f98b287092 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
import "library/cpp/actors/protos/actors.proto";
import "google/protobuf/descriptor.proto";

package NActorsInterconnect;
option java_package = "ru.yandex.kikimr.proto";

message TEvResolveNode {
    optional uint32 NodeId = 1;
    optional uint64 Deadline = 2;
}

message TEvNodeInfo {
    optional uint32 NodeId = 1;
    optional string Address = 2;
    optional uint32 Port = 3;
}

extend google.protobuf.FieldOptions {
    optional string PrintName = 50376;
}

message TNodeLocation {
    // compatibility section -- will be removed in future versions
    optional uint32 DataCenterNum = 1 [deprecated=true];
    optional uint32 RoomNum = 2 [deprecated=true];
    optional uint32 RackNum = 3 [deprecated=true];
    optional uint32 BodyNum = 4 [deprecated=true];
    optional uint32 Body = 100500 [deprecated=true]; // for compatibility with WalleLocation

    optional string DataCenter = 10 [(PrintName) = "DC"];
    optional string Module = 20 [(PrintName) = "M"];
    optional string Rack = 30 [(PrintName) = "R"];
    optional string Unit = 40 [(PrintName) = "U"];
}

message TClusterUUIDs {
    optional string ClusterUUID = 1;
    repeated string AcceptUUID = 2;
}

message TScopeId {
    optional fixed64 X1 = 1;
    optional fixed64 X2 = 2;
}

message THandshakeRequest {
    required uint64 Protocol = 1;

    required uint64 ProgramPID = 2;
    required uint64 ProgramStartTime = 3;
    required uint64 Serial = 4;

    required uint32 ReceiverNodeId = 5;
    required string SenderActorId = 6;

    optional string SenderHostName = 7;
    optional string ReceiverHostName = 8;
    optional string UUID = 9;
    optional TClusterUUIDs ClusterUUIDs = 13;

    optional bytes Ballast = 10;

    optional string VersionTag = 11;
    repeated string AcceptedVersionTags = 12;

    optional bool RequireEncryption = 14;
    optional TScopeId ClientScopeId = 15;

    optional string Cookie = 16;
    optional bool DoCheckCookie = 17;

    optional bool RequestModernFrame = 18;
    optional bool RequestAuthOnly = 19;
    optional bool RequestExtendedTraceFmt = 20;
    optional bool RequestExternalDataChannel = 21;
    optional bool RequestXxhash = 24;
    optional bool RequestXdcShuffle = 25;

    optional bytes CompatibilityInfo = 22;

    optional bytes HandshakeId = 23;
}

message THandshakeSuccess {
    required uint64 Protocol = 1;

    required uint64 ProgramPID = 2;
    required uint64 ProgramStartTime = 3;
    required uint64 Serial = 4;

    required string SenderActorId = 5;

    optional string VersionTag = 6;
    repeated string AcceptedVersionTags = 7;

    optional TClusterUUIDs ClusterUUIDs = 8;

    optional bool StartEncryption = 9;
    optional TScopeId ServerScopeId = 10;

    optional bool UseModernFrame = 11;
    optional bool AuthOnly = 12;
    optional bool UseExtendedTraceFmt = 13;
    optional bool UseExternalDataChannel = 14;
    optional bool UseXxhash = 16;
    optional bool UseXdcShuffle = 17;

    optional bytes CompatibilityInfo = 15;
}

message THandshakeReply {
    optional THandshakeSuccess Success = 1;
    optional string ErrorExplaination = 2;
    optional bool CookieCheckResult = 3;
}

message TEvLoadMessage {
    message THop {
        optional NActorsProto.TActorId NextHop = 1; // if zero, then the payload is trimmed out of the message
    }

    repeated THop Hops = 1; // the route for the message
    optional string Id = 3; // message identifier
    optional bytes Payload = 4; // data payload
}

message TContinuationParams {
    optional bytes HandshakeId = 1;
}

message TExternalDataChannelParams {
    optional bytes HandshakeId = 1;
}