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

Udp reading and multicasting error #1339

Open
aratz-lasa opened this issue Jun 3, 2022 · 5 comments
Open

Udp reading and multicasting error #1339

aratz-lasa opened this issue Jun 3, 2022 · 5 comments

Comments

@aratz-lasa
Copy link

Hello,

I'm working on an Golang application that makes use of QUIC UDP, and I'm getting the following error when I try to run it on nanovms/ops: read udp 0.0.0.0:60866: recvmmsg: function not implemented

Does someone know what may be happening?

@francescolavra
Copy link
Member

Hi,
the recvmmsg syscall is currently not implemented in the Nanos kernel, thus your application gets an error when it tries to call recvmmsg().

@aratz-lasa
Copy link
Author

Thank you very much for the fast answer.

On the other hand, is there any way to enable multicasting on the network interfaces of Nanos kernel?

@aratz-lasa aratz-lasa changed the title Udp reading error Udp reading and multicasting error Jun 3, 2022
@francescolavra
Copy link
Member

Not yet, as of now you can transmit multicast packets but reception of multicast traffic is not supported.

@francescolavra
Copy link
Member

The recvmmsg syscall is now implemented in the Nanos kernel, so when the next nightly build is published in a few hours you should be able to use it in your QUIC UDP application, by creating your Ops image with the nightly kernel build (just add the -n command line flag to your Ops command to create the image).
As for the multicasting feature, we could add support for multicast traffic reception, but it wouldn't work in most public clouds because cloud providers usually don't offer multicast capabilities (i.e. an instance running on a public cloud such as GCP or AWS cannot subscribe to multicast groups). So I'm not sure it's worth adding this feature to the Nanos kernel; @aratz-lasa perhaps if could elaborate more on your use case it would help us decide whether it makes sense to add this feature to Nanos.

@aratz-lasa
Copy link
Author

@francescolavra amazing! Thank you for the update, this will allow me to deploy my application through nanovms.

Don't worry, there is no need for multicasting. I ended up developing an alternative mechanism of port discovery, so that when multicasting is disabled, we fallback to it.

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

No branches or pull requests

2 participants