2019-11-19 17:00:20 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
|
package nebula;
|
|
|
|
|
|
2021-04-01 10:23:31 -05:00
|
|
|
option go_package = "github.com/slackhq/nebula";
|
|
|
|
|
|
2019-11-19 17:00:20 +00:00
|
|
|
message NebulaMeta {
|
|
|
|
|
enum MessageType {
|
|
|
|
|
None = 0;
|
|
|
|
|
HostQuery = 1;
|
|
|
|
|
HostQueryReply = 2;
|
|
|
|
|
HostUpdateNotification = 3;
|
|
|
|
|
HostMovedNotification = 4;
|
|
|
|
|
HostPunchNotification = 5;
|
|
|
|
|
HostWhoami = 6;
|
|
|
|
|
HostWhoamiReply = 7;
|
|
|
|
|
PathCheck = 8;
|
|
|
|
|
PathCheckReply = 9;
|
2023-05-05 14:44:03 -05:00
|
|
|
HostUpdateNotificationAck = 10;
|
2019-11-19 17:00:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MessageType Type = 1;
|
|
|
|
|
NebulaMetaDetails Details = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message NebulaMetaDetails {
|
2025-03-06 11:28:26 -06:00
|
|
|
uint32 OldVpnAddr = 1 [deprecated = true];
|
|
|
|
|
Addr VpnAddr = 6;
|
|
|
|
|
|
|
|
|
|
repeated uint32 OldRelayVpnAddrs = 5 [deprecated = true];
|
|
|
|
|
repeated Addr RelayVpnAddrs = 7;
|
|
|
|
|
|
|
|
|
|
repeated V4AddrPort V4AddrPorts = 2;
|
|
|
|
|
repeated V6AddrPort V6AddrPorts = 4;
|
2019-11-19 17:00:20 +00:00
|
|
|
uint32 counter = 3;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-06 11:28:26 -06:00
|
|
|
message Addr {
|
|
|
|
|
uint64 Hi = 1;
|
|
|
|
|
uint64 Lo = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message V4AddrPort {
|
|
|
|
|
uint32 Addr = 1;
|
2019-11-19 17:00:20 +00:00
|
|
|
uint32 Port = 2;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-06 11:28:26 -06:00
|
|
|
message V6AddrPort {
|
2021-04-01 10:23:31 -05:00
|
|
|
uint64 Hi = 1;
|
|
|
|
|
uint64 Lo = 2;
|
|
|
|
|
uint32 Port = 3;
|
2021-03-18 20:37:24 -05:00
|
|
|
}
|
2019-11-19 17:00:20 +00:00
|
|
|
|
|
|
|
|
message NebulaPing {
|
|
|
|
|
enum MessageType {
|
|
|
|
|
Ping = 0;
|
|
|
|
|
Reply = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MessageType Type = 1;
|
|
|
|
|
uint64 Time = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message NebulaHandshake {
|
|
|
|
|
NebulaHandshakeDetails Details = 1;
|
|
|
|
|
bytes Hmac = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message NebulaHandshakeDetails {
|
|
|
|
|
bytes Cert = 1;
|
|
|
|
|
uint32 InitiatorIndex = 2;
|
|
|
|
|
uint32 ResponderIndex = 3;
|
|
|
|
|
uint64 Cookie = 4;
|
|
|
|
|
uint64 Time = 5;
|
2025-03-06 11:28:26 -06:00
|
|
|
uint32 CertVersion = 8;
|
2022-06-27 12:07:05 -04:00
|
|
|
// reserved for WIP multiport
|
|
|
|
|
reserved 6, 7;
|
2019-11-19 17:00:20 +00:00
|
|
|
}
|
|
|
|
|
|
2022-06-21 14:35:23 -04:00
|
|
|
message NebulaControl {
|
|
|
|
|
enum MessageType {
|
|
|
|
|
None = 0;
|
|
|
|
|
CreateRelayRequest = 1;
|
|
|
|
|
CreateRelayResponse = 2;
|
|
|
|
|
}
|
|
|
|
|
MessageType Type = 1;
|
|
|
|
|
|
|
|
|
|
uint32 InitiatorRelayIndex = 2;
|
|
|
|
|
uint32 ResponderRelayIndex = 3;
|
2025-03-06 11:28:26 -06:00
|
|
|
|
|
|
|
|
uint32 OldRelayToAddr = 4 [deprecated = true];
|
|
|
|
|
uint32 OldRelayFromAddr = 5 [deprecated = true];
|
|
|
|
|
|
|
|
|
|
Addr RelayToAddr = 6;
|
|
|
|
|
Addr RelayFromAddr = 7;
|
2022-06-21 14:35:23 -04:00
|
|
|
}
|