How to verify code runs under the FMS?

This came up in a thread about writing a text file on the cRIO and I didn’t want to derail that conversation. I’m really curious about how teams test their custom network code under FMS-like conditions. Does everybody just do a code review, maybe watch it with a traffic sniffer, and then pray?

The rules are clear and the FMS white paper is excellent, but I can imagine lots of ways a custom communication scheme could break. The most likely problem is accidental violation of the rules that a team doesn’t catch until they run on the FMS. Other problems are UDP fragmentation, reordering, higher latency, or lower bandwidth.

My advice was to stick with the provided tools until that doesn’t work.

How do you verify something works on the FMS?

Practice Day on the real field at the event is the most important and accurate testing you can do, and the practice field will not have the same setup as the real field.

The FRC Bridge Configuration Utility sets up the DLink to emulate at home the 7Mb/s bandwidth limitation of the field, as well as the Quality of Service prioritization of command packets over video or other user data packets.

The port and VPN restrictions can be checked through Wireshark, but it’s possible to misunderstand or miss restricting violations visually, so the real field is the best teacher.

Things teams take for granted at home, like running Netconsole, won’t work on the real field because the port is blocked.