[INSTRM-907] Controller FPGA code cannot handle commands sent over multiple network packets Created: 21/Feb/20  Updated: 17/Jun/22  Resolved: 24/Mar/20

Status: Done
Project: Instrument control development
Component/s: ics_mps_fpga
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Critical
Reporter: cloomis Assignee: cloomis
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates
relates to INSTRM-1630 Apply INSTRM-907 TCP packet merging t... In Progress

 Description   

The command parser for the cobra FPGA does not wait for new TCP traffic to arrive and be queued in order to complete receiving a command of a known length. After the first (or some) packet has been consumed,  the parser sees no data and drops the command. 

In addition, it does not return an error packet (which are defined in the protocol).

I have a concise tcpdump file for this, which I'll annotate and attach.

At first glance, the fixes are pretty simple, though I think we should look at the (small) code a bit more carefully: there are other infelicities. Note that the code in question is in the C part of the image, not the FPGA part.

While doing this, I suggest we fix INSTRM-464 and add a version command.

The code is documented to have been built with Vivado 2017.2. That is still available, but newer versions are probably fine: Xilinx is in the business of stability.

 

 



 Comments   
Comment by cloomis [ 24/Mar/20 ]

Merged at 187471a, tagged 2.0.0

This includes a crude INSTALL.md, the C code changes, and the .o and .elf binaries. It also includes a new final download.bit file for the hardware layout, which was not in the original repo.

This does not include all the other changes, which came from rebuilding the intermediate and final .bit files. I am not quite sure what to do about those. Nearly all are intermediate files which I think can be removed from the repo, at the cost of requiring a full regeneration of the FGPA layout if we ever need to rebuild.

Generated at Sat Feb 10 16:29:52 JST 2024 using Jira 8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b.