Expand description
Envoy
Network Filter
extension.
Creating a new Network Filter
extension using Envoy SDK
consists of the following steps:
- Implement
NetworkFilter
trait to define core logic of your extension - Implement
ExtensionFactory
trait to create new instances of your extension 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;
fn 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§
- Filter
Status - Return codes for
on_downstream_data
andon_upstream_data
filter invocations.
Traits§
- Connection
Complete Ops - An interface for operations available in the context of
on_connection_complete
filter invocation. - Downstream
Close Ops - An interface for operations available in the context of
on_downstream_close
filter invocation. - Downstream
Data Ops - An interface for manipulating data in the read buffer from
Downstream
. - Network
Filter - An interface of the
Envoy
Network Filter
extension. - Ops
- An interface for manipulating data in both read and write buffers.
- Upstream
Close Ops - An interface for operations available in the context of
on_upstream_close
filter invocation. - Upstream
Data Ops - An interface for manipulating data received from
Upstream
before they reach the write buffer forDownstream
.