套接字选项 (proto)
config.core.v3.SocketOption
[config.core.v3.SocketOption proto]
通用套接字选项消息。这将用于设置可能不存在于上游内核或预编译 Envoy 二进制文件中的套接字选项。
例如
{
"description": "support tcp keep alive",
"state": 0,
"level": 1,
"name": 9,
"int_value": 1,
}
1 代表 SOL_SOCKET,9 代表 Linux 上的 SO_KEEPALIVE。使用上述配置,TCP 保持活动 可以在使用 Linux 的套接字中启用,这可以在 监听器 或 管理员 的 socket_options 等中使用。
需要注意的是,名称或级别在不同平台上可能具有不同的值。
{
"description": ...,
"level": ...,
"name": ...,
"int_value": ...,
"buf_value": ...,
"state": ...,
"type": {...}
}
- description
(string) 为此套接字选项提供可选名称,用于调试等。不需要唯一性,也不假设任何特殊含义。
- level
(int64) 与传递给 setsockopt 的级别值相对应,例如 IPPROTO_TCP
- name
(int64) 传递给 setsockopt 的数字名称
- state
(config.core.v3.SocketOption.SocketState) 将应用选项的状态。在 BindConfig 中使用时,STATE_PREBIND 目前是唯一有效的值。
- type
(config.core.v3.SocketOption.SocketType) 将套接字选项应用于指定的 套接字类型。如果未指定,套接字选项将应用于所有套接字类型。
config.core.v3.SocketOption.SocketType
[config.core.v3.SocketOption.SocketType proto]
将套接字选项应用到的 套接字类型。应该只设置一个字段。如果设置了多个字段,则优先级顺序将决定所选字段。如果未设置任何字段,则套接字选项将应用于所有套接字类型。
例如:如果设置了 stream,它将优先于 datagram。
{
"stream": {...},
"datagram": {...}
}
- stream
(config.core.v3.SocketOption.SocketType.Stream) 将套接字选项应用于流套接字类型。
- datagram
(config.core.v3.SocketOption.SocketType.Datagram) 将套接字选项应用于数据报套接字类型。
config.core.v3.SocketOption.SocketType.Stream
[config.core.v3.SocketOption.SocketType.Stream proto]
流套接字类型。
config.core.v3.SocketOption.SocketType.Datagram
[config.core.v3.SocketOption.SocketType.Datagram proto]
数据报套接字类型。
枚举 config.core.v3.SocketOption.SocketState
[config.core.v3.SocketOption.SocketState proto]
- STATE_PREBIND
(默认值) 套接字选项在套接字创建后但在将套接字绑定到端口之前应用
- STATE_BOUND
套接字选项在将套接字绑定到端口后但在调用 listen() 之前应用
- STATE_LISTENING
套接字选项在调用 listen() 之后应用
config.core.v3.SocketOptionsOverride
[config.core.v3.SocketOptionsOverride proto]
{
"socket_options": []
}
- socket_options