Class NetworkExternalProcessor

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessageV3
io.envoyproxy.envoy.extensions.filters.network.ext_proc.v3.NetworkExternalProcessor
All Implemented Interfaces:
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, NetworkExternalProcessorOrBuilder, Serializable

public final class NetworkExternalProcessor extends com.google.protobuf.GeneratedMessageV3 implements NetworkExternalProcessorOrBuilder
 The Network External Processing filter allows an external service to process raw TCP/UDP traffic
 in a flexible way using a bidirectional gRPC stream. Unlike the HTTP External Processing filter,
 this filter operates at the L4 (transport) layer, giving access to raw network traffic.

 The filter communicates with an external gRPC service that can:

 1. Inspect traffic in both directions
 2. Modify the network traffic
 3. Control connection lifecycle (continue, close, or reset)

 By using the filter's processing mode, you can selectively choose which data
 directions to process (read, write or both), allowing for efficient processing.
 [#next-free-field: 7]
 
Protobuf type envoy.extensions.filters.network.ext_proc.v3.NetworkExternalProcessor
See Also:
  • Field Details

    • GRPC_SERVICE_FIELD_NUMBER

      public static final int GRPC_SERVICE_FIELD_NUMBER
      See Also:
    • FAILURE_MODE_ALLOW_FIELD_NUMBER

      public static final int FAILURE_MODE_ALLOW_FIELD_NUMBER
      See Also:
    • PROCESSING_MODE_FIELD_NUMBER

      public static final int PROCESSING_MODE_FIELD_NUMBER
      See Also:
    • MESSAGE_TIMEOUT_FIELD_NUMBER

      public static final int MESSAGE_TIMEOUT_FIELD_NUMBER
      See Also:
    • STAT_PREFIX_FIELD_NUMBER

      public static final int STAT_PREFIX_FIELD_NUMBER
      See Also:
    • METADATA_OPTIONS_FIELD_NUMBER

      public static final int METADATA_OPTIONS_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
    • hasGrpcService

      public boolean hasGrpcService()
       The gRPC service that will process network traffic.
       This service must implement the NetworkExternalProcessor service
       defined in the proto file /envoy/service/network_ext_proc/v3/external_processor.proto.
       
      .envoy.config.core.v3.GrpcService grpc_service = 1;
      Specified by:
      hasGrpcService in interface NetworkExternalProcessorOrBuilder
      Returns:
      Whether the grpcService field is set.
    • getGrpcService

      public GrpcService getGrpcService()
       The gRPC service that will process network traffic.
       This service must implement the NetworkExternalProcessor service
       defined in the proto file /envoy/service/network_ext_proc/v3/external_processor.proto.
       
      .envoy.config.core.v3.GrpcService grpc_service = 1;
      Specified by:
      getGrpcService in interface NetworkExternalProcessorOrBuilder
      Returns:
      The grpcService.
    • getGrpcServiceOrBuilder

      public GrpcServiceOrBuilder getGrpcServiceOrBuilder()
       The gRPC service that will process network traffic.
       This service must implement the NetworkExternalProcessor service
       defined in the proto file /envoy/service/network_ext_proc/v3/external_processor.proto.
       
      .envoy.config.core.v3.GrpcService grpc_service = 1;
      Specified by:
      getGrpcServiceOrBuilder in interface NetworkExternalProcessorOrBuilder
    • getFailureModeAllow

      public boolean getFailureModeAllow()
       By default, if the gRPC stream cannot be established, or if it is closed
       prematurely with an error, the filter will fail, leading to the close of connection.
       With this parameter set to true, however, then if the gRPC stream is prematurely closed
       or could not be opened, processing continues without error.
       
      bool failure_mode_allow = 2;
      Specified by:
      getFailureModeAllow in interface NetworkExternalProcessorOrBuilder
      Returns:
      The failureModeAllow.
    • hasProcessingMode

      public boolean hasProcessingMode()
       Options for controlling processing behavior.
       
      .envoy.extensions.filters.network.ext_proc.v3.ProcessingMode processing_mode = 3;
      Specified by:
      hasProcessingMode in interface NetworkExternalProcessorOrBuilder
      Returns:
      Whether the processingMode field is set.
    • getProcessingMode

      public ProcessingMode getProcessingMode()
       Options for controlling processing behavior.
       
      .envoy.extensions.filters.network.ext_proc.v3.ProcessingMode processing_mode = 3;
      Specified by:
      getProcessingMode in interface NetworkExternalProcessorOrBuilder
      Returns:
      The processingMode.
    • getProcessingModeOrBuilder

      public ProcessingModeOrBuilder getProcessingModeOrBuilder()
       Options for controlling processing behavior.
       
      .envoy.extensions.filters.network.ext_proc.v3.ProcessingMode processing_mode = 3;
      Specified by:
      getProcessingModeOrBuilder in interface NetworkExternalProcessorOrBuilder
    • hasMessageTimeout

      public boolean hasMessageTimeout()
       Specifies the timeout for each individual message sent on the stream and
       when the filter is running in synchronous mode. Whenever
       the proxy sends a message on the stream that requires a response, it will
       reset this timer, and will stop processing and return an error (subject
       to the processing mode) if the timer expires. Default is 200 ms.
       
      .google.protobuf.Duration message_timeout = 4 [(.validate.rules) = { ... }
      Specified by:
      hasMessageTimeout in interface NetworkExternalProcessorOrBuilder
      Returns:
      Whether the messageTimeout field is set.
    • getMessageTimeout

      public com.google.protobuf.Duration getMessageTimeout()
       Specifies the timeout for each individual message sent on the stream and
       when the filter is running in synchronous mode. Whenever
       the proxy sends a message on the stream that requires a response, it will
       reset this timer, and will stop processing and return an error (subject
       to the processing mode) if the timer expires. Default is 200 ms.
       
      .google.protobuf.Duration message_timeout = 4 [(.validate.rules) = { ... }
      Specified by:
      getMessageTimeout in interface NetworkExternalProcessorOrBuilder
      Returns:
      The messageTimeout.
    • getMessageTimeoutOrBuilder

      public com.google.protobuf.DurationOrBuilder getMessageTimeoutOrBuilder()
       Specifies the timeout for each individual message sent on the stream and
       when the filter is running in synchronous mode. Whenever
       the proxy sends a message on the stream that requires a response, it will
       reset this timer, and will stop processing and return an error (subject
       to the processing mode) if the timer expires. Default is 200 ms.
       
      .google.protobuf.Duration message_timeout = 4 [(.validate.rules) = { ... }
      Specified by:
      getMessageTimeoutOrBuilder in interface NetworkExternalProcessorOrBuilder
    • getStatPrefix

      public String getStatPrefix()
      string stat_prefix = 5 [(.validate.rules) = { ... }
      Specified by:
      getStatPrefix in interface NetworkExternalProcessorOrBuilder
      Returns:
      The statPrefix.
    • getStatPrefixBytes

      public com.google.protobuf.ByteString getStatPrefixBytes()
      string stat_prefix = 5 [(.validate.rules) = { ... }
      Specified by:
      getStatPrefixBytes in interface NetworkExternalProcessorOrBuilder
      Returns:
      The bytes for statPrefix.
    • hasMetadataOptions

      public boolean hasMetadataOptions()
       Options related to the sending and receiving of dynamic metadata.
       
      .envoy.extensions.filters.network.ext_proc.v3.MetadataOptions metadata_options = 6;
      Specified by:
      hasMetadataOptions in interface NetworkExternalProcessorOrBuilder
      Returns:
      Whether the metadataOptions field is set.
    • getMetadataOptions

      public MetadataOptions getMetadataOptions()
       Options related to the sending and receiving of dynamic metadata.
       
      .envoy.extensions.filters.network.ext_proc.v3.MetadataOptions metadata_options = 6;
      Specified by:
      getMetadataOptions in interface NetworkExternalProcessorOrBuilder
      Returns:
      The metadataOptions.
    • getMetadataOptionsOrBuilder

      public MetadataOptionsOrBuilder getMetadataOptionsOrBuilder()
       Options related to the sending and receiving of dynamic metadata.
       
      .envoy.extensions.filters.network.ext_proc.v3.MetadataOptions metadata_options = 6;
      Specified by:
      getMetadataOptionsOrBuilder in interface NetworkExternalProcessorOrBuilder
    • 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 NetworkExternalProcessor parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

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

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

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

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

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

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

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

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

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

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

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

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

      public static NetworkExternalProcessor.Builder newBuilder()
    • newBuilder

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

      Specified by:
      toBuilder in interface com.google.protobuf.Message
      Specified by:
      toBuilder in interface com.google.protobuf.MessageLite
    • newBuilderForType

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

      public static NetworkExternalProcessor getDefaultInstance()
    • parser

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

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