file_system_bufferv3

package
v1.36.11-2026011520535... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: unknown License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const BufferBehavior_Behavior_not_set_case case_BufferBehavior_Behavior = 0
View Source
const BufferBehavior_Bypass_case case_BufferBehavior_Behavior = 2
View Source
const BufferBehavior_FullyBufferAndAlwaysInjectContentLength_case case_BufferBehavior_Behavior = 4
View Source
const BufferBehavior_FullyBuffer_case case_BufferBehavior_Behavior = 5
View Source
const BufferBehavior_InjectContentLengthIfNecessary_case case_BufferBehavior_Behavior = 3
View Source
const BufferBehavior_StreamWhenPossible_case case_BufferBehavior_Behavior = 1

Variables

View Source
var File_envoy_extensions_filters_http_file_system_buffer_v3_file_system_buffer_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type BufferBehavior

type BufferBehavior struct {

	// Types that are valid to be assigned to Behavior:
	//
	//	*BufferBehavior_StreamWhenPossible_
	//	*BufferBehavior_Bypass_
	//	*BufferBehavior_InjectContentLengthIfNecessary_
	//	*BufferBehavior_FullyBufferAndAlwaysInjectContentLength_
	//	*BufferBehavior_FullyBuffer_
	Behavior isBufferBehavior_Behavior `protobuf_oneof:"behavior"`
	// contains filtered or unexported fields
}

