]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MAJOR: spoe: Add support of pipelined and asynchronous exchanges with agents
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 21 Dec 2016 07:58:06 +0000 (08:58 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 9 Mar 2017 14:32:55 +0000 (15:32 +0100)
commita1cda029958da17f4f467ab4316a8bf4bac668f1
treeb07330e526efa8e4afdc4773e42a3bcfb8854715
parentb0b42388259224be54bf504fa559803b39d6453c
MAJOR: spoe: Add support of pipelined and asynchronous exchanges with agents

Now, HAProxy and agents can announce the support for "pipelining" and/or "async"
capabilities during the HELLO handshake. For now, HAProxy always announces the
support of both. In addition, in its HELLO frames. HAproxy adds the "engine-id"
key. It is a uniq string that identify a SPOE engine.

The "pipelining" capability is the ability for a peer to decouple NOTIFY and ACK
frames. This is a symmectical capability. To be used, it must be supported by
HAproxy and agents. Unlike HTTP pipelining, the ACK frames can be send in any
order, but always on the same TCP connection used for the corresponding NOTIFY
frame.

The "async" capability is similar to the pipelining, but here any TCP connection
established between HAProxy and the agent can be used to send ACK frames. if an
agent accepts connections from multiple HAProxy, it can use the "engine-id"
value to group TCP connections.
doc/SPOE.txt
include/types/applet.h
src/flt_spoe.c