summaryrefslogtreecommitdiff
path: root/src/network/networkd-link.c
diff options
context:
space:
mode:
authorSusant Sahani <145210+ssahani@users.noreply.github.com>2018-06-01 19:52:12 +0530
committerLennart Poettering <lennart@poettering.net>2018-06-01 16:22:12 +0200
commit866e6b7a1214a8a053615b48bef7be078ff95234 (patch)
treeb8fde1a0bf7c05c846df6ffa474af54d20c4ff39 /src/network/networkd-link.c
parentbe4bf266cb585be772054deb71f8748ce6e3f166 (diff)
downloadsystemd-866e6b7a1214a8a053615b48bef7be078ff95234.tar.gz
networkd: enable to set IFF_ALLMULTI to network device (#9146)
networkd: allow setting set IFF_ALLMULTI flag on network devices
Diffstat (limited to 'src/network/networkd-link.c')
-rw-r--r--src/network/networkd-link.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index 32bcc4c459..c957efd409 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -1357,7 +1357,7 @@ static int link_set_flags(Link *link) {
if (!link->network)
return 0;
- if (link->network->arp < 0 && link->network->multicast < 0)
+ if (link->network->arp < 0 && link->network->multicast < 0 && link->network->allmulticast < 0)
return 0;
r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_SETLINK, link->ifindex);
@@ -1374,6 +1374,11 @@ static int link_set_flags(Link *link) {
SET_FLAG(ifi_flags, IFF_MULTICAST, link->network->multicast);
}
+ if (link->network->allmulticast >= 0) {
+ ifi_change |= IFF_ALLMULTI;
+ SET_FLAG(ifi_flags, IFF_ALLMULTI, link->network->allmulticast);
+ }
+
r = sd_rtnl_message_link_set_flags(req, ifi_flags, ifi_change);
if (r < 0)
return log_link_error_errno(link, r, "Could not set link flags: %m");