syntax = "proto3"; package xray.app.policy; option csharp_namespace = "Xray.App.Policy"; option go_package = "github.com/xtls/xray-core/app/policy"; option java_package = "com.xray.app.policy"; option java_multiple_files = true; message Second { uint32 value = 1; } message Policy { // Timeout is a message for timeout settings in various stages, in seconds. message Timeout { Second handshake = 1; Second connection_idle = 2; Second uplink_only = 3; Second downlink_only = 4; } message Stats { bool user_uplink = 1; bool user_downlink = 2; bool user_online = 3; } message Buffer { // Buffer size per connection, in bytes. -1 for unlimited buffer. int32 connection = 1; } Timeout timeout = 1; Stats stats = 2; Buffer buffer = 3; } message SystemPolicy { message Stats { bool inbound_uplink = 1; bool inbound_downlink = 2; bool outbound_uplink = 3; bool outbound_downlink = 4; } Stats stats = 1; } message Config { map level = 1; SystemPolicy system = 2; }