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

Add support for loopback #118

Merged
merged 6 commits into from
May 23, 2023
Merged

Add support for loopback #118

merged 6 commits into from
May 23, 2023

Conversation

mh32
Copy link
Contributor

@mh32 mh32 commented May 19, 2023

This changes adds UDP and TCP support for loopback. Packets sent over loopback
do not flow through the topology, instead they are sent directly from the host
back to itself - somewhat modeling how the real world works. The affects of
this implementation are that network manipulation APIs do not work on loopback
traffic. However, this approach gets incrementally closer towards full loopback
support and unblocks most use cases.

The implementation is a bit of hack. I think where we want to get to is full
support for multiple interfaces. For example, hosts should be allowed to have
both an v4 and v6 ip addr. This will require a bit of a lift due to how hosts
are identified by an IP address.

mh32 and others added 5 commits May 19, 2023 14:18
This changes adds UDP and TCP support for loopback. Packets sent over loopback
do not flow through the topology, instead they are sent directly from the host
back to itself - somewhat modeling how the real world works. The affects of
this implementation are that network manipulation APIs do not work on loopback
traffic. However, this approach gets incrementally closer towards full loopback
support and unblocks most use cases.
This change adds UDP and TCP support for loopback. Packets sent over loopback
do not flow through the topology, instead they are sent directly from the host
back to itself - somewhat modeling how the real world works. The side effect of
this implementation is that network manipulation APIs do not work on loopback
traffic. However, this approach gets incrementally closer towards full loopback
support and unblocks most use cases.
@mh32 mh32 requested a review from mcches May 23, 2023 17:50
Copy link
Contributor

@mcches mcches left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great. Could you please update #79 with our thoughts on where this should go long term?

Comment on lines -46 to -47
// Unspecified -> host's IP
addr.set_ip(host.addr);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

src/net/tcp/stream.rs Outdated Show resolved Hide resolved
Co-authored-by: Brett McChesney <39924297+mcches@users.noreply.github.com>
@mh32 mh32 merged commit 563440b into main May 23, 2023
@mh32 mh32 deleted the loopback branch May 23, 2023 22:10
@mh32 mh32 mentioned this pull request May 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants