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

Teach test::Proxy to send packets in reverse direction #772

Open
gavv opened this issue Jul 30, 2024 · 8 comments
Open

Teach test::Proxy to send packets in reverse direction #772

gavv opened this issue Jul 30, 2024 · 8 comments
Assignees
Labels
easy hacks The solution is expected to be straightforward even if you are new to the project help wanted An important and awaited task but we have no human resources for it yet networking Network I/O and algorithms tests

Comments

@gavv
Copy link
Member

gavv commented Jul 30, 2024

test::Proxy is a class that we use in integration tests for C API.

Proxy is inserted between sender and receiver. Instead of connecting sender to receiver, we connect sender to proxy and proxy to receiver. Mostly, proxy just forwards packets as is and calculates some metrics, but it can also simulate network losses by dropping some packets.

Currently Proxy supports two uni-directional endpoints: one for source packets (audio packets sent from sender to receiver) and another for repair packets (redundancy packets sent from sender to receiver). See docs.

We want to teach Proxy to support optional endpoint for control packets. This endpoint should be bidirectional, i.e. sender sends control packets to receiver (via proxy), and receiver sends control packets to sender (via proxy).

This would allow us to improve tests for metrics.

@gavv gavv added tests help wanted An important and awaited task but we have no human resources for it yet easy hacks The solution is expected to be straightforward even if you are new to the project networking Network I/O and algorithms labels Jul 30, 2024
@gavv gavv added this to Roc Toolkit Jul 30, 2024
@github-project-automation github-project-automation bot moved this to Frontlog in Roc Toolkit Jul 30, 2024
@gavv gavv moved this from Frontlog to Help wanted in Roc Toolkit Jul 30, 2024
@kiranlahiri

This comment has been minimized.

@gavv

This comment has been minimized.

@kiranlahiri

This comment has been minimized.

@gavv

This comment has been minimized.

kiranlahiri added a commit to kiranlahiri/roc-toolkit that referenced this issue Dec 9, 2024
@gavv
Copy link
Member Author

gavv commented Feb 7, 2025

@kiranlahiri Feel free to ping me if you'll decide to work on this. For now, unassigning the issue so that someone could pick it up.

@GabrielPerezCSDev
Copy link

Hi, I’d like to work on this issue! I’ve looked into the Proxy class and see that it currently handles source and repair packets. I’d like to add support for control packets and ensure they can be forwarded bidirectionally.

Can I be assigned to this? Let me know if there are any specific guidelines for this issue in particular I should follow. Thanks!

@gavv
Copy link
Member Author

gavv commented Feb 11, 2025

@GabrielPerezCSDev You're welcome, thanks. There are no specific guidelines besides issue text and contributions guidelines in our docs.

@GabrielPerezCSDev
Copy link

I've implemented the requested changes and submitted a PR: #PR_Number.

Summary of Changes:

  • Added control packet support in Proxy while keeping backward compatibility.
  • Modified write() to correctly handle control packets alongside source and repair packets.
  • Implemented an overloaded constructor to ensure existing tests remain unaffected.

Let me know if any changes are needed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
easy hacks The solution is expected to be straightforward even if you are new to the project help wanted An important and awaited task but we have no human resources for it yet networking Network I/O and algorithms tests
Projects
Status: Help wanted
Development

No branches or pull requests

3 participants