diff --git a/Kconfig b/Kconfig
index 5dbc81fe7c47064f0e1b9a8510fc5fc464528894..10f32fb327347c4a77c53c47a50afb46ae083ffa 100644
--- a/Kconfig
+++ b/Kconfig
@@ -315,9 +315,6 @@ config PORT01_PARAMS
 		       not in DB, copper SFP connected, non 1GB SFP etc.
 	    - none - disable White Rabbit and PTP on a portdisable White Rabbit
 		       on a port, keep PTP
-	   ppsi_vlans - colon separated list describing which vlans shall be
-		       assigned to the particular ppsi instance
-
 
 config PORT02_PARAMS
 	string "Parameters for port 2"
diff --git a/Kconfig_vlans.in b/Kconfig_vlans.in
index 79a777d75545c37aeb00162e4f2f99da08f10353..828025f796f2f7ca2bc15b1a7b89017ed1d6b966 100644
--- a/Kconfig_vlans.in
+++ b/Kconfig_vlans.in
@@ -127,6 +127,16 @@ config VLANS_PORT01_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT01_VID_PTP
+	string "Port 1 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK \
+		   || VLANS_PORT01_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 2"
 choice VLANS_PORT02_MODE
@@ -193,6 +203,16 @@ config VLANS_PORT02_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT02_VID_PTP
+	string "Port 2 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT02_MODE_ACCESS || VLANS_PORT02_MODE_TRUNK \
+		   || VLANS_PORT02_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 3"
 choice VLANS_PORT03_MODE
@@ -259,6 +279,16 @@ config VLANS_PORT03_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT03_VID_PTP
+	string "Port 3 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT03_MODE_ACCESS || VLANS_PORT03_MODE_TRUNK \
+		   || VLANS_PORT03_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 4"
 choice VLANS_PORT04_MODE
@@ -325,6 +355,16 @@ config VLANS_PORT04_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT04_VID_PTP
+	string "Port 4 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT04_MODE_ACCESS || VLANS_PORT04_MODE_TRUNK \
+		   || VLANS_PORT04_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 5"
 choice VLANS_PORT05_MODE
@@ -391,6 +431,16 @@ config VLANS_PORT05_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT05_VID_PTP
+	string "Port 5 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT05_MODE_ACCESS || VLANS_PORT05_MODE_TRUNK \
+		   || VLANS_PORT05_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 6"
 choice VLANS_PORT06_MODE
@@ -457,6 +507,16 @@ config VLANS_PORT06_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT06_VID_PTP
+	string "Port 6 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT06_MODE_ACCESS || VLANS_PORT06_MODE_TRUNK \
+		   || VLANS_PORT06_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 7"
 choice VLANS_PORT07_MODE
@@ -523,6 +583,16 @@ config VLANS_PORT07_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT07_VID_PTP
+	string "Port 7 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT07_MODE_ACCESS || VLANS_PORT07_MODE_TRUNK \
+		   || VLANS_PORT07_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 8"
 choice VLANS_PORT08_MODE
@@ -589,6 +659,16 @@ config VLANS_PORT08_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT08_VID_PTP
+	string "Port 8 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT08_MODE_ACCESS || VLANS_PORT08_MODE_TRUNK \
+		   || VLANS_PORT08_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 9"
 choice VLANS_PORT09_MODE
@@ -655,6 +735,16 @@ config VLANS_PORT09_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT09_VID_PTP
+	string "Port 9 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT09_MODE_ACCESS || VLANS_PORT09_MODE_TRUNK \
+		   || VLANS_PORT09_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 10"
 choice VLANS_PORT10_MODE
@@ -721,6 +811,16 @@ config VLANS_PORT10_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT10_VID_PTP
+	string "Port 10 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT10_MODE_ACCESS || VLANS_PORT10_MODE_TRUNK \
+		   || VLANS_PORT10_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 11"
 choice VLANS_PORT11_MODE
@@ -787,6 +887,16 @@ config VLANS_PORT11_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT11_VID_PTP
+	string "Port 11 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT11_MODE_ACCESS || VLANS_PORT11_MODE_TRUNK \
+		   || VLANS_PORT11_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 12"
 choice VLANS_PORT12_MODE
@@ -853,6 +963,16 @@ config VLANS_PORT12_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT12_VID_PTP
+	string "Port 12 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT12_MODE_ACCESS || VLANS_PORT12_MODE_TRUNK \
+		   || VLANS_PORT12_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 13"
 choice VLANS_PORT13_MODE
@@ -919,6 +1039,16 @@ config VLANS_PORT13_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT13_VID_PTP
+	string "Port 13 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT13_MODE_ACCESS || VLANS_PORT13_MODE_TRUNK \
+		   || VLANS_PORT13_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 14"
 choice VLANS_PORT14_MODE
@@ -985,6 +1115,16 @@ config VLANS_PORT14_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT14_VID_PTP
+	string "Port 14 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT14_MODE_ACCESS || VLANS_PORT14_MODE_TRUNK \
+		   || VLANS_PORT14_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 15"
 choice VLANS_PORT15_MODE
@@ -1051,6 +1191,16 @@ config VLANS_PORT15_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT15_VID_PTP
+	string "Port 15 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT15_MODE_ACCESS || VLANS_PORT15_MODE_TRUNK \
+		   || VLANS_PORT15_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 16"
 choice VLANS_PORT16_MODE
@@ -1117,6 +1267,16 @@ config VLANS_PORT16_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT16_VID_PTP
+	string "Port 16 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT16_MODE_ACCESS || VLANS_PORT16_MODE_TRUNK \
+		   || VLANS_PORT16_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 17"
 choice VLANS_PORT17_MODE
@@ -1183,6 +1343,16 @@ config VLANS_PORT17_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT17_VID_PTP
+	string "Port 17 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT17_MODE_ACCESS || VLANS_PORT17_MODE_TRUNK \
+		   || VLANS_PORT17_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 
 comment "Port 18"
 choice VLANS_PORT18_MODE
@@ -1249,6 +1419,16 @@ config VLANS_PORT18_VID
 	help
 	  VID value used when tagging frames or to override VID passed to RTU
 
+config VLANS_PORT18_VID_PTP
+	string "Port 18 VIDs for PTP"
+	default "0" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK
+	default "" if VLANS_PORT01_MODE_UNQUALIFIED
+	depends on VLANS_PORT18_MODE_ACCESS || VLANS_PORT18_MODE_TRUNK \
+		   || VLANS_PORT18_MODE_UNQUALIFIED
+	help
+	  Semicolon separated list describing which vlans shall be assigned to
+	  a PTP instance on a particular port
+
 # Ports configuration
 endmenu
 menu "VLANs configuration"
@@ -1279,7 +1459,7 @@ config VLANS_VLAN0000
 	  --If "drop" is set to "y", all frames belonging to this VID are
 	    dropped (note that frame can belong to a VID as a consequence of
 	    per-port Endpoint configuration); can take values "y" and "n"
-	  --"ports" is a list of ports separated with a semicolon sign(";");
+	  --"ports" is a list of ports separated with a semicolon sign (";");
 	    ports ranges are supported (with a minus sign)
 
 config VLANS_VLAN0001
@@ -1443,7 +1623,7 @@ config VLANS_VLAN0023
 	  --If "drop" is set to "y", all frames belonging to this VID are
 	    dropped (note that frame can belong to a VID as a consequence of
 	    per-port Endpoint configuration); can take values "y" and "n"
-	  --"ports" is a list of ports separated with a semicolon sign(";");
+	  --"ports" is a list of ports separated with a semicolon sign (";");
 	    ports ranges are supported (with a minus sign)
 
 config VLANS_VLAN0024
@@ -1937,7 +2117,7 @@ config VLANS_VLAN0101
 	  --If "drop" is set to "y", all frames belonging to this VID are
 	    dropped (note that frame can belong to a VID as a consequence of
 	    per-port Endpoint configuration); can take values "y" and "n"
-	  --"ports" is a list of ports separated with a semicolon sign(";");
+	  --"ports" is a list of ports separated with a semicolon sign (";");
 	    ports ranges are supported (with a minus sign)
 
 config VLANS_VLAN0102
diff --git a/doc/wrs-user-manual.in b/doc/wrs-user-manual.in
index 98f08a470aab8ae08a812c614b311ea447db8aaf..a9b0e31d942617b3766348eeb746440d6f279288 100644
--- a/doc/wrs-user-manual.in
+++ b/doc/wrs-user-manual.in
@@ -648,9 +648,6 @@ value is changed by the web interface, proper action is taken.
 				   (@t{CONFIG_FIBERXX_PARAMS})
 				   should be used for a fiber connected to
 				   a particular port
-		@item @t{ppsi_vlans} -- colon separated list describing which
-					vlans shall be assigned to the
-					particular ppsi instance
         @end itemize
 
         Most likely the default values work for you.
@@ -879,6 +876,11 @@ value is changed by the web interface, proper action is taken.
 	VID takes values 0..4094.
 	For details please refer to the @ref{VLANs Configuration}
 
+@item CONFIG_VLANS_PORTXX_VID_PTP
+
+	Semicolon separated list describing which vlans shall be assigned to
+	a PTP instance on a particular port
+
 @item CONFIG_VLANS_VLANXXXX
 
 	Provide the configuration for VLAN from the range 0000-4094.
@@ -1206,21 +1208,24 @@ To configure the switch in the way descibed in the
 following config options:
 
 @smallexample
-CONFIG_PORT01_PARAMS="name=wri1,proto=raw,tx=0,rx=0,role=slave,fiber=0,ppsi_vlans=1"
-CONFIG_PORT02_PARAMS="name=wri2,proto=raw,tx=0,rx=0,role=master,fiber=0,ppsi_vlans=2"
-CONFIG_PORT03_PARAMS="name=wri3,proto=raw,tx=0,rx=0,role=master,fiber=0,ppsi_vlans=2"
+CONFIG_PORT01_PARAMS="name=wri1,proto=raw,tx=0,rx=0,role=slave,fiber=0"
+CONFIG_PORT02_PARAMS="name=wri2,proto=raw,tx=0,rx=0,role=master,fiber=0"
+CONFIG_PORT03_PARAMS="name=wri3,proto=raw,tx=0,rx=0,role=master,fiber=0"
 
 CONFIG_VLANS_ENABLE=y
 CONFIG_VLANS_PORT01_MODE_ACCESS=y
 CONFIG_VLANS_PORT01_UNTAG_ALL=y
 CONFIG_VLANS_PORT01_PRIO=4
 CONFIG_VLANS_PORT01_VID=1
+CONFIG_VLANS_PORT01_VID_PTP="1"
 CONFIG_VLANS_PORT02_MODE_TRUNK=y
 CONFIG_VLANS_PORT02_PRIO=-1
+CONFIG_VLANS_PORT02_VID_PTP="2"
 CONFIG_VLANS_PORT03_MODE_ACCESS=y
 CONFIG_VLANS_PORT03_UNTAG_ALL=y
 CONFIG_VLANS_PORT03_PRIO=7
 CONFIG_VLANS_PORT03_VID=2
+CONFIG_VLANS_PORT03_VID_PTP="2"
 
 CONFIG_VLANS_ENABLE_SET1=y
 CONFIG_VLANS_VLAN0001="fid=1,prio=4,drop=no,ports=1"
diff --git a/userspace/host_tools/gen_vlan_kconf.sh b/userspace/host_tools/gen_vlan_kconf.sh
index 9c631a1238fc313590bbaf222050072752f2af98..024793de6ca9436b6374db23a76f5958754afdeb 100755
--- a/userspace/host_tools/gen_vlan_kconf.sh
+++ b/userspace/host_tools/gen_vlan_kconf.sh
@@ -141,6 +141,16 @@ for port_i in {1..18}; do
 	echo "	help"
 	echo "	  VID value used when tagging frames or to override VID passed to RTU"
 	echo ""
+	echo "config VLANS_PORT"$port_0i"_VID_PTP"
+	echo "	string \"Port "$port_i" VIDs for PTP\""
+	echo "	default \"0\" if VLANS_PORT01_MODE_ACCESS || VLANS_PORT01_MODE_TRUNK"
+	echo "	default \"\" if VLANS_PORT01_MODE_UNQUALIFIED"
+	echo "	depends on VLANS_PORT"$port_0i"_MODE_ACCESS || VLANS_PORT"$port_0i"_MODE_TRUNK \\"
+	echo "		   || VLANS_PORT"$port_0i"_MODE_UNQUALIFIED"
+	echo "	help"
+	echo "	  Semicolon separated list describing which vlans shall be assigned to"
+	echo "	  a PTP instance on a particular port"
+	echo ""
 
 done
 
@@ -197,7 +207,7 @@ for set_i in {1..3}; do
 			echo "	  --If \"drop\" is set to \"y\", all frames belonging to this VID are"
 			echo "	    dropped (note that frame can belong to a VID as a consequence of"
 			echo "	    per-port Endpoint configuration); can take values \"y\" and \"n\""
-			echo "	  --\"ports\" is a list of ports separated with a semicolon sign(\";\");"
+			echo "	  --\"ports\" is a list of ports separated with a semicolon sign (\";\");"
 			echo "	    ports ranges are supported (with a minus sign)"
 		else
 			# for the rest just refer to the first VLAN in the menu
diff --git a/userspace/rootfs_override/wr/bin/assembly_ppsi_conf.sh b/userspace/rootfs_override/wr/bin/assembly_ppsi_conf.sh
index 09f0bcb83ca3433ef1e95798588dd2388620e4ae..70595eb0d1698aae06fc513bbc1d53aa491a6876 100755
--- a/userspace/rootfs_override/wr/bin/assembly_ppsi_conf.sh
+++ b/userspace/rootfs_override/wr/bin/assembly_ppsi_conf.sh
@@ -25,7 +25,6 @@ for i_zero in {01..18};do
 	unset p_name
 	unset p_proto
 	unset p_role
-	unset p_ppsi_vlans
 	# parse parameters
 	param_line=$(eval "echo \$CONFIG_PORT"$i_zero"_PARAMS")
 	IFS_OLD=$IFS
@@ -44,8 +43,6 @@ for i_zero in {01..18};do
 			p_proto="$value";;
 		"role")
 			p_role="$value";;
-		"ppsi_vlans")
-			p_ppsi_vlans="$value";;
 		"rx"|"tx"|"fiber")
 			continue;;
 		*)
@@ -75,10 +72,28 @@ for i_zero in {01..18};do
 	fi
 	#hardcode whiterabbit as extension even for non-wr
 	echo "extension whiterabbit" >> $OUTPUT_FILE
+
 	# add vlans
-	if [ -n "$p_ppsi_vlans" ]; then
-		mod_vlans=${p_ppsi_vlans//:/,}
-		echo "vlan $mod_vlans" >> $OUTPUT_FILE
+	if [ "$CONFIG_VLANS_ENABLE" = "y" ]; then
+		unset ppsi_vlans;
+		unset port_mode_access;
+		unset port_mode_trunk;
+		unset port_mode_unqualified;
+
+		# check port mode
+		port_mode_access=$(eval "echo \$CONFIG_VLANS_PORT"$i_zero"_MODE_ACCESS")
+		port_mode_trunk=$(eval "echo \$CONFIG_VLANS_PORT"$i_zero"_MODE_TRUNK")
+		port_mode_unqualified=$(eval "echo \$CONFIG_VLANS_PORT"$i_zero"_MODE_UNQUALIFIED")
+		# check port mode
+		if [ "$port_mode_access" = "y" ] \
+		    || [ "$port_mode_trunk" = "y" ] \
+		    || [ "$port_mode_unqualified" = "y" ]; then
+			ppsi_vlans=$(eval "echo \$CONFIG_VLANS_PORT"$i_zero"_VID_PTP")
+			if [ -n "$ppsi_vlans" ]; then
+				mod_vlans=${ppsi_vlans//;/,}
+				echo "vlan $mod_vlans" >> $OUTPUT_FILE
+			fi
+		fi
 	fi
 
 	# separate ports