Skip to content
This repository was archived by the owner on Jan 18, 2026. It is now read-only.

repeater: Move post-ping handling into separate states - #2823

Open
occheung wants to merge 1 commit into
m-labs:masterfrom
occheung:release-rep-wait
Open

repeater: Move post-ping handling into separate states#2823
occheung wants to merge 1 commit into
m-labs:masterfrom
occheung:release-rep-wait

Conversation

@occheung

Copy link
Copy Markdown
Contributor

Bug Fix

Chained satellites setup may fail DRTIO initialization due to satellites not generating DRTIO response in time. This is caused by satellites' blocking DRTIO initialization process. This PR fixes this behavior by dividing the initialization process after ping into individual states of the FSM, which interleaves the rest of the initialization process (i.e. everything after ping) with upstream AUX handling.

Issue

After powering up all Kaslis, the following DRTIO initialization handshake may happen.

  MASTER           SAT1            SAT2
    | ----ECHO----> | ----ECHO----> |   Device pings their downstream
    |     ....      |     ....      |
    | ----ECHO----> | ----ECHO----> |   SAT2 sees ECHO
    |               | <---REPLY---- |
    | ----ECHO----> |               |
    |     ....      |               |
    | ----ECHO----> |               |   SAT1 sees ECHO
    | <---REPLY---- |               |   T+0, MASTER clears packets immediate upon receipt for 200ms (T+200ms)
    |               |     ....      |   SAT1 does the rest of the handshake with SAT2
    |               |     ....      |   T+200ms, MASTER stops clearing packets
    |               |     ....      |   SAT1 completed the handshake with SAT2
    | <---REPLY---- |     ....      |   SAT1 sends duplicate REPLY due to the queued up ECHO

Note: ECHO and REPLY stands for EchoRequest and EchoReply packets respectively.

MASTER will not expect the duplicate EchoReply packet after T+200ms, hence aborting the handshake. Link is not established between MASTER and SAT1. Satmans' blocking downstream handshake causes master to not receive timely response from satellites.

Test

Setup: RoutingTable { 0: 0; 1: 1 0; 2: 1 1 0; }, all Kasli v2.0
DRTIO links are established from master to all satellites should transceiver link ups be detected. Logs can be retrieved from satellites.

This patch should be applied to release-8 as well.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant