@@ -1946,6 +1946,24 @@ shows the decimal value. For non-linear mode, it shows hexadecimal value.
=back
+=head1 ENVIRONMENT
+
+=over 4
+
+=item B<LIBXL_DISK_BACKEND_UNTRUSTED>
+
+Set this environment variable to "1" to suggest to the guest that the disk
+backend shouldn't be trusted. If the variable is absent or set to "0", the
+backend will be trusted.
+
+=item B<LIBXL_NIC_BACKEND_UNTRUSTED>
+
+Set this environment variable to "1" to suggest to the guest that the network
+backend shouldn't be trusted. If the variable is absent or set to "0", the
+backend will be trusted.
+
+=back
+
=head1 IGNORED FOR COMPATIBILITY WITH XM
xl is mostly command-line compatible with the old xm utility used with
@@ -246,6 +246,7 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid,
libxl_domain_config d_config;
libxl_device_disk disk_saved;
libxl__flock *lock = NULL;
+ const char *envvar;
libxl_domain_config_init(&d_config);
libxl_device_disk_init(&disk_saved);
@@ -395,6 +396,10 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid,
flexarray_append(front, GCSPRINTF("%d", device->devid));
flexarray_append(front, "device-type");
flexarray_append(front, disk->is_cdrom ? "cdrom" : "disk");
+ flexarray_append(front, "trusted");
+ envvar = getenv("LIBXL_DISK_BACKEND_UNTRUSTED");
+ /* Set "trusted=1" if envvar missing or is "0". */
+ flexarray_append(front, !envvar || !strcmp("0", envvar) ? "1" : "0");
/*
* Old PV kernel disk frontends before 2.6.26 rely on tool stack to
@@ -132,6 +132,8 @@ static int libxl__set_xenstore_nic(libxl__gc *gc, uint32_t domid,
flexarray_t *back, flexarray_t *front,
flexarray_t *ro_front)
{
+ const char *envvar;
+
flexarray_grow(back, 2);
if (nic->script)
@@ -255,6 +257,11 @@ static int libxl__set_xenstore_nic(libxl__gc *gc, uint32_t domid,
flexarray_append(back, "hotplug-status");
flexarray_append(back, "");
+ flexarray_append(front, "trusted");
+ envvar = getenv("LIBXL_NIC_BACKEND_UNTRUSTED");
+ /* Set "trusted=1" if envvar missing or is "0". */
+ flexarray_append(front, !envvar || !strcmp("0", envvar) ? "1" : "0");
+
return 0;
}