nebula.proto 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. syntax = "proto3";
  2. package nebula;
  3. option go_package = "github.com/slackhq/nebula";
  4. message NebulaMeta {
  5. enum MessageType {
  6. None = 0;
  7. HostQuery = 1;
  8. HostQueryReply = 2;
  9. HostUpdateNotification = 3;
  10. HostMovedNotification = 4;
  11. HostPunchNotification = 5;
  12. HostWhoami = 6;
  13. HostWhoamiReply = 7;
  14. PathCheck = 8;
  15. PathCheckReply = 9;
  16. HostUpdateNotificationAck = 10;
  17. }
  18. MessageType Type = 1;
  19. NebulaMetaDetails Details = 2;
  20. }
  21. message NebulaMetaDetails {
  22. uint32 OldVpnAddr = 1 [deprecated = true];
  23. Addr VpnAddr = 6;
  24. repeated uint32 OldRelayVpnAddrs = 5 [deprecated = true];
  25. repeated Addr RelayVpnAddrs = 7;
  26. repeated V4AddrPort V4AddrPorts = 2;
  27. repeated V6AddrPort V6AddrPorts = 4;
  28. uint32 counter = 3;
  29. }
  30. message Addr {
  31. uint64 Hi = 1;
  32. uint64 Lo = 2;
  33. }
  34. message V4AddrPort {
  35. uint32 Addr = 1;
  36. uint32 Port = 2;
  37. }
  38. message V6AddrPort {
  39. uint64 Hi = 1;
  40. uint64 Lo = 2;
  41. uint32 Port = 3;
  42. }
  43. message NebulaPing {
  44. enum MessageType {
  45. Ping = 0;
  46. Reply = 1;
  47. }
  48. MessageType Type = 1;
  49. uint64 Time = 2;
  50. }
  51. message NebulaHandshake {
  52. NebulaHandshakeDetails Details = 1;
  53. bytes Hmac = 2;
  54. }
  55. message MultiPortDetails {
  56. bool RxSupported = 1;
  57. bool TxSupported = 2;
  58. uint32 BasePort = 3;
  59. uint32 TotalPorts = 4;
  60. }
  61. message NebulaHandshakeDetails {
  62. bytes Cert = 1;
  63. uint32 InitiatorIndex = 2;
  64. uint32 ResponderIndex = 3;
  65. uint64 Cookie = 4;
  66. uint64 Time = 5;
  67. uint32 CertVersion = 8;
  68. MultiPortDetails InitiatorMultiPort = 6;
  69. MultiPortDetails ResponderMultiPort = 7;
  70. }
  71. message NebulaControl {
  72. enum MessageType {
  73. None = 0;
  74. CreateRelayRequest = 1;
  75. CreateRelayResponse = 2;
  76. }
  77. MessageType Type = 1;
  78. uint32 InitiatorRelayIndex = 2;
  79. uint32 ResponderRelayIndex = 3;
  80. uint32 OldRelayToAddr = 4 [deprecated = true];
  81. uint32 OldRelayFromAddr = 5 [deprecated = true];
  82. Addr RelayToAddr = 6;
  83. Addr RelayFromAddr = 7;
  84. }