Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

large File Uplink fails due to PacketOutOfOrder #1265

Closed
sheershak-agarwal opened this issue Feb 8, 2022 · 5 comments
Closed

large File Uplink fails due to PacketOutOfOrder #1265

sheershak-agarwal opened this issue Feb 8, 2022 · 5 comments
Labels
bug High Priority High Priority issue that needs to be resolved. need-to-reproduce F´  developers need to reproduce.

Comments

@sheershak-agarwal
Copy link

F´ Version v2.0.0 and later
Affected Component FileUplink

Problem Description

When uplinking a big file(>1MB), f' throws PacketOutOfOrder.

Example Events:
022-02-08T03:58:03.286Z | 0x7ff | fileUplink.PacketOutOfOrder | WARNING_HI | Received packet 49 after packet 34
2022-02-08T03:58:03.304Z | 0x7ff | fileUplink.PacketOutOfOrder | WARNING_HI | Received packet 54 after packet 49

How to Reproduce

  1. Changed Topology.cpp QUEUE_SIZE so that f` can receive large files.
enum
{
  UPLINK_BUFFER_STORE_SIZE = 3000,
  UPLINK_BUFFER_QUEUE_SIZE = 25000,
  UPLINK_BUFFER_MGR_ID = 200
};
  1. Try uplinking large files over the network.

Expected Behavior

FileUplink should be able to upload files without losing packets.
Maybe put a delay in GDS while sending files or make changes in fprime to request for missed packets or account for out of order packets.

Related to nasa/fprime-gds#43

@timcanham
Copy link
Collaborator

You mentioned there were also asserts. Can you post them as well? I'm guessing there was a queue overflow.

@sheershak-agarwal
Copy link
Author

sheershak-agarwal commented Feb 8, 2022

Assert file "/home/sheershak/F-Prime/App/build-fprime-automatic-raspberrypi/F-Prime/Svc/FileUplink/FileUplinkComponentAc.cpp": Line: 1757 8
Assert file "/home/sheershak/F-Prime/App/build-fprime-automatic-raspberrypi/F-Prime/Svc/FileUplink/FileUplinkComponentAc.cpp": Line: 1757 8
Assert file "/home/sheershak/F-Prime/App/build-fprime-automatic-raspberrypi/F-Prime/Svc/FileUplink/FileUplinkComponentAc.cpp": Line: 1757 8
Assert file "/home/sheershak/F-Prime/App/build-fprime-automatic-raspberrypi/F-Prime/Svc/FileUplink/FileUplinkComponentAc.cpp": Line: 1757 8

@LeStarch LeStarch added the High Priority High Priority issue that needs to be resolved. label Mar 23, 2022
@LeStarch
Copy link
Collaborator

LeStarch commented Apr 5, 2022

May need to add a throttling mechanism in the GDS as this is likely an overflow of incoming packets.

@timcanham
Copy link
Collaborator

At one point we had discussed the idea of flow control on interfaces that could support it, e.g. network. The network "radio" ACKs each uplinked file packet, and the ground won't send the next until it sees the ACK.

@LeStarch LeStarch added the need-to-reproduce F´  developers need to reproduce. label Nov 29, 2023
@LeStarch
Copy link
Collaborator

LeStarch commented Apr 1, 2024

This problem seems to be driven by a queue overflowing (error 8 above). The best fix would be to increase the file uplink queue size. We could also make a discussion to talk about what to do when the radio is substantially faster than file uplink.

@LeStarch LeStarch closed this as completed Apr 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug High Priority High Priority issue that needs to be resolved. need-to-reproduce F´  developers need to reproduce.
Projects
None yet
Development

No branches or pull requests

3 participants