[PATCH 2/4] golang/xenlight: add DeviceNicAdd/Remove wrappers

Nick Rosbrook posted 4 patches 5 years, 10 months ago
Maintainers: Ian Jackson <ian.jackson@eu.citrix.com>, Wei Liu <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>
There is a newer version of this series
[PATCH 2/4] golang/xenlight: add DeviceNicAdd/Remove wrappers
Posted by Nick Rosbrook 5 years, 10 months ago
Add DeviceNicAdd and DeviceNicRemove as wrappers for
libxl_device_nic_add and libxl_device_nic_remove.

Signed-off-by: Nick Rosbrook <rosbrookn@ainfosec.com>
---
 tools/golang/xenlight/xenlight.go | 34 +++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/tools/golang/xenlight/xenlight.go b/tools/golang/xenlight/xenlight.go
index 8492bcec4e..a56f913b81 100644
--- a/tools/golang/xenlight/xenlight.go
+++ b/tools/golang/xenlight/xenlight.go
@@ -1068,3 +1068,37 @@ func (Ctx *Context) PrimaryConsoleGetTty(domid uint32) (path string, err error)
 	path = C.GoString(cpath)
 	return
 }
+
+// DeviceNicAdd adds a nic to a domain.
+func (Ctx *Context) DeviceNicAdd(domid Domid, nic *DeviceNic) error {
+	var cnic C.libxl_device_nic
+
+	if err := nic.toC(&cnic); err != nil {
+		return err
+	}
+	defer C.libxl_device_nic_dispose(&cnic)
+
+	ret := C.libxl_device_nic_add(Ctx.ctx, C.uint32_t(domid), &cnic, nil)
+	if ret != 0 {
+		return Error(ret)
+	}
+
+	return nil
+}
+
+// DeviceNicRemove removes a nic from a domain.
+func (Ctx *Context) DeviceNicRemove(domid Domid, nic *DeviceNic) error {
+	var cnic C.libxl_device_nic
+
+	if err := nic.toC(&cnic); err != nil {
+		return err
+	}
+	defer C.libxl_device_nic_dispose(&cnic)
+
+	ret := C.libxl_device_nic_remove(Ctx.ctx, C.uint32_t(domid), &cnic, nil)
+	if ret != 0 {
+		return Error(ret)
+	}
+
+	return nil
+}
-- 
2.17.1


Re: [PATCH 2/4] golang/xenlight: add DeviceNicAdd/Remove wrappers
Posted by George Dunlap 5 years, 9 months ago

> On Apr 12, 2020, at 11:02 PM, Nick Rosbrook <rosbrookn@gmail.com> wrote:
> 
> Add DeviceNicAdd and DeviceNicRemove as wrappers for
> libxl_device_nic_add and libxl_device_nic_remove.
> 
> Signed-off-by: Nick Rosbrook <rosbrookn@ainfosec.com>
> ---
> tools/golang/xenlight/xenlight.go | 34 +++++++++++++++++++++++++++++++
> 1 file changed, 34 insertions(+)
> 
> diff --git a/tools/golang/xenlight/xenlight.go b/tools/golang/xenlight/xenlight.go
> index 8492bcec4e..a56f913b81 100644
> --- a/tools/golang/xenlight/xenlight.go
> +++ b/tools/golang/xenlight/xenlight.go
> @@ -1068,3 +1068,37 @@ func (Ctx *Context) PrimaryConsoleGetTty(domid uint32) (path string, err error)
> 	path = C.GoString(cpath)
> 	return
> }
> +
> +// DeviceNicAdd adds a nic to a domain.
> +func (Ctx *Context) DeviceNicAdd(domid Domid, nic *DeviceNic) error {
> +	var cnic C.libxl_device_nic
> +
> +	if err := nic.toC(&cnic); err != nil {
> +		return err
> +	}
> +	defer C.libxl_device_nic_dispose(&cnic)
> +
> +	ret := C.libxl_device_nic_add(Ctx.ctx, C.uint32_t(domid), &cnic, nil)
> +	if ret != 0 {
> +		return Error(ret)
> +	}
> +
> +	return nil
> +}
> +
> +// DeviceNicRemove removes a nic from a domain.

I feel like I want to say here what it is you actually have to fill in to remove the nic; but after 10 minutes of poking around the code, I’m not actually sure myself. :-)  (I think it *might* be just Devid and BackendDomid.)

So I’ll give this for now:

Reviewed-by: George Dunlap <george.dunlap@citrix.com>

And if I find it before I finish reviewing the end of the series, we can check it in and look at improving the documentation later.

 -George
Re: [PATCH 2/4] golang/xenlight: add DeviceNicAdd/Remove wrappers
Posted by Nick Rosbrook 5 years, 9 months ago
> I feel like I want to say here what it is you actually have to fill in to remove the nic; but after 10 minutes of poking around the code, I’m not actually sure myself. :-)  (I think it *might* be just Devid and BackendDomid.)

IIRC, you can use just the MAC or devid. I was using just the MAC when
I tested it out.

> So I’ll give this for now:
>
> Reviewed-by: George Dunlap <george.dunlap@citrix.com>
>
> And if I find it before I finish reviewing the end of the series, we can check it in and look at improving the documentation later.

Sounds good, thanks!

-NR