mirror of https://github.com/XTLS/Xray-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
2.4 KiB
119 lines
2.4 KiB
syntax = "proto3"; |
|
|
|
package xray.transport.internet; |
|
option csharp_namespace = "Xray.Transport.Internet"; |
|
option go_package = "github.com/xtls/xray-core/transport/internet"; |
|
option java_package = "com.xray.transport.internet"; |
|
option java_multiple_files = true; |
|
|
|
import "common/serial/typed_message.proto"; |
|
import "common/net/address.proto"; |
|
|
|
enum DomainStrategy { |
|
AS_IS = 0; |
|
USE_IP = 1; |
|
USE_IP4 = 2; |
|
USE_IP6 = 3; |
|
USE_IP46 = 4; |
|
USE_IP64 = 5; |
|
FORCE_IP = 6; |
|
FORCE_IP4 = 7; |
|
FORCE_IP6 = 8; |
|
FORCE_IP46 = 9; |
|
FORCE_IP64 = 10; |
|
} |
|
|
|
message TransportConfig { |
|
// Type of network that this settings supports. |
|
string protocol_name = 3; |
|
|
|
// Specific settings. Must be of the transports. |
|
xray.common.serial.TypedMessage settings = 2; |
|
} |
|
|
|
message StreamConfig { |
|
xray.common.net.IPOrDomain address = 8; |
|
uint32 port = 9; |
|
|
|
// Effective network. |
|
string protocol_name = 5; |
|
|
|
repeated TransportConfig transport_settings = 2; |
|
|
|
// Type of security. Must be a message name of the settings proto. |
|
string security_type = 3; |
|
|
|
// Settings for transport security. For now the only choice is TLS. |
|
repeated xray.common.serial.TypedMessage security_settings = 4; |
|
|
|
SocketConfig socket_settings = 6; |
|
} |
|
|
|
message ProxyConfig { |
|
string tag = 1; |
|
bool transportLayerProxy = 2; |
|
} |
|
|
|
message CustomSockopt { |
|
string level = 1; |
|
string opt = 2; |
|
string value = 3; |
|
string type = 4; |
|
} |
|
|
|
// SocketConfig is options to be applied on network sockets. |
|
message SocketConfig { |
|
// Mark of the connection. If non-zero, the value will be set to SO_MARK. |
|
int32 mark = 1; |
|
|
|
// TFO is the state of TFO settings. |
|
int32 tfo = 2; |
|
|
|
enum TProxyMode { |
|
// TProxy is off. |
|
Off = 0; |
|
// TProxy mode. |
|
TProxy = 1; |
|
// Redirect mode. |
|
Redirect = 2; |
|
} |
|
|
|
// TProxy is for enabling TProxy socket option. |
|
TProxyMode tproxy = 3; |
|
|
|
// ReceiveOriginalDestAddress is for enabling IP_RECVORIGDSTADDR socket |
|
// option. This option is for UDP only. |
|
bool receive_original_dest_address = 4; |
|
|
|
bytes bind_address = 5; |
|
|
|
uint32 bind_port = 6; |
|
|
|
bool accept_proxy_protocol = 7; |
|
|
|
DomainStrategy domain_strategy = 8; |
|
|
|
string dialer_proxy = 9; |
|
|
|
int32 tcp_keep_alive_interval = 10; |
|
|
|
int32 tcp_keep_alive_idle = 11; |
|
|
|
string tcp_congestion = 12; |
|
|
|
string interface = 13; |
|
|
|
bool v6only = 14; |
|
|
|
int32 tcp_window_clamp = 15; |
|
|
|
int32 tcp_user_timeout = 16; |
|
|
|
int32 tcp_max_seg = 17; |
|
|
|
bool tcp_no_delay = 18; |
|
|
|
bool tcp_mptcp = 19; |
|
|
|
repeated CustomSockopt customSockopt = 20; |
|
}
|
|
|