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

Build uplink router #2765

Open
Tracked by #2763
thomas-bc opened this issue Jun 7, 2024 · 4 comments
Open
Tracked by #2763

Build uplink router #2765

thomas-bc opened this issue Jun 7, 2024 · 4 comments
Assignees

Comments

@thomas-bc
Copy link
Collaborator

F´ Version
Affected Component Router

Feature Description

Following #2763, build a router that sits after the Deframer and routes F´ packets to either FileUplink or CommandDispatcher

@thomas-bc thomas-bc self-assigned this Jun 7, 2024
@LeStarch
Copy link
Collaborator

@thomas-bc done?

@thomas-bc
Copy link
Collaborator Author

@LeStarch the PR is open here: #2900

We should keep this issue open until we have merged that, which will require to add more tests to both components.

Also Josh had made the suggestion a while back that Router was quite a generic name. Thoughts on renaming to UplinkRouter, or any other suggestion?

@thomas-bc thomas-bc linked a pull request Sep 30, 2024 that will close this issue
1 task
@LeStarch
Copy link
Collaborator

UplinkRouter makes more sense!

@matt392code
Copy link
Contributor

Suggested design for the UplinkRouter:
uplink-router.txt

Key design points:

  1. Packet Type Detection:
  • Router inspects incoming packet headers to determine type
  • Uses clean separation between file and command packet handling
  • Maintains distinct output ports for each packet type
  1. Error Handling:
  • Tracks dropped packets and routing statistics
  • Reports routing errors through event system
  • Preserves original packet data for debugging
  1. Interface Compatibility:
  • Uses Fw::Buffer for file packets (matching FileUplink)
  • Uses Fw::ComBuffer for commands (matching CmdDispatcher)
  • Maintains proper port types for each destination
  1. Performance Considerations:
  • Minimal copying of packet data
  • Quick header inspection for routing decisions
  • Efficient error reporting

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants