Interface QuicProtocolOptionsOrBuilder

All Superinterfaces:
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
All Known Implementing Classes:
QuicProtocolOptions, QuicProtocolOptions.Builder

public interface QuicProtocolOptionsOrBuilder extends com.google.protobuf.MessageOrBuilder
  • Method Summary

    Modifier and Type
    Method
    Description
    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.
    com.google.protobuf.ByteString
    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.
    A customized UDP socket and a QUIC packet writer using the socket for client connections. i.e.
    A customized UDP socket and a QUIC packet writer using the socket for client connections. i.e.
    Probes the peer at the configured interval to solicit traffic, i.e.
    Probes the peer at the configured interval to solicit traffic, i.e.
    Enable QUIC `connection migration <https://datatracker.ietf.org/doc/html/rfc9000#name-connection-migration>` to a different network interface when the current network is degrading or has become bad.
    Enable QUIC `connection migration <https://datatracker.ietf.org/doc/html/rfc9000#name-connection-migration>` to a different network interface when the current network is degrading or has become bad.
    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.
    com.google.protobuf.ByteString
    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.
    com.google.protobuf.Duration
    The duration that a QUIC connection stays idle before it closes itself.
    com.google.protobuf.DurationOrBuilder
    The duration that a QUIC connection stays idle before it closes itself.
    com.google.protobuf.UInt32Value
    Similar to ``initial_stream_window_size``, but for connection-level flow-control.
    com.google.protobuf.UInt32ValueOrBuilder
    Similar to ``initial_stream_window_size``, but for connection-level flow-control.
    com.google.protobuf.UInt32Value
    `Initial stream-level flow-control receive window <https://tools.ietf.org/html/draft-ietf-quic-transport-34#section-4.1>`_ size.
    com.google.protobuf.UInt32ValueOrBuilder
    `Initial stream-level flow-control receive window <https://tools.ietf.org/html/draft-ietf-quic-transport-34#section-4.1>`_ size.
    com.google.protobuf.UInt32Value
    Maximum number of streams that the client can negotiate per connection. ``100`` if not specified.
    com.google.protobuf.UInt32ValueOrBuilder
    Maximum number of streams that the client can negotiate per connection. ``100`` if not specified.
    com.google.protobuf.UInt64Value
    Maximum packet length for QUIC connections.
    com.google.protobuf.UInt64ValueOrBuilder
    Maximum packet length for QUIC connections.
    com.google.protobuf.UInt32Value
    The number of timeouts that can occur before port migration is triggered for QUIC clients.
    com.google.protobuf.UInt32ValueOrBuilder
    The number of timeouts that can occur before port migration is triggered for QUIC clients.
    boolean
    A customized UDP socket and a QUIC packet writer using the socket for client connections. i.e.
    boolean
    Probes the peer at the configured interval to solicit traffic, i.e.
    boolean
    Enable QUIC `connection migration <https://datatracker.ietf.org/doc/html/rfc9000#name-connection-migration>` to a different network interface when the current network is degrading or has become bad.
    boolean
    The duration that a QUIC connection stays idle before it closes itself.
    boolean
    Similar to ``initial_stream_window_size``, but for connection-level flow-control.
    boolean
    `Initial stream-level flow-control receive window <https://tools.ietf.org/html/draft-ietf-quic-transport-34#section-4.1>`_ size.
    boolean
    Maximum number of streams that the client can negotiate per connection. ``100`` if not specified.
    boolean
    Maximum packet length for QUIC connections.
    boolean
    The number of timeouts that can occur before port migration is triggered for QUIC clients.

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    isInitialized

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
  • Method Details

    • hasMaxConcurrentStreams

      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) = { ... }
      Returns:
      Whether the maxConcurrentStreams field is set.
    • getMaxConcurrentStreams

      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) = { ... }
      Returns:
      The maxConcurrentStreams.
    • getMaxConcurrentStreamsOrBuilder

      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) = { ... }
    • hasInitialStreamWindowSize

      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`` byte 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) = { ... }
      Returns:
      Whether the initialStreamWindowSize field is set.
    • getInitialStreamWindowSize

      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`` byte 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) = { ... }
      Returns:
      The initialStreamWindowSize.
    • getInitialStreamWindowSizeOrBuilder

      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`` byte 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) = { ... }
    • hasInitialConnectionWindowSize

      boolean hasInitialConnectionWindowSize()
       Similar to ``initial_stream_window_size``, but for connection-level
       flow-control. Valid values range 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) = { ... }
      Returns:
      Whether the initialConnectionWindowSize field is set.
    • getInitialConnectionWindowSize

      com.google.protobuf.UInt32Value getInitialConnectionWindowSize()
       Similar to ``initial_stream_window_size``, but for connection-level
       flow-control. Valid values range 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) = { ... }
      Returns:
      The initialConnectionWindowSize.
    • getInitialConnectionWindowSizeOrBuilder

      com.google.protobuf.UInt32ValueOrBuilder getInitialConnectionWindowSizeOrBuilder()
       Similar to ``initial_stream_window_size``, but for connection-level
       flow-control. Valid values range 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) = { ... }
    • hasNumTimeoutsToTriggerPortMigration

      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) = { ... }
      Returns:
      Whether the numTimeoutsToTriggerPortMigration field is set.
    • getNumTimeoutsToTriggerPortMigration

      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) = { ... }
      Returns:
      The numTimeoutsToTriggerPortMigration.
    • getNumTimeoutsToTriggerPortMigrationOrBuilder

      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) = { ... }
    • hasConnectionKeepalive

      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 ``PING``s every ``15s``, and a server connection doesn't do anything.
       
      .envoy.config.core.v3.QuicKeepAliveSettings connection_keepalive = 5;
      Returns:
      Whether the connectionKeepalive field is set.
    • getConnectionKeepalive

      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 ``PING``s every ``15s``, and a server connection doesn't do anything.
       
      .envoy.config.core.v3.QuicKeepAliveSettings connection_keepalive = 5;
      Returns:
      The connectionKeepalive.
    • getConnectionKeepaliveOrBuilder

      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 ``PING``s every ``15s``, and a server connection doesn't do anything.
       
      .envoy.config.core.v3.QuicKeepAliveSettings connection_keepalive = 5;
    • getConnectionOptions

      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;
      Returns:
      The connectionOptions.
    • getConnectionOptionsBytes

      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;
      Returns:
      The bytes for connectionOptions.
    • getClientConnectionOptions

      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;
      Returns:
      The clientConnectionOptions.
    • getClientConnectionOptionsBytes

      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;
      Returns:
      The bytes for clientConnectionOptions.
    • hasIdleNetworkTimeout

      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.
       Do not add an upper bound here. A long idle timeout is useful for maintaining warm connections at non-front-line proxy for low QPS services.
       
      .google.protobuf.Duration idle_network_timeout = 8 [(.validate.rules) = { ... }
      Returns:
      Whether the idleNetworkTimeout field is set.
    • getIdleNetworkTimeout

      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.
       Do not add an upper bound here. A long idle timeout is useful for maintaining warm connections at non-front-line proxy for low QPS services.
       
      .google.protobuf.Duration idle_network_timeout = 8 [(.validate.rules) = { ... }
      Returns:
      The idleNetworkTimeout.
    • getIdleNetworkTimeoutOrBuilder

      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.
       Do not add an upper bound here. A long idle timeout is useful for maintaining warm connections at non-front-line proxy for low QPS services.
       
      .google.protobuf.Duration idle_network_timeout = 8 [(.validate.rules) = { ... }
    • hasMaxPacketLength

      boolean hasMaxPacketLength()
       Maximum packet length for QUIC connections. It refers to the largest size of a QUIC packet that can be transmitted over the connection.
       If not specified, one of the `default values in QUICHE <https://github.com/google/quiche/blob/main/quiche/quic/core/quic_constants.h>`_ is used.
       
      .google.protobuf.UInt64Value max_packet_length = 9;
      Returns:
      Whether the maxPacketLength field is set.
    • getMaxPacketLength

      com.google.protobuf.UInt64Value getMaxPacketLength()
       Maximum packet length for QUIC connections. It refers to the largest size of a QUIC packet that can be transmitted over the connection.
       If not specified, one of the `default values in QUICHE <https://github.com/google/quiche/blob/main/quiche/quic/core/quic_constants.h>`_ is used.
       
      .google.protobuf.UInt64Value max_packet_length = 9;
      Returns:
      The maxPacketLength.
    • getMaxPacketLengthOrBuilder

      com.google.protobuf.UInt64ValueOrBuilder getMaxPacketLengthOrBuilder()
       Maximum packet length for QUIC connections. It refers to the largest size of a QUIC packet that can be transmitted over the connection.
       If not specified, one of the `default values in QUICHE <https://github.com/google/quiche/blob/main/quiche/quic/core/quic_constants.h>`_ is used.
       
      .google.protobuf.UInt64Value max_packet_length = 9;
    • hasClientPacketWriter

      boolean hasClientPacketWriter()
       A customized UDP socket and a QUIC packet writer using the socket for
       client connections. i.e. Mobile uses its own implementation to interact
       with platform socket APIs.
       If not present, the default platform-independent socket and writer will be used.
       [#extension-category: envoy.quic.client_packet_writer]
       
      .envoy.config.core.v3.TypedExtensionConfig client_packet_writer = 10;
      Returns:
      Whether the clientPacketWriter field is set.
    • getClientPacketWriter

      TypedExtensionConfig getClientPacketWriter()
       A customized UDP socket and a QUIC packet writer using the socket for
       client connections. i.e. Mobile uses its own implementation to interact
       with platform socket APIs.
       If not present, the default platform-independent socket and writer will be used.
       [#extension-category: envoy.quic.client_packet_writer]
       
      .envoy.config.core.v3.TypedExtensionConfig client_packet_writer = 10;
      Returns:
      The clientPacketWriter.
    • getClientPacketWriterOrBuilder

      TypedExtensionConfigOrBuilder getClientPacketWriterOrBuilder()
       A customized UDP socket and a QUIC packet writer using the socket for
       client connections. i.e. Mobile uses its own implementation to interact
       with platform socket APIs.
       If not present, the default platform-independent socket and writer will be used.
       [#extension-category: envoy.quic.client_packet_writer]
       
      .envoy.config.core.v3.TypedExtensionConfig client_packet_writer = 10;
    • hasConnectionMigration

      boolean hasConnectionMigration()
       Enable QUIC `connection migration
       <https://datatracker.ietf.org/doc/html/rfc9000#name-connection-migration>`
       to a different network interface when the current network is degrading or
       has become bad.
       In order to use a different network interface other than the platform's default one,
       a customized :ref:`client_packet_writer <envoy_v3_api_field_config.core.v3.QuicProtocolOptions.client_packet_writer>` needs to be configured to
       create UDP sockets on non-default networks.
       Only takes effect when runtime key ``envoy.reloadable_features.use_migration_in_quiche`` is true.
       If absent, the feature will be disabled.
       [#not-implemented-hide:]
       
      .envoy.config.core.v3.QuicProtocolOptions.ConnectionMigrationSettings connection_migration = 11;
      Returns:
      Whether the connectionMigration field is set.
    • getConnectionMigration

       Enable QUIC `connection migration
       <https://datatracker.ietf.org/doc/html/rfc9000#name-connection-migration>`
       to a different network interface when the current network is degrading or
       has become bad.
       In order to use a different network interface other than the platform's default one,
       a customized :ref:`client_packet_writer <envoy_v3_api_field_config.core.v3.QuicProtocolOptions.client_packet_writer>` needs to be configured to
       create UDP sockets on non-default networks.
       Only takes effect when runtime key ``envoy.reloadable_features.use_migration_in_quiche`` is true.
       If absent, the feature will be disabled.
       [#not-implemented-hide:]
       
      .envoy.config.core.v3.QuicProtocolOptions.ConnectionMigrationSettings connection_migration = 11;
      Returns:
      The connectionMigration.
    • getConnectionMigrationOrBuilder

       Enable QUIC `connection migration
       <https://datatracker.ietf.org/doc/html/rfc9000#name-connection-migration>`
       to a different network interface when the current network is degrading or
       has become bad.
       In order to use a different network interface other than the platform's default one,
       a customized :ref:`client_packet_writer <envoy_v3_api_field_config.core.v3.QuicProtocolOptions.client_packet_writer>` needs to be configured to
       create UDP sockets on non-default networks.
       Only takes effect when runtime key ``envoy.reloadable_features.use_migration_in_quiche`` is true.
       If absent, the feature will be disabled.
       [#not-implemented-hide:]
       
      .envoy.config.core.v3.QuicProtocolOptions.ConnectionMigrationSettings connection_migration = 11;