[][src]Module envoy_sdk::extension::filter::network

Envoy Network Filter extension.

Creating a new Network Filter extension using Envoy SDK consists of the following steps:

  1. Implement NetworkFilter trait to define core logic of your extension
  2. Implement ExtensionFactory trait to create new instances of your extension
  3. Register your extension on WebAssembly module start up

Examples

Basic NetworkFilter:

use envoy::extension::NetworkFilter;

/// My very own `NetworkFilter`.
struct MyNetworkFilter;

impl NetworkFilter for MyNetworkFilter {}

ExtensionFactory for MyNetworkFilter instances:

use envoy::extension::{ExtensionFactory, InstanceId, Result};

/// `ExtensionFactory` for `MyNetworkFilter`.
struct MyNetworkFilterFactory;

impl ExtensionFactory for MyNetworkFilterFactory {
    type Extension = MyNetworkFilter;

    const NAME: &'static str = "my_network_filter";

    fn new_extension(&mut self, _instance_id: InstanceId) -> Result<Self::Extension> {
        Ok(MyNetworkFilter)
    }
}

Registration of MyNetworkFilter on start up:

use envoy::extension::{entrypoint, Module, Result};

entrypoint! { initialize } // put initialization logic into a function to make it unit testable

fn initialize() -> Result<Module> {
    Module::new()
        .add_network_filter(|_instance_id| Ok(MyNetworkFilterFactory))
}

Enums

FilterStatus

Return codes for on_downstream_data and on_upstream_data filter invocations.

Traits

ConnectionCompleteOps

An interface for operations available in the context of on_connection_complete filter invocation.

DownstreamCloseOps

An interface for operations available in the context of on_downstream_close filter invocation.

DownstreamDataOps

An interface for manipulating data in the read buffer (data read from the downstream connection).

NetworkFilter

An interface of the Envoy Network Filter extension.

Ops

An interface for manipulating data in both read and write buffers.

UpstreamCloseOps

An interface for operations available in the context of on_upstream_close filter invocation.

UpstreamDataOps

An interface for manipulating data in the write buffer (data to be written to the downstream connection).