mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-03-10 00:58:20 +03:00
Merge pull request #15397 from ssahani/vxlan
network: VXlan group and remote fixes
This commit is contained in:
commit
d9235719f2
@ -38,7 +38,14 @@ static int netdev_vxlan_fill_message_create(NetDev *netdev, Link *link, sd_netli
|
|||||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_ID attribute: %m");
|
return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_ID attribute: %m");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_addr_is_null(v->remote_family, &v->remote) == 0) {
|
if (in_addr_is_null(v->group_family, &v->group) == 0) {
|
||||||
|
if (v->group_family == AF_INET)
|
||||||
|
r = sd_netlink_message_append_in_addr(m, IFLA_VXLAN_GROUP, &v->group.in);
|
||||||
|
else
|
||||||
|
r = sd_netlink_message_append_in6_addr(m, IFLA_VXLAN_GROUP6, &v->group.in6);
|
||||||
|
if (r < 0)
|
||||||
|
return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_GROUP attribute: %m");
|
||||||
|
} else if (in_addr_is_null(v->remote_family, &v->remote) == 0) {
|
||||||
if (v->remote_family == AF_INET)
|
if (v->remote_family == AF_INET)
|
||||||
r = sd_netlink_message_append_in_addr(m, IFLA_VXLAN_GROUP, &v->remote.in);
|
r = sd_netlink_message_append_in_addr(m, IFLA_VXLAN_GROUP, &v->remote.in);
|
||||||
else
|
else
|
||||||
@ -348,6 +355,11 @@ static int netdev_vxlan_verify(NetDev *netdev, const char *filename) {
|
|||||||
if (!v->dest_port && v->generic_protocol_extension)
|
if (!v->dest_port && v->generic_protocol_extension)
|
||||||
v->dest_port = 4790;
|
v->dest_port = 4790;
|
||||||
|
|
||||||
|
if (in_addr_is_null(v->group_family, &v->group) == 0 && in_addr_is_null(v->remote_family, &v->remote) == 0)
|
||||||
|
return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
|
||||||
|
"%s: VXLAN both 'Group=' and 'Remote=' cannot be specified. Ignoring.",
|
||||||
|
filename);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1549,9 +1549,17 @@ static int link_status_one(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (IN_SET(info->vxlan_info.group_family, AF_INET, AF_INET6)) {
|
if (IN_SET(info->vxlan_info.group_family, AF_INET, AF_INET6)) {
|
||||||
|
const char *p;
|
||||||
|
|
||||||
|
r = in_addr_is_multicast(info->vxlan_info.group_family, &info->vxlan_info.group);
|
||||||
|
if (r <= 0)
|
||||||
|
p = "Remote:";
|
||||||
|
else
|
||||||
|
p = "Group:";
|
||||||
|
|
||||||
r = table_add_many(table,
|
r = table_add_many(table,
|
||||||
TABLE_EMPTY,
|
TABLE_EMPTY,
|
||||||
TABLE_STRING, "Group:",
|
TABLE_STRING, p,
|
||||||
info->vxlan_info.group_family == AF_INET ? TABLE_IN_ADDR : TABLE_IN6_ADDR,
|
info->vxlan_info.group_family == AF_INET ? TABLE_IN_ADDR : TABLE_IN6_ADDR,
|
||||||
&info->vxlan_info.group);
|
&info->vxlan_info.group);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user