]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MAJOR: spoe: Add an experimental Stream Processing Offload Engine
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 27 Oct 2016 20:29:49 +0000 (22:29 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 9 Nov 2016 21:57:01 +0000 (22:57 +0100)
commitf7e4e7e0962d696995c4f06c053a07a3960b86b9
tree39814d0cb24eaedac3803da26c3c2021c9129765
parent85d79c94a93211b156ec644e164b178f5d7101fa
MAJOR: spoe: Add an experimental Stream Processing Offload Engine

SPOE makes possible the communication with external components to retrieve some
info using an in-house binary protocol, the Stream Processing Offload Protocol
(SPOP). In the long term, its aim is to allow any kind of offloading on the
streams. This first version, besides being experimental, won't do lot of
things. The most important today is to validate the protocol design and lay the
foundations of what will, one day, be a full offload engine for the stream
processing.

So, for now, the SPOE can offload the stream processing before "tcp-request
content", "tcp-response content", "http-request" and "http-response" rules. And
it only supports variables creation/suppression. But, in spite of these limited
features, we can easily imagine to implement a SSO solution, an ip reputation
service or an ip geolocation service.

Internally, the SPOE is implemented as a filter. So, to use it, you must use
following line in a proxy proxy section:

  frontend my-front
      ...
      filter spoe [engine <name>] config <file>
      ...

It uses its own configuration file to keep the HAProxy configuration clean. It
is also a easy way to disable it by commenting out the filter line.

See "doc/SPOE.txt" for all details about the SPOE configuration.
Makefile
doc/SPOE.txt [new file with mode: 0644]
doc/configuration.txt
include/types/applet.h
include/types/arg.h
src/flt_spoe.c [new file with mode: 0644]
src/log.c
src/sample.c