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 multicast when using native epoll transport #9146

Closed
wants to merge 1 commit into from

Conversation

Projects
None yet
4 participants
@normanmaurer
Copy link
Member

commented May 13, 2019

Motivation:

Provide epoll/native multicast to support high load multicast users (we are using it for a high load telecomm app at my day job).

Modification:

Added support for source specific and any source multicast for epoll transport. Some caveats: no support for disabling loop back mode, retrieval of interface and block operation, all of which tend to be less frequently used.

Result:

Provides epoll transport multicast for common use cases.

Co-authored-by: Norman Maurer norman_maurer@apple.com

@normanmaurer normanmaurer force-pushed the epoll_multicast_work branch from 9d2345a to 1ec2668 May 13, 2019

@normanmaurer

This comment has been minimized.

Copy link
Member Author

commented May 13, 2019

@sbuzzard alright I fixed your original commit + added support for ipv6. That said I think we could share the same code with macOS :) WDYT ?

@normanmaurer

This comment has been minimized.

Copy link
Member Author

commented May 13, 2019

@netty-bot test this please

@normanmaurer normanmaurer changed the title Epoll multicast work Add support for multicast when using native epoll transport May 13, 2019

@normanmaurer

This comment has been minimized.

Copy link
Member Author

commented May 13, 2019

Once this is merged I can port over stuff so we can also support it with native KQueue transport.

@normanmaurer normanmaurer added this to the 4.1.37.Final milestone May 13, 2019

@normanmaurer normanmaurer force-pushed the epoll_multicast_work branch 2 times, most recently from fb86007 to 1b9e1f1 May 22, 2019

@normanmaurer

This comment has been minimized.

Copy link
Member Author

commented May 22, 2019

@netty-bot test this please

@normanmaurer

This comment has been minimized.

Copy link
Member Author

commented May 22, 2019

test-failure not related...

@normanmaurer

This comment has been minimized.

Copy link
Member Author

commented May 22, 2019

@netty-bot test this please


void setNetworkInterface(NetworkInterface netInterface, InternetProtocolFamily family) throws IOException {
InetAddress address = deriveInetAddress(netInterface, family == InternetProtocolFamily.IPv6);
if (address.equals(family == InternetProtocolFamily.IPv4 ? INET6_ANY : INET_ANY)) {

This comment has been minimized.

Copy link
@carl-mastrangelo

carl-mastrangelo May 23, 2019

Member

is this reversed?

This comment has been minimized.

Copy link
@normanmaurer

normanmaurer May 24, 2019

Author Member

good catch... let me fix it.

@sbuzzard

This comment has been minimized.

Copy link
Contributor

commented May 24, 2019

@normanmaurer sorry, totally missed the comment re: OS X - don't see why it couldn't be shared (and thx for adding ipv6 support). BTW, finally got approval and added a blurp related to comcast's use of netty on the wiki.

@carl-mastrangelo
Copy link
Member

left a comment

LGTM

@normanmaurer

This comment has been minimized.

Copy link
Member Author

commented May 24, 2019

I just noticed I can remove the second param of Socket constructor ... Let me do this :)

Added UDP multicast (with caveats: getInterface, getNetworkInterface,…
… block or loopback-mode-disabled operations).

Motivation:

Provide epoll/native multicast to support high load multicast users (we are using it for a high load telecomm app at my day job).

Modification:

Added support for source specific and any source multicast for epoll transport. Some caveats: no support for disabling loop back mode, retrieval of interface and block operation, all of which tend to be less frequently used.

Result:

Provides epoll transport multicast for common use cases.

Co-authored-by: Norman Maurer <norman_maurer@apple.com>

@normanmaurer normanmaurer force-pushed the epoll_multicast_work branch from 54750df to e8de2da May 24, 2019

@normanmaurer

This comment has been minimized.

Copy link
Member Author

commented May 27, 2019

Was cherry-picked as 70731bf

@normanmaurer normanmaurer deleted the epoll_multicast_work branch May 27, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.