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