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 %}