DatagramSegmentSize

    DatagramSegmentSize controls the UDP_SEGMENT socket option (sometimes reffered to as ‘GSO’) which allows for large writes to be sent via sendmsg and sendmmsg and segmented into separate datagrams by the kernel (or in some cases, the NIC). The size of segments the large write is split into is controlled by the value of this option (note that writes do not need to be a multiple of this option).

    ChannelOption.swift:202
    struct DatagramSegmentSize

    This option is currently only supported on Linux (4.18 and newer). Support can be checked using supportsUDPSegmentationOffload.

    Setting this option to zero disables segmentation offload.

    Other members in extension

    View members

    Hide members

    This section is hidden by default because it contains too many (16) members.

    Types

    • struct AllocatorOption

      AllocatorOption allows to specify the ByteBufferAllocator to use.

    • struct AllowRemoteHalfClosureOption

      AllowRemoteHalfClosureOption allows users to configure whether the Channel will close itself when its remote peer shuts down its send stream, or whether it will remain open. If set to false (the default), the Channel will be closed automatically if the remote peer shuts down its send stream. If set to true, the Channel will not be closed: instead, a ChannelEvent.inboundClosed user event will be sent on the ChannelPipeline, and no more data will be received.

    • struct AutoReadOption

      AutoReadOption allows users to configure if a Channel should automatically call Channel.read again once all data was read from the transport or if the user is responsible to call Channel.read manually.

    • struct BacklogOption

      BacklogOption allows users to configure the backlog value as specified in man 2 listen. This is only useful for ServerSocketChannels.

    • struct ConnectTimeoutOption

      ConnectTimeoutOption allows users to configure the TimeAmount after which a connect will fail if it was not established in the meantime. May be nil, in which case the connection attempt will never time out.

    • enum ConvenienceOptionValue<ValueType>

      Has an option been set? Option has a value of generic type ValueType.

    • struct DatagramReceiveOffload

      DatagramReceiveOffload sets the UDP_GRO socket option which allows for datagrams to be accumulated by the kernel (or in some cases, the NIC) and reduces traversals in the kernel’s networking layer.

    • struct DatagramVectorReadMessageCountOption

      DatagramVectorReadMessageCountOption allows users to configure the number of messages to attempt to read in a single syscall on a datagram Channel.

    • struct ExplicitCongestionNotificationsOption

      When set to true IP level ECN information will be reported through AddressedEnvelope.Metadata

    • struct MaxMessagesPerReadOption

      MaxMessagesPerReadOption allows users to configure the maximum number of read calls to the underlying transport are performed before wait again until there is more to read and be notified.

    • struct ReceivePacketInfo

      When set to true IP level Packet Info information will be reported through AddressedEnvelope.Metadata for UDP packets.

    • struct RecvAllocatorOption

      RecvAllocatorOption allows users to specify the RecvByteBufferAllocator to use.

    • struct SocketOption

      SocketOption allows users to specify configuration settings that are directly applied to the underlying socket file descriptor.

    • struct WriteBufferWaterMark

      The watermark used to detect when Channel.isWritable returns true or false.

    • struct WriteBufferWaterMarkOption

      WriteBufferWaterMarkOption allows users to configure when a Channel should be marked as writable or not. Once the amount of bytes queued in a Channels outbound buffer is larger than WriteBufferWaterMark.high the channel will be marked as non-writable and so Channel.isWritable will return false. Once we were able to write some data out of the outbound buffer and the amount of bytes queued falls below WriteBufferWaterMark.low the Channel will become writable again. Once this happens Channel.writable will return true again. These writability changes are also propagated through the ChannelPipeline and so can be intercepted via ChannelInboundHandler.channelWritabilityChanged.

    • struct WriteSpinOption

      WriteSpinOption allows users to configure the number of repetitions of a only partially successful write call before considering the Channel not writable. Setting this option to 0 means that we only issue one write call and if that call does not write all the bytes, we consider the Channel not writable.

    Citizens in NIOCore

    Conformances

    Show implementation details (1)

    Hide implementation details

    Typealiases

    Type members

    Type features