id = 1837 title = "Support IP_MULTICAST_IF socket option in linux-user" state = "opened" created_at = "2023-08-18T13:15:51.932Z" closed_at = "n/a" labels = ["linux-user"] url = "https://gitlab.com/qemu-project/qemu/-/issues/1837" host-os = "n/a" host-arch = "n/a" qemu-version = "n/a" guest-os = "n/a" guest-arch = "n/a" description = "n/a" reproduce = "n/a" additional = """I've run into this limitation in qemu-aarch64-static version Debian 1:6.2+dfsg-2ubuntu6.12, but from the link above, it doesn't seem to be implemented on master yet. Here's some source code that demonstrates the failure: ``` #include #include #include #include #include #include int main() { int fd, ret; struct in_addr addr = {htonl(INADDR_LOOPBACK)}; fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); assert(fd >= 0); ret = setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, &addr, sizeof(addr)); if (ret < 0) { perror("setsockopt failed"); return 1; } close(fd); printf("Success!\\n"); return 0; } ``` When run under qemu, it gives the error `setsockopt failed: Protocol not available`. It doesn't look like it should be too hard to support (certainly no worse than IP_ADD_MEMBERSHIP). Let me know if I can help with a patch."""