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

GSO on macOS #1554

Open
Ralith opened this issue May 3, 2023 · 3 comments
Open

GSO on macOS #1554

Ralith opened this issue May 3, 2023 · 3 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@Ralith
Copy link
Collaborator

Ralith commented May 3, 2023

Luke Curley on the implementers' slack reports that the socket option SOL_UDP/UDP_SEGMENT can be used to set a segment size to get GSO on macOS. We should take advantage of this for better performance. Unclear if GRO might also be possible.

@Ralith Ralith added enhancement New feature or request good first issue Good for newcomers labels May 3, 2023
@Ralith
Copy link
Collaborator Author

Ralith commented May 5, 2023

Marten Seeman reports that GRO works via enabling the IPPROTO_UDP/UDP_GRO socket option.

@marten-seemann
Copy link

There must be a misunderstanding. I haven't figured out how GSO works on OSX. See this thread in particular.

@Ralith
Copy link
Collaborator Author

Ralith commented May 8, 2023

That link doesn't seem to do anything here, but you said:

GRO works as well. Here’s a C program that works:

// [...]
setsockopt(recv_sock, IPPROTO_UDP, UDP_GRO, &enable, sizeof(enable));
// [...]

[...] When I spin up a second machine and send UDP packets to the first one, I actually see GRO kicking in.

I understand that there's weird quirks around lo, but does that not mean it works?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants