Thread Links | Date Links | ||||
---|---|---|---|---|---|
Thread Prev | Thread Next | Thread Index | Date Prev | Date Next | Date Index |
Hello Steffen, I agree with you, the commit_timer is affected by the very same problem. The fix is also the same: move the “start commit_timer” sentence to the PENDING state. Again, it’s the recirculating arc in the PENDING state that ensures the timer is started only when entering the WAIT_MAC state. As Richard Feynman used to say, “same equations, same solutions” 😊 Thank you very much for noticing this. Kind Regards, Piergiorgio From: Graber Steffen <sgraber@xxxxxxxxxxxxxxxxxxxx> Hi Pier, agreeing with your explanation below, I think we also need to move the “start commit_timer” from the “WAIT_MAC” state up to the “PENDING” state for the same reason. Thanks. Regards, Steffen Denken Sie bitte an die Umwelt und prüfen Sie, ob diese E-Mail wirklich ausgedruckt werden muss. SocialMedia2014 Pepperl+Fuchs AG, Mannheim Von: Piergiorgio Beruto [mailto:piergiorgio.beruto@xxxxxxxxxxxxxx] Hello 802.3cg, I am submitting a change to Figure 148-4, to fix a minor bug. The fix may look strange, because of how 802.3 state diagrams operate, so I would like to explain it here. - The issue relates to the timer in the DELAY_PENDING state in Figure 148-4. - In Figure 148-4 the DELAY_PENDING state is supposed to make the state diagram wait for a specified amount of time (pending_timer). - In the meantime the TXD and TX_ER signals need to be refreshed as soon as the tx_cmd_sync variable is updated, thus the need of the “ELSE” recirculating arc. - However, the recirculating arc also causes the “start pending_timer” statement to be re-executed, which according to the timers semantic, results in the timer to be reset. - This is obviously not the intended behavior as resetting the timer forever would result in a deadlock (no way out of DELAY_PENDING state). The solution is to move the “start pending_timer” statement from the DELAY_PENDING state to the COLLIDE state. Because the COLLIDE state has a similar “ELSE” recirculating arc, the pending_timer will only be released from reset upon exit from COLLIDE on the (first) entry to DELAY_PENDING, properly starting the timer. I realize that after this fix, a reader which either does not read the diagram carefully or who’s not used to the state diagram language, may fall into the trap of believing the timer has to be started when entering the COLLIDE state, but this is not the case. I hope this e-mail helps clarifying this. Note: this mail is a re-send of a previous one that yesterday for some reason the reflector didn't bounce. Kind Regards, Piergiorgio To unsubscribe from the STDS-802-3-10SPE list, click the following link: https://listserv.ieee.org/cgi-bin/wa?SUBED1=STDS-802-3-10SPE&A=1
Important Information: To unsubscribe from the STDS-802-3-10SPE list, click the following link: https://listserv.ieee.org/cgi-bin/wa?SUBED1=STDS-802-3-10SPE&A=1 To unsubscribe from the STDS-802-3-10SPE list, click the following link: https://listserv.ieee.org/cgi-bin/wa?SUBED1=STDS-802-3-10SPE&A=1 |