diff --git a/net/relayd/Makefile b/net/relayd/Makefile
index d0c095ff8..0641c68ac 100644
--- a/net/relayd/Makefile
+++ b/net/relayd/Makefile
@@ -1,5 +1,5 @@
PLUGIN_NAME= relayd
-PLUGIN_VERSION= 2.5
+PLUGIN_VERSION= 2.6
PLUGIN_DEPENDS= relayd
PLUGIN_COMMENT= Relayd Load Balancer
PLUGIN_MAINTAINER= frank.brendel@eurolog.com
diff --git a/net/relayd/src/opnsense/mvc/app/controllers/OPNsense/Relayd/forms/virtualserver.xml b/net/relayd/src/opnsense/mvc/app/controllers/OPNsense/Relayd/forms/virtualserver.xml
index 66636718d..0135923ed 100644
--- a/net/relayd/src/opnsense/mvc/app/controllers/OPNsense/Relayd/forms/virtualserver.xml
+++ b/net/relayd/src/opnsense/mvc/app/controllers/OPNsense/Relayd/forms/virtualserver.xml
@@ -35,6 +35,14 @@
Specify an address to listen on.]]>
+
+ relayd.virtualserver.listen_proto
+
+ dropdown
+
+
+
relayd.virtualserver.listen_startport
diff --git a/net/relayd/src/opnsense/mvc/app/models/OPNsense/Relayd/Relayd.xml b/net/relayd/src/opnsense/mvc/app/models/OPNsense/Relayd/Relayd.xml
index 60852198b..985f0e23d 100644
--- a/net/relayd/src/opnsense/mvc/app/models/OPNsense/Relayd/Relayd.xml
+++ b/net/relayd/src/opnsense/mvc/app/models/OPNsense/Relayd/Relayd.xml
@@ -1,6 +1,6 @@
//OPNsense/relayd
- 1.0.3
+ 1.0.4
Relayd settings
@@ -175,6 +175,14 @@
lower
Please specify a valid servername or IP address.
+
+ Y
+ tcp
+
+ TCP
+ UDP
+
+
Y
1
@@ -296,6 +304,15 @@
Table check not found
N
N
+
+
+ Table check must be set.
+ DependConstraint
+
+ backuptransport_table
+
+
+
roundrobin
diff --git a/net/relayd/src/opnsense/mvc/app/views/OPNsense/Relayd/index.volt b/net/relayd/src/opnsense/mvc/app/views/OPNsense/Relayd/index.volt
index 0b1ea7e48..71cb81101 100644
--- a/net/relayd/src/opnsense/mvc/app/views/OPNsense/Relayd/index.volt
+++ b/net/relayd/src/opnsense/mvc/app/views/OPNsense/Relayd/index.volt
@@ -117,6 +117,7 @@ POSSIBILITY OF SUCH DAMAGE.
var transport_tablemode = $('#relayd\\.virtualserver\\.transport_tablemode').val();
var backuptransport_tablemode = $('#relayd\\.virtualserver\\.backuptransport_tablemode').val();
+ $('tr[id="row_relayd.virtualserver.listen_proto"]').addClass('hidden');
$('tr[id="row_relayd.virtualserver.transport_type"]').addClass('hidden');
$('tr[id="row_relayd.virtualserver.routing_interface"]').addClass('hidden');
$('tr[id="row_relayd.virtualserver.stickyaddress"]').addClass('hidden');
@@ -129,6 +130,7 @@ POSSIBILITY OF SUCH DAMAGE.
$('#relayd\\.virtualserver\\.backuptransport_tablemode').empty().append('');
if(servertype == 'redirect'){
+ $('tr[id="row_relayd.virtualserver.listen_proto"]').removeClass('hidden');
$('tr[id="row_relayd.virtualserver.transport_type"]').removeClass('hidden');
if(transport_type == 'route'){
$('tr[id="row_relayd.virtualserver.routing_interface"]').removeClass('hidden');
diff --git a/net/relayd/src/opnsense/service/templates/OPNsense/Relayd/relayd.conf b/net/relayd/src/opnsense/service/templates/OPNsense/Relayd/relayd.conf
index 5f99db895..b4d3fb121 100644
--- a/net/relayd/src/opnsense/service/templates/OPNsense/Relayd/relayd.conf
+++ b/net/relayd/src/opnsense/service/templates/OPNsense/Relayd/relayd.conf
@@ -62,6 +62,9 @@ table <{{ table.name }}>{{ disable }} {
disable
{% endif %}
{% set listen = "listen on " ~ virtualserver.listen_address %}
+{% if virtualserver.listen_proto is defined and virtualserver.type == 'redirect' %}
+{% set listen = listen ~ " " ~ virtualserver.listen_proto %}
+{% endif %}
{% if virtualserver.listen_startport is defined %}
{% set listen = listen ~ " port " ~ virtualserver.listen_startport %}
{% if virtualserver.listen_endport is defined and virtualserver.type == 'redirect'%}