Class QuicProtocolOptions

  • All Implemented Interfaces:
    com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, QuicProtocolOptionsOrBuilder, Serializable

    public final class QuicProtocolOptions
    extends com.google.protobuf.GeneratedMessageV3
    implements QuicProtocolOptionsOrBuilder
     QUIC protocol options which apply to both downstream and upstream connections.
     [#next-free-field: 6]
     
    Protobuf type envoy.config.core.v3.QuicProtocolOptions
    See Also:
    Serialized Form
    • Field Detail

      • MAX_CONCURRENT_STREAMS_FIELD_NUMBER

        public static final int MAX_CONCURRENT_STREAMS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • INITIAL_STREAM_WINDOW_SIZE_FIELD_NUMBER

        public static final int INITIAL_STREAM_WINDOW_SIZE_FIELD_NUMBER
        See Also:
        Constant Field Values
      • INITIAL_CONNECTION_WINDOW_SIZE_FIELD_NUMBER

        public static final int INITIAL_CONNECTION_WINDOW_SIZE_FIELD_NUMBER
        See Also:
        Constant Field Values
      • NUM_TIMEOUTS_TO_TRIGGER_PORT_MIGRATION_FIELD_NUMBER

        public static final int NUM_TIMEOUTS_TO_TRIGGER_PORT_MIGRATION_FIELD_NUMBER
        See Also:
        Constant Field Values
      • CONNECTION_KEEPALIVE_FIELD_NUMBER

        public static final int CONNECTION_KEEPALIVE_FIELD_NUMBER
        See Also:
        Constant Field Values
    • Method Detail

      • newInstance

        protected Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
        Overrides:
        newInstance in class com.google.protobuf.GeneratedMessageV3
      • getUnknownFields

        public final com.google.protobuf.UnknownFieldSet getUnknownFields()
        Specified by:
        getUnknownFields in interface com.google.protobuf.MessageOrBuilder
        Overrides:
        getUnknownFields in class com.google.protobuf.GeneratedMessageV3
      • getDescriptor

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      • hasMaxConcurrentStreams

        public boolean hasMaxConcurrentStreams()
         Maximum number of streams that the client can negotiate per connection. 100
         if not specified.
         
        .google.protobuf.UInt32Value max_concurrent_streams = 1 [(.validate.rules) = { ... }
        Specified by:
        hasMaxConcurrentStreams in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the maxConcurrentStreams field is set.
      • getMaxConcurrentStreams

        public com.google.protobuf.UInt32Value getMaxConcurrentStreams()
         Maximum number of streams that the client can negotiate per connection. 100
         if not specified.
         
        .google.protobuf.UInt32Value max_concurrent_streams = 1 [(.validate.rules) = { ... }
        Specified by:
        getMaxConcurrentStreams in interface QuicProtocolOptionsOrBuilder
        Returns:
        The maxConcurrentStreams.
      • getMaxConcurrentStreamsOrBuilder

        public com.google.protobuf.UInt32ValueOrBuilder getMaxConcurrentStreamsOrBuilder()
         Maximum number of streams that the client can negotiate per connection. 100
         if not specified.
         
        .google.protobuf.UInt32Value max_concurrent_streams = 1 [(.validate.rules) = { ... }
        Specified by:
        getMaxConcurrentStreamsOrBuilder in interface QuicProtocolOptionsOrBuilder
      • hasInitialStreamWindowSize

        public boolean hasInitialStreamWindowSize()
         `Initial stream-level flow-control receive window
         <https://tools.ietf.org/html/draft-ietf-quic-transport-34#section-4.1>`_ size. Valid values range from
         1 to 16777216 (2^24, maximum supported by QUICHE) and defaults to 65536 (2^16).
         NOTE: 16384 (2^14) is the minimum window size supported in Google QUIC. If configured smaller than it, we will use 16384 instead.
         QUICHE IETF Quic implementation supports 1 bytes window. We only support increasing the default window size now, so it's also the minimum.
         This field also acts as a soft limit on the number of bytes Envoy will buffer per-stream in the
         QUIC stream send and receive buffers. Once the buffer reaches this pointer, watermark callbacks will fire to
         stop the flow of data to the stream buffers.
         
        .google.protobuf.UInt32Value initial_stream_window_size = 2 [(.validate.rules) = { ... }
        Specified by:
        hasInitialStreamWindowSize in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the initialStreamWindowSize field is set.
      • getInitialStreamWindowSize

        public com.google.protobuf.UInt32Value getInitialStreamWindowSize()
         `Initial stream-level flow-control receive window
         <https://tools.ietf.org/html/draft-ietf-quic-transport-34#section-4.1>`_ size. Valid values range from
         1 to 16777216 (2^24, maximum supported by QUICHE) and defaults to 65536 (2^16).
         NOTE: 16384 (2^14) is the minimum window size supported in Google QUIC. If configured smaller than it, we will use 16384 instead.
         QUICHE IETF Quic implementation supports 1 bytes window. We only support increasing the default window size now, so it's also the minimum.
         This field also acts as a soft limit on the number of bytes Envoy will buffer per-stream in the
         QUIC stream send and receive buffers. Once the buffer reaches this pointer, watermark callbacks will fire to
         stop the flow of data to the stream buffers.
         
        .google.protobuf.UInt32Value initial_stream_window_size = 2 [(.validate.rules) = { ... }
        Specified by:
        getInitialStreamWindowSize in interface QuicProtocolOptionsOrBuilder
        Returns:
        The initialStreamWindowSize.
      • getInitialStreamWindowSizeOrBuilder

        public com.google.protobuf.UInt32ValueOrBuilder getInitialStreamWindowSizeOrBuilder()
         `Initial stream-level flow-control receive window
         <https://tools.ietf.org/html/draft-ietf-quic-transport-34#section-4.1>`_ size. Valid values range from
         1 to 16777216 (2^24, maximum supported by QUICHE) and defaults to 65536 (2^16).
         NOTE: 16384 (2^14) is the minimum window size supported in Google QUIC. If configured smaller than it, we will use 16384 instead.
         QUICHE IETF Quic implementation supports 1 bytes window. We only support increasing the default window size now, so it's also the minimum.
         This field also acts as a soft limit on the number of bytes Envoy will buffer per-stream in the
         QUIC stream send and receive buffers. Once the buffer reaches this pointer, watermark callbacks will fire to
         stop the flow of data to the stream buffers.
         
        .google.protobuf.UInt32Value initial_stream_window_size = 2 [(.validate.rules) = { ... }
        Specified by:
        getInitialStreamWindowSizeOrBuilder in interface QuicProtocolOptionsOrBuilder
      • hasInitialConnectionWindowSize

        public boolean hasInitialConnectionWindowSize()
         Similar to ``initial_stream_window_size``, but for connection-level
         flow-control. Valid values rage from 1 to 25165824 (24MB, maximum supported by QUICHE) and defaults to 65536 (2^16).
         window. Currently, this has the same minimum/default as ``initial_stream_window_size``.
         NOTE: 16384 (2^14) is the minimum window size supported in Google QUIC. We only support increasing the default
         window size now, so it's also the minimum.
         
        .google.protobuf.UInt32Value initial_connection_window_size = 3 [(.validate.rules) = { ... }
        Specified by:
        hasInitialConnectionWindowSize in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the initialConnectionWindowSize field is set.
      • getInitialConnectionWindowSize

        public com.google.protobuf.UInt32Value getInitialConnectionWindowSize()
         Similar to ``initial_stream_window_size``, but for connection-level
         flow-control. Valid values rage from 1 to 25165824 (24MB, maximum supported by QUICHE) and defaults to 65536 (2^16).
         window. Currently, this has the same minimum/default as ``initial_stream_window_size``.
         NOTE: 16384 (2^14) is the minimum window size supported in Google QUIC. We only support increasing the default
         window size now, so it's also the minimum.
         
        .google.protobuf.UInt32Value initial_connection_window_size = 3 [(.validate.rules) = { ... }
        Specified by:
        getInitialConnectionWindowSize in interface QuicProtocolOptionsOrBuilder
        Returns:
        The initialConnectionWindowSize.
      • getInitialConnectionWindowSizeOrBuilder

        public com.google.protobuf.UInt32ValueOrBuilder getInitialConnectionWindowSizeOrBuilder()
         Similar to ``initial_stream_window_size``, but for connection-level
         flow-control. Valid values rage from 1 to 25165824 (24MB, maximum supported by QUICHE) and defaults to 65536 (2^16).
         window. Currently, this has the same minimum/default as ``initial_stream_window_size``.
         NOTE: 16384 (2^14) is the minimum window size supported in Google QUIC. We only support increasing the default
         window size now, so it's also the minimum.
         
        .google.protobuf.UInt32Value initial_connection_window_size = 3 [(.validate.rules) = { ... }
        Specified by:
        getInitialConnectionWindowSizeOrBuilder in interface QuicProtocolOptionsOrBuilder
      • hasNumTimeoutsToTriggerPortMigration

        public boolean hasNumTimeoutsToTriggerPortMigration()
         The number of timeouts that can occur before port migration is triggered for QUIC clients.
         This defaults to 1. If set to 0, port migration will not occur on path degrading.
         Timeout here refers to QUIC internal path degrading timeout mechanism, such as PTO.
         This has no effect on server sessions.
         
        .google.protobuf.UInt32Value num_timeouts_to_trigger_port_migration = 4 [(.validate.rules) = { ... }
        Specified by:
        hasNumTimeoutsToTriggerPortMigration in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the numTimeoutsToTriggerPortMigration field is set.
      • getNumTimeoutsToTriggerPortMigration

        public com.google.protobuf.UInt32Value getNumTimeoutsToTriggerPortMigration()
         The number of timeouts that can occur before port migration is triggered for QUIC clients.
         This defaults to 1. If set to 0, port migration will not occur on path degrading.
         Timeout here refers to QUIC internal path degrading timeout mechanism, such as PTO.
         This has no effect on server sessions.
         
        .google.protobuf.UInt32Value num_timeouts_to_trigger_port_migration = 4 [(.validate.rules) = { ... }
        Specified by:
        getNumTimeoutsToTriggerPortMigration in interface QuicProtocolOptionsOrBuilder
        Returns:
        The numTimeoutsToTriggerPortMigration.
      • getNumTimeoutsToTriggerPortMigrationOrBuilder

        public com.google.protobuf.UInt32ValueOrBuilder getNumTimeoutsToTriggerPortMigrationOrBuilder()
         The number of timeouts that can occur before port migration is triggered for QUIC clients.
         This defaults to 1. If set to 0, port migration will not occur on path degrading.
         Timeout here refers to QUIC internal path degrading timeout mechanism, such as PTO.
         This has no effect on server sessions.
         
        .google.protobuf.UInt32Value num_timeouts_to_trigger_port_migration = 4 [(.validate.rules) = { ... }
        Specified by:
        getNumTimeoutsToTriggerPortMigrationOrBuilder in interface QuicProtocolOptionsOrBuilder
      • hasConnectionKeepalive

        public boolean hasConnectionKeepalive()
         Probes the peer at the configured interval to solicit traffic, i.e. ACK or PATH_RESPONSE, from the peer to push back connection idle timeout.
         If absent, use the default keepalive behavior of which a client connection sends PINGs every 15s, and a server connection doesn't do anything.
         
        .envoy.config.core.v3.QuicKeepAliveSettings connection_keepalive = 5;
        Specified by:
        hasConnectionKeepalive in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the connectionKeepalive field is set.
      • getConnectionKeepalive

        public QuicKeepAliveSettings getConnectionKeepalive()
         Probes the peer at the configured interval to solicit traffic, i.e. ACK or PATH_RESPONSE, from the peer to push back connection idle timeout.
         If absent, use the default keepalive behavior of which a client connection sends PINGs every 15s, and a server connection doesn't do anything.
         
        .envoy.config.core.v3.QuicKeepAliveSettings connection_keepalive = 5;
        Specified by:
        getConnectionKeepalive in interface QuicProtocolOptionsOrBuilder
        Returns:
        The connectionKeepalive.
      • getConnectionKeepaliveOrBuilder

        public QuicKeepAliveSettingsOrBuilder getConnectionKeepaliveOrBuilder()
         Probes the peer at the configured interval to solicit traffic, i.e. ACK or PATH_RESPONSE, from the peer to push back connection idle timeout.
         If absent, use the default keepalive behavior of which a client connection sends PINGs every 15s, and a server connection doesn't do anything.
         
        .envoy.config.core.v3.QuicKeepAliveSettings connection_keepalive = 5;
        Specified by:
        getConnectionKeepaliveOrBuilder in interface QuicProtocolOptionsOrBuilder
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3
      • writeTo

        public void writeTo​(com.google.protobuf.CodedOutputStream output)
                     throws IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessageV3
        Throws:
        IOException
      • getSerializedSize

        public int getSerializedSize()
        Specified by:
        getSerializedSize in interface com.google.protobuf.MessageLite
        Overrides:
        getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      • equals

        public boolean equals​(Object obj)
        Specified by:
        equals in interface com.google.protobuf.Message
        Overrides:
        equals in class com.google.protobuf.AbstractMessage
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface com.google.protobuf.Message
        Overrides:
        hashCode in class com.google.protobuf.AbstractMessage
      • parseFrom

        public static QuicProtocolOptions parseFrom​(ByteBuffer data)
                                             throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static QuicProtocolOptions parseFrom​(ByteBuffer data,
                                                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                             throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static QuicProtocolOptions parseFrom​(com.google.protobuf.ByteString data)
                                             throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static QuicProtocolOptions parseFrom​(com.google.protobuf.ByteString data,
                                                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                             throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static QuicProtocolOptions parseFrom​(byte[] data)
                                             throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static QuicProtocolOptions parseFrom​(byte[] data,
                                                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                             throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static QuicProtocolOptions parseFrom​(com.google.protobuf.CodedInputStream input,
                                                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                             throws IOException
        Throws:
        IOException
      • newBuilderForType

        public QuicProtocolOptions.Builder newBuilderForType()
        Specified by:
        newBuilderForType in interface com.google.protobuf.Message
        Specified by:
        newBuilderForType in interface com.google.protobuf.MessageLite
      • toBuilder

        public QuicProtocolOptions.Builder toBuilder()
        Specified by:
        toBuilder in interface com.google.protobuf.Message
        Specified by:
        toBuilder in interface com.google.protobuf.MessageLite
      • newBuilderForType

        protected QuicProtocolOptions.Builder newBuilderForType​(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
        Specified by:
        newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      • getParserForType

        public com.google.protobuf.Parser<QuicProtocolOptions> getParserForType()
        Specified by:
        getParserForType in interface com.google.protobuf.Message
        Specified by:
        getParserForType in interface com.google.protobuf.MessageLite
        Overrides:
        getParserForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstanceForType

        public QuicProtocolOptions getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder