Install
Build & Execute
USB (SDSC)
USB usage for interfacing the board you want to interact with
cargo run --bin demo_handler_usb
UDP (Andy)
TCP/UDP usage for interfacing the simulator
cargo run --bin demo_handler_udp
open an additional terminal to display a UDP echo server at port 8100, as demo handler expects an echo device
socat -v PIPE udp6-recvfrom:8100,fork
Analysis with wireshark
Wireshark is a tool that helps you visualize, track, and analyze packets transmitted via network interfaces.
Wireshark Preparation
Install & Execute with Privileges
Install (in WSL/Linux)
sudo apt update && sudo apt install wireshark
Open it with sudo privileges (or make it part of the group which only applies after a proper reboot of the Linux)
sudo adduser <username> wireshark # add user to group
sudo wireshark
Setup Usability
GUI
- open settings > Edit > Preferences > Appearance > Layout
- select Pane 3 : Packet Diagram > Ok
- this will display a clickable structure of the packet diagram you work with and is more intuitive than the packet bytes.
- it allows you to orient yourself easier
Filter
- we only look for our messages. UDP Device Handler Port (aka "OBC") is
8311and the simulator model at8100. Therefore we filter
udp.port == 8311 or udp.port == 8100
- to create a button, click right of the filter field on the plus, add the same text there and give the button a name
Execute
Checklist
- 3 Linux CLIs
- set up wireshark
Steps
- a shell in which to open wireshark. Please ensure, if you use WSL that you launch the Wireshark which you've installed inside WSL, as the Windows install won't see the traffic within the WSL.
sudo wireshark
- select
loopback0interface (tested on WSL) - apply filter
- a shell from which to start socat
socat -v PIPE udp6-recvfrom:8100,fork
- a shell from which to execute the handler
cargo run --bin demo_handler_usb
You should see packages in the wireshark GUI.
FAQ
why are no packets displayed?
- did you open the correct wireshark?
- did you alter the ports?
- did you start
socat?
what is device telecommand?
this is a prototype. It does not differentiate between DeviceTelecommand and DeviceCommand assuming we hand the DeviceCommands through as if the telecommand you know from the lecture as "action command" would have the syntax of the device command. A device telecommand is a subset of telecommands that are the device-specific commands
- TC
- Ping (PUS 1)
- Mode (PUS 200 user-defined)
- DeviceTc (analogue PUS8 user-defined)