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

Support multicast for UDP #5732

Open
dalesample opened this issue Dec 27, 2020 · 6 comments · May be fixed by #22099
Open

Support multicast for UDP #5732

dalesample opened this issue Dec 27, 2020 · 6 comments · May be fixed by #22099
Labels
domain: networking Anything related to Vector's networking have: should We should have this feature, but is not required. It is medium priority. source: socket Anything `socket` source related type: enhancement A value-adding code change that enhances its existing functionality.

Comments

@dalesample
Copy link

Current Vector Version

vector 0.11.0 (v0.11.0 x86_64-unknown-linux-musl 2020-12-02)

Use-cases

We would like to have a multicast sink to receive multicast data and provide that data to our kafka sink.

We cannot use vector in our product if multicast is not supported.

Attempted Solutions

I looked at all the documentation, attempted to just place a multicast address in a udp config, and looked at the code. I do not believe that multicast is supported.

Here is an example config I attempted to use:

[sources.in]
address = "238.0.0.200:50006"
mode = "udp" # required
type = "socket" # required

Proposal

Support multicast.

I'm willing to work this, but I don't know rust, and my code would likely be bad.

References

@dalesample dalesample added the type: enhancement A value-adding code change that enhances its existing functionality. label Dec 27, 2020
@binarylogic binarylogic added domain: networking Anything related to Vector's networking have: should We should have this feature, but is not required. It is medium priority. sink: kafka Anything `kafka` sink related labels Dec 27, 2020
@binarylogic binarylogic added this to the 2021-01-04 Xenomass Well milestone Dec 27, 2020
@binarylogic
Copy link
Contributor

Thanks, @dalesample, you're welcome to give it a try. Given the holidays, we probably won't get to this until after the new year.

@jamtur01 jamtur01 removed this from the 2021-01-04 Xenomass Well milestone Jan 1, 2021
@nomalord
Copy link

Hey, I saw this issue wasn't really resolved. We would love to use vector for our systems, but we must have a multicast input 🥹

Do you think it's likely someone will work on the feature any time soon?

@jorgehermo9
Copy link
Contributor

Hi @nomalord

I think I can give it a try. Multicast udp in socket sink is already supported, right? You just need to specify the multicast address and the udp sink will send to that address and it will reach all hosts of the multicast group (I think that is how IP multicast works)

This issue is to allow udp socket sources to join a multicast group (https://doc.rust-lang.org/std/net/struct.UdpSocket.html#method.join_multicast_v4) previous to the packet recv loop, right?

Can you confirm you need the source?

@jorgehermo9
Copy link
Contributor

jorgehermo9 commented Dec 31, 2024

I think the tags of this issue should be updated

It should be source: socket instead of sink: kafka

CC @jszwedko ?

@nomalord
Copy link

Yes, just as you said I need a multicast source 🙏

@jorgehermo9 jorgehermo9 linked a pull request Dec 31, 2024 that will close this issue
@jszwedko jszwedko added source: socket Anything `socket` source related and removed sink: kafka Anything `kafka` sink related labels Jan 2, 2025
@jszwedko
Copy link
Member

jszwedko commented Jan 2, 2025

I think the tags of this issue should be updated

It should be source: socket instead of sink: kafka

CC @jszwedko ?

Agreed, thanks! Updated. And thanks for the PR implementing this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain: networking Anything related to Vector's networking have: should We should have this feature, but is not required. It is medium priority. source: socket Anything `socket` source related type: enhancement A value-adding code change that enhances its existing functionality.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants