Socket option (proto)
config.core.v3.SocketOption
[config.core.v3.SocketOption proto]
Generic socket option message. This would be used to set socket options that might not exist in upstream kernels or precompiled Envoy binaries.
For example:
{
"description": "support tcp keep alive",
"state": 0,
"level": 1,
"name": 9,
"int_value": 1,
}
1 means SOL_SOCKET and 9 means SO_KEEPALIVE on Linux. With the above configuration, TCP Keep-Alives can be enabled in socket with Linux, which can be used in listener’s or admin’s socket_options etc.
It should be noted that the name or level may have different values on different platforms.
{
"description": ...,
"level": ...,
"name": ...,
"int_value": ...,
"buf_value": ...,
"state": ...
}
- description
(string) An optional name to give this socket option for debugging, etc. Uniqueness is not required and no special meaning is assumed.
- level
(int64) Corresponding to the level value passed to setsockopt, such as IPPROTO_TCP
- name
(int64) The numeric name as passed to setsockopt
- int_value
(int64) Because many sockopts take an int value.
- state
(config.core.v3.SocketOption.SocketState) The state in which the option will be applied. When used in BindConfig STATE_PREBIND is currently the only valid value.
Enum config.core.v3.SocketOption.SocketState
[config.core.v3.SocketOption.SocketState proto]
- STATE_PREBIND
(DEFAULT) Socket options are applied after socket creation but before binding the socket to a port
- STATE_BOUND
Socket options are applied after binding the socket to a port but before calling listen()
- STATE_LISTENING
Socket options are applied after calling listen()
config.core.v3.SocketOptionsOverride
[config.core.v3.SocketOptionsOverride proto]
{
"socket_options": []
}
- socket_options
(repeated config.core.v3.SocketOption)