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 5fde9664d..1ccd924b6 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
@@ -240,6 +240,20 @@
true
+
+ frontend.stickiness_counter
+
+ checkbox
+
+ true
+
+
+ frontend.stickiness_counter_key
+
+ text
+ HAProxy documentation for a full description.]]>
+ true
+
frontend.stickiness_length
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 d4a690779..982e9c0ae 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
@@ -454,6 +454,16 @@
lower
Should be a number between 1 and 5 characters followed by either "k", "m" or "g".
+
+ 1
+ N
+
+
+ src
+ N
+ /^([0-9a-zA-Z._]){1,32}$/u
+ Should be a string between 1 and 32 characters.
+
1
16384
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 eebeac93e..bd0954a1d 100644
--- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf
+++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf
@@ -542,6 +542,12 @@
{% if table_type is defined %}
stick-table type {{table_type}} {%if add_length is defined %}len {{data_length}} {% endif %}size {{proxy.stickiness_size}} expire {{proxy.stickiness_expire}} {{stickiness_store}}
{% endif %}
+{# # sticky counters (frontends only) #}
+{%- if backend == False -%}
+{%- if proxy.stickiness_counter|default("0") == "1" and proxy.stickiness_counter_key != '' %}
+ tcp-request connection track-sc0 {{proxy.stickiness_counter_key}}
+{%- endif -%}
+{%- endif -%}
{# # stick-table persistence (backends only) #}
{%- if backend == True -%}
{%- if proxy.stickiness_pattern == "cookievalue" %}