oxidecomputer / oxidecomputer/dendrite
Need solution to talk to sketchy transceivers
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 20
- Forks
- 3
- Avg merge
- 3d 11h
- Merged PRs (30d)
- 4
Description
Originally filed by @Aaron-Hartwig as https://github.com/oxidecomputer/dendrite-archived/issues/1090
We have some cheap, crappy DACs in the office that will frequently misbehave. This manifests quite often (like coin flip odds, maybe even more often than not) and the symptom would seem to be that the module holds SDA low for the remainder of the transaction. This means we end up reading a bunch of zeros that then make their way back up to dendrite and get trimmed off. Some examples of our repeated stumbling over this here, here, and more recently https://github.com/oxidecomputer/transceiver-control/issues/343#issue-2875894985.
We've only even seen this behavior on these particular modules and it trips folks up unnecessarily while they're working on other things. I plan to replace these DACs with good transceivers and fiber to alleviate the issue.
However, these DACs largely seem to work otherwise and we should probably figure out a way to deal with these sketchy modules, perhaps by just reading out a single byte (or maybe a couple bytes, since there are 2-byte fields) at a time and getting everything we need that way. I think the right course of action here would be to add in special Read messages that would tell the SP/FPGA to get all the byte we need just in the slower manner. A patronizing-read, if you will.
Anyway, just opening this for tracking.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the linked dendrite and transceiver-control discussions, then trace how reads are handled between the SP/FPGA and the affected DACs. Done means the sketchy modules can be read reliably without returning trimmed zero data, with the required behavior validated against the reported failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- embedded-iot, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100