Subject: bug#52520: Multicast is off by default

From: Mathieu Othacehe <[email-masked]>
Date: Wed, 15 Dec 2021 20:36:06 +0100

Hello,

Since the guile-netlink switch the static IP interfaces no longer have
multicast support. This can be confirmed this way:

--8<---------------cut here---------------start------------->8---
4: eno4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether b0:26:28:b7:9d:09 brd ff:ff:ff:ff:ff:ff
5: eno2: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether b0:26:28:b7:9d:0b brd ff:ff:ff:ff:ff:ff
    inet 141.80.181.40/24 brd 141.80.181.255 scope global eno2
       valid_lft forever preferred_lft forever
    inet6 fe80::b226:28ff:feb7:9d0b/64 scope link 
       valid_lft forever preferred_lft forever
--8<---------------cut here---------------end--------------->8---

eno2 that is managed by the static-networking service is lacking
multicast support, while eno4 that is not managed by this service has
multicast support.

This can be adjusted by running:

--8<---------------cut here---------------start------------->8---
ip link set multicast on eno1
--8<---------------cut here---------------end--------------->8---

which immediately fixes Avahi discovery that depends on it.

I think that we could maybe apply the following patch, even though I
didn't test it.

--8<---------------cut here---------------start------------->8---
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 5f93483dda..af3fe015b9 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -2546,6 +2546,7 @@ (define network-set-up/linux
                                                 #$(network-address-ipv6? address))
                                       ;; FIXME: loopback?
                                       (link-set #$(network-address-device address)
+                                                #:multicast-on #t
                                                 #:up #t)))
                                 addresses)
--8<---------------cut here---------------end--------------->8---

Thanks,

Mathieu