Skip to content

ABI version and enumeration constants #11

Closed
@esnible

Description

@esnible

I noticed a recent change added an enumeration to the FilterHeadersStatus
return codes for ContinueAndDontEndStream. https://github.com/envoyproxy/envoy/blob/master/include/envoy/http/filter.h#L75

Envoy WASM doesn't yet have the change [ https://github.com/envoyproxy/envoy-wasm/blob/master/include/envoy/http/filter.h ]

The AssemblyScript runtime has its own version of the enumeration, at https://github.com/solo-io/proxy-runtime/blob/master/assembly/runtime.ts#L96 , which doesn't include the new enumeration. The current AssemblyScript runtime advertises itself as proxy_abi_version_0_2_0.

How will this work in practice when Envoy WASM picks up the new enumeration from Envoy? Do we expect

  • Envoy-Wasm will pick up the Envoy change but re-order the enumeration so binary enum constant values don't change?
  • Envoy-Wasm will reject plugins with ABI older version point release, forcing filter developers to recompile?
  • Envoy-Wasm will including enumeration mapping, and proxy_abi_version_0_2_0 filters can continue to return 4 for FilterHeadersStatus.StopAllIterationAndBuffer alongside proxy_abi_version_0_2_x filters returning 5 for proxy_abi_version_0_2_0?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions