Default socket interface configuration (proto)

extensions.network.socket_interface.v3.DefaultSocketInterface

[extensions.network.socket_interface.v3.DefaultSocketInterface proto]

Configuration for default socket interface that relies on OS dependent syscall to create sockets.

{
  "io_uring_options": {...}
}
io_uring_options

(extensions.network.socket_interface.v3.IoUringOptions) io_uring options. io_uring is only valid in Linux with at least kernel version 5.11. Otherwise, Envoy will fall back to use the default socket API. If not set then io_uring will not be enabled.

extensions.network.socket_interface.v3.IoUringOptions

[extensions.network.socket_interface.v3.IoUringOptions proto]

{
  "io_uring_size": {...},
  "enable_submission_queue_polling": ...,
  "read_buffer_size": {...},
  "write_timeout_ms": {...}
}
io_uring_size

(UInt32Value) The size for io_uring submission queues (SQ). io_uring is built with a fixed size in each thread during configuration, and each io_uring operation creates a submission queue entry (SQE). The default is 1000.

enable_submission_queue_polling

(bool) Enable io_uring submission queue polling (SQPOLL). io_uring SQPOLL mode polls all SQEs in the SQ in the kernel thread. io_uring SQPOLL mode may reduce latency and increase CPU usage as a cost. The default is false.

read_buffer_size

(UInt32Value) The size of an io_uring socket’s read buffer. Each io_uring read operation will allocate a buffer of the given size. If the given buffer is too small, the socket will have read multiple times for all the data. The default is 8192.

write_timeout_ms

(UInt32Value) The write timeout of an io_uring socket on closing in ms. io_uring writes and closes asynchronously. If the remote stops reading, the io_uring write operation may never complete. The operation is canceled and the socket is closed after the timeout. The default is 1000.