diff --git a/net/haproxy/pkg-descr b/net/haproxy/pkg-descr
index 7022ea069..aefc012eb 100644
--- a/net/haproxy/pkg-descr
+++ b/net/haproxy/pkg-descr
@@ -20,12 +20,14 @@ Added:
* add support for HTTP compression (#4867)
* add all action keywords for http-request/-response and tcp-request/-response rules
* add "enabled" field to rules
+* add support for all stick-table data types
Changed:
* upgrade to HAProxy 3.2 release series (#5147)
* refactor http/tcp rules to make extensions easier
* rename some labels in rules
* change LUA boolean conversion (see tune.lua.bool-sample-conversion)
+* stick-table "size" and "expiration time" are no longer advanced options (now always visible)
4.6
diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml
index 40d46a123..1090f3a32 100644
--- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml
+++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml
@@ -249,20 +249,39 @@
backend.stickiness_dataTypes
select_multiple
- HAProxy documentation for a full description.]]>
+ HAProxy documentation for a full description.]]>
backend.stickiness_expire
text
- true
backend.stickiness_size
-
+
text
+
+
+ backend.stickiness_length
+
+ text
+
+ true
+
+
+ backend.stickiness_bytesInRatePeriod
+
+ text
+
+ true
+
+
+ backend.stickiness_bytesOutRatePeriod
+
+ text
+
true
@@ -285,10 +304,31 @@
true
- backend.stickiness_sessRatePeriod
-
+ backend.stickiness_glitchRatePeriod
+
text
-
+
+ true
+
+
+ backend.stickiness_gpcElements
+
+ text
+
+ true
+
+
+ backend.stickiness_gpcRatePeriod
+
+ text
+
+ true
+
+
+ backend.stickiness_gptElements
+
+ text
+
true
@@ -306,17 +346,17 @@
true
- backend.stickiness_bytesInRatePeriod
-
+ backend.stickiness_httpFailRatePeriod
+
text
-
+
true
- backend.stickiness_bytesOutRatePeriod
-
+ backend.stickiness_sessRatePeriod
+
text
-
+
true
diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml
index 6d2ecee8a..a84eb88b5 100644
--- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml
+++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml
@@ -350,28 +350,26 @@
frontend.stickiness_pattern
dropdown
- HAProxy documentation for further information.]]>
+ HAProxy documentation for further information.]]>
Choose a stick-table type.
frontend.stickiness_dataTypes
select_multiple
- HAProxy documentation for a full description.]]>
+ HAProxy documentation for a full description.]]>
frontend.stickiness_expire
text
- true
frontend.stickiness_size
-
+
text
- true
frontend.stickiness_counter
@@ -394,6 +392,20 @@
true
+
+ frontend.stickiness_bytesInRatePeriod
+
+ text
+
+ true
+
+
+ frontend.stickiness_bytesOutRatePeriod
+
+ text
+
+ true
+
frontend.stickiness_connRatePeriod
@@ -402,10 +414,31 @@
true
- frontend.stickiness_sessRatePeriod
-
+ frontend.stickiness_glitchRatePeriod
+
text
-
+
+ true
+
+
+ frontend.stickiness_gpcElements
+
+ text
+
+ true
+
+
+ frontend.stickiness_gpcRatePeriod
+
+ text
+
+ true
+
+
+ frontend.stickiness_gptElements
+
+ text
+
true
@@ -423,17 +456,17 @@
true
- frontend.stickiness_bytesInRatePeriod
-
+ frontend.stickiness_httpFailRatePeriod
+
text
-
+
true
- frontend.stickiness_bytesOutRatePeriod
-
+ frontend.stickiness_sessRatePeriod
+
text
-
+
true
diff --git a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml
index d246d1971..b8b76a2eb 100644
--- a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml
+++ b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml
@@ -758,19 +758,32 @@
N
Y
- Connection count
- Current connections
- Connection rate
- Session count
- Session rate
- HTTP request count
- HTTP request rate
- HTTP error count
- HTTP error rate
Bytes in count (client to server)
Bytes in rate (client to server)
Bytes out count (server to client)
Bytes out rate (server to client)
+ Connection count (total)
+ Connection count (current)
+ Connection rate
+ Glitch count
+ Glitch rate
+ General Purpose Counters (array of elements)
+ General Purpose Counter rate
+ gpc0
+ gpc0 rate
+ gpc1
+ gpc1 rate
+ General Purpose Tags (array of elements)
+ gpt0
+ HTTP error count
+ HTTP error rate
+ HTTP fail count
+ HTTP fail rate
+ HTTP request count
+ HTTP request rate
+ Server ID
+ Session count
+ Session rate
@@ -839,6 +852,38 @@
Should be a number between 1 and 8 characters, optionally followed by either "d", "h", "m", "s", "ms" or "us".
N
+
+ 0
+ 0
+ 99
+ Please specify a value between 0 and 99.
+ N
+
+
+ 1m
+ /^([0-9]{1,8}(?:us|ms|s|m|h|d)?)/u
+ Should be a number between 1 and 8 characters, optionally followed by either "d", "h", "m", "s", "ms" or "us".
+ N
+
+
+ 0
+ 0
+ 99
+ Please specify a value between 0 and 99.
+ N
+
+
+ 1m
+ /^([0-9]{1,8}(?:us|ms|s|m|h|d)?)/u
+ Should be a number between 1 and 8 characters, optionally followed by either "d", "h", "m", "s", "ms" or "us".
+ N
+
+
+ 1m
+ /^([0-9]{1,8}(?:us|ms|s|m|h|d)?)/u
+ Should be a number between 1 and 8 characters, optionally followed by either "d", "h", "m", "s", "ms" or "us".
+ N
+
1
N
@@ -1169,19 +1214,32 @@
N
Y
- Connection count
- Current connections
- Connection rate
- Session count
- Session rate
- HTTP request count
- HTTP request rate
- HTTP error count
- HTTP error rate
Bytes in count (client to server)
Bytes in rate (client to server)
Bytes out count (server to client)
Bytes out rate (server to client)
+ Connection count (total)
+ Connection count (current)
+ Connection rate
+ Glitch count
+ Glitch rate
+ General Purpose Counters (array of elements)
+ General Purpose Counter rate
+ gpc0
+ gpc0 rate
+ gpc1
+ gpc1 rate
+ General Purpose Tags (array of elements)
+ gpt0
+ HTTP error count
+ HTTP error rate
+ HTTP fail count
+ HTTP fail rate
+ HTTP request count
+ HTTP request rate
+ Server ID
+ Session count
+ Session rate
@@ -1209,6 +1267,12 @@
Please specify a value between 1 and 10000.
N
+
+ 1
+ 16384
+ Please specify a value between 1 and 16384.
+ N
+
10s
/^([0-9]{1,8}(?:us|ms|s|m|h|d)?)/u
@@ -1245,6 +1309,38 @@
Should be a number between 1 and 8 characters, optionally followed by either "d", "h", "m", "s", "ms" or "us".
N
+
+ 0
+ 0
+ 99
+ Please specify a value between 0 and 99.
+ N
+
+
+ 0
+ 0
+ 99
+ Please specify a value between 0 and 99.
+ N
+
+
+ 1m
+ /^([0-9]{1,8}(?:us|ms|s|m|h|d)?)/u
+ Should be a number between 1 and 8 characters, optionally followed by either "d", "h", "m", "s", "ms" or "us".
+ N
+
+
+ 1m
+ /^([0-9]{1,8}(?:us|ms|s|m|h|d)?)/u
+ Should be a number between 1 and 8 characters, optionally followed by either "d", "h", "m", "s", "ms" or "us".
+ N
+
+
+ 1m
+ /^([0-9]{1,8}(?:us|ms|s|m|h|d)?)/u
+ Should be a number between 1 and 8 characters, optionally followed by either "d", "h", "m", "s", "ms" or "us".
+ N
+
0
N
diff --git a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf
index 0e2688315..3e2a42ba8 100644
--- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf
+++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf
@@ -694,18 +694,28 @@
{% set stickiness_datatypes = [] %}
{% for datatype in proxy.stickiness_dataTypes.split(",") %}
{# # add time period to all types where this is required #}
-{% if datatype == 'conn_rate' %}
-{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_connRatePeriod ~ ')') %}
-{% elif datatype == 'sess_rate' %}
-{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_sessRatePeriod ~ ')') %}
-{% elif datatype == 'http_req_rate' %}
-{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_httpReqRatePeriod ~ ')') %}
-{% elif datatype == 'http_err_rate' %}
-{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_httpErrRatePeriod ~ ')') %}
-{% elif datatype == 'bytes_in_rate' %}
+{% if datatype == 'bytes_in_rate' %}
{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_bytesInRatePeriod ~ ')') %}
{% elif datatype == 'bytes_out_rate' %}
{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_bytesOutRatePeriod ~ ')') %}
+{% elif datatype == 'conn_rate' %}
+{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_connRatePeriod ~ ')') %}
+{% elif datatype == 'glitch_rate' %}
+{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_glitchRatePeriod ~ ')') %}
+{% elif datatype == 'gpc_rate' %}
+{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_gpcElements ~ ',' ~ proxy.stickiness_gpcRatePeriod ~ ')') %}
+{% elif datatype == 'gpc0_rate' %}
+{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_gpcRatePeriod ~ ')') %}
+{% elif datatype == 'gpc1_rate' %}
+{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_gpcRatePeriod ~ ')') %}
+{% elif datatype == 'http_err_rate' %}
+{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_httpErrRatePeriod ~ ')') %}
+{% elif datatype == 'http_fail_rate' %}
+{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_httpFailRatePeriod ~ ')') %}
+{% elif datatype == 'http_req_rate' %}
+{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_httpReqRatePeriod ~ ')') %}
+{% elif datatype == 'sess_rate' %}
+{% do stickiness_datatypes.append(datatype ~ '(' ~ proxy.stickiness_sessRatePeriod ~ ')') %}
{% else %}
{% do stickiness_datatypes.append(datatype) %}
{% endif %}