java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessageV3
io.envoyproxy.envoy.extensions.quic.connection_id_generator.quic_lb.v3.Config
All Implemented Interfaces:
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ConfigOrBuilder, Serializable

public final class Config extends com.google.protobuf.GeneratedMessageV3 implements ConfigOrBuilder
 Configuration for a connection ID generator implementation for the QUIC-LB draft RFC for
 routable connection IDs.

 Connection IDs always have the length self encoded, as described in
 https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-length-self-description.

 See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers for details.

 .. warning::

    This is still a work in progress. Interoperability testing has not yet been performed.
 [#next-free-field: 7]
 
Protobuf type envoy.extensions.quic.connection_id_generator.quic_lb.v3.Config
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    Configuration for a connection ID generator implementation for the QUIC-LB draft RFC for routable connection IDs.

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    alwaysUseFieldBuilders, unknownFields

    Fields inherited from class com.google.protobuf.AbstractMessage

    memoizedSize

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    memoizedHashCode
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    static Config
     
     
    static final com.google.protobuf.Descriptors.Descriptor
     
    Configuration to fetch the encryption key and configuration version.
    Configuration to fetch the encryption key and configuration version.
    int
    Optional validation of the expected server ID length.
    int
    The nonce length must be at least 4 bytes.
    com.google.protobuf.Parser<Config>
     
    int
     
    Must be at least 1 octet.
    boolean
    If true, indicates that the :ref:`server_id <envoy_v3_api_field_extensions.quic.connection_id_generator.quic_lb.v3.Config.server_id>` is base64 encoded.
    Must be at least 1 octet.
    boolean
    Use the unencrypted mode.
    boolean
    Configuration to fetch the encryption key and configuration version.
    int
     
    boolean
    Must be at least 1 octet.
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
     
    final boolean
     
     
    newBuilder(Config prototype)
     
     
    protected Config.Builder
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
     
    protected Object
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
     
    static Config
     
    static Config
    parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
    static Config
    parseFrom(byte[] data)
     
    static Config
    parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
    static Config
    parseFrom(com.google.protobuf.ByteString data)
     
    static Config
    parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
    static Config
    parseFrom(com.google.protobuf.CodedInputStream input)
     
    static Config
    parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
    static Config
     
    static Config
    parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
    static Config
     
    static Config
    parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
    static com.google.protobuf.Parser<Config>
     
     
    void
    writeTo(com.google.protobuf.CodedOutputStream output)
     

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag

    Methods inherited from class com.google.protobuf.AbstractMessage

    findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface com.google.protobuf.MessageLite

    toByteArray, toByteString, writeDelimitedTo, writeTo

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

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

    • SERVER_ID_FIELD_NUMBER

      public static final int SERVER_ID_FIELD_NUMBER
      See Also:
    • SERVER_ID_BASE64_ENCODED_FIELD_NUMBER

      public static final int SERVER_ID_BASE64_ENCODED_FIELD_NUMBER
      See Also:
    • EXPECTED_SERVER_ID_LENGTH_FIELD_NUMBER

      public static final int EXPECTED_SERVER_ID_LENGTH_FIELD_NUMBER
      See Also:
    • NONCE_LENGTH_BYTES_FIELD_NUMBER

      public static final int NONCE_LENGTH_BYTES_FIELD_NUMBER
      See Also:
    • ENCRYPTION_PARAMETERS_FIELD_NUMBER

      public static final int ENCRYPTION_PARAMETERS_FIELD_NUMBER
      See Also:
    • UNENCRYPTED_MODE_FIELD_NUMBER

      public static final int UNENCRYPTED_MODE_FIELD_NUMBER
      See Also:
  • Method Details

    • newInstance

      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      Overrides:
      newInstance 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
    • hasServerId

      public boolean hasServerId()
       Must be at least 1 octet.
       The length of server_id and nonce_length_bytes must be 18 or less.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-server-id-allocation.
       
      .envoy.config.core.v3.DataSource server_id = 2 [(.validate.rules) = { ... }
      Specified by:
      hasServerId in interface ConfigOrBuilder
      Returns:
      Whether the serverId field is set.
    • getServerId

      public DataSource getServerId()
       Must be at least 1 octet.
       The length of server_id and nonce_length_bytes must be 18 or less.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-server-id-allocation.
       
      .envoy.config.core.v3.DataSource server_id = 2 [(.validate.rules) = { ... }
      Specified by:
      getServerId in interface ConfigOrBuilder
      Returns:
      The serverId.
    • getServerIdOrBuilder

      public DataSourceOrBuilder getServerIdOrBuilder()
       Must be at least 1 octet.
       The length of server_id and nonce_length_bytes must be 18 or less.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-server-id-allocation.
       
      .envoy.config.core.v3.DataSource server_id = 2 [(.validate.rules) = { ... }
      Specified by:
      getServerIdOrBuilder in interface ConfigOrBuilder
    • getServerIdBase64Encoded

      public boolean getServerIdBase64Encoded()
       If true, indicates that the :ref:`server_id
       <envoy_v3_api_field_extensions.quic.connection_id_generator.quic_lb.v3.Config.server_id>` is base64 encoded.
      
       This can be useful if the ID may contain binary data and must be transmitted as a string, for example in
       an environment variable.
       
      bool server_id_base64_encoded = 6;
      Specified by:
      getServerIdBase64Encoded in interface ConfigOrBuilder
      Returns:
      The serverIdBase64Encoded.
    • getExpectedServerIdLength

      public int getExpectedServerIdLength()
       Optional validation of the expected server ID length. If this is non-zero and the value in ``server_id``
       does not have a matching length, a configuration error is generated. This can be useful for validating
       that the server ID is valid.
       
      uint32 expected_server_id_length = 3 [(.validate.rules) = { ... }
      Specified by:
      getExpectedServerIdLength in interface ConfigOrBuilder
      Returns:
      The expectedServerIdLength.
    • getNonceLengthBytes

      public int getNonceLengthBytes()
       The nonce length must be at least 4 bytes.
       The length of server_id and nonce_length_bytes must be 18 bytes or less.
       
      uint32 nonce_length_bytes = 4 [(.validate.rules) = { ... }
      Specified by:
      getNonceLengthBytes in interface ConfigOrBuilder
      Returns:
      The nonceLengthBytes.
    • hasEncryptionParameters

      public boolean hasEncryptionParameters()
       Configuration to fetch the encryption key and configuration version.
      
       The SDS service is for a :ref:`GenericSecret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.GenericSecret>`.
       The data should populate :ref:`secrets <envoy_v3_api_field_extensions.transport_sockets.tls.v3.GenericSecret.secrets>`:
      
       "encryption_key" must contain the 16 byte encryption key.
      
       "configuration_version" must contain a 1 byte unsigned integer of value less than 7.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-config-rotation.
       
      .envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig encryption_parameters = 5 [(.validate.rules) = { ... }
      Specified by:
      hasEncryptionParameters in interface ConfigOrBuilder
      Returns:
      Whether the encryptionParameters field is set.
    • getEncryptionParameters

      public SdsSecretConfig getEncryptionParameters()
       Configuration to fetch the encryption key and configuration version.
      
       The SDS service is for a :ref:`GenericSecret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.GenericSecret>`.
       The data should populate :ref:`secrets <envoy_v3_api_field_extensions.transport_sockets.tls.v3.GenericSecret.secrets>`:
      
       "encryption_key" must contain the 16 byte encryption key.
      
       "configuration_version" must contain a 1 byte unsigned integer of value less than 7.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-config-rotation.
       
      .envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig encryption_parameters = 5 [(.validate.rules) = { ... }
      Specified by:
      getEncryptionParameters in interface ConfigOrBuilder
      Returns:
      The encryptionParameters.
    • getEncryptionParametersOrBuilder

      public SdsSecretConfigOrBuilder getEncryptionParametersOrBuilder()
       Configuration to fetch the encryption key and configuration version.
      
       The SDS service is for a :ref:`GenericSecret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.GenericSecret>`.
       The data should populate :ref:`secrets <envoy_v3_api_field_extensions.transport_sockets.tls.v3.GenericSecret.secrets>`:
      
       "encryption_key" must contain the 16 byte encryption key.
      
       "configuration_version" must contain a 1 byte unsigned integer of value less than 7.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-config-rotation.
       
      .envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig encryption_parameters = 5 [(.validate.rules) = { ... }
      Specified by:
      getEncryptionParametersOrBuilder in interface ConfigOrBuilder
    • getUnencryptedMode

      public boolean getUnencryptedMode()
       Use the unencrypted mode. This is useful for testing or a simplified implementation of the
       downstream load balancer, but allows for linking different CIDs for the same connection, and
       leaks information about the valid server IDs in use. This mode does not comply with the RFC.
      
       Note that in this mode, :ref:`encryption_parameters
       <envoy_v3_api_field_extensions.quic.connection_id_generator.quic_lb.v3.Config.encryption_parameters>`
       is still required because it contains ``configuration_version``, which is still
       needed. ``encryption_key`` can be set to ``inline_string: '0000000000000000'``.
       
      bool unencrypted_mode = 1;
      Specified by:
      getUnencryptedMode in interface ConfigOrBuilder
      Returns:
      The unencryptedMode.
    • 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 Config parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

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

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

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

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

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

      public static Config parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

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

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

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

      public static Config parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

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

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

      public static Config.Builder newBuilder()
    • newBuilder

      public static Config.Builder newBuilder(Config prototype)
    • toBuilder

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

      protected Config.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      Specified by:
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
    • getDefaultInstance

      public static Config getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<Config> parser()
    • getParserForType

      public com.google.protobuf.Parser<Config> 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 Config getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder