summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-12-31 03:37:48 +0100
committerThomas Haller <thaller@redhat.com>2020-01-02 09:17:34 +0100
commit7d2676919f79bac6c47226126039c27bae038f05 (patch)
treec26d791fec7a9fbeee820261aa3f0a371a5c13a9
parent69db6df314fabfe34a77468291844812ed347fdb (diff)
downloadNetworkManager-7d2676919f79bac6c47226126039c27bae038f05.tar.gz
platform: support setting MAC address during nm_platform_link_gre_add()
We should set the MAC address of devices early on, and not later.
-rw-r--r--src/devices/nm-device-ip-tunnel.c7
-rw-r--r--src/platform/nm-platform.h4
-rw-r--r--src/platform/tests/test-common.c2
3 files changed, 10 insertions, 3 deletions
diff --git a/src/devices/nm-device-ip-tunnel.c b/src/devices/nm-device-ip-tunnel.c
index 0becb5e568..c84ff3a587 100644
--- a/src/devices/nm-device-ip-tunnel.c
+++ b/src/devices/nm-device-ip-tunnel.c
@@ -702,7 +702,12 @@ create_and_realize (NMDevice *device,
lnk_gre.output_flags = NM_GRE_KEY;
}
- r = nm_platform_link_gre_add (nm_device_get_platform (device), iface, &lnk_gre, out_plink);
+ r = nm_platform_link_gre_add (nm_device_get_platform (device),
+ iface,
+ NULL,
+ 0,
+ &lnk_gre,
+ out_plink);
if (r < 0) {
g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_CREATION_FAILED,
"Failed to create GRE interface '%s' for '%s': %s",
diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h
index f2632a1fd0..8d1a3d3865 100644
--- a/src/platform/nm-platform.h
+++ b/src/platform/nm-platform.h
@@ -1387,12 +1387,14 @@ nm_platform_link_wireguard_add (NMPlatform *self,
static inline int
nm_platform_link_gre_add (NMPlatform *self,
const char *name,
+ const void *address,
+ size_t address_len,
const NMPlatformLnkGre *props,
const NMPlatformLink **out_link)
{
g_return_val_if_fail (props, -NME_BUG);
- return nm_platform_link_add (self, props->is_tap ? NM_LINK_TYPE_GRETAP : NM_LINK_TYPE_GRE, name, 0, NULL, 0, props, out_link);
+ return nm_platform_link_add (self, props->is_tap ? NM_LINK_TYPE_GRETAP : NM_LINK_TYPE_GRE, 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 7d31e920b8..906deeada6 100644
--- a/src/platform/tests/test-common.c
+++ b/src/platform/tests/test-common.c
@@ -1265,7 +1265,7 @@ nmtstp_link_gre_add (NMPlatform *platform,
if (success)
pllink = nmtstp_assert_wait_for_link (platform, name, link_type, 100);
} else
- success = NMTST_NM_ERR_SUCCESS (nm_platform_link_gre_add (platform, name, lnk, &pllink));
+ success = NMTST_NM_ERR_SUCCESS (nm_platform_link_gre_add (platform, name, NULL, 0, lnk, &pllink));
_assert_pllink (platform, success, pllink, name, link_type);