Class QuicProtocolOptions

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
io.envoyproxy.envoy.config.core.v3.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.GeneratedMessage implements QuicProtocolOptionsOrBuilder
 QUIC protocol options which apply to both downstream and upstream connections.
 [#next-free-field: 9]
 
Protobuf type envoy.config.core.v3.QuicProtocolOptions
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • bitField0_

      private int bitField0_
    • MAX_CONCURRENT_STREAMS_FIELD_NUMBER

      public static final int MAX_CONCURRENT_STREAMS_FIELD_NUMBER
      See Also:
    • maxConcurrentStreams_

      private com.google.protobuf.UInt32Value maxConcurrentStreams_
    • INITIAL_STREAM_WINDOW_SIZE_FIELD_NUMBER

      public static final int INITIAL_STREAM_WINDOW_SIZE_FIELD_NUMBER
      See Also:
    • initialStreamWindowSize_

      private com.google.protobuf.UInt32Value initialStreamWindowSize_
    • INITIAL_CONNECTION_WINDOW_SIZE_FIELD_NUMBER

      public static final int INITIAL_CONNECTION_WINDOW_SIZE_FIELD_NUMBER
      See Also:
    • initialConnectionWindowSize_

      private com.google.protobuf.UInt32Value initialConnectionWindowSize_
    • NUM_TIMEOUTS_TO_TRIGGER_PORT_MIGRATION_FIELD_NUMBER

      public static final int NUM_TIMEOUTS_TO_TRIGGER_PORT_MIGRATION_FIELD_NUMBER
      See Also:
    • numTimeoutsToTriggerPortMigration_

      private com.google.protobuf.UInt32Value numTimeoutsToTriggerPortMigration_
    • CONNECTION_KEEPALIVE_FIELD_NUMBER

      public static final int CONNECTION_KEEPALIVE_FIELD_NUMBER
      See Also:
    • connectionKeepalive_

      private QuicKeepAliveSettings connectionKeepalive_
    • CONNECTION_OPTIONS_FIELD_NUMBER

      public static final int CONNECTION_OPTIONS_FIELD_NUMBER
      See Also:
    • connectionOptions_

      private volatile Object connectionOptions_
    • CLIENT_CONNECTION_OPTIONS_FIELD_NUMBER

      public static final int CLIENT_CONNECTION_OPTIONS_FIELD_NUMBER
      See Also:
    • clientConnectionOptions_

      private volatile Object clientConnectionOptions_
    • IDLE_NETWORK_TIMEOUT_FIELD_NUMBER

      public static final int IDLE_NETWORK_TIMEOUT_FIELD_NUMBER
      See Also:
    • idleNetworkTimeout_

      private com.google.protobuf.Duration idleNetworkTimeout_
    • memoizedIsInitialized

      private byte memoizedIsInitialized
    • DEFAULT_INSTANCE

      private static final QuicProtocolOptions DEFAULT_INSTANCE
    • PARSER

      private static final com.google.protobuf.Parser<QuicProtocolOptions> PARSER
  • Constructor Details

    • QuicProtocolOptions

      private QuicProtocolOptions(com.google.protobuf.GeneratedMessage.Builder<?> builder)
    • QuicProtocolOptions

      private QuicProtocolOptions()
  • Method Details

    • getDescriptor

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

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage
    • 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 16777216 (16 * 1024 * 1024).
      
       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 16777216 (16 * 1024 * 1024).
      
       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 16777216 (16 * 1024 * 1024).
      
       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 25165824 (24 * 1024 * 1024).
      
       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 25165824 (24 * 1024 * 1024).
      
       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 25165824 (24 * 1024 * 1024).
      
       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 4. 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 4. 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 4. 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
    • getConnectionOptions

      public String getConnectionOptions()
       A comma-separated list of strings representing QUIC connection options defined in
       `QUICHE <https://github.com/google/quiche/blob/main/quiche/quic/core/crypto/crypto_protocol.h>`_ and to be sent by upstream connections.
       
      string connection_options = 6;
      Specified by:
      getConnectionOptions in interface QuicProtocolOptionsOrBuilder
      Returns:
      The connectionOptions.
    • getConnectionOptionsBytes

      public com.google.protobuf.ByteString getConnectionOptionsBytes()
       A comma-separated list of strings representing QUIC connection options defined in
       `QUICHE <https://github.com/google/quiche/blob/main/quiche/quic/core/crypto/crypto_protocol.h>`_ and to be sent by upstream connections.
       
      string connection_options = 6;
      Specified by:
      getConnectionOptionsBytes in interface QuicProtocolOptionsOrBuilder
      Returns:
      The bytes for connectionOptions.
    • getClientConnectionOptions

      public String getClientConnectionOptions()
       A comma-separated list of strings representing QUIC client connection options defined in
       `QUICHE <https://github.com/google/quiche/blob/main/quiche/quic/core/crypto/crypto_protocol.h>`_ and to be sent by upstream connections.
       
      string client_connection_options = 7;
      Specified by:
      getClientConnectionOptions in interface QuicProtocolOptionsOrBuilder
      Returns:
      The clientConnectionOptions.
    • getClientConnectionOptionsBytes

      public com.google.protobuf.ByteString getClientConnectionOptionsBytes()
       A comma-separated list of strings representing QUIC client connection options defined in
       `QUICHE <https://github.com/google/quiche/blob/main/quiche/quic/core/crypto/crypto_protocol.h>`_ and to be sent by upstream connections.
       
      string client_connection_options = 7;
      Specified by:
      getClientConnectionOptionsBytes in interface QuicProtocolOptionsOrBuilder
      Returns:
      The bytes for clientConnectionOptions.
    • hasIdleNetworkTimeout

      public boolean hasIdleNetworkTimeout()
       The duration that a QUIC connection stays idle before it closes itself. If this field is not present, QUICHE
       default 600s will be applied.
       For internal corporate network, a long timeout is often fine.
       But for client facing network, 30s is usually a good choice.
       
      .google.protobuf.Duration idle_network_timeout = 8 [(.validate.rules) = { ... }
      Specified by:
      hasIdleNetworkTimeout in interface QuicProtocolOptionsOrBuilder
      Returns:
      Whether the idleNetworkTimeout field is set.
    • getIdleNetworkTimeout

      public com.google.protobuf.Duration getIdleNetworkTimeout()
       The duration that a QUIC connection stays idle before it closes itself. If this field is not present, QUICHE
       default 600s will be applied.
       For internal corporate network, a long timeout is often fine.
       But for client facing network, 30s is usually a good choice.
       
      .google.protobuf.Duration idle_network_timeout = 8 [(.validate.rules) = { ... }
      Specified by:
      getIdleNetworkTimeout in interface QuicProtocolOptionsOrBuilder
      Returns:
      The idleNetworkTimeout.
    • getIdleNetworkTimeoutOrBuilder

      public com.google.protobuf.DurationOrBuilder getIdleNetworkTimeoutOrBuilder()
       The duration that a QUIC connection stays idle before it closes itself. If this field is not present, QUICHE
       default 600s will be applied.
       For internal corporate network, a long timeout is often fine.
       But for client facing network, 30s is usually a good choice.
       
      .google.protobuf.Duration idle_network_timeout = 8 [(.validate.rules) = { ... }
      Specified by:
      getIdleNetworkTimeoutOrBuilder in interface QuicProtocolOptionsOrBuilder
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage
    • 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.GeneratedMessage
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessage
    • 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(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static QuicProtocolOptions parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static QuicProtocolOptions parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static QuicProtocolOptions parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static QuicProtocolOptions parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • 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
    • newBuilder

      public static QuicProtocolOptions.Builder newBuilder()
    • newBuilder

      public static QuicProtocolOptions.Builder newBuilder(QuicProtocolOptions prototype)
    • 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.AbstractMessage.BuilderParent parent)
      Overrides:
      newBuilderForType in class com.google.protobuf.AbstractMessage
    • getDefaultInstance

      public static QuicProtocolOptions getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<QuicProtocolOptions> parser()
    • 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.GeneratedMessage
    • getDefaultInstanceForType

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