The behavior of the filter for a stream. [#next-free-field: 6]

func (*BufferBehavior) ClearBehavior

func (x *BufferBehavior) ClearBehavior()

func (*BufferBehavior) ClearBypass

func (x *BufferBehavior) ClearBypass()

func (*BufferBehavior) ClearFullyBuffer

func (x *BufferBehavior) ClearFullyBuffer()

func (*BufferBehavior) ClearFullyBufferAndAlwaysInjectContentLength

func (x *BufferBehavior) ClearFullyBufferAndAlwaysInjectContentLength()

func (*BufferBehavior) ClearInjectContentLengthIfNecessary

func (x *BufferBehavior) ClearInjectContentLengthIfNecessary()

func (*BufferBehavior) ClearStreamWhenPossible

func (x *BufferBehavior) ClearStreamWhenPossible()

func (*BufferBehavior) GetBehavior

func (x *BufferBehavior) GetBehavior() isBufferBehavior_Behavior

func (*BufferBehavior) GetBypass

func (x *BufferBehavior) GetBypass() *BufferBehavior_Bypass

func (*BufferBehavior) GetFullyBuffer

func (x *BufferBehavior) GetFullyBuffer() *BufferBehavior_FullyBuffer

func (*BufferBehavior) GetFullyBufferAndAlwaysInjectContentLength

func (x *BufferBehavior) GetFullyBufferAndAlwaysInjectContentLength() *BufferBehavior_FullyBufferAndAlwaysInjectContentLength

func (*BufferBehavior) GetInjectContentLengthIfNecessary

func (x *BufferBehavior) GetInjectContentLengthIfNecessary() *BufferBehavior_InjectContentLengthIfNecessary

func (*BufferBehavior) GetStreamWhenPossible

func (x *BufferBehavior) GetStreamWhenPossible() *BufferBehavior_StreamWhenPossible

func (*BufferBehavior) HasBehavior

func (x *BufferBehavior) HasBehavior() bool

func (*BufferBehavior) HasBypass

func (x *BufferBehavior) HasBypass() bool

func (*BufferBehavior) HasFullyBuffer

func (x *BufferBehavior) HasFullyBuffer() bool

func (*BufferBehavior) HasFullyBufferAndAlwaysInjectContentLength

func (x *BufferBehavior) HasFullyBufferAndAlwaysInjectContentLength() bool

func (*BufferBehavior) HasInjectContentLengthIfNecessary

func (x *BufferBehavior) HasInjectContentLengthIfNecessary() bool

func (*BufferBehavior) HasStreamWhenPossible

func (x *BufferBehavior) HasStreamWhenPossible() bool

func (*BufferBehavior) ProtoMessage

func (*BufferBehavior) ProtoMessage()

func (*BufferBehavior) ProtoReflect

func (x *BufferBehavior) ProtoReflect() protoreflect.Message

func (*BufferBehavior) Reset

func (x *BufferBehavior) Reset()

func (*BufferBehavior) SetBypass

func (x *BufferBehavior) SetBypass(v *BufferBehavior_Bypass)

func (*BufferBehavior) SetFullyBuffer

func (x *BufferBehavior) SetFullyBuffer(v *BufferBehavior_FullyBuffer)

func (*BufferBehavior) SetFullyBufferAndAlwaysInjectContentLength

func (x *BufferBehavior) SetFullyBufferAndAlwaysInjectContentLength(v *BufferBehavior_FullyBufferAndAlwaysInjectContentLength)

func (*BufferBehavior) SetInjectContentLengthIfNecessary

func (x *BufferBehavior) SetInjectContentLengthIfNecessary(v *BufferBehavior_InjectContentLengthIfNecessary)

func (*BufferBehavior) SetStreamWhenPossible

func (x *BufferBehavior) SetStreamWhenPossible(v *BufferBehavior_StreamWhenPossible)

func (*BufferBehavior) String

func (x *BufferBehavior) String() string

func (*BufferBehavior) WhichBehavior

func (x *BufferBehavior) WhichBehavior() case_BufferBehavior_Behavior

type BufferBehavior_Bypass

type BufferBehavior_Bypass struct {
	// contains filtered or unexported fields
}

func (*BufferBehavior_Bypass) ProtoMessage

func (*BufferBehavior_Bypass) ProtoMessage()

func (*BufferBehavior_Bypass) ProtoReflect

func (x *BufferBehavior_Bypass) ProtoReflect() protoreflect.Message

func (*BufferBehavior_Bypass) Reset

func (x *BufferBehavior_Bypass) Reset()

func (*BufferBehavior_Bypass) String

func (x *BufferBehavior_Bypass) String() string

type BufferBehavior_Bypass_

type BufferBehavior_Bypass_ struct {
	// Never buffer, do nothing.
	Bypass *BufferBehavior_Bypass `protobuf:"bytes,2,opt,name=bypass,proto3,oneof"`
}

type BufferBehavior_Bypass_builder

type BufferBehavior_Bypass_builder struct {
	// contains filtered or unexported fields
}

func (BufferBehavior_Bypass_builder) Build

type BufferBehavior_FullyBuffer

type BufferBehavior_FullyBuffer struct {
	// contains filtered or unexported fields
}

func (*BufferBehavior_FullyBuffer) ProtoMessage

func (*BufferBehavior_FullyBuffer) ProtoMessage()

func (*BufferBehavior_FullyBuffer) ProtoReflect

func (*BufferBehavior_FullyBuffer) Reset

func (x *BufferBehavior_FullyBuffer) Reset()

func (*BufferBehavior_FullyBuffer) String

func (x *BufferBehavior_FullyBuffer) String() string

type BufferBehavior_FullyBufferAndAlwaysInjectContentLength

type BufferBehavior_FullyBufferAndAlwaysInjectContentLength struct {
	// contains filtered or unexported fields
}

func (*BufferBehavior_FullyBufferAndAlwaysInjectContentLength) ProtoMessage

func (*BufferBehavior_FullyBufferAndAlwaysInjectContentLength) ProtoReflect

func (*BufferBehavior_FullyBufferAndAlwaysInjectContentLength) Reset

func (*BufferBehavior_FullyBufferAndAlwaysInjectContentLength) String

type BufferBehavior_FullyBufferAndAlwaysInjectContentLength_

type BufferBehavior_FullyBufferAndAlwaysInjectContentLength_ struct {
	// Always buffer the entire input, and inject “content-length“,
	// overwriting any provided content-length header.
	FullyBufferAndAlwaysInjectContentLength *BufferBehavior_FullyBufferAndAlwaysInjectContentLength `` /* 131-byte string literal not displayed */
}

type BufferBehavior_FullyBufferAndAlwaysInjectContentLength_builder

type BufferBehavior_FullyBufferAndAlwaysInjectContentLength_builder struct {
	// contains filtered or unexported fields
}

func (BufferBehavior_FullyBufferAndAlwaysInjectContentLength_builder) Build

type BufferBehavior_FullyBuffer_

type BufferBehavior_FullyBuffer_ struct {
	// Always buffer the entire input, do not modify “content-length“.
	FullyBuffer *BufferBehavior_FullyBuffer `protobuf:"bytes,5,opt,name=fully_buffer,json=fullyBuffer,proto3,oneof"`
}

type BufferBehavior_FullyBuffer_builder

type BufferBehavior_FullyBuffer_builder struct {
	// contains filtered or unexported fields
}

func (BufferBehavior_FullyBuffer_builder) Build

type BufferBehavior_InjectContentLengthIfNecessary

type BufferBehavior_InjectContentLengthIfNecessary struct {
	// contains filtered or unexported fields
}

func (*BufferBehavior_InjectContentLengthIfNecessary) ProtoMessage

func (*BufferBehavior_InjectContentLengthIfNecessary) ProtoReflect

func (*BufferBehavior_InjectContentLengthIfNecessary) Reset

func (*BufferBehavior_InjectContentLengthIfNecessary) String

type BufferBehavior_InjectContentLengthIfNecessary_

type BufferBehavior_InjectContentLengthIfNecessary_ struct {
	// If “content-length“ is not present, buffer the entire input,
	// inject “content-length“ header, then output.
	// If “content-length“ is already present, act like “stream_when_possible“.
	InjectContentLengthIfNecessary *BufferBehavior_InjectContentLengthIfNecessary `protobuf:"bytes,3,opt,name=inject_content_length_if_necessary,json=injectContentLengthIfNecessary,proto3,oneof"`
}

type BufferBehavior_InjectContentLengthIfNecessary_builder

type BufferBehavior_InjectContentLengthIfNecessary_builder struct {
	// contains filtered or unexported fields
}

func (BufferBehavior_InjectContentLengthIfNecessary_builder) Build

type BufferBehavior_StreamWhenPossible

type BufferBehavior_StreamWhenPossible struct {
	// contains filtered or unexported fields
}

func (*BufferBehavior_StreamWhenPossible) ProtoMessage

func (*BufferBehavior_StreamWhenPossible) ProtoMessage()

func (*BufferBehavior_StreamWhenPossible) ProtoReflect

func (*BufferBehavior_StreamWhenPossible) Reset

func (*BufferBehavior_StreamWhenPossible) String

type BufferBehavior_StreamWhenPossible_

type BufferBehavior_StreamWhenPossible_ struct {
	// Don't inject “content-length“ header.
	// Output immediately, buffer only if output is slower than input.
	StreamWhenPossible *BufferBehavior_StreamWhenPossible `protobuf:"bytes,1,opt,name=stream_when_possible,json=streamWhenPossible,proto3,oneof"`
}

type BufferBehavior_StreamWhenPossible_builder

type BufferBehavior_StreamWhenPossible_builder struct {
	// contains filtered or unexported fields
}

func (BufferBehavior_StreamWhenPossible_builder) Build

type BufferBehavior_builder

type BufferBehavior_builder struct {

	// Fields of oneof Behavior:
	// Don't inject “content-length“ header.
	// Output immediately, buffer only if output is slower than input.
	StreamWhenPossible *BufferBehavior_StreamWhenPossible
	// Never buffer, do nothing.
	Bypass *BufferBehavior_Bypass
	// If “content-length“ is not present, buffer the entire input,
	// inject “content-length“ header, then output.
	// If “content-length“ is already present, act like “stream_when_possible“.
	InjectContentLengthIfNecessary *BufferBehavior_InjectContentLengthIfNecessary
	// Always buffer the entire input, and inject “content-length“,
	// overwriting any provided content-length header.
	FullyBufferAndAlwaysInjectContentLength *BufferBehavior_FullyBufferAndAlwaysInjectContentLength
	// Always buffer the entire input, do not modify “content-length“.
	FullyBuffer *BufferBehavior_FullyBuffer
	// contains filtered or unexported fields
}

func (BufferBehavior_builder) Build

type FileSystemBufferFilterConfig

type FileSystemBufferFilterConfig struct {

	// A configuration for an AsyncFileManager.
	//
	// If unset in route, vhost and listener, and the behavior is not “bypass“
	// in both directions, an Internal Server Error response will be sent.
	ManagerConfig *v3.AsyncFileManagerConfig `protobuf:"bytes,1,opt,name=manager_config,json=managerConfig,proto3" json:"manager_config,omitempty"`
	// An optional path to which the unlinked files should be written - this may
	// determine which physical storage device will be used.
	//
	// If unset in route, vhost and listener, will use the environment variable
	// “TMPDIR“, or, if that's also unset, will use “/tmp“.
	StorageBufferPath *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=storage_buffer_path,json=storageBufferPath,proto3" json:"storage_buffer_path,omitempty"`
	// Optional configuration for how to buffer (or not) requests.
	// If unset in route, vhost and listener, “StreamConfig“ default values will be used
	// (with behavior “stream_when_possible“)
	Request *StreamConfig `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"`
	// Optional configuration for how to buffer (or not) responses.
	// If unset in route, vhost and listener, “StreamConfig“ default values will be used
	// (with behavior “stream_when_possible“)
	Response *StreamConfig `protobuf:"bytes,4,opt,name=response,proto3" json:"response,omitempty"`
	// contains filtered or unexported fields
}

A :ref:`file system buffer <config_http_filters_file_system_buffer>` filter configuration.

Route-specific configs override only the fields they explicitly include; unset fields inherit from the vhost or listener-level config, or, if never set, and not required, use a default value.

func (*FileSystemBufferFilterConfig) ClearManagerConfig

func (x *FileSystemBufferFilterConfig) ClearManagerConfig()

func (*FileSystemBufferFilterConfig) ClearRequest

func (x *FileSystemBufferFilterConfig) ClearRequest()

func (*FileSystemBufferFilterConfig) ClearResponse

func (x *FileSystemBufferFilterConfig) ClearResponse()

func (*FileSystemBufferFilterConfig) ClearStorageBufferPath

func (x *FileSystemBufferFilterConfig) ClearStorageBufferPath()

func (*FileSystemBufferFilterConfig) GetManagerConfig

func (*FileSystemBufferFilterConfig) GetRequest

func (x *FileSystemBufferFilterConfig) GetRequest() *StreamConfig

func (*FileSystemBufferFilterConfig) GetResponse

func (x *FileSystemBufferFilterConfig) GetResponse() *StreamConfig

func (*FileSystemBufferFilterConfig) GetStorageBufferPath

func (x *FileSystemBufferFilterConfig) GetStorageBufferPath() *wrapperspb.StringValue

func (*FileSystemBufferFilterConfig) HasManagerConfig

func (x *FileSystemBufferFilterConfig) HasManagerConfig() bool

func (*FileSystemBufferFilterConfig) HasRequest

func (x *FileSystemBufferFilterConfig) HasRequest() bool

func (*FileSystemBufferFilterConfig) HasResponse

func (x *FileSystemBufferFilterConfig) HasResponse() bool

func (*FileSystemBufferFilterConfig) HasStorageBufferPath

func (x *FileSystemBufferFilterConfig) HasStorageBufferPath() bool

func (*FileSystemBufferFilterConfig) ProtoMessage

func (*FileSystemBufferFilterConfig) ProtoMessage()

func (*FileSystemBufferFilterConfig) ProtoReflect

func (*FileSystemBufferFilterConfig) Reset

func (x *FileSystemBufferFilterConfig) Reset()

func (*FileSystemBufferFilterConfig) SetManagerConfig

func (x *FileSystemBufferFilterConfig) SetManagerConfig(v *v3.AsyncFileManagerConfig)

func (*FileSystemBufferFilterConfig) SetRequest

func (x *FileSystemBufferFilterConfig) SetRequest(v *StreamConfig)

func (*FileSystemBufferFilterConfig) SetResponse

func (x *FileSystemBufferFilterConfig) SetResponse(v *StreamConfig)

func (*FileSystemBufferFilterConfig) SetStorageBufferPath

func (x *FileSystemBufferFilterConfig) SetStorageBufferPath(v *wrapperspb.StringValue)

func (*FileSystemBufferFilterConfig) String

type FileSystemBufferFilterConfig_builder

type FileSystemBufferFilterConfig_builder struct {

	// A configuration for an AsyncFileManager.
	//
	// If unset in route, vhost and listener, and the behavior is not “bypass“
	// in both directions, an Internal Server Error response will be sent.
	ManagerConfig *v3.AsyncFileManagerConfig
	// An optional path to which the unlinked files should be written - this may
	// determine which physical storage device will be used.
	//
	// If unset in route, vhost and listener, will use the environment variable
	// “TMPDIR“, or, if that's also unset, will use “/tmp“.
	StorageBufferPath *wrapperspb.StringValue
	// Optional configuration for how to buffer (or not) requests.
	// If unset in route, vhost and listener, “StreamConfig“ default values will be used
	// (with behavior “stream_when_possible“)
	Request *StreamConfig
	// Optional configuration for how to buffer (or not) responses.
	// If unset in route, vhost and listener, “StreamConfig“ default values will be used
	// (with behavior “stream_when_possible“)
	Response *StreamConfig
	// contains filtered or unexported fields
}

func (FileSystemBufferFilterConfig_builder) Build

type StreamConfig

type StreamConfig struct {

	// Whether to bypass / stream / fully buffer / etc.
	// If unset in route, vhost and listener config, the default is “stream_when_possible“.
	Behavior *BufferBehavior `protobuf:"bytes,1,opt,name=behavior,proto3" json:"behavior,omitempty"`
	// The amount stored in the memory buffer before buffering to disk.
	// If unset in route, vhost and listener config, defaults to a hardcoded value of 1MiB
	MemoryBufferBytesLimit *wrapperspb.UInt64Value `` /* 131-byte string literal not displayed */
	// The maximum storage (excluding memory) to be buffered in this filter.
	// If unset in route, vhost and listener config, defaults to a hardcoded value of 32MiB
	StorageBufferBytesLimit *wrapperspb.UInt64Value `` /* 134-byte string literal not displayed */
	// The maximum amount that can be queued for writing to storage, above which the
	// source is requested to pause. If unset, defaults to the same value as
	// “memory_buffer_bytes_limit“.
	//
	// For example, assuming the recipient is not consuming data at all, if
	// “memory_buffer_bytes_limit“ was 32MiB, and “storage_buffer_queue_high_watermark_bytes“
	// was 64MiB, and the filesystem is backed up so writes are not occurring promptly,
	// then:
	//
	//   - Any request less than 32MiB will eventually pass through without ever attempting
	//     to write to disk.
	//   - Any request with over 32MiB buffered will start trying to write to disk.
	//     If it reaches (32+64)MiB buffered in memory (write to disk isn't keeping up), a high
	//     watermark signal is sent to the source.
	//   - Any stream whose total size exceeds
	//     “memory_buffer_bytes_limit + storage_buffer_bytes_limit“ will provoke an error.
	//     (Note, if the recipient *is* consuming data then it is possible for such an
	//     oversized request to pass through the buffer filter, provided the recipient
	//     isn't consuming data too slowly.)
	//
	// The low watermark signal is sent when the memory buffer is at size
	// “memory_buffer_bytes_limit + (storage_buffer_queue_high_watermark_bytes / 2)“.
	StorageBufferQueueHighWatermarkBytes *wrapperspb.UInt64Value `` /* 177-byte string literal not displayed */
	// contains filtered or unexported fields
}

The configuration for one direction of the filter behavior.

func (*StreamConfig) ClearBehavior

func (x *StreamConfig) ClearBehavior()

func (*StreamConfig) ClearMemoryBufferBytesLimit

func (x *StreamConfig) ClearMemoryBufferBytesLimit()

func (*StreamConfig) ClearStorageBufferBytesLimit

func (x *StreamConfig) ClearStorageBufferBytesLimit()

func (*StreamConfig) ClearStorageBufferQueueHighWatermarkBytes

func (x *StreamConfig) ClearStorageBufferQueueHighWatermarkBytes()

func (*StreamConfig) GetBehavior

func (x *StreamConfig) GetBehavior() *BufferBehavior

func (*StreamConfig) GetMemoryBufferBytesLimit

func (x *StreamConfig) GetMemoryBufferBytesLimit() *wrapperspb.UInt64Value

func (*StreamConfig) GetStorageBufferBytesLimit

func (x *StreamConfig) GetStorageBufferBytesLimit() *wrapperspb.UInt64Value

func (*StreamConfig) GetStorageBufferQueueHighWatermarkBytes

func (x *StreamConfig) GetStorageBufferQueueHighWatermarkBytes() *wrapperspb.UInt64Value

func (*StreamConfig) HasBehavior

func (x *StreamConfig) HasBehavior() bool

func (*StreamConfig) HasMemoryBufferBytesLimit

func (x *StreamConfig) HasMemoryBufferBytesLimit() bool

func (*StreamConfig) HasStorageBufferBytesLimit

func (x *StreamConfig) HasStorageBufferBytesLimit() bool

func (*StreamConfig) HasStorageBufferQueueHighWatermarkBytes

func (x *StreamConfig) HasStorageBufferQueueHighWatermarkBytes() bool

func (*StreamConfig) ProtoMessage

func (*StreamConfig) ProtoMessage()

func (*StreamConfig) ProtoReflect

func (x *StreamConfig) ProtoReflect() protoreflect.Message

func (*StreamConfig) Reset

func (x *StreamConfig) Reset()

func (*StreamConfig) SetBehavior

func (x *StreamConfig) SetBehavior(v *BufferBehavior)

func (*StreamConfig) SetMemoryBufferBytesLimit

func (x *StreamConfig) SetMemoryBufferBytesLimit(v *wrapperspb.UInt64Value)

func (*StreamConfig) SetStorageBufferBytesLimit

func (x *StreamConfig) SetStorageBufferBytesLimit(v *wrapperspb.UInt64Value)

func (*StreamConfig) SetStorageBufferQueueHighWatermarkBytes

func (x *StreamConfig) SetStorageBufferQueueHighWatermarkBytes(v *wrapperspb.UInt64Value)

func (*StreamConfig) String

func (x *StreamConfig) String() string

type StreamConfig_builder

type StreamConfig_builder struct {

	// Whether to bypass / stream / fully buffer / etc.
	// If unset in route, vhost and listener config, the default is “stream_when_possible“.
	Behavior *BufferBehavior
	// The amount stored in the memory buffer before buffering to disk.
	// If unset in route, vhost and listener config, defaults to a hardcoded value of 1MiB
	MemoryBufferBytesLimit *wrapperspb.UInt64Value
	// The maximum storage (excluding memory) to be buffered in this filter.
	// If unset in route, vhost and listener config, defaults to a hardcoded value of 32MiB
	StorageBufferBytesLimit *wrapperspb.UInt64Value
	// The maximum amount that can be queued for writing to storage, above which the
	// source is requested to pause. If unset, defaults to the same value as
	// “memory_buffer_bytes_limit“.
	//
	// For example, assuming the recipient is not consuming data at all, if
	// “memory_buffer_bytes_limit“ was 32MiB, and “storage_buffer_queue_high_watermark_bytes“
	// was 64MiB, and the filesystem is backed up so writes are not occurring promptly,
	// then:
	//
	//   - Any request less than 32MiB will eventually pass through without ever attempting
	//     to write to disk.
	//   - Any request with over 32MiB buffered will start trying to write to disk.
	//     If it reaches (32+64)MiB buffered in memory (write to disk isn't keeping up), a high
	//     watermark signal is sent to the source.
	//   - Any stream whose total size exceeds
	//     “memory_buffer_bytes_limit + storage_buffer_bytes_limit“ will provoke an error.
	//     (Note, if the recipient *is* consuming data then it is possible for such an
	//     oversized request to pass through the buffer filter, provided the recipient
	//     isn't consuming data too slowly.)
	//
	// The low watermark signal is sent when the memory buffer is at size
	// “memory_buffer_bytes_limit + (storage_buffer_queue_high_watermark_bytes / 2)“.
	StorageBufferQueueHighWatermarkBytes *wrapperspb.UInt64Value
	// contains filtered or unexported fields
}

func (StreamConfig_builder) Build

func (b0 StreamConfig_builder) Build() *StreamConfig

Source Files

  • file_system_buffer.pb.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL