<!-- 
RSS generated by JIRA (8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b) at Sat Feb 10 16:37:45 JST 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>PFS-JIRA</title>
    <link>https://pfspipe.ipmu.jp/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.3.4</version>
        <build-number>803005</build-number>
        <build-date>13-09-2019</build-date>
    </build-info>


<item>
            <title>[INSTRM-1630] Apply INSTRM-907 TCP packet merging to the MPS command headers</title>
                <link>https://pfspipe.ipmu.jp/jira/browse/INSTRM-1630</link>
                <project id="10300" key="INSTRM">Instrument control development</project>
                    <description>&lt;p&gt;In &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/browse/INSTRM-907&quot; title=&quot;Controller FPGA code cannot handle commands sent over multiple network packets&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INSTRM-907&quot;&gt;&lt;del&gt;INSTRM-907&lt;/del&gt;&lt;/a&gt; I added a buffering mechanism to try hard to merge commands split over multiple TCP packets (the Xilinx TCP stack treats the TCP stream as a stream of packets, not bytes). But I did not apply that to the command header. We are seeing split 8-byte header packets at Subaru, and need to protect against them.&lt;/p&gt;

&lt;p&gt;Might be slightly trickier than the &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/browse/INSTRM-907&quot; title=&quot;Controller FPGA code cannot handle commands sent over multiple network packets&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INSTRM-907&quot;&gt;&lt;del&gt;INSTRM-907&lt;/del&gt;&lt;/a&gt; work but not much.&lt;/p&gt;</description>
                <environment></environment>
        <key id="22826">INSTRM-1630</key>
            <summary>Apply INSTRM-907 TCP packet merging to the MPS command headers</summary>
                <type id="3" iconUrl="https://pfspipe.ipmu.jp/jira/secure/viewavatar?size=xsmall&amp;avatarId=10518&amp;avatarType=issuetype">Task</type>
                                            <priority id="10000" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/priorities/medium.svg">Normal</priority>
                        <status id="3" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/statuses/inprogress.png" description="This issue is being actively worked on at the moment by the assignee.">In Progress</status>
                    <statusCategory id="4" key="indeterminate" colorName="yellow"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="cloomis">cloomis</assignee>
                                    <reporter username="cloomis">cloomis</reporter>
                        <labels>
                            <label>EngRun</label>
                    </labels>
                <created>Fri, 17 Jun 2022 05:05:44 +0000</created>
                <updated>Fri, 1 Sep 2023 16:13:08 +0000</updated>
                                                                            <component>ics_mps_fpga</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                <comments>
                            <comment id="31048" author="cloomis" created="Fri, 17 Jun 2022 06:42:03 +0000"  >&lt;p&gt;This change needs to be made because TCP never guarantees boundaries within the byte stream, and the FPGA cannot expect them.&lt;/p&gt;

&lt;p&gt;But it is peculiar that the actors-ics VM is sending more such data than we saw at CIT or ASRD. One non-disruptive example is both repeatable and peculiar. When sending back-to-back HK commands for all 84 boards, in the second such command set the 43rd board request packet is split into a 6- and a 2-byte packet. This is after 641*N packets and more interestingly, when crossing the N*1024 per-stream TCP sequence number. Odd, but that did repeat three times. &lt;/p&gt;

&lt;p&gt;I can check, but it may well be that these (legal and OK) TCP fragmentations always happen at the 1024*N boundaries, but that the &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/browse/INSTRM-907&quot; title=&quot;Controller FPGA code cannot handle commands sent over multiple network packets&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INSTRM-907&quot;&gt;&lt;del&gt;INSTRM-907&lt;/del&gt;&lt;/a&gt; work fixed them in nearly all cases. Some quirk about how we are commanding  the cobras causes more headers to be fragmented.&lt;/p&gt;

&lt;p&gt;I&apos;ll play with the VM OS sysctl knobs to see if I can perturb things. And can imagine a peephole on the FPGA command stream to insert dummy commands over the 1024*N byte boundaries.&lt;/p&gt;</comment>
                            <comment id="34102" author="cloomis" created="Sun, 23 Jul 2023 08:12:44 +0000"  >&lt;p&gt;Bump.&lt;/p&gt;

&lt;p&gt;The last move in /data/MCS/20230722_009 ended with an FPGA ERROR 10. This is an error which I added when doing the &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/browse/INSTRM-907&quot; title=&quot;Controller FPGA code cannot handle commands sent over multiple network packets&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INSTRM-907&quot;&gt;&lt;del&gt;INSTRM-907&lt;/del&gt;&lt;/a&gt; work, and which indicates that the command parser cannot get a full header. So I think this is the same problem.&lt;/p&gt;</comment>
                            <comment id="34103" author="cloomis" created="Sun, 23 Jul 2023 08:14:27 +0000"  >&lt;p&gt;Also, register error code 10 in the fpgaProtocol decoder as &quot;EMPTY COMMAND HEADER&quot;&lt;/p&gt;</comment>
                            <comment id="34104" author="cloomis" created="Sun, 23 Jul 2023 10:17:13 +0000"  >&lt;p&gt;Code changes pushed. Need to get access to a Kintex 705 online at Subaru to test, along with a USB-connected PC (Linux or Windows) running some reasonable version of the Vivado SDK (just the command-line SDK needed). See my notes at &lt;a href=&quot;https://github.com/Subaru-PFS/ics_mps_fpga/blob/master/INSTALL.md&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://github.com/Subaru-PFS/ics_mps_fpga/blob/master/INSTALL.md&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="34265" author="cloomis" created="Wed, 9 Aug 2023 23:09:38 +0000"  >&lt;p&gt;One of the spare KC705s has been connected to a Linux box in Hilo, and the new code uploaded (from a remote development system). I still need to run some tests just with that system. &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://pfspipe.ipmu.jp/jira/secure/ViewProfile.jspa?name=hiro&quot; class=&quot;user-hover&quot; rel=&quot;hiro&quot;&gt;Yoshida, Hiroshige&lt;/a&gt; will connect the us-mcs computer to the real FPGA USB port, so we can update that one in the same way.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="14222">INSTRM-907</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10500" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|02qpjd:00r20060i200186403r7i36w</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>