summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2020-05-14 11:35:47 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2020-05-15 09:48:25 +0200
commitfa4fbd3333989dc2f5abc865a95b5a39ca9dba09 (patch)
tree0ce576e9bdae78b554bf83fea4007a96ed811401 /src
parent0494a84878e696baccbf3b1d16089b92cb7c7835 (diff)
downloadNetworkManager-fa4fbd3333989dc2f5abc865a95b5a39ca9dba09.tar.gz
ip-tunnel: set ip6gretap MAC address when creating the linkbg/ip-tunnel-cloned-mac-rh1832170
Diffstat (limited to 'src')
-rw-r--r--src/devices/nm-device-ip-tunnel.c5
-rw-r--r--src/platform/nm-platform.h4
-rw-r--r--src/platform/tests/test-common.c2
3 files changed, 8 insertions, 3 deletions
diff --git a/src/devices/nm-device-ip-tunnel.c b/src/devices/nm-device-ip-tunnel.c
index fcee2d2ce9..2c9a605039 100644
--- a/src/devices/nm-device-ip-tunnel.c
+++ b/src/devices/nm-device-ip-tunnel.c
@@ -843,7 +843,10 @@ create_and_realize (NMDevice *device,
lnk_ip6tnl.is_tap = (mode == NM_IP_TUNNEL_MODE_IP6GRETAP);
r = nm_platform_link_ip6gre_add (nm_device_get_platform (device),
- iface, &lnk_ip6tnl, out_plink);
+ iface,
+ mac_address_valid ? mac_address : NULL,
+ mac_address_valid ? ETH_ALEN : 0,
+ &lnk_ip6tnl, out_plink);
} else {
lnk_ip6tnl.proto = nm_setting_ip_tunnel_get_mode (s_ip_tunnel) == NM_IP_TUNNEL_MODE_IPIP6
? IPPROTO_IPIP
diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h
index 931ab16391..260b5356ff 100644
--- a/src/platform/nm-platform.h
+++ b/src/platform/nm-platform.h
@@ -1511,13 +1511,15 @@ nm_platform_link_ip6tnl_add (NMPlatform *self,
static inline int
nm_platform_link_ip6gre_add (NMPlatform *self,
const char *name,
+ const void *address,
+ size_t address_len,
const NMPlatformLnkIp6Tnl *props,
const NMPlatformLink **out_link)
{
g_return_val_if_fail (props, -NME_BUG);
g_return_val_if_fail (props->is_gre, -NME_BUG);
- return nm_platform_link_add (self, props->is_tap ? NM_LINK_TYPE_IP6GRETAP : NM_LINK_TYPE_IP6GRE, name, 0, NULL, 0, props, out_link);
+ return nm_platform_link_add (self, props->is_tap ? NM_LINK_TYPE_IP6GRETAP : NM_LINK_TYPE_IP6GRE, name, 0, address, address_len, props, out_link);
}
static inline int
diff --git a/src/platform/tests/test-common.c b/src/platform/tests/test-common.c
index f393ae933e..f28dfa3a72 100644
--- a/src/platform/tests/test-common.c
+++ b/src/platform/tests/test-common.c
@@ -1380,7 +1380,7 @@ nmtstp_link_ip6gre_add (NMPlatform *platform,
100);
}
} else
- success = NMTST_NM_ERR_SUCCESS (nm_platform_link_ip6gre_add (platform, name, lnk, &pllink));
+ success = NMTST_NM_ERR_SUCCESS (nm_platform_link_ip6gre_add (platform, name, NULL, 0, lnk, &pllink));
_assert_pllink (platform, success, pllink, name, lnk->is_tap ? NM_LINK_TYPE_IP6GRETAP : NM_LINK_TYPE_IP6GRE);