diff --git a/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/dialogEditFreeRADIUSUser.xml b/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/dialogEditFreeRADIUSUser.xml
index a859a6396..ea4848a83 100644
--- a/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/dialogEditFreeRADIUSUser.xml
+++ b/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/dialogEditFreeRADIUSUser.xml
@@ -69,6 +69,26 @@
trueSet how many times one account is allowed to login at the same time.
+
+ user.exos_vlan_untagged
+
+ text
+ Set exos vlan untagged
+
+
+ user.exos_vlan_tagged
+
+
+ select_multiple
+ true
+ Set exos vlan tagged
+
+
+ user.exos_policy
+
+ text
+ Set exos policy filter id with Filter-ID="Entrasys:version=1:mgmt=su:policy=[policy_name]"
+ user.wispr_bw_min_up
diff --git a/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/general.xml b/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/general.xml
index 7f4de121b..65a8795af 100644
--- a/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/general.xml
+++ b/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/general.xml
@@ -17,6 +17,12 @@
checkboxThis allows you to bind to an external LDAP server. Be aware that FreeRADIUS will not start if there is no further configuration.
+
+ general.exos
+
+ checkbox
+ This enables the EXOS VLAN and policy attributes assignment via users tab.
+ general.wispr
diff --git a/net/freeradius/src/opnsense/mvc/app/models/OPNsense/Freeradius/General.xml b/net/freeradius/src/opnsense/mvc/app/models/OPNsense/Freeradius/General.xml
index 339c42e1d..be78892af 100644
--- a/net/freeradius/src/opnsense/mvc/app/models/OPNsense/Freeradius/General.xml
+++ b/net/freeradius/src/opnsense/mvc/app/models/OPNsense/Freeradius/General.xml
@@ -1,7 +1,7 @@
//OPNsense/freeradius/generalFreeRADIUS configuration
- 1.0.0
+ 1.0.10
@@ -15,6 +15,10 @@
0N
+
+ 0
+ N
+ 0N
diff --git a/net/freeradius/src/opnsense/mvc/app/models/OPNsense/Freeradius/User.xml b/net/freeradius/src/opnsense/mvc/app/models/OPNsense/Freeradius/User.xml
index f56b97050..616b946b9 100644
--- a/net/freeradius/src/opnsense/mvc/app/models/OPNsense/Freeradius/User.xml
+++ b/net/freeradius/src/opnsense/mvc/app/models/OPNsense/Freeradius/User.xml
@@ -1,7 +1,7 @@
//OPNsense/freeradius/userFreeRADIUS user configuration
- 1.0.2
+ 1.0.3
@@ -49,6 +49,17 @@
01024
+
+ N
+ 4096
+
+
+ N
+ /^(\d{1,4},)*(\d{1,4})$/
+
+
+ N
+ N
diff --git a/net/freeradius/src/opnsense/service/templates/OPNsense/Freeradius/users b/net/freeradius/src/opnsense/service/templates/OPNsense/Freeradius/users
index 163ab828c..3d1f99e6a 100644
--- a/net/freeradius/src/opnsense/service/templates/OPNsense/Freeradius/users
+++ b/net/freeradius/src/opnsense/service/templates/OPNsense/Freeradius/users
@@ -31,6 +31,19 @@
Tunnel-Private-Group-Id = {{ user_list.vlan }},
{% endif %}
{% endif %}
+{% if helpers.exists('OPNsense.freeradius.general.exos') and OPNsense.freeradius.general.exos == '1' %}
+{% if user_list.exos_vlan_untagged is defined and user_list.exos_vlan_tagged is not defined %}
+ Extreme-Netlogin-Extended-VLAN = "U{{ user_list.exos_vlan_untagged }}",
+{% endif %}
+{% if user_list.exos_vlan_tagged is defined%}
+ Extreme-Netlogin-Extended-VLAN = "{% if user_list.exos_vlan_untagged is defined -%}
+ U{{ user_list.exos_vlan_untagged }};{% endif -%}
+ {% for exostaggedlist in user_list.exos_vlan_tagged.split(',') %}T{{ exostaggedlist }};{% endfor %}",
+{% endif %}
+{% if user_list.exos_policy is defined %}
+ Filter-ID="Enterasys:version=1:mgmt=su:policy={{ user_list.exos_policy }}",
+{% endif %}
+{% endif %}
{% if helpers.exists('OPNsense.freeradius.general.wispr') and OPNsense.freeradius.general.wispr == '1' %}
{% if user_list.wispr_bw_min_up is defined %}
WISPr-Bandwidth-Min-Up = {{ user_list.wispr_bw_min_up }},