€cdocutils.nodes document q)�q}q(U nametypesq}q(XrstpqNXrstp with icss switch firmwareqNuUsubstitution_defsq}q Uparse_messagesq ]q (cdocutils.nodes system_message q )�q }q(U rawsourceqUUparentqcdocutils.nodes section q)�q}q(hUhh)�q}q(hUhhUsourceqXY/home/gtbldadm/nightlybuilds/processor-sdk-doc/source/linux/Industrial_Protocols_RSTP.rstqUtagnameqUsectionqU attributesq}q(Udupnamesq]Uclassesq]Ubackrefsq]Uidsq]q Urstpq!aUnamesq"]q#hauUlineq$KUdocumentq%hUchildrenq&]q'(cdocutils.nodes title q()�q)}q*(hXRSTPq+hhhhhUtitleq,h}q-(h]h]h]h]h"]uh$Kh%hh&]q.cdocutils.nodes Text q/XRSTPq0…�q1}q2(hh+hh)ubaubcdocutils.nodes paragraph q3)�q4}q5(hX€This is a simple demonstration example to setup a RSTP network which is a mode of the mstpd daemon that is provided in the Processors Linux SDK file system. This example setup is done from the Linux command line. Users that require automatic interface, bridge and msptd daemon setup at system initialization will need to do the steps necessary to implement this initialization method.q6hhhcdocutils.nodes reprunicode q7X.source/linux/Industrial_Protocols/RSTP.rst.incq8…�q9}q:bhU paragraphq;h}q<(h]h]h]h]h"]uh$Kh%hh&]q=h/X€This is a simple demonstration example to setup a RSTP network which is a mode of the mstpd daemon that is provided in the Processors Linux SDK file system. This example setup is done from the Linux command line. Users that require automatic interface, bridge and msptd daemon setup at system initialization will need to do the steps necessary to implement this initialization method.q>…�q?}q@(hh6hh4ubaubcdocutils.nodes line_block qA)�qB}qC(hUhhhh9hU line_blockqDh}qE(h]h]h]h]h"]uh$Kh%hh&]qF(cdocutils.nodes line qG)�qH}qI(hUUindentqJKhhBhh9hh$h}qK(h]h]h]h]h"]uh$Kh%hh&]ubhG)�qL}qM(hX]If you need a background in the bridge utility that Linux supports please refer to this link.qNhJKhhBhh9hh$h}qO(h]h]h]h]h"]uh$K h%hh&]qPh/X]If you need a background in the bridge utility that Linux supports please refer to this link.qQ…�qR}qS(hhNhhLubaubeubh3)�qT}qU(hX2https://wiki.linuxfoundation.org/networking/bridgeqVhhhh9hh;h}qW(h]h]h]h]h"]uh$K h%hh&]qXcdocutils.nodes reference qY)�qZ}q[(hhVh}q\(UrefurihVh]h]h]h]h"]uhhTh&]q]h/X2https://wiki.linuxfoundation.org/networking/bridgeq^…�q_}q`(hUhhZubahU referenceqaubaubhA)�qb}qc(hUhhhh9hhDh}qd(h]h]h]h]h"]uh$Kh%hh&]qe(hG)�qf}qg(hUhJKhhbhh9hh$h}qh(h]h]h]h]h"]uh$Kh%hh&]ubhG)�qi}qj(hX¾The link above documents the kernel brctl utility that creates network bridges and the spanning tree protocol (STP) support provided by the kernel. To go beyond STP requires a user level daemon that will manage the tree topology and changes to that topology. The pre-built kernel binaries and file system do not require changes to use the mstpd daemon. RSTP mode of the mstpd daemon was tested on TI EVMs that have multiple CPSW or PRU ports. Multi-port boards will have dual mac mode enabled for the CPSW as out of the box configurations for TI EVMs. There are additional PRU-ICSS Ethernet ports available on the AM57x class IDK boards. This diagram shows one of the topologies used to test the setup.qkhJKhhbhh9hh$h}ql(h]h]h]h]h"]uh$Kh%hh&]qmh/X¾The link above documents the kernel brctl utility that creates network bridges and the spanning tree protocol (STP) support provided by the kernel. To go beyond STP requires a user level daemon that will manage the tree topology and changes to that topology. The pre-built kernel binaries and file system do not require changes to use the mstpd daemon. RSTP mode of the mstpd daemon was tested on TI EVMs that have multiple CPSW or PRU ports. Multi-port boards will have dual mac mode enabled for the CPSW as out of the box configurations for TI EVMs. There are additional PRU-ICSS Ethernet ports available on the AM57x class IDK boards. This diagram shows one of the topologies used to test the setup.qn…�qo}qp(hhkhhiubaubeubhA)�qq}qr(hUhhhh9hhDh}qs(h]h]h]h]h"]uh$Kh%hh&]qthG)�qu}qv(hUhJKhhqhh9hh$h}qw(h]h]h]h]h"]uh$Kh%hh&]ubaubcdocutils.nodes raw qx)�qy}qz(hX
hhhh9hUrawq{h}q|(UformatXhtmlU xml:spaceq}Upreserveq~h]h]h]h]h"]uh$Kh%hh&]qh/X
q€…�q�}q‚(hUhhyubaubhx)�qƒ}q„(hX-
hhhh9hh{h}q…(UformatXhtmlh}h~h]h]h]h]h"]uh$K!h%hh&]q†h/X-
q‡…�qˆ}q‰(hUhhƒubaubcdocutils.nodes image qŠ)�q‹}qŒ(hX4.. Image:: ../images/Cpsw_rstp_mstpd_topology_1.jpg hhhh9hUimageq�h}qŽ(UuriX.linux/../images/Cpsw_rstp_mstpd_topology_1.jpgq�h]h]h]h]U candidatesq�}q‘U*h�sh"]uh$K&h%hh&]ubhx)�q’}q“(hX
hhhh9hh{h}q”(UformatXhtmlh}h~h]h]h]h]h"]uh$K'h%hh&]q•h/X
q–…�q—}q˜(hUhh’ubaubh3)�q™}qš(hX83 node ring demonstrating port blocking on low cost linkq›hhhh9hh;h}qœ(h]h]h]h]h"]uh$K+h%hh&]q�h/X83 node ring demonstrating port blocking on low cost linkqž…�qŸ}q (hh›hh™ubaubhx)�q¡}q¢(hX
hhhh9hh{h}q£(UformatXhtmlh}h~h]h]h]h]h"]uh$K-h%hh&]q¤h/X
q¥…�q¦}q§(hUhh¡ubaubhx)�q¨}q©(hX
hhhh9hh{h}qª(UformatXhtmlh}h~h]h]h]h]h"]uh$K1h%hh&]q«h/X
q¬…�q­}q®(hUhh¨ubaubhx)�q¯}q°(hX
hhhh9hh{h}q±(UformatXhtmlh}h~h]h]h]h]h"]uh$K5h%hh&]q²h/X
q³…�q´}qµ(hUhh¯ubaubhA)�q¶}q·(hUhhhh9hhDh}q¸(h]h]h]h]h"]uh$K9h%hh&]q¹hG)�qº}q»(hUhJKhh¶hh9hh$h}q¼(h]h]h]h]h"]uh$Kh%hh&]ubaubh3)�q½}q¾(hXƒPlease note that the topology was tested across CPSW only ports, PRU-ICSS Ethernet only ports and a one CPSW and one PRU-ICSS port.q¿hhhh9hh;h}qÀ(h]h]h]h]h"]uh$K;h%hh&]qÁh/XƒPlease note that the topology was tested across CPSW only ports, PRU-ICSS Ethernet only ports and a one CPSW and one PRU-ICSS port.qÂ…�qÃ}qÄ(hh¿hh½ubaubhA)�qÅ}qÆ(hUhhhh9hhDh}qÇ(h]h]h]h]h"]uh$K>h%hh&]qÈ(hG)�qÉ}qÊ(hUhJKhhÅhh9hh$h}qË(h]h]h]h]h"]uh$Kh%hh&]ubhG)�qÌ}qÍ(hX~To set up the environment shown above, first on each board bring up the interfaces that will be used for the bridge with the ifconfig command. Next on each board a bridge must be created and then add in the two interfaces to the bridge. The bridge is then enabled in STP mode. Then as a last configuration step use the mstpctl utility to transition the bridge from STP to RSTP mode.qÎhJKhhÅhh9hh$h}qÏ(h]h]h]h]h"]uh$KDh%hh&]qÐh/X~To set up the environment shown above, first on each board bring up the interfaces that will be used for the bridge with the ifconfig command. Next on each board a bridge must be created and then add in the two interfaces to the bridge. The bridge is then enabled in STP mode. Then as a last configuration step use the mstpctl utility to transition the bridge from STP to RSTP mode.qÑ…�qÒ}qÓ(hhÎhhÌubaubeubhA)�qÔ}qÕ(hUhhhh9hhDh}qÖ(h]h]h]h]h"]uh$KFh%hh&]q×hG)�qØ}qÙ(hUhJKhhÔhh9hh$h}qÚ(h]h]h]h]h"]uh$Kh%hh&]ubaubh3)�qÛ}qÜ(hXNSetup the ports, IP addresses are not used for the Ethernet ports in a bridge.qÝhhhh9hh;h}qÞ(h]h]h]h]h"]uh$KHh%hh&]qßh/XNSetup the ports, IP addresses are not used for the Ethernet ports in a bridge.qà…�qá}qâ(hhÝhhÛubaubhA)�qã}qä(hUhhhh9hhDh}qå(h]h]h]h]h"]uh$KKh%hh&]qæ(hG)�qç}qè(hUhJKhhãhh9hh$h}qé(h]h]h]h]h"]uh$Kh%hh&]ubhG)�qê}që(hXifconfig eth0 upqìhJKhhãhh9hh$h}qí(h]h]h]h]h"]uh$KLh%hh&]qîh/Xifconfig eth0 upqï…�qð}qñ(hhìhhêubaubeubh3)�qò}qó(hXifconfig eth1 upqôhhhh9hh;h}qõ(h]h]h]h]h"]uh$KNh%hh&]qöh/Xifconfig eth1 upq÷…�qø}qù(hhôhhòubaubhA)�qú}qû(hUhhhh9hhDh}qü(h]h]h]h]h"]uh$KPh%hh&]qý(hG)�qþ}qÿ(hUhJKhhúhh9hh$h}r(h]h]h]h]h"]uh$Kh%hh&]ubhG)�r}r(hX<Now create and setup bridge br0 using the brctl application.rhJKhhúhh9hh$h}r(h]h]h]h]h"]uh$KQh%hh&]rh/X<Now create and setup bridge br0 using the brctl application.r…�r}r(hjhjubaubeubhA)�r }r (hUhhhh9hhDh}r (h]h]h]h]h"]uh$KSh%hh&]r (hG)�r }r(hUhJKhj hh9hh$h}r(h]h]h]h]h"]uh$Kh%hh&]ubhG)�r}r(hXbrctl create br0rhJKhj hh9hh$h}r(h]h]h]h]h"]uh$KTh%hh&]rh/Xbrctl create br0r…�r}r(hjhjubaubeubh3)�r}r(hXbrctl addif br0 eth0rhhhh9hh;h}r(h]h]h]h]h"]uh$KVh%hh&]rh/Xbrctl addif br0 eth0r…�r}r(hjhjubaubh3)�r }r!(hXbrctl addif br0 eth1r"hhhh9hh;h}r#(h]h]h]h]h"]uh$KXh%hh&]r$h/Xbrctl addif br0 eth1r%…�r&}r'(hj"hj ubaubh3)�r(}r)(hXifconfig br0 upr*hhhh9hh;h}r+(h]h]h]h]h"]uh$KZh%hh&]r,h/Xifconfig br0 upr-…�r.}r/(hj*hj(ubaubhA)�r0}r1(hUhhhh9hhDh}r2(h]h]h]h]h"]uh$K\h%hh&]r3(hG)�r4}r5(hUhJKhj0hh9hh$h}r6(h]h]h]h]h"]uh$Kh%hh&]ubhG)�r7}r8(hXINow switch the bridge mode from stp to rstp using the mstpctl applicationr9hJKhj0hh9hh$h}r:(h]h]h]h]h"]uh$K^h%hh&]r;h/XINow switch the bridge mode from stp to rstp using the mstpctl applicationr<…�r=}r>(hj9hj7ubaubeubhA)�r?}r@(hUhhhh9hhDh}rA(h]h]h]h]h"]uh$K`h%hh&]rB(hG)�rC}rD(hUhJKhj?hh9hh$h}rE(h]h]h]h]h"]uh$Kh%hh&]ubhG)�rF}rG(hXmstpctl setforcevers br0 rstprHhJKhj?hh9hh$h}rI(h]h]h]h]h"]uh$Kah%hh&]rJh/Xmstpctl setforcevers br0 rstprK…�rL}rM(hjHhjFubaubeubhA)�rN}rO(hUhhhh9hhDh}rP(h]h]h]h]h"]uh$Kch%hh&]rQ(hG)�rR}rS(hUhJKhjNhh9hh$h}rT(h]h]h]h]h"]uh$Kh%hh&]ubhG)�rU}rV(hXNNow look on each platform to verify where the root node is with these commandsrWhJKhjNhh9hh$h}rX(h]h]h]h]h"]uh$Keh%hh&]rYh/XNNow look on each platform to verify where the root node is with these commandsrZ…�r[}r\(hjWhjUubaubeubhA)�r]}r^(hUhhhh9hhDh}r_(h]h]h]h]h"]uh$Kgh%hh&]r`(hG)�ra}rb(hUhJKhj]hh9hh$h}rc(h]h]h]h]h"]uh$Kh%hh&]ubhG)�rd}re(hXmstpctl showbridgerfhJKhj]hh9hh$h}rg(h]h]h]h]h"]uh$Khh%hh&]rhh/Xmstpctl showbridgeri…�rj}rk(hjfhjdubaubeubhA)�rl}rm(hUhhhhhhDh}rn(h]h]h]h]h"]uh$Kh%hh&]ro(hG)�rp}rq(hUhJKhjlhhhh$h}rr(h]h]h]h]h"]uh$Kh%hh&]ubhG)�rs}rt(hUhJKhjlhhhh$h}ru(h]h]h]h]h"]uh$Kh%hh&]ubeubheubhhhhh}rv(h]h]h]h]rwUrstp-with-icss-switch-firmwarerxah"]ryhauh$K h%hh&]rz(h()�r{}r|(hXRSTP with ICSS Switch Firmwarer}hhhhhh,h}r~(h]h]h]h]h"]uh$K h%hh&]rh/XRSTP with ICSS Switch Firmwarer€…�r�}r‚(hj}hj{ubaubh3)�rƒ}r„(hXqWith ICSS switch firmware, RSTP can be supported with L2 forwarding offload on the ICSSs in AM57x IDK platforms.r…hhhh7XCsource/linux/Industrial_Protocols/RSTP_with_Switch_Firmware.rst.incr†…�r‡}rˆbhh;h}r‰(h]h]h]h]h"]uh$Kh%hh&]rŠh/XqWith ICSS switch firmware, RSTP can be supported with L2 forwarding offload on the ICSSs in AM57x IDK platforms.r‹…�rŒ}r�(hj…hjƒubaubh3)�rŽ}r�(hXÍBriefly, in this case, the PRU ethernet driver together with the switch firmware are responsible for creating a forwarding database (FDB) table. MAC address in a frame received on a physical port is learned dynamically and a corresponding entry is created in the FDB table. When frames with a learned MAC address as the destination address is received, it will be cut-through forwarded to the port indicated in the FDB entry directly without involving the host.r�hhhj‡hh;h}r‘(h]h]h]h]h"]uh$Kh%hh&]r’h/XÍBriefly, in this case, the PRU ethernet driver together with the switch firmware are responsible for creating a forwarding database (FDB) table. MAC address in a frame received on a physical port is learned dynamically and a corresponding entry is created in the FDB table. When frames with a learned MAC address as the destination address is received, it will be cut-through forwarded to the port indicated in the FDB entry directly without involving the host.r“…�r”}r•(hj�hjŽubaubh3)�r–}r—(hXTTo set up a RSTP network with ICSS switch firmware, connect 3 AM571x-IDK as follows:r˜hhhj‡hh;h}r™(h]h]h]h]h"]uh$K h%hh&]ršh/XTTo set up a RSTP network with ICSS switch firmware, connect 3 AM571x-IDK as follows:r›…�rœ}r�(hj˜hj–ubaubhx)�rž}rŸ(hX
hhhj‡hh{h}r (UformatXhtmlh}h~h]h]h]h]h"]uh$Kh%hh&]r¡h/X
r¢…�r£}r¤(hUhjžubaubhx)�r¥}r¦(hX-
hhhj‡hh{h}r§(UformatXhtmlh}h~h]h]h]h]h"]uh$Kh%hh&]r¨h/X-
r©…�rª}r«(hUhj¥ubaubhŠ)�r¬}r­(hX3.. Image:: ../images/rstp_with_switch_firmware.jpg hhhj‡hh�h}r®(UuriX-linux/../images/rstp_with_switch_firmware.jpgr¯h]h]h]h]h�}r°U*j¯sh"]uh$Kh%hh&]ubhx)�r±}r²(hX
hhhj‡hh{h}r³(UformatXhtmlh}h~h]h]h]h]h"]uh$Kh%hh&]r´h/X
rµ…�r¶}r·(hUhj±ubaubhA)�r¸}r¹(hUhhhj‡hhDh}rº(h]h]h]h]h"]uh$Kh%hh&]r»hG)�r¼}r½(hX<Example: 3 node ring demonstrating RSTP with switch firmwarer¾hJKhj¸hj‡hh$h}r¿(h]h]h]h]h"]uh$Kh%hh&]rÀh/X<Example: 3 node ring demonstrating RSTP with switch firmwarerÁ…�rÂ}rÃ(hj¾hj¼ubaubaubhx)�rÄ}rÅ(hX
hhhj‡hh{h}rÆ(UformatXhtmlh}h~h]h]h]h]h"]uh$K h%hh&]rÇh/X
rÈ…�rÉ}rÊ(hUhjÄubaubhx)�rË}rÌ(hX
hhhj‡hh{h}rÍ(UformatXhtmlh}h~h]h]h]h]h"]uh$K$h%hh&]rÎh/X
rÏ…�rÐ}rÑ(hUhjËubaubhx)�rÒ}rÓ(hX
hhhj‡hh{h}rÔ(UformatXhtmlh}h~h]h]h]h]h"]uh$K(h%hh&]rÕh/X
rÖ…�r×}rØ(hUhjÒubaubhA)�rÙ}rÚ(hUhhhj‡hhDh}rÛ(h]h]h]h]h"]uh$K,h%hh&]rÜhG)�rÝ}rÞ(hUhJKhjÙhj‡hh$h}rß(h]h]h]h]h"]uh$Kh%hh&]ubaubh3)�rà}rá(hXBoot up the IDKs as follows:râhhhj‡hh;h}rã(h]h]h]h]h"]uh$K.h%hh&]räh/XBoot up the IDKs as follows:rå…�ræ}rç(hjâhjàubaubcdocutils.nodes enumerated_list rè)�ré}rê(hUhhhj‡hUenumerated_listrëh}rì(UsuffixríU.h]h]h]UprefixrîUh]h"]UenumtyperïUarabicrðuh$K0h%hh&]rñ(cdocutils.nodes list_item rò)�ró}rô(hXBoot into uboot prompt. hjéhj‡hU list_itemrõh}rö(h]h]h]h]h"]uh$Nh%hh&]r÷h3)�rø}rù(hXBoot into uboot prompt.rúhjóhj‡hh;h}rû(h]h]h]h]h"]uh$K0h&]rüh/XBoot into uboot prompt.rý…�rþ}rÿ(hjúhjøubaubaubjò)�r}r(hXModify args_mmc as follows: hjéhj‡hjõh}r(h]h]h]h]h"]uh$Nh%hh&]rh3)�r}r(hXModify args_mmc as follows:rhjhj‡hh;h}r(h]h]h]h]h"]uh$K2h&]rh/XModify args_mmc as follows:r …�r }r (hjhjubaubaubeubh3)�r }r (hXº=> setenv args_mmc 'run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype} ti_prueth.pruss1_ethtype=3 ti_prueth.pruss2_ethtype=3'rhhhj‡hh;h}r(h]h]h]h]h"]uh$K4h%hh&]rh/Xº=> setenv args_mmc 'run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype} ti_prueth.pruss1_ethtype=3 ti_prueth.pruss2_ethtype=3'r…�r}r(hjhj ubaubh3)�r}r(hX => saveenvrhhhj‡hh;h}r(h]h]h]h]h"]uh$K6h%hh&]rh/X => saveenvr…�r}r(hjhjubaubjè)�r}r(hUhhhj‡hjëh}r(jíU.UstartrKh]h]h]jîUh]h"]jïjðuh$K8h%hh&]r (jò)�r!}r"(hXBoot IDKs into linux prompt. hjhj‡hjõh}r#(h]h]h]h]h"]uh$Nh%hh&]r$h3)�r%}r&(hXBoot IDKs into linux prompt.r'hj!hj‡hh;h}r((h]h]h]h]h"]uh$K8h&]r)h/XBoot IDKs into linux prompt.r*…�r+}r,(hj'hj%ubaubaubjò)�r-}r.(hX6Make sure the following lines appear in the boot log: hjhj‡hjõh}r/(h]h]h]h]h"]uh$Nh%hh&]r0h3)�r1}r2(hX5Make sure the following lines appear in the boot log:r3hj-hj‡hh;h}r4(h]h]h]h]h"]uh$K:h&]r5h/X5Make sure the following lines appear in the boot log:r6…�r7}r8(hj3hj1ubaubaubeubcdocutils.nodes literal_block r9)�r:}r;(hX›[ 30.617491] prueth pruss1_eth: TI PRU ethernet (type 3) driver initialized [ 31.207474] prueth pruss2_eth: TI PRU ethernet (type 3) driver initializedhhhj‡hU literal_blockr<h}r=(Ulinenosr>‰Ulanguager?Xbashh}h~h]h]h]Uhighlight_argsr@}h]h"]uh$K‰j?Xbashh}h~h]h]h]j@}h]h"]uh$KEh%hh&]r`h/X#!/bin/bash # rstp.sh echo "mstpd" mstpd sleep 1 echo "ifconfig eth2 up" ifconfig eth2 up sleep 1 echo "ifconfig eth3 up" ifconfig eth3 up sleep 1 echo "brctl addbr br0" brctl addbr br0 sleep 1 echo "brctl addif br0 eth2" brctl addif br0 eth2 sleep 1 echo "brctl addif br0 eth3" brctl addif br0 eth3 sleep 1 echo "brctl stp br0 on" brctl stp br0 on sleep 1 echo "mstpctl setforcevers br0 rstp" mstpctl setforcevers br0 rstp sleep 1 echo "ifconfig br0 up" ifconfig br0 up sleep 1 echo "mstpctl showbridge" mstpctl showbridgera…�rb}rc(hUhj]ubaubhA)�rd}re(hUhhhj‡hhDh}rf(h]h]h]h]h"]uh$Kph%hh&]rghG)�rh}ri(hUhJKhjdhj‡hh$h}rj(h]h]h]h]h"]uh$Kh%hh&]ubaubh3)�rk}rl(hX The scriptrmhhhj‡hh;h}rn(h]h]h]h]h"]uh$Krh%hh&]roh/X The scriptrp…�rq}rr(hjmhjkubaubcdocutils.nodes block_quote rs)�rt}ru(hUhhhNhU block_quotervh}rw(h]h]h]h]h"]uh$Nh%hh&]rxjè)�ry}rz(hUh}r{(jíU.h]h]h]jîUh]h"]jïU loweralphar|uhjth&]r}(jò)�r~}r(hXstarts mstpd daemon h}r€(h]h]h]h]h"]uhjyh&]r�h3)�r‚}rƒ(hXstarts mstpd daemonr„hj~hj‡hh;h}r…(h]h]h]h]h"]uh$Kth&]r†h/Xstarts mstpd daemonr‡…�rˆ}r‰(hj„hj‚ubaubahjõubjò)�rŠ}r‹(hX/crates a bridge interface br0 on eth2 and eth3 h}rŒ(h]h]h]h]h"]uhjyh&]r�h3)�rŽ}r�(hX.crates a bridge interface br0 on eth2 and eth3r�hjŠhj‡hh;h}r‘(h]h]h]h]h"]uh$Kvh&]r’h/X.crates a bridge interface br0 on eth2 and eth3r“…�r”}r•(hj�hjŽubaubahjõubjò)�r–}r—(hXenables rstp on the bridge br0 h}r˜(h]h]h]h]h"]uhjyh&]r™h3)�rš}r›(hXenables rstp on the bridge br0rœhj–hj‡hh;h}r�(h]h]h]h]h"]uh$Kxh&]ržh/Xenables rstp on the bridge br0rŸ…�r }r¡(hjœhjšubaubahjõubjò)�r¢}r£(hX(shows some information about the bridge h}r¤(h]h]h]h]h"]uhjyh&]r¥h3)�r¦}r§(hX'shows some information about the bridger¨hj¢hj‡hh;h}r©(h]h]h]h]h"]uh$Kzh&]rªh/X'shows some information about the bridger«…�r¬}r­(hj¨hj¦ubaubahjõubehjëubaubjè)�r®}r¯(hUhhhj‡hjëh}r°(jíU.jKh]h]h]jîUh]h"]jïjðuh$K|h%hh&]r±jò)�r²}r³(hX4Issue command to show port information on each IDK: hj®hj‡hjõh}r´(h]h]h]h]h"]uh$Nh%hh&]rµh3)�r¶}r·(hX3Issue command to show port information on each IDK:r¸hj²hj‡hh;h}r¹(h]h]h]h]h"]uh$K|h&]rºh/X3Issue command to show port information on each IDK:r»…�r¼}r½(hj¸hj¶ubaubaubaubj9)�r¾}r¿(hX7$ mstpctl showport br0 eth2 $ mstpctl showport br0 eth3hhhj‡hj<h}rÀ(j>‰j?Xconsoleh}h~h]h]h]j@}h]h"]uh$K~h%hh&]rÁh/X7$ mstpctl showport br0 eth2 $ mstpctl showport br0 eth3rÂ…�rÃ}rÄ(hUhj¾ubaubh3)�rÅ}rÆ(hXsample output:rÇhhhj‡hh;h}rÈ(h]h]h]h]h"]uh$Kƒh%hh&]rÉh/Xsample output:rÊ…�rË}rÌ(hjÇhjÅubaubj9)�rÍ}rÎ(hXKeth2 8.001 forw 8.000.70:FF:76:1C:16:EF 8.000.70:FF:76:1C:16:EF 8.001 Desghhhj‡hj<h}rÏ(j>‰j?Xconsoleh}h~h]h]h]j@}h]h"]uh$K…h%hh&]rÐh/XKeth2 8.001 forw 8.000.70:FF:76:1C:16:EF 8.000.70:FF:76:1C:16:EF 8.001 DesgrÑ…�rÒ}rÓ(hUhjÍubaubh3)�rÔ}rÕ(hXwhererÖhhhj‡hh;h}r×(h]h]h]h]h"]uh$K‰h%hh&]rØh/XwhererÙ…�rÚ}rÛ(hjÖhjÔubaubh3)�rÜ}rÝ(hXforw is the port staterÞhhhj‡hh;h}rß(h]h]h]h]h"]uh$K‹h%hh&]ràh/Xforw is the port staterá…�râ}rã(hjÞhjÜubaubh3)�rä}rå(hXDesg is the port roleræhhhj‡hh;h}rç(h]h]h]h]h"]uh$K�h%hh&]rèh/XDesg is the port roleré…�rê}rë(hjæhjäubaubh3)�rì}rí(hXœNote 1: In the test setup shown above , the port state and port role are shown in (state, role), eg. (f,R) - port state is forwarding and port role is Root.rîhhhj‡hh;h}rï(h]h]h]h]h"]uh$K�h%hh&]rðh/XœNote 1: In the test setup shown above , the port state and port role are shown in (state, role), eg. (f,R) - port state is forwarding and port role is Root.rñ…�rò}ró(hjîhjìubaubh3)�rô}rõ(hXìNote 2: The (state, role) pairs may show on different DUTs but there must be a discard state appears. This discard state is a result of the RSTP protocol which breaks the cyclic connection into a tree (in this case, a serial connection.röhhhj‡hh;h}r÷(h]h]h]h]h"]uh$K“h%hh&]røh/XìNote 2: The (state, role) pairs may show on different DUTs but there must be a discard state appears. This discard state is a result of the RSTP protocol which breaks the cyclic connection into a tree (in this case, a serial connection.rù…�rú}rû(hjöhjôubaubjè)�rü}rý(hUhhhj‡hjëh}rþ(jíU.jKh]h]h]jîUh]h"]jïjðuh$K™h%hh&]rÿ(jò)�r}r(hX–In step 6, make sure the cyclic connection is broken by a discard state in one of the ports of one of the DUTs. In setup in step 1, it is Dut2.eth2. hjühj‡hjõh}r(h]h]h]h]h"]uh$Nh%hh&]r(h3)�r}r(hXoIn step 6, make sure the cyclic connection is broken by a discard state in one of the ports of one of the DUTs.rhjhj‡hh;h}r(h]h]h]h]h"]uh$K™h&]rh/XoIn step 6, make sure the cyclic connection is broken by a discard state in one of the ports of one of the DUTs.r …�r }r (hjhjubaubh3)�r }r (hX$In setup in step 1, it is Dut2.eth2.rhjhj‡hh;h}r(h]h]h]h]h"]uh$Kœh&]rh/X$In setup in step 1, it is Dut2.eth2.r…�r}r(hjhj ubaubeubjò)�r}r(hX¹configure an IP address on br0 on any one DUT and another IP address of the same subnet on another DUT. E.g. on Dut1: $ ifconfig br0 192.168.2.72 on Dut3: $ ifconfig br0 192.168.2.71 hjühj‡hjõh}r(h]h]h]h]h"]uh$Nh%hh&]r(h3)�r}r(hXlconfigure an IP address on br0 on any one DUT and another IP address of the same subnet on another DUT. E.g.rhjhj‡hh;h}r(h]h]h]h]h"]uh$Kžh&]rh/Xlconfigure an IP address on br0 on any one DUT and another IP address of the same subnet on another DUT. E.g.r…�r}r(hjhjubaubh3)�r }r!(hX$on Dut1: $ ifconfig br0 192.168.2.72r"hjhj‡hh;h}r#(h]h]h]h]h"]uh$K¡h&]r$h/X$on Dut1: $ ifconfig br0 192.168.2.72r%…�r&}r'(hj"hj ubaubh3)�r(}r)(hX$on Dut3: $ ifconfig br0 192.168.2.71r*hjhj‡hh;h}r+(h]h]h]h]h"]uh$K¤h&]r,h/X$on Dut3: $ ifconfig br0 192.168.2.71r-…�r.}r/(hj*hj(ubaubeubjò)�r0}r1(hX(Make sure ping works fron Dut1 to Dut3. hjühj‡hjõh}r2(h]h]h]h]h"]uh$Nh%hh&]r3h3)�r4}r5(hX'Make sure ping works fron Dut1 to Dut3.r6hj0hj‡hh;h}r7(h]h]h]h]h"]uh$K§h&]r8h/X'Make sure ping works fron Dut1 to Dut3.r9…�r:}r;(hj6hj4ubaubaubjò)�r<}r=(hXOUnplug any of the 3 cables and make sure the ping continues to work each time. hjühXZinternal padding after source/linux/Industrial_Protocols/RSTP_with_Switch_Firmware.rst.incr>hjõh}r?(h]h]h]h]h"]uh$Nh%hh&]r@h3)�rA}rB(hXNUnplug any of the 3 cables and make sure the ping continues to work each time.rChj<hj‡hh;h}rD(h]h]h]h]h"]uh$K©h&]rEh/XNUnplug any of the 3 cables and make sure the ping continues to work each time.rF…�rG}rH(hjChjAubaubaubeubeubhj‡hUsystem_messagerIh}rJ(h]UlevelKh]h]Usourcehh]h"]UlineKUtypeUINFOrKuh$K8h%hh&]rLh3)�rM}rN(hX:Enumerated list start value not ordinal-1: "3" (ordinal 3)h}rO(h]h]h]h]h"]uhh h&]rPh/X:Enumerated list start value not ordinal-1: "3" (ordinal 3)rQ…�rR}rS(hUhjMubahh;ubaubh )�rT}rU(hUhhhj‡hjIh}rV(h]UlevelKh]h]Usourcehh]h"]UlineKUtypejKuh$KCh%hh&]rWh3)�rX}rY(hX:Enumerated list start value not ordinal-1: "5" (ordinal 5)h}rZ(h]h]h]h]h"]uhjTh&]r[h/X:Enumerated list start value not ordinal-1: "5" (ordinal 5)r\…�r]}r^(hUhjXubahh;ubaubh )�r_}r`(hUhhhj‡hjIh}ra(h]UlevelKh]h]Usourcehh]h"]UlineKUtypejKuh$K|h%hh&]rbh3)�rc}rd(hX:Enumerated list start value not ordinal-1: "6" (ordinal 6)h}re(h]h]h]h]h"]uhj_h&]rfh/X:Enumerated list start value not ordinal-1: "6" (ordinal 6)rg…�rh}ri(hUhjcubahh;ubaubh )�rj}rk(hUhhhj‡hjIh}rl(h]UlevelKh]h]Usourcehh]h"]UlineKUtypejKuh$K™h%hh&]rmh3)�rn}ro(hX:Enumerated list start value not ordinal-1: "7" (ordinal 7)h}rp(h]h]h]h]h"]uhjjh&]rqh/X:Enumerated list start value not ordinal-1: "7" (ordinal 7)rr…�rs}rt(hUhjnubahh;ubaubeUcurrent_sourceruNU decorationrvNUautofootnote_startrwKUnameidsrx}ry(hh!hjxuh&]rzhahUU transformerr{NU footnote_refsr|}r}Urefnamesr~}rUsymbol_footnotesr€]r�Uautofootnote_refsr‚]rƒUsymbol_footnote_refsr„]r…U citationsr†]r‡h%hU current_linerˆNUtransform_messagesr‰]rŠUreporterr‹NUid_startrŒKU autofootnotesr�]rŽU citation_refsr�}r�Uindirect_targetsr‘]r’Usettingsr“(cdocutils.frontend Values r”or•}r–(Ufootnote_backlinksr—KUrecord_dependenciesr˜NU rfc_base_urlr™Uhttps://tools.ietf.org/html/ršU tracebackr›ˆUpep_referencesrœNUstrip_commentsr�NU toc_backlinksržUentryrŸU language_coder Uenr¡U datestampr¢NU report_levelr£KU _destinationr¤NU halt_levelr¥KU strip_classesr¦Nh,NUerror_encoding_error_handlerr§Ubackslashreplacer¨Udebugr©NUembed_stylesheetrª‰Uoutput_encoding_error_handlerr«Ustrictr¬U sectnum_xformr­KUdump_transformsr®NU docinfo_xformr¯KUwarning_streamr°NUpep_file_url_templater±Upep-%04dr²Uexit_status_levelr³KUconfigr´NUstrict_visitorrµNUcloak_email_addressesr¶ˆUtrim_footnote_reference_spacer·‰Uenvr¸NUdump_pseudo_xmlr¹NUexpose_internalsrºNUsectsubtitle_xformr»‰U source_linkr¼NUrfc_referencesr½NUoutput_encodingr¾Uutf-8r¿U source_urlrÀNUinput_encodingrÁU utf-8-sigrÂU_disable_configrÃNU id_prefixrÄUU tab_widthrÅKUerror_encodingrÆUUTF-8rÇU_sourcerÈhUgettext_compactrɈU generatorrÊNUdump_internalsrËNU smart_quotesr̉U pep_base_urlrÍU https://www.python.org/dev/peps/rÎUsyntax_highlightrÏUlongrÐUinput_encoding_error_handlerrÑj¬Uauto_id_prefixrÒUidrÓUdoctitle_xformrÔ‰Ustrip_elements_with_classesrÕNU _config_filesrÖ]Ufile_insertion_enabledr׈U raw_enabledrØKU dump_settingsrÙNubUsymbol_footnote_startrÚKUidsrÛ}rÜ(h!hjxhuUsubstitution_namesrÝ}rÞhh%h}rß(h]h]h]Usourcehh]h"]uU footnotesrà]ráUrefidsrâ}rãub.