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
     Configuration specific to the UDP QUIC listener.
     [#next-free-field: 8]
     
    Protobuf type envoy.config.listener.v3.QuicProtocolOptions
    See Also:
    Serialized Form
    • Field Detail

      • QUIC_PROTOCOL_OPTIONS_FIELD_NUMBER

        public static final int QUIC_PROTOCOL_OPTIONS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • IDLE_TIMEOUT_FIELD_NUMBER

        public static final int IDLE_TIMEOUT_FIELD_NUMBER
        See Also:
        Constant Field Values
      • CRYPTO_HANDSHAKE_TIMEOUT_FIELD_NUMBER

        public static final int CRYPTO_HANDSHAKE_TIMEOUT_FIELD_NUMBER
        See Also:
        Constant Field Values
      • PACKETS_TO_READ_TO_CONNECTION_COUNT_RATIO_FIELD_NUMBER

        public static final int PACKETS_TO_READ_TO_CONNECTION_COUNT_RATIO_FIELD_NUMBER
        See Also:
        Constant Field Values
      • CRYPTO_STREAM_CONFIG_FIELD_NUMBER

        public static final int CRYPTO_STREAM_CONFIG_FIELD_NUMBER
        See Also:
        Constant Field Values
      • PROOF_SOURCE_CONFIG_FIELD_NUMBER

        public static final int PROOF_SOURCE_CONFIG_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
      • hasQuicProtocolOptions

        public boolean hasQuicProtocolOptions()
        .envoy.config.core.v3.QuicProtocolOptions quic_protocol_options = 1;
        Specified by:
        hasQuicProtocolOptions in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the quicProtocolOptions field is set.
      • hasIdleTimeout

        public boolean hasIdleTimeout()
         Maximum number of milliseconds that connection will be alive when there is
         no network activity.
         If it is less than 1ms, Envoy will use 1ms. 300000ms if not specified.
         
        .google.protobuf.Duration idle_timeout = 2;
        Specified by:
        hasIdleTimeout in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the idleTimeout field is set.
      • getIdleTimeout

        public com.google.protobuf.Duration getIdleTimeout()
         Maximum number of milliseconds that connection will be alive when there is
         no network activity.
         If it is less than 1ms, Envoy will use 1ms. 300000ms if not specified.
         
        .google.protobuf.Duration idle_timeout = 2;
        Specified by:
        getIdleTimeout in interface QuicProtocolOptionsOrBuilder
        Returns:
        The idleTimeout.
      • getIdleTimeoutOrBuilder

        public com.google.protobuf.DurationOrBuilder getIdleTimeoutOrBuilder()
         Maximum number of milliseconds that connection will be alive when there is
         no network activity.
         If it is less than 1ms, Envoy will use 1ms. 300000ms if not specified.
         
        .google.protobuf.Duration idle_timeout = 2;
        Specified by:
        getIdleTimeoutOrBuilder in interface QuicProtocolOptionsOrBuilder
      • hasCryptoHandshakeTimeout

        public boolean hasCryptoHandshakeTimeout()
         Connection timeout in milliseconds before the crypto handshake is finished.
         If it is less than 5000ms, Envoy will use 5000ms. 20000ms if not specified.
         
        .google.protobuf.Duration crypto_handshake_timeout = 3;
        Specified by:
        hasCryptoHandshakeTimeout in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the cryptoHandshakeTimeout field is set.
      • getCryptoHandshakeTimeout

        public com.google.protobuf.Duration getCryptoHandshakeTimeout()
         Connection timeout in milliseconds before the crypto handshake is finished.
         If it is less than 5000ms, Envoy will use 5000ms. 20000ms if not specified.
         
        .google.protobuf.Duration crypto_handshake_timeout = 3;
        Specified by:
        getCryptoHandshakeTimeout in interface QuicProtocolOptionsOrBuilder
        Returns:
        The cryptoHandshakeTimeout.
      • getCryptoHandshakeTimeoutOrBuilder

        public com.google.protobuf.DurationOrBuilder getCryptoHandshakeTimeoutOrBuilder()
         Connection timeout in milliseconds before the crypto handshake is finished.
         If it is less than 5000ms, Envoy will use 5000ms. 20000ms if not specified.
         
        .google.protobuf.Duration crypto_handshake_timeout = 3;
        Specified by:
        getCryptoHandshakeTimeoutOrBuilder in interface QuicProtocolOptionsOrBuilder
      • hasEnabled

        public boolean hasEnabled()
         Runtime flag that controls whether the listener is enabled or not. If not specified, defaults
         to enabled.
         
        .envoy.config.core.v3.RuntimeFeatureFlag enabled = 4;
        Specified by:
        hasEnabled in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the enabled field is set.
      • getEnabled

        public RuntimeFeatureFlag getEnabled()
         Runtime flag that controls whether the listener is enabled or not. If not specified, defaults
         to enabled.
         
        .envoy.config.core.v3.RuntimeFeatureFlag enabled = 4;
        Specified by:
        getEnabled in interface QuicProtocolOptionsOrBuilder
        Returns:
        The enabled.
      • hasPacketsToReadToConnectionCountRatio

        public boolean hasPacketsToReadToConnectionCountRatio()
         A multiplier to number of connections which is used to determine how many packets to read per
         event loop. A reasonable number should allow the listener to process enough payload but not
         starve TCP and other UDP sockets and also prevent long event loop duration.
         The default value is 32. This means if there are N QUIC connections, the total number of
         packets to read in each read event will be 32 * N.
         The actual number of packets to read in total by the UDP listener is also
         bound by 6000, regardless of this field or how many connections there are.
         
        .google.protobuf.UInt32Value packets_to_read_to_connection_count_ratio = 5 [(.validate.rules) = { ... }
        Specified by:
        hasPacketsToReadToConnectionCountRatio in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the packetsToReadToConnectionCountRatio field is set.
      • getPacketsToReadToConnectionCountRatio

        public com.google.protobuf.UInt32Value getPacketsToReadToConnectionCountRatio()
         A multiplier to number of connections which is used to determine how many packets to read per
         event loop. A reasonable number should allow the listener to process enough payload but not
         starve TCP and other UDP sockets and also prevent long event loop duration.
         The default value is 32. This means if there are N QUIC connections, the total number of
         packets to read in each read event will be 32 * N.
         The actual number of packets to read in total by the UDP listener is also
         bound by 6000, regardless of this field or how many connections there are.
         
        .google.protobuf.UInt32Value packets_to_read_to_connection_count_ratio = 5 [(.validate.rules) = { ... }
        Specified by:
        getPacketsToReadToConnectionCountRatio in interface QuicProtocolOptionsOrBuilder
        Returns:
        The packetsToReadToConnectionCountRatio.
      • getPacketsToReadToConnectionCountRatioOrBuilder

        public com.google.protobuf.UInt32ValueOrBuilder getPacketsToReadToConnectionCountRatioOrBuilder()
         A multiplier to number of connections which is used to determine how many packets to read per
         event loop. A reasonable number should allow the listener to process enough payload but not
         starve TCP and other UDP sockets and also prevent long event loop duration.
         The default value is 32. This means if there are N QUIC connections, the total number of
         packets to read in each read event will be 32 * N.
         The actual number of packets to read in total by the UDP listener is also
         bound by 6000, regardless of this field or how many connections there are.
         
        .google.protobuf.UInt32Value packets_to_read_to_connection_count_ratio = 5 [(.validate.rules) = { ... }
        Specified by:
        getPacketsToReadToConnectionCountRatioOrBuilder in interface QuicProtocolOptionsOrBuilder
      • hasCryptoStreamConfig

        public boolean hasCryptoStreamConfig()
         Configure which implementation of ``quic::QuicCryptoClientStreamBase`` to be used for this listener.
         If not specified the :ref:`QUICHE default one configured by <envoy_v3_api_msg_extensions.quic.crypto_stream.v3.CryptoServerStreamConfig>` will be used.
         [#extension-category: envoy.quic.server.crypto_stream]
         
        .envoy.config.core.v3.TypedExtensionConfig crypto_stream_config = 6;
        Specified by:
        hasCryptoStreamConfig in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the cryptoStreamConfig field is set.
      • getCryptoStreamConfig

        public TypedExtensionConfig getCryptoStreamConfig()
         Configure which implementation of ``quic::QuicCryptoClientStreamBase`` to be used for this listener.
         If not specified the :ref:`QUICHE default one configured by <envoy_v3_api_msg_extensions.quic.crypto_stream.v3.CryptoServerStreamConfig>` will be used.
         [#extension-category: envoy.quic.server.crypto_stream]
         
        .envoy.config.core.v3.TypedExtensionConfig crypto_stream_config = 6;
        Specified by:
        getCryptoStreamConfig in interface QuicProtocolOptionsOrBuilder
        Returns:
        The cryptoStreamConfig.
      • getCryptoStreamConfigOrBuilder

        public TypedExtensionConfigOrBuilder getCryptoStreamConfigOrBuilder()
         Configure which implementation of ``quic::QuicCryptoClientStreamBase`` to be used for this listener.
         If not specified the :ref:`QUICHE default one configured by <envoy_v3_api_msg_extensions.quic.crypto_stream.v3.CryptoServerStreamConfig>` will be used.
         [#extension-category: envoy.quic.server.crypto_stream]
         
        .envoy.config.core.v3.TypedExtensionConfig crypto_stream_config = 6;
        Specified by:
        getCryptoStreamConfigOrBuilder in interface QuicProtocolOptionsOrBuilder
      • hasProofSourceConfig

        public boolean hasProofSourceConfig()
         Configure which implementation of ``quic::ProofSource`` to be used for this listener.
         If not specified the :ref:`default one configured by <envoy_v3_api_msg_extensions.quic.proof_source.v3.ProofSourceConfig>` will be used.
         [#extension-category: envoy.quic.proof_source]
         
        .envoy.config.core.v3.TypedExtensionConfig proof_source_config = 7;
        Specified by:
        hasProofSourceConfig in interface QuicProtocolOptionsOrBuilder
        Returns:
        Whether the proofSourceConfig field is set.
      • getProofSourceConfig

        public TypedExtensionConfig getProofSourceConfig()
         Configure which implementation of ``quic::ProofSource`` to be used for this listener.
         If not specified the :ref:`default one configured by <envoy_v3_api_msg_extensions.quic.proof_source.v3.ProofSourceConfig>` will be used.
         [#extension-category: envoy.quic.proof_source]
         
        .envoy.config.core.v3.TypedExtensionConfig proof_source_config = 7;
        Specified by:
        getProofSourceConfig in interface QuicProtocolOptionsOrBuilder
        Returns:
        The proofSourceConfig.
      • getProofSourceConfigOrBuilder

        public TypedExtensionConfigOrBuilder getProofSourceConfigOrBuilder()
         Configure which implementation of ``quic::ProofSource`` to be used for this listener.
         If not specified the :ref:`default one configured by <envoy_v3_api_msg_extensions.quic.proof_source.v3.ProofSourceConfig>` will be used.
         [#extension-category: envoy.quic.proof_source]
         
        .envoy.config.core.v3.TypedExtensionConfig proof_source_config = 7;
        Specified by:
        getProofSourceConfigOrBuilder 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