tools/libs/light: Add vlan field to libxl_device_nic

Add `vlan' string field to libxl_device_nic, to allow a VLAN
configuration to be specified for the VIF when adding it to the
bridge device.

Update libxl_nic.c to read and write the vlan field from the
xenstore.

This provides the capability for supported operating systems (e.g.
Linux) to perform VLAN filtering on bridge ports.  The Xen
hotplug scripts need to be updated to read this information from
the xenstore and perform the required configuration.

Signed-off-by: Leigh Brown <leigh@solinno.co.uk>
Reviewed-by: Jason Andryuk <jandryuk@gmail.com>
This commit is contained in:
Leigh Brown authored and Andrew Cooper committed 2024-05-15 19:59:52 +01:00
1 parent e27fc7d15e
commit 3bc14e4fa4
2 files changed
+11

No files matched your search

+10
View File
@@ -233,6 +233,11 @@ static int libxl__set_xenstore_nic(libxl__gc *gc, uint32_t domid,
flexarray_append(back, GCSPRINTF("%u", nic->mtu));
}
if (nic->vlan) {
flexarray_append(back, "vlan");
flexarray_append(back, libxl__strdup(gc, nic->vlan));
}
flexarray_append(back, "bridge");
flexarray_append(back, libxl__strdup(gc, nic->bridge));
flexarray_append(back, "handle");
@@ -313,6 +318,11 @@ static int libxl__nic_from_xenstore(libxl__gc *gc, const char *libxl_path,
nic->mtu = LIBXL_DEVICE_NIC_MTU_DEFAULT;
}
rc = libxl__xs_read_checked(gc, XBT_NULL,
GCSPRINTF("%s/vlan", libxl_path),
(const char **)(&nic->vlan));
if (rc) goto out;
rc = libxl__xs_read_checked(gc, XBT_NULL,
GCSPRINTF("%s/mac", libxl_path), &tmp);
if (rc) goto out;
+1
View File
@@ -817,6 +817,7 @@ libxl_device_nic = Struct("device_nic", [
("backend_domname", string),
("devid", libxl_devid),
("mtu", integer),
("vlan", string),
("model", string),
("mac", libxl_mac),
("ip", string),
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.