Files
Easytier_lkddi/easytier/proto/cli.proto
T

183 lines
3.7 KiB
Protocol Buffer
Raw Normal View History

2023-09-23 01:53:45 +00:00
syntax = "proto3";
package cli;
message Status {
2024-07-07 15:40:46 +08:00
int32 code = 1;
string message = 2;
2023-09-23 01:53:45 +00:00
}
message PeerConnStats {
2024-07-07 15:40:46 +08:00
uint64 rx_bytes = 1;
uint64 tx_bytes = 2;
2023-09-23 01:53:45 +00:00
2024-07-07 15:40:46 +08:00
uint64 rx_packets = 3;
uint64 tx_packets = 4;
2023-09-23 01:53:45 +00:00
2024-07-07 15:40:46 +08:00
uint64 latency_us = 5;
2023-09-23 01:53:45 +00:00
}
message TunnelInfo {
2024-07-07 15:40:46 +08:00
string tunnel_type = 1;
string local_addr = 2;
string remote_addr = 3;
2023-09-23 01:53:45 +00:00
}
message PeerConnInfo {
2024-07-07 15:40:46 +08:00
string conn_id = 1;
uint32 my_peer_id = 2;
uint32 peer_id = 3;
repeated string features = 4;
TunnelInfo tunnel = 5;
PeerConnStats stats = 6;
float loss_rate = 7;
2023-09-23 01:53:45 +00:00
}
message PeerInfo {
2024-07-07 15:40:46 +08:00
uint32 peer_id = 1;
repeated PeerConnInfo conns = 2;
2023-09-23 01:53:45 +00:00
}
message ListPeerRequest {}
2024-07-07 15:40:46 +08:00
message ListPeerResponse { repeated PeerInfo peer_infos = 1; }
2023-09-23 01:53:45 +00:00
enum NatType {
2024-07-07 15:40:46 +08:00
// has NAT; but own a single public IP, port is not changed
Unknown = 0;
OpenInternet = 1;
NoPAT = 2;
FullCone = 3;
Restricted = 4;
PortRestricted = 5;
Symmetric = 6;
SymUdpFirewall = 7;
2023-09-23 01:53:45 +00:00
}
message StunInfo {
2024-07-07 15:40:46 +08:00
NatType udp_nat_type = 1;
NatType tcp_nat_type = 2;
int64 last_update_time = 3;
repeated string public_ip = 4;
uint32 min_port = 5;
uint32 max_port = 6;
2023-09-23 01:53:45 +00:00
}
message Route {
2024-07-07 15:40:46 +08:00
uint32 peer_id = 1;
string ipv4_addr = 2;
uint32 next_hop_peer_id = 3;
int32 cost = 4;
repeated string proxy_cidrs = 5;
string hostname = 6;
StunInfo stun_info = 7;
string inst_id = 8;
2023-09-23 01:53:45 +00:00
}
message ListRouteRequest {}
2024-07-07 15:40:46 +08:00
message ListRouteResponse { repeated Route routes = 1; }
message DumpRouteRequest {}
message DumpRouteResponse { string result = 1; }
2023-09-23 01:53:45 +00:00
message ListForeignNetworkRequest {}
message ForeignNetworkEntryPb { repeated PeerInfo peers = 1; }
message ListForeignNetworkResponse {
map<string, ForeignNetworkEntryPb> foreign_networks = 1;
}
2023-09-23 01:53:45 +00:00
service PeerManageRpc {
2024-07-07 15:40:46 +08:00
rpc ListPeer(ListPeerRequest) returns (ListPeerResponse);
rpc ListRoute(ListRouteRequest) returns (ListRouteResponse);
rpc DumpRoute(DumpRouteRequest) returns (DumpRouteResponse);
rpc ListForeignNetwork(ListForeignNetworkRequest)
returns (ListForeignNetworkResponse);
2023-09-23 01:53:45 +00:00
}
enum ConnectorStatus {
2024-07-07 15:40:46 +08:00
CONNECTED = 0;
DISCONNECTED = 1;
CONNECTING = 2;
2023-09-23 01:53:45 +00:00
}
message Connector {
2024-07-07 15:40:46 +08:00
string url = 1;
ConnectorStatus status = 2;
2023-09-23 01:53:45 +00:00
}
message ListConnectorRequest {}
2024-07-07 15:40:46 +08:00
message ListConnectorResponse { repeated Connector connectors = 1; }
2023-09-23 01:53:45 +00:00
enum ConnectorManageAction {
2024-07-07 15:40:46 +08:00
ADD = 0;
REMOVE = 1;
2023-09-23 01:53:45 +00:00
}
message ManageConnectorRequest {
2024-07-07 15:40:46 +08:00
ConnectorManageAction action = 1;
string url = 2;
2023-09-23 01:53:45 +00:00
}
2024-07-07 15:40:46 +08:00
message ManageConnectorResponse {}
2023-09-23 01:53:45 +00:00
service ConnectorManageRpc {
2024-07-07 15:40:46 +08:00
rpc ListConnector(ListConnectorRequest) returns (ListConnectorResponse);
rpc ManageConnector(ManageConnectorRequest) returns (ManageConnectorResponse);
2023-09-23 01:53:45 +00:00
}
2024-07-07 15:40:46 +08:00
message DirectConnectedPeerInfo { int32 latency_ms = 1; }
message PeerInfoForGlobalMap {
2024-07-07 15:40:46 +08:00
map<uint32, DirectConnectedPeerInfo> direct_peers = 1;
}
message GetGlobalPeerMapRequest {}
message GetGlobalPeerMapResponse {
2024-07-07 15:40:46 +08:00
map<uint32, PeerInfoForGlobalMap> global_peer_map = 1;
}
service PeerCenterRpc {
2024-07-07 15:40:46 +08:00
rpc GetGlobalPeerMap(GetGlobalPeerMapRequest)
returns (GetGlobalPeerMapResponse);
}
2024-03-30 22:15:14 +08:00
message VpnPortalInfo {
2024-07-07 15:40:46 +08:00
string vpn_type = 1;
string client_config = 2;
repeated string connected_clients = 3;
2024-03-30 22:15:14 +08:00
}
message GetVpnPortalInfoRequest {}
2024-07-07 15:40:46 +08:00
message GetVpnPortalInfoResponse { VpnPortalInfo vpn_portal_info = 1; }
2024-03-30 22:15:14 +08:00
service VpnPortalRpc {
2024-07-07 15:40:46 +08:00
rpc GetVpnPortalInfo(GetVpnPortalInfoRequest)
returns (GetVpnPortalInfoResponse);
2024-03-30 22:15:14 +08:00
}
2024-04-24 23:12:46 +08:00
message HandshakeRequest {
2024-07-07 15:40:46 +08:00
uint32 magic = 1;
uint32 my_peer_id = 2;
uint32 version = 3;
repeated string features = 4;
string network_name = 5;
bytes network_secret_digrest = 6;
2024-04-24 23:12:46 +08:00
}
message TaRpcPacket {
2024-07-07 15:40:46 +08:00
uint32 from_peer = 1;
uint32 to_peer = 2;
uint32 service_id = 3;
uint32 transact_id = 4;
bool is_req = 5;
bytes content = 6;
uint32 total_pieces = 7;
uint32 piece_idx = 8;
2024-04-24 23:12:46 +08:00
}