github.com/slackhq/nebula@v1.9.0/nebula.proto (about) 1 syntax = "proto3"; 2 package nebula; 3 4 option go_package = "github.com/slackhq/nebula"; 5 6 message NebulaMeta { 7 enum MessageType { 8 None = 0; 9 HostQuery = 1; 10 HostQueryReply = 2; 11 HostUpdateNotification = 3; 12 HostMovedNotification = 4; 13 HostPunchNotification = 5; 14 HostWhoami = 6; 15 HostWhoamiReply = 7; 16 PathCheck = 8; 17 PathCheckReply = 9; 18 HostUpdateNotificationAck = 10; 19 } 20 21 MessageType Type = 1; 22 NebulaMetaDetails Details = 2; 23 } 24 25 message NebulaMetaDetails { 26 uint32 VpnIp = 1; 27 repeated Ip4AndPort Ip4AndPorts = 2; 28 repeated Ip6AndPort Ip6AndPorts = 4; 29 repeated uint32 RelayVpnIp = 5; 30 uint32 counter = 3; 31 } 32 33 message Ip4AndPort { 34 uint32 Ip = 1; 35 uint32 Port = 2; 36 } 37 38 message Ip6AndPort { 39 uint64 Hi = 1; 40 uint64 Lo = 2; 41 uint32 Port = 3; 42 } 43 44 message NebulaPing { 45 enum MessageType { 46 Ping = 0; 47 Reply = 1; 48 } 49 50 MessageType Type = 1; 51 uint64 Time = 2; 52 } 53 54 message NebulaHandshake { 55 NebulaHandshakeDetails Details = 1; 56 bytes Hmac = 2; 57 } 58 59 message NebulaHandshakeDetails { 60 bytes Cert = 1; 61 uint32 InitiatorIndex = 2; 62 uint32 ResponderIndex = 3; 63 uint64 Cookie = 4; 64 uint64 Time = 5; 65 // reserved for WIP multiport 66 reserved 6, 7; 67 } 68 69 message NebulaControl { 70 enum MessageType { 71 None = 0; 72 CreateRelayRequest = 1; 73 CreateRelayResponse = 2; 74 } 75 MessageType Type = 1; 76 77 uint32 InitiatorRelayIndex = 2; 78 uint32 ResponderRelayIndex = 3; 79 uint32 RelayToIp = 4; 80 uint32 RelayFromIp = 5; 81 